mcpField
D
dcf-model

dcf-model

github.com/w95データ・データベース28847 回インストール35 週間前に更新
リポジトリ

dcf-model について

dcf-modelは、投資銀行の基準に沿ったDCFモデルをExcelで作成するスキルです。株式評価を行う分析担当者向けに、財務分析、シナリオ予測、評価、数式による感応度分析を扱います。

主な機能

  1. 01過去の財務分析
  2. 02弱気・基本・強気シナリオブロック
  3. 03売上高と営業費用の予測
  4. 04WACCとターミナルバリューの計算
  5. 05株主価値へのブリッジ
  6. 06数式による感応度分析

活用シーン

  1. 01企業のフリーキャッシュフロー予測
  2. 02弱気・基本・強気の評価比較
  3. 03WACCとターミナル成長率の検証

MCP 対応

DCFモデルの作成では、利用可能なMCPサーバーから構造化された財務データを優先して取得するよう定めています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/w95/awesome-claude-corporate-skills --skill dcf-model

インストール後、Claude Code で/dcf-modelを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

requirements.txt
TROUBLESHOOTING.md
scripts/
validate_dcf.py

詳細

DCF モデルビルダー

概要

このスキルは、投資銀行の基準に従い、株式評価のための機関投資家品質の DCF モデルを作成します。各分析では、詳細な Excel モデルを作成します(DCF シート下部に感応度分析を含みます)。

ツール

  • データの取得には、ユーザーが提供したすべての情報と、利用可能な MCP サーバーをデフォルトで使用します。

重要な制約 — まずお読みください

これらの制約は、すべての DCF モデル構築に適用されます。作業を始める前に確認してください。

感応度分析表:

  • 75 個のセルすべて(3 表 × 25 セル)に、DCF 全体を再計算する数式を入力します
  • openpyxl のループを使って、数式をプログラムで書き込みます
  • プレースホルダーテキストや線形近似は使用せず、手作業も不要にします
  • 各セルで、該当する前提条件の組み合わせに基づいて DCF 全体を再計算する必要があります

セルのコメント:

  • ハードコード値を作成するたびに、そのセルにコメントを追加します
  • 形式:「Source: [System/Document], [Date], [Reference], [URL if applicable]」
  • 次のセクションに進む前に、青色の入力セルすべてにコメントを追加します
  • 後回しにせず、「TODO: add source」と記載しないでください

モデルレイアウトの計画:

  • 数式を記述する前に、すべてのセクションの行位置を決定します
  • すべての見出しとラベルを先に記述します
  • 次に、すべてのセクション区切りと空白行を記述します
  • その後、確定した行位置を使って数式を記述します
  • 数式は作成後すぐにテストします

数式の再計算:

  • 納品前に python recalc.py model.xlsx 30 を実行します
  • ステータスが「success」になるまで、すべてのエラーを修正します
  • 数式エラー(#REF!、#DIV/0!、#VALUE! など)は一切許容されません

シナリオブロック:

  • Bear/Base/Bull ケースごとに、個別のブロックを作成します
  • 各ブロック内では、予測年度ごとの前提条件を横方向に表示します
  • IF 数式を使用します:=IF($B$6=1,[Bear cell],IF($B$6=2,[Base cell],[Bull cell]))
  • 数式が正しいシナリオブロックのセルを参照していることを確認します

DCF プロセスのワークフロー

ステップ 1:データの取得と検証

MCP サーバー、ユーザー提供データ、およびウェブからデータを取得します。

データソースの優先順位:

  1. MCP サーバー(設定済みの場合)— Daloopa などのプロバイダーから取得する構造化された財務データ
  2. ユーザー提供データ — ユーザーの調査による過去の財務データ
  3. ウェブ検索/取得 — 必要に応じて現在の株価、ベータ、負債、現金を取得

検証チェックリスト:

  • 純負債か純現金かを確認します(評価において重要)
  • 希薄化後発行済株式数を確認します(最近の自社株買いや株式発行を確認)
  • 過去の利益率がビジネスモデルと整合していることを検証します
  • 売上高成長率を業界ベンチマークと照合します
  • 税率が妥当であることを確認します(通常 21~28%)
ステップ 2:過去の分析(3~5 年)

以下を分析し、記録します。

  • 売上高成長の傾向:CAGR を計算し、成長要因を特定します
  • 利益率の推移:粗利益率、EBIT マージン、FCF マージンを追跡します
  • 資本集約度:売上高に対する D&A および CapEx の割合
  • 運転資本効率:売上高成長率に対する NWC の変化
  • リターン指標:ROIC、ROE の推移

以下を示すサマリーテーブルを作成します。

Historical Metrics (LTM):
Revenue: $X million
Revenue growth: X% CAGR
Gross margin: X%
EBIT margin: X%
D&A % of revenue: X%
CapEx % of revenue: X%
FCF margin: X%
ステップ 3:売上高予測の作成

手法:

  1. 直近の実績売上高(LTM または直近の会計年度)を起点とします
  2. 各予測年度に成長率を適用します
  3. 金額と計算後の成長率の両方を表示します

成長率の設定方針:

  • 1~2 年目:短期的な見通しを反映し、高めの成長率とします
  • 3~4 年目:業界平均に向けて徐々に成長率を引き下げます
  • 5 年目以降:永久成長率に近づけます

数式の構造:

  • 売上高(N 年目)=売上高(N−1 年目)×(1+成長率)
  • 成長率(N 年目)=売上高(N 年目)/売上高(N−1 年目)−1

3 シナリオのアプローチ:

Bear Case: Conservative growth (e.g., 8-12%)
Base Case: Most likely scenario (e.g., 12-16%)
Bull Case: Optimistic growth (e.g., 16-20%)
ステップ 4:営業費用のモデリング

固定費・変動費の分析:

営業費用は、現実的な営業レバレッジを反映するようにモデル化します。

  • 販売・マーケティング:ビジネスモデルに応じて、通常は売上高の15~40%
  • 研究開発:テクノロジー企業では、通常は売上高の10~30%
  • 一般管理費:通常は売上高の8~15%で、企業の規模拡大に伴うレバレッジを示します

主な原則:

  • すべての比率は売上高を基準とし、売上総利益を基準にしません
  • 営業レバレッジをモデル化します:売上高の拡大に伴い、比率は低下する必要があります
  • 販売・マーケティング、研究開発、一般管理費は個別の項目として管理します
  • EBIT = 売上総利益 - 営業費用合計

マージン拡大のフレームワーク:

Current State → Target State (Year 5)
Gross Margin: X% → Y% (justify based on scale, efficiency)
EBIT Margin: X% → Y% (result of revenue growth + opex leverage)
ステップ 5:フリーキャッシュフローの計算

適切な順序でFCFを作成します:

EBIT
(-) Taxes (EBIT × Tax Rate)
= NOPAT (Net Operating Profit After Tax)
(+) D&A (non-cash expense, % of revenue)
(-) CapEx (% of revenue, typically 4-8%)
(-) Δ NWC (change in working capital)
= Unlevered Free Cash Flow

運転資本のモデリング:

  • 売上高の変化(売上高の増分)に対する比率として計算します
  • 一般的な範囲:売上高の変化の-2~+2%
  • マイナスの数値 = キャッシュの創出(運転資本の回収)
  • プラスの数値 = キャッシュの使用(運転資本の増加)

維持設備投資と成長設備投資:

  • 維持設備投資:現在の事業運営を維持します(売上高の約2~3%)
  • 成長設備投資:事業拡大を支えます(売上高の追加2~5%)
  • 設備投資合計は、企業の成長戦略と整合させます
ステップ 6:資本コスト(WACC)の調査

株主資本コストのCAPM手法:

Cost of Equity = Risk-Free Rate + Beta × Equity Risk Premium

Where:
- Risk-Free Rate = Current 10-Year Treasury Yield
- Beta = 5-year monthly stock beta vs market index
- Equity Risk Premium = 5.0-6.0% (market standard)

負債コストの計算:

After-Tax Cost of Debt = Pre-Tax Cost of Debt × (1 - Tax Rate)

Determine Pre-Tax Cost of Debt from:
- Credit rating (if available)
- Current yield on company bonds
- Interest expense / Total Debt from financials

資本構成のウェイト:

Market Value Equity = Current Stock Price × Shares Outstanding
Net Debt = Total Debt - Cash & Equivalents
Enterprise Value = Market Cap + Net Debt

Equity Weight = Market Cap / Enterprise Value
Debt Weight = Net Debt / Enterprise Value

WACC = (Cost of Equity × Equity Weight) + (After-Tax Cost of Debt × Debt Weight)

特殊なケース:

  • ネットキャッシュの状態:現金 > 負債の場合、ネットデットはマイナスになります
    • 負債ウェイトがマイナスになる場合があります
    • WACCの計算はそれに応じて調整されます
  • 負債なし:WACC = 株主資本コスト

一般的なWACCの範囲:

  • 大型株、安定企業:7~9%
  • 成長企業:9~12%
  • 高成長・高リスク:12~15%
ステップ 7:割引率の適用(5~10年予測)

年央慣行:

  • キャッシュフローは年央に発生すると仮定します
  • 割引期間:0.5、1.5、2.5、3.5、4.5など
  • 割引係数 = 1 / (1 + WACC)^期間

現在価値の計算:

For each projection year:
PV of FCF = Unlevered FCF × Discount Factor

Example (Year 1):
FCF = $1,000
WACC = 10%
Period = 0.5
Discount Factor = 1 / (1.10)^0.5 = 0.9535
PV = $1,000 × 0.9535 = $954

予測期間の選択:

  • 5年:ほとんどの分析で標準的
  • 7~10年:成長余地が長い高成長企業
  • 3年:成熟した安定企業
ステップ 8:ターミナルバリューの計算

永久成長法(推奨):

Terminal FCF = Final Year FCF × (1 + Terminal Growth Rate)
Terminal Value = Terminal FCF / (WACC - Terminal Growth Rate)

Critical Constraint: Terminal Growth < WACC (otherwise infinite value)

ターミナル成長率の選択:

  • 保守的:2.0~2.5%(GDP成長率)
  • 中程度:2.5~3.5%
  • 積極的:3.5~5.0%(市場をリードする企業のみ)

上限:リスクフリーレートまたは長期GDP成長率を超えないこと

出口倍率法(代替):

Terminal Value = Final Year EBITDA × Exit Multiple

Where Exit Multiple comes from:
- Industry comparable trading multiples
- Precedent transaction multiples
- Typical range: 8-15x EBITDA

ターミナルバリューの現在価値:

PV of Terminal Value = Terminal Value / (1 + WACC)^Final Period

Where Final Period accounts for timing:
5-year model with mid-year convention: Period = 4.5

ターミナルバリューの妥当性チェック:

  • 企業価値の50~70%を占める必要があります
  • 75%を超える場合、ターミナルの前提に過度に依存している可能性があります
  • 40%を下回る場合、ターミナルの前提が保守的すぎないか確認します
ステップ 9:企業価値から株主価値へのブリッジ

バリュエーションの要約構成:

(+) Sum of PV of Projected FCFs = $X million
(+) PV of Terminal Value = $Y million
= Enterprise Value = $Z million

(-) Net Debt [or + Net Cash if negative] = $A million
= Equity Value = $B million

÷ Diluted Shares Outstanding = C million shares
= Implied Price per Share = $XX.XX

Current Stock Price = $YY.YY
Implied Return = (Implied Price / Current Price) - 1 = XX%

重要な調整項目:

  • ネットデット = 負債合計 - 現金および現金同等物
    • プラスの場合:企業価値から差し引きます(株主価値が減少します)
    • マイナスの場合(ネットキャッシュ):企業価値に加算します(株主価値が増加します)
  • 希薄化後株式数を使用:オプション、RSU、転換証券を含みます
  • その他の調整項目(該当する場合):
    • 非支配持分
    • 年金債務
    • オペレーティングリース債務

バリュエーションの出力形式:

Valuation Component,Amount ($M)
PV Explicit FCFs,X.X
PV Terminal Value,Y.Y
Enterprise Value,Z.Z
(-) Net Debt,A.A
Equity Value,B.B
,,
Shares Outstanding (M),C.C
Implied Price per Share,$XX.XX
Current Share Price,$YY.YY
Implied Upside/(Downside),+XX%
ステップ 10:感度分析

DCF シートの下部に、前提条件を変えた場合の評価額の変化を示す感度分析テーブルを3つ作成します。

  1. WACC とターミナル成長率 - 割引率と永久成長率に対する企業価値の感度を示します
  2. 売上高成長率と EBIT マージン - トップラインの成長と営業レバレッジの影響を示します
  3. ベータとリスクフリーレート - 株主資本コストの構成要素に対する感度を示します

実装:各セルに数式を入れたシンプルな2次元グリッドを作成します(Excel の「データ テーブル」機能は使用しません)。各セルには、その前提条件の組み合わせに応じて DCF を完全に再計算する数式が必要です。openpyxl を使用して75個すべてのセルにプログラムで値を設定するための詳細な要件については、「重大な制約」セクションを参照してください。

<correct_patterns>

このセクションでは、DCF モデルの構築時に従うべき正しいパターンをすべて説明します。

シナリオブロックの選択パターン - この方法に従ってください

前提条件は、シナリオごとに別々のブロックに整理します。

重要な構造 - セクション見出しごとに3行を使用します。

BEAR CASE ASSUMPTIONS (section header, merge cells across)
Assumption,FY1,FY2,FY3,FY4,FY5
Revenue Growth (%),12%,10%,9%,8%,7%
EBIT Margin (%),45%,44%,43%,42%,41%

BASE CASE ASSUMPTIONS (section header, merge cells across)
Assumption,FY1,FY2,FY3,FY4,FY5
Revenue Growth (%),16%,14%,12%,10%,9%
EBIT Margin (%),48%,49%,50%,51%,52%

BULL CASE ASSUMPTIONS (section header, merge cells across)
Assumption,FY1,FY2,FY3,FY4,FY5
Revenue Growth (%),20%,18%,15%,13%,11%
EBIT Margin (%),50%,51%,52%,53%,54%

各シナリオブロックには、セクションタイトルのすぐ下に予測対象年度(FY2025E、FY2026E など)を示す列見出し行が必要です。 これがないと、各年にどの前提値が対応するのかユーザーが判断できません。

前提条件の参照方法 - 集約列を作成します。

  1. ケース選択セル(例:B6)に、1=弱気、2=基本、3=強気を入力します。
  2. INDEX または OFFSET の数式で正しいシナリオブロックから値を取得する集約列を作成します。
  3. 予測数式では、集約列を参照します(シンプルなセル参照)。
  4. 各シナリオブロックには、予測期間全体の DCF 前提条件一式を含めます。

推奨する集約列のパターン(INDEX を使用): =INDEX(B10:D10, 1, $B$6)

次のようにしないでください - IF 文を各所に散在させる方法: =IF($B$6=1,[Bear block cell],IF($B$6=2,[Base block cell],[Bull block cell]))

集約列を使用するとロジックを一元化でき、モデルの監査が容易になります。

正しい売上高予測のパターン

INDEX の数式を使って集約列を作成し、予測ではその列を参照します。

ステップ1 - FY1 成長率の集約列: =INDEX([Bear FY1 growth]:[Bull FY1 growth], 1, $B$6)

ステップ2 - 売上高予測で集約列を参照: Revenue Year 1: =D29*(1+$E$10)

ここで:

  • D29 = 前年度の売上高
  • $E$10 = FY1 成長率の集約列セル(INDEX の数式を含みます)
  • $B$6 = ケース選択セル(1=弱気、2=基本、3=強気)

この方法は、各予測数式に IF 文を埋め込むよりも簡潔で、使用するシナリオ前提条件の監査もはるかに容易です。

正しい FCF 数式のパターン

INDEX の数式を含む集約列を使用し、FCF の計算ではその列を参照します。

集約列を使用する方法:

Item,Formula,Reference
D&A,=E29*$E$21,$E$21 = consolidation column for D&A %
CapEx,=E29*$E$22,$E$22 = consolidation column for CapEx %
Δ NWC,=(E29-D29)*$E$23,$E$23 = consolidation column for NWC %
Unlevered FCF,=E57+E58-E60-E62,E57=NOPAT E58=D&A E60=CapEx E62=Δ NWC

各集約列セルには、ケース選択に基づいて適切なシナリオブロックから値を取得する INDEX の数式を入力します。 これにより、予測数式がシンプルになり、監査しやすくなります。

数式を入力する前に、シナリオブロックの行位置を確認し、集約列を設定してください。

正しいセルコメントの形式

ハードコードされた値には、すべて次の形式が必要です。

"Source: [System/Document], [Date], [Reference], [URL if applicable]"

例:

Item,Source Comment
Stock price,Source: Market data script 2025-10-12 Close price
Shares outstanding,Source: 10-K FY2024 Page 45 Note 12
Historical revenue,Source: 10-K FY2024 Page 32 Consolidated Statements
Beta,Source: Market data script 2025-10-12 5-year monthly beta
Consensus estimates,Source: Management guidance Q3 2024 earnings call
正しい前提条件テーブルの構造

重要:各シナリオブロックには、次の3つの構造要素が必要です:

  1. セクションヘッダー行(セルを結合):例:「BEAR CASE ASSUMPTIONS」
  2. 年度を示す列ヘッダー行 — これは必須です。省略しないでください。
  3. 前提条件の値を含むデータ行

構造:

BEAR CASE ASSUMPTIONS (section header - merge across columns A:G)
Assumption,FY1,FY2,FY3,FY4,FY5
Revenue Growth (%),X%,X%,X%,X%,X%
EBIT Margin (%),X%,X%,X%,X%,X%
Terminal Growth,X%,,,,
WACC,X%,,,,

BASE CASE ASSUMPTIONS (section header - merge across columns A:G)
Assumption,FY1,FY2,FY3,FY4,FY5
Revenue Growth (%),X%,X%,X%,X%,X%
EBIT Margin (%),X%,X%,X%,X%,X%
Terminal Growth,X%,,,,
WACC,X%,,,,

BULL CASE ASSUMPTIONS (section header - merge across columns A:G)
Assumption,FY1,FY2,FY3,FY4,FY5
Revenue Growth (%),X%,X%,X%,X%,X%
EBIT Margin (%),X%,X%,X%,X%,X%
Terminal Growth,X%,,,,
WACC,X%,,,,

予測年度(FY2025E、FY2026E など)を示す列ヘッダー行がないと、ユーザーはどの前提条件の値がどの年度に対応するのか判断できません。この行は必須です。

次に、通常は右隣の列に集約列を作成します。この列では INDEX 数式を使い、ケースセレクターに基づいて選択したシナリオブロックから値を取得します。この集約列を参照して予測数式を作成します。

正しい行計画の手順

1. まず、すべてのヘッダーとラベルを記述します:

Row,Content
1,[Company Name] DCF Model
2,Ticker | Date | Year End
4,Case Selector
7,KEY ASSUMPTIONS
26,Assumption headers
27-31,Growth assumptions
...,...

2. すべてのセクション区切りと空白行を記述します

3. その後、固定した行位置を使って数式を記述します

4. 数式を作成したら、すぐにテストします

建設にたとえて考えてください:

  • 良い例:基礎を打ってから壁を建てる(構造が安定する)
  • 悪い例:壁を建ててから基礎を打つ(壁が崩れる)

Excel の場合:

  • 良い例:ヘッダーを追加してから数式を記述する(数式が安定する)
  • 悪い例:数式を記述してからヘッダーを追加する(数式が壊れる)
正しい感応度分析テーブルの実装

重要:これは Excel の「データ テーブル」機能ではありません。openpyxl を使って通常の数式を入力する単純なグリッドです。つまり、合計で約75個の数式(3つのテーブル × 各25セル)が必要ですが、これは簡単に実装でき、必須です。

数式を使ったプログラムによる入力:

各感応度分析テーブルには、前提条件の組み合わせごとに理論株価を再計算する数式をすべて入力する必要があります。Excel のデータ テーブル機能は使わないでください(手作業が必要で、openpyxl では自動化できません)。

実装方法 — 具体例:

テーブル構造(5x5 グリッド):

WACC vs Terminal Growth,2.0%,2.5%,3.0%,3.5%,4.0%
8.0%,[B88 formula],[C88 formula],[D88 formula],[E88 formula],[F88 formula]
9.0%,[B89 formula],[C89 formula],[D89 formula],[E89 formula],[F89 formula]
...,...,...,...,...,...

数式パターン — セル B88(WACC=8.0%、永久成長率=2.0%):

B88 の数式では、次の値を使って理論価格を再計算します:

  • 行ヘッダーの WACC:$A88(8.0%)
  • 列ヘッダーの永久成長率:B$87(2.0%)

**推奨方法:**メインの DCF 計算を参照し、これらの値を代入します。

数式の構成例: =([割引率として$A88を使ったFCFの現在価値の合計] + [成長率としてB$87、WACCとして$A88を使ったターミナルバリュー] - [純有利子負債]) / [株式数]

**重要 — 5x5 グリッドのすべてのセル(テーブル1つにつき25セル、合計75セル)に数式を入力してください。**ループ内で openpyxl を使い、これらの数式をプログラムから入力します。この手順を省略したり、プレースホルダーテキストを残したりしないでください。

Python の実装パターン:

# Pseudocode for populating sensitivity table
for row_idx, wacc_value in enumerate(wacc_range):
    for col_idx, term_growth_value in enumerate(term_growth_range):
        # Build formula that uses wacc_value and term_growth_value
        formula = f"=<DCF recalc using {wacc_value} and {term_growth_value}>"
        ws.cell(row=start_row+row_idx, column=start_col+col_idx).value = formula

感応度分析テーブルは、モデルを開いた直後から機能し、ユーザーによる手作業が不要な状態にしてください。

</correct_patterns>

<common_mistakes>

このセクションでは、DCF モデルを構築する際に避けるべき誤ったパターンをすべて説明します。

誤り:簡略化した感応度表の近似値、またはプレースホルダーテキスト

線形近似は使用しないでください:

// WRONG - Linear approximation
B97: =B88*(1+(0.096-0.116))    // Assumes linear relationship

// WRONG - Division shortcut
B105: =B88/(1+(E48-0.07))      // Doesn't recalculate full DCF

プレースホルダーテキストを残さないでください:

// WRONG - Placeholder note
"Note: Use Excel Data Table feature (Data → What-If Analysis → Data Table) to populate sensitivity tables."

// WRONG - Empty cells
[leaving cells blank because "this is complex"]

用語を混同しないでください:

  • ❌ 「感応度表には Excel のデータテーブル機能が必要です」(いいえ。これは使用できない Excel の特定のツールです)
  • ✅ 「感応度表は、各セルに数式が入ったシンプルなグリッドです」(はい。これを作成します)

こうした近道が誤りである理由:

  • 線形近似式では DCF を実際に再計算せず、単純な数学的調整を適用するだけです
  • 関係は線形ではないため、結果は不正確になります
  • プレースホルダーテキストがあると、ユーザーが手作業で対応する必要があります
  • 納品時点ですぐに使えるモデルになりません
  • プロフェッショナルな仕上がりではなく、クライアントに提出できる状態ではありません
  • 空のセルがあると、納品物が未完成になります

退けるべき、よくある正当化の言葉: 「75 個以上の数式を書くのは複雑なので、ユーザーが手作業で完成できるようメモを残しておきます。」

実際には: openpyxl で Python のループを使えば、75 個の数式を書くのは簡単です。各数式は同じパターンに従うので、行と列の値を置き換えるだけです。これは納品物に必須の要素です。

代わりに: それぞれの前提の組み合わせに応じて DCF 全体を再計算する数式を、すべての感応度セルに入力してください

誤り:セルのコメントがない

次のようにしないでください:

  • すべてのハードコード入力をコメントなしで作成する
  • 「後で追加すればよい」と考える
  • 「TODO:ソースを追加」と書く
  • 説明のない青色の入力セルを残す

誤りである理由:

  • データの出所を確認できません
  • xlsx スキルの要件を満たしません
  • 監査に対応できません
  • 後から修正するのに時間がかかります

代わりに: ハードコード値を作成するたびに、そのセルのコメントを追加してください

誤り:数式の行参照がずれている

症状: FCF セクションが誤った前提の行を参照しています: D&A: =E29*$E$34 // Should be $E$21, but referencing wrong row CapEx: =E29*$E$41 // Should be $E$22, but row shifted

こうなる理由:

  1. 先に数式を書く
  2. その後で見出しを挿入する
  3. すべての行参照がずれる
  4. 数式が誤ったセルを参照し、#REF! エラーが発生する

代わりに: まず行のレイアウトを確定し、その後で数式を書いてください

誤り:シナリオごとに前提を 1 行だけ配置する

次のように前提を構成しないでください:

Assumption,Bear,Base,Bull
Revenue Growth FY1,10%,13%,16%
Revenue Growth FY2,9%,12%,15%

この縦型レイアウトでは、各シナリオ内で年ごとに前提がどう推移するかを把握しにくくなります。

誤りである理由:

  • 各シナリオ内で前提が年ごとにどう変化するか把握しにくくなります
  • 予測期間全体にわたるシナリオごとの前提を比較しにくくなります
  • シナリオのロジックを確認する際に直感的ではありません

代わりに:

  • シナリオごとに個別のブロック(弱気、ベース、強気)を作成する
  • 各ブロック内では、予測期間の各年にわたって前提を横方向に表示する
  • これにより、各シナリオの前提をまとまりとして確認しやすくなります
誤り:罫線がない

罫線なしでモデルを納品しないでください:

  • セクションの区切りがない
  • すべてのセルが一続きに見える
  • 読みにくく、プロフェッショナルな印象にならない

誤りである理由:

  • クライアントに提出できる状態ではありません
  • 操作しにくくなります
  • 素人っぽく見えます

代わりに: すべての主要なセクションの周囲に罫線を追加してください

誤り:フォントの色が間違っている、または色分けがない

次のようにしないでください:

  • すべてのテキストが黒色
  • 塗りつぶし色だけを使い、フォントの色を変更しない
  • 青色と黒色にするセルを取り違える

誤りである理由:

  • 入力値と数式を区別できません
  • 監査が不可能になります
  • xlsx スキルの要件に違反します

代わりに: すべてのハードコード入力は青色、すべての数式は黒色、シートへのリンクは緑色にしてください

誤り:売上総利益を基準にした営業費用

次のようにしないでください: S&M: =E33*0.15 // E33 = Gross Profit (WRONG)

誤りである理由:

  • 営業費用は売上総利益ではなく売上高に応じて変動します
  • 現実的ではない利益率の推移になります
  • 実際の企業の運営方法に即していません

代わりに: S&M: =E29*0.15 // E29 = Revenue (CORRECT)

TOP 5 ERRORS SUMMARY
  1. 数式の行参照がずれている → 数式を入力する前に、すべての行位置を定義します
  2. セルコメントがない → 後でまとめてではなく、セルの作成時にコメントを追加します
  3. 感応度分析テーブルが簡略化されている → 近似値ではなく、完全な DCF 再計算数式ですべてのセルを埋めます
  4. シナリオブロックの参照が誤っている → IF 数式が正しい Bear/Base/Bull ブロックから値を取得していることを確認します
  5. 罫線がない → クライアントに提示できる見栄えにするため、セクションにプロフェッショナルな罫線を追加します

また、次のエラーにも注意してください。

WACC 計算のエラー
  • 資本構成で簿価と時価を混在させる
  • 株式ベータを資産ベータ/アンレバードベータとして誤って使用する
  • 負債コストへの税率適用を誤る
  • リスクフリーレートが正しくない(現在の 10Y Treasury を使用する必要があります)
  • ネットデットとネットキャッシュのポジションを調整しない
成長率の前提に関する問題
  • ターミナル成長率が WACC を上回る(企業価値が無限大になります)
  • 予測期間の成長率が過去の業績と一致していない
  • 業界の成長制約を無視する
  • 売上高成長率がユニットエコノミクスと一致していない
  • 業務上の根拠なしに利益率の拡大を見込む
ターミナルバリューの誤り
  • 成長率の算出方法が誤っている(永久成長法と出口倍率法の混同)
  • ターミナルバリューが企業価値の 80% を超える(過度な依存を示唆します)
  • ターミナルマージンが定常状態の前提と一致していない
  • ターミナルバリューの割引期間が誤っている
キャッシュフロー予測のエラー
  • 営業費用を売上高ではなく売上総利益に基づいて算出する
  • D&A/CapEx の比率がビジネスモデルと一致していない
  • 運転資本の変動が正しく計算されていない
  • 年度間で税率に一貫性がない
  • NOPAT の計算が誤っている

これらは最もよくあるエラーです。DCF の作成を始める前に、このセクションを読み直してください。

</common_mistakes>

Excel ファイルの作成

このスキルでは、すべてのスプレッドシート操作に xlsx スキルを使用します。 xlsx スキルでは、次の機能を利用できます。

  • 標準化された数式の作成ルール
  • 数値書式の規則
  • recalc.py スクリプトによる数式の自動再計算
  • 包括的なエラーチェックと検証

このスキルで作成するすべての Excel ファイルは、数式エラーがゼロであること、適切に再計算されていることなど、xlsx スキルの要件に従う必要があります。

品質評価基準

すべての DCF モデルでは、次の項目を最大限重視する必要があります。

  1. 過去の業績に基づく現実的な売上高と利益率の前提
  2. 適切な CAPM 手法による適切な資本コストの計算
  3. 評価額の範囲を示す包括的な感応度分析
  4. 根拠を示した明確なターミナルバリューの計算
  5. シナリオ分析を可能にするプロフェッショナルなモデル構造
  6. すべての主要な前提に関する透明性の高い文書化

入力要件

必須入力(最小限)
  1. 企業識別情報:ティッカーシンボルまたは企業名
  2. 成長率の前提:予測期間の売上高成長率(または「コンセンサスを使用」)
  3. 任意のパラメーター:
    • 予測期間(デフォルト:5 年)
    • シナリオケース(Bear/Base/Bull の成長率と利益率の前提)
    • ターミナル成長率(デフォルト:2.5~3.0%)
    • CAPM を使用しない場合の個別の WACC 入力値

Excel モデルの構造

シート構成

2 つのシートを作成します。

  1. DCF - 感応度分析を下部に配置したメインのバリュエーションモデル
  2. WACC - 資本コストの計算

重要:感応度分析テーブルは DCF シートの最下部に配置します(別のシートには配置しません)。これにより、すべてのバリュエーション出力をまとめて確認できます。

数式の再計算(必須)

Excel モデルの作成または変更後、xlsx スキルの recalc.py スクリプトを使用して、すべての数式を再計算してください。

python recalc.py [path_to_excel_file] [timeout_seconds]

例:

python recalc.py AAPL_DCF_Model_2025-10-12.xlsx 30

このスクリプトは以下を実行します。

  • LibreOffice を使用して、すべてのシートのすべての数式を再計算します
  • すべてのセルをスキャンして、Excel のエラー(#REF!、#DIV/0!、#VALUE!、#NAME?、#NULL!、#NUM!、#N/A)を検出します
  • エラーの場所と件数を含む詳細な JSON を返します

想定される出力形式:

{
  "status": "success",           // or "errors_found"
  "total_errors": 0,              // Total error count
  "total_formulas": 42,           // Number of formulas in file
  "error_summary": {}             // Only present if errors found
}

エラーが見つかった場合、出力には詳細が含まれます。

{
  "status": "errors_found",
  "total_errors": 2,
  "total_formulas": 42,
  "error_summary": {
    "#REF!": {
      "count": 2,
      "locations": ["DCF!B25", "DCF!C25"]
    }
  }
}

モデルを提出する前に、すべてのエラーを修正し、status が "success" になるまで recalc.py を再実行してください。

書式設定の基準

重要:数式の作成ルールと数値書式の規則には、xlsx スキルに従ってください。DCF スキルでは、固有の視覚的な表示基準を追加します。

配色 — 2 つのレイヤー:

レイヤー 1:フォント色(xlsx スキルで必須)

  • 青字(RGB: 0,0,255):すべてのハードコード入力値(株価、株式数、過去のデータ、前提)
  • 黒字(RGB: 0,0,0):すべての数式と計算
  • 緑字(RGB: 0,128,0):他のシートへのリンク(WACC シート参照)

レイヤー 2:塗りつぶし色(表示を向上させる場合は任意)

  • 塗りつぶし色は任意です。ユーザーから指定された場合、または表示の向上を目的とする場合にのみ適用してください
  • ユーザーが色やプロフェッショナルな書式設定を指定した場合は、以下の標準配色を使用してください。
    • セクション見出し:濃い青(RGB: 68,114,196)の背景に白字
    • 小見出し/列見出し:薄い青(RGB: 217,225,242)の背景に黒字
    • 入力セル:薄い緑/クリーム色(RGB: 226,239,218)の背景に青字
    • 計算セル:白い背景に黒字
  • 指定がある場合、ユーザーはカスタムのブランドカラーを使用できます

塗りつぶし色を使用する場合の各レイヤーの連携方法:

  • 入力セル:青字+薄い緑の塗りつぶし =「ハードコード入力値」
  • 数式セル:黒字+白い背景 =「計算値」
  • シートリンク:緑字+白い背景 =「WACC シートからの参照」

フォント色は「それが何か」を示します。塗りつぶし色は(使用する場合)「それがどこにあるか」を示します。

**重要:**xlsx スキルで定められたフォント色は必須です。塗りつぶし色は任意です。ユーザーが表示の向上や色を指定しない限り、既定では白/塗りつぶしなしにしてください。

罫線の基準(プロフェッショナルな外観のため必須)

主要セクションの周囲には太い罫線(1.5pt)を使用します。

  • KEY INPUTS セクション
  • PROJECTION ASSUMPTIONS セクション
  • 5-YEAR CASH FLOW PROJECTION セクション
  • TERMINAL VALUE セクション
  • VALUATION SUMMARY セクション
  • 各 SENSITIVITY ANALYSIS テーブル

小セクションの間には中太の罫線(1pt)を使用します。

  • Company Details と Historical Performance の間
  • Growth Assumptions、EBIT Margin、FCF Parameters の間

データテーブルの周囲には細い罫線(0.5pt)を使用します。

  • シナリオ前提テーブル(Bear | Base | Bull | Selected)
  • 実績値と予測値の財務マトリックス

**罫線なし:**テーブル内の個々のセル(見やすく、すっきりとした表示を保ってください)

罫線は必須です。プロフェッショナルな罫線がないモデルは、クライアントに提出できる状態ではありません。

数値書式(xlsx スキルの基準に準拠):

  • 年:テキスト文字列として書式設定します(例:"2,024" ではなく "2024")
  • パーセンテージ:0.0%(小数点以下 1 桁)
  • 通貨:百万単位には $#,##0、1 株当たりには $#,##0.00 を使用します。ヘッダーには必ず単位を指定してください("Revenue ($mm)")
  • ゼロ:数値書式を使用して、すべてのゼロを "-" と表示します(例:$#,##0;($#,##0);-)
  • 大きな数値:桁区切り付きの #,##0
  • 負の数値:括弧付きの (#,##0)(マイナス記号は使用しない)

セルコメント(すべてのハードコード入力値に必須):

xlsx スキルに従い、すべてのハードコード値には、出典を記載したセルコメントを付ける必要があります。書式:"Source: [System/Document], [Date], [Reference], [URL if applicable]"

**重要:**セルの作成と同時にコメントを追加してください。最後まで後回しにしないでください。

DCF シートの詳細な構成

セクション 1:ヘッダー

Row,Content
1,[Company Name] DCF Model
2,Ticker: [XXX] | Date: [Date] | Year End: [FYE]
3,Blank
4,Case Selector Cell (1=Bear 2=Base 3=Bull)
5,Case Name Display (formula: =IF([Selector]=1"Bear"IF([Selector]=2"Base""Bull")))

セクション 2:市場データ(ケースに依存しない)

Item,Value
Current Stock Price,$XX.XX
Shares Outstanding (M),XX.X
Market Cap ($M),[Formula]
Net Debt ($M),XXX [or Net Cash if negative]

セクション 3:DCF シナリオの前提条件

シナリオ(弱気、ベース、強気)ごとに、DCF 固有の前提条件(売上高成長率(%)、EBIT マージン(%)、税率(%)、売上高に対する D&A(%)、売上高に対する設備投資(%)、売上高増加額に対する NWC 変化率(%)、ターミナル成長率、WACC)を予測年度ごとに横方向に配置した、個別の前提条件ブロックを作成します。各ブロックには、セクションヘッダー、予測年度(FY1、FY2 など)を示す列ヘッダー行、およびデータ行を含める必要があります。正確なレイアウトについては、<correct_patterns> セクションの「正しい前提条件テーブルの構成」を参照してください。

セクション 4:過去および予測財務

シナリオブロックから値を取得する集約列(例:「選択ケース」)を参照し、各予測行に IF 数式を散在させないでください。

Income Statement ($M),2020A,2021A,2022A,2023A,2024E,2025E,2026E
Revenue,XXX,XXX,XXX,XXX,[=E29*(1+$E$10)],[=F29*(1+$E$11)],[=G29*(1+$E$12)]
  % growth,XX%,XX%,XX%,XX%,[=E29/D29-1],[=F29/E29-1],[=G29/F29-1]
,,,,,,
Gross Profit,XXX,XXX,XXX,XXX,[=E29*E33],[=F29*F33],[=G29*G33]
  % margin,XX%,XX%,XX%,XX%,[=E33/E29],[=F33/F29],[=G33/G29]
,,,,,,
Operating Expenses:,,,,,,,
  S&M,XXX,XXX,XXX,XXX,[=E29*0.15],[=F29*0.14],[=G29*0.13]
  R&D,XXX,XXX,XXX,XXX,[=E29*0.12],[=F29*0.11],[=G29*0.10]
  G&A,XXX,XXX,XXX,XXX,[=E29*0.08],[=F29*0.07],[=G29*0.07]
  Total OpEx,XXX,XXX,XXX,XXX,[=E36+E37+E38],[=F36+F37+F38],[=G36+G37+G38]
,,,,,,
EBIT,XXX,XXX,XXX,XXX,[=E33-E39],[=F33-F39],[=G33-G39]
  % margin,XX%,XX%,XX%,XX%,[=E41/E29],[=F41/F29],[=G41/G29]
,,,,,,
Taxes,(XX),(XX),(XX),(XX),[=E41*$E$24],[=F41*$E$24],[=G41*$E$24]
  Tax rate,XX%,XX%,XX%,XX%,[=E43/E41],[=F43/F41],[=G43/G41]
,,,,,,
NOPAT,XXX,XXX,XXX,XXX,[=E41-E43],[=F41-F43],[=G41-G43]

主な数式パターン:

  • 売上高成長率:=E29*(1+$E$10)($E$10 は 1 年目の成長率を示す集約列です)
  • こちらは使用しないでください:=E29*(1+IF($B$6=1,$B$10,IF($B$6=2,$C$10,$D$10)))

この方法はより簡潔で監査しやすく、シナリオロジックを一元化することで数式エラーを防げます。

セクション 5:フリーキャッシュフローの算出

重要:行参照が正しい前提条件行を指していることを確認してください。数式を作成したら、すぐにテストしてください。

Cash Flow ($M),2020A,2021A,2022A,2023A,2024E,2025E,2026E
NOPAT,XXX,XXX,XXX,XXX,[=E45],[=F45],[=G45]
(+) D&A,XXX,XXX,XXX,XXX,[=E29*$E$21],[=F29*$E$21],[=G29*$E$21]
    % of Rev,XX%,XX%,XX%,XX%,[=E58/E29],[=F58/F29],[=G58/G29]
(-) CapEx,(XX),(XX),(XX),(XX),[=E29*$E$22],[=F29*$E$22],[=G29*$E$22]
    % of Rev,XX%,XX%,XX%,XX%,[=E60/E29],[=F60/F29],[=G60/G29]
(-) Δ NWC,(XX),(XX),(XX),(XX),[=(E29-D29)*$E$23],[=(F29-E29)*$E$23],[=(G29-F29)*$E$23]
    % of Δ Rev,XX%,XX%,XX%,XX%,[=E62/(E29-D29)],[=F62/(F29-E29)],[=G62/(G29-F29)]
,,,,,,
Unlevered FCF,XXX,XXX,XXX,XXX,[=E57+E58-E60-E62],[=F57+F58-F60-F62],[=G57+G58-G60-G62]

行参照の例(レイアウト計画に基づく):

  • $E$21 = D&A の前提条件(集約列、21 行目)
  • $E$22 = 設備投資の前提条件(集約列、22 行目)
  • $E$23 = NWC の前提条件(集約列、23 行目)
  • E29 = 年度別売上高(29 行目)
  • E45 = 年度別 NOPAT(45 行目)

数式を記述する前に:これらの行番号が実際のレイアウトと一致していることを確認してください。まず 1 列でテストしてから、横方向にコピーしてください。

セクション 6:割引計算と評価

DCF Valuation,2024E,2025E,2026E,2027E,2028E,Terminal
Unlevered FCF ($M),XXX,XXX,XXX,XXX,XXX,
Period,0.5,1.5,2.5,3.5,4.5,
Discount Factor,0.XX,0.XX,0.XX,0.XX,0.XX,
PV of FCF ($M),XXX,XXX,XXX,XXX,XXX,
,,,,,,
Terminal FCF ($M),,,,,,,XXX
Terminal Value ($M),,,,,,,XXX
PV Terminal Value ($M),,,,,,,XXX
,,,,,,
Valuation Summary ($M),,,,,,
Sum of PV FCFs,XXX,,,,,
PV Terminal Value,XXX,,,,,
Enterprise Value,XXX,,,,,
(-) Net Debt,(XX),,,,,
Equity Value,XXX,,,,,
,,,,,,
Shares Outstanding (M),XX.X,,,,,
IMPLIED PRICE PER SHARE,$XX.XX,,,,,
Current Stock Price,$XX.XX,,,,,
Implied Upside/(Downside),XX%,,,,,
WACC シートの構成
COST OF EQUITY CALCULATION,,
Risk-Free Rate (10Y Treasury),X.XX%,[Yellow input]
Beta (5Y monthly),X.XX,[Yellow input]
Equity Risk Premium,X.XX%,[Yellow input]
Cost of Equity,X.XX%,[Calculated blue]
,,
COST OF DEBT CALCULATION,,
Credit Rating,AA-,[Yellow input]
Pre-Tax Cost of Debt,X.XX%,[Yellow input]
Tax Rate,XX.X%,[Link to DCF sheet]
After-Tax Cost of Debt,X.XX%,[Calculated blue]
,,
CAPITAL STRUCTURE,,
Current Stock Price,$XX.XX,[Link to DCF]
Shares Outstanding (M),XX.X,[Link to DCF]
Market Capitalization ($M),"X,XXX",[Calculated]
,,
Total Debt ($M),XXX,[Yellow input]
Cash & Equivalents ($M),XXX,[Yellow input]
Net Debt ($M),XXX,[Calculated]
,,
Enterprise Value ($M),"X,XXX",[Calculated]
,,
WACC CALCULATION,Weight,Cost,Contribution
Equity,XX.X%,X.X%,X.XX%
Debt,XX.X%,X.X%,X.XX%
,,
WEIGHTED AVERAGE COST OF CAPITAL,X.XX%,[Green output]

主な WACC 数式:

Market Cap = Price × Shares
Net Debt = Total Debt - Cash
Enterprise Value = Market Cap + Net Debt
Equity Weight = Market Cap / EV
Debt Weight = Net Debt / EV
WACC = (Cost of Equity × Equity Weight) + (After-tax Cost of Debt × Debt Weight)
感度分析(DCF シートの下部)

用語に関する注意:「感度テーブル」とは、行ヘッダー、列ヘッダー、および各データセルの数式から成る単純な 2 次元グリッドを指します。Excel の「データ テーブル」機能(データ → What-If 分析 → データ テーブル)ではありません。openpyxl を使用して、各セルに通常の Excel 数式を記述します。

配置場所:DCF シートの 87 行目以降(別シートにはしません)

縦に並べる 3 つの感度テーブル:

  1. WACC 対ターミナル成長率(87~100 行)- 5x5 グリッド = 数式を含む 25 セル
  2. 売上高成長率 対 EBIT マージン(102~115 行)- 5x5 グリッド = 数式を含む 25 セル
  3. ベータ 対リスクフリーレート(117~130 行)- 5x5 グリッド = 数式を含む 25 セル

記述する数式の合計:75 個(必須であり、任意ではありません)

重要:すべての感度テーブルセルには、openpyxl を使用してプログラムで数式を入力する必要があります。線形近似による簡略化は使用しないでください。手動作業についてのプレースホルダーテキストや注記を残さないでください。「複雑だから」という理由でセルを空欄にすることを正当化しないでください。Python のループを使って数式を生成してください。

テーブルの設定:

  1. 行ヘッダーと列ヘッダー(テストする前提条件の値)を含むテーブル構造を作成します
  2. すべてのデータセルに、次の条件を満たす数式を入力します:
    • 行ヘッダーの値(例:WACC = 9.0%)を使用する
    • 列ヘッダーの値(例:ターミナル成長率 = 3.0%)を使用する
    • それらの前提条件を適用して、DCF 全体を再計算する
    • そのシナリオにおける理論株価を返す
  3. 納品時に、すべてのセルに機能する数式が入力されている必要があります
  4. 条件付き書式を設定します。値が高い場合は緑、低い場合は赤のスケールにします
  5. ベースケースのセルを太字にします
  6. テーブル間には 1~2 行の空白行を設けます

手動での介入は不要です。ユーザーがファイルを開いたときに、感度テーブルが完全に機能する状態にしてください。

ケースセレクターの実装

3 ケースのフレームワーク:

弱気ケース
  • 保守的な売上高成長率(過去のレンジの下限)
  • マージンの縮小、または拡大なし
  • 高い WACC(リスクプレミアムの上昇)
  • 低いターミナル成長率
  • 高い設備投資の前提条件
基本ケース
  • コンセンサス予想または経営陣のガイダンスに基づく売上高成長率
  • 営業レバレッジに基づく緩やかなマージン拡大
  • 現在の市場が織り込むWACC
  • GDPに沿ったターミナル成長率(2.5-3.0%)
  • 標準的な設備投資の前提
強気ケース
  • 楽観的な売上高成長率(予測の上限)
  • 大幅なマージン拡大
  • 低いWACC(リスクプレミアムの低下)
  • 高いターミナル成長率(3.5-5.0%)
  • 設備投資の比率を引き下げ

数式の実装:

ネストしたIF数式を各所に散在させないでください。 代わりに、INDEXまたはOFFSET数式を使って該当するシナリオブロックから値を取得する集約列を作成します。

推奨パターン(INDEXを使用): =INDEX(B10:D10, 1, $B$6)。ここで、B10:D10 = 弱気/基本/強気の値、1 = 行オフセット、$B$6 = ケース選択セル(1、2、または3)

次に、すべての予測で集約列を参照します: Revenue Year 1: =D29*(1+$E$10)。ここで、$E$10は1年目の成長率を示す集約列の値です。

この方法ではシナリオロジックを一元化できるため、モデルの監査と保守が容易になります。

成果物の構成

ファイル名: [Ticker]_DCF_Model_[Date].xlsx

2つのシート:

  1. DCF - 弱気/基本/強気の各ケースを含む完全なモデル、および下部に3つの感応度分析表(WACC対ターミナル成長率、売上高成長率対EBITマージン、ベータ対リスクフリーレート)
  2. WACC - 資本コストの計算

主な機能: ケース選択(1/2/3)、INDEX/OFFSET数式を使用する集約列、色分けされたセル、すべての入力値へのセルコメント、プロフェッショナルな罫線

ベストプラクティス

モデルの構築
  1. 段階的に構築する: 次に進む前に、各セクションを完成させます
  2. 構築しながらテストする: サンプル値を入力して数式を検証します
  3. 一貫した構成にする: 類似した計算には類似したパターンを使用します
  4. 複雑な数式にコメントを付ける: 特殊な計算には注記を追加します
  5. チェックを組み込む: 適用可能な箇所に合計チェックや残高チェックを設けます
ドキュメント
  1. すべての前提を記録する: 主要な入力値の根拠を説明します
  2. データソースを明記する: 各データポイントの出典を記録します
  3. 手法を説明する: 標準的でないアプローチがあれば記述します
  4. 不確実性を明示する: 見通しが限定的な領域を強調します
品質管理
  1. 計算を相互検証する: 複数の方法で計算を確認します
  2. 前提をストレステストする: 感応度分析を実行し、モデルの堅牢性を確認します
  3. ピアレビューを行う: 他の人に数式を確認してもらいます
  4. バージョン管理する: 作業の進行に合わせてバージョンを保存します

よくあるバリエーション

高成長のテクノロジー企業
  • より長い予測期間(7-10年)
  • より高い初期成長率(20-30%)
  • 時間の経過に伴う大幅なマージン拡大
  • より高いWACC(12-15%)
  • ユニットエコノミクス(ユーザー数、ARPUなど)をモデル化
成熟企業/安定企業
  • より短い予測期間(3-5年)
  • 控えめな成長率(GDP +1-3%)
  • 安定したマージン
  • より低いWACC(7-9%)
  • キャッシュ創出と資本配分に注目
景気循環型企業
  • 景気循環を通じてモデル化
  • 景気循環の中間局面におけるマージンを標準化
  • 景気の底とピークのシナリオを検討
  • 景気循環性に応じてベータを調整
複数セグメントを持つ企業
  • 事業部門ごとに個別のDCFを作成
  • セグメントごとに異なる成長率とマージンを設定
  • サム・オブ・ザ・パーツ評価
  • シナジーを考慮

トラブルシューティング

エラーや妥当でない結果が発生した場合は、詳細なデバッグ手順について TROUBLESHOOTING.md を参照してください。

ワークフローとの統合

DCFモデルの構築開始時
  1. 市場データを収集する:

    • 最新の市場データを提供するMCP サーバーが利用可能か確認します
    • ウェブ検索/取得を使って、株価、ベータ、その他の市場指標を調べます
    • 特定のデータが必要な場合は、ユーザーに依頼します
  2. 過去の財務情報を収集する:

    • 利用可能なMCP サーバー(Daloopaなど)を確認します
    • MCP経由で入手できない場合は、ユーザーに依頼します
    • 必要に応じて10-Kから手作業で抽出します
  3. このスキルで詳述するDCFの手法を使って、モデルの構築を開始します

モデル構築時
  1. 数式(ハードコードされた値ではなく)を使用して、openpyxl で Excel モデルを作成します
  2. 数式の作成と書式設定には、xlsx スキルの規約に従います
  3. ユーザーから依頼された場合、または特定のブランドガイドラインが提示された場合にのみ、塗りつぶし色を適用します
モデルの納品前(必須)
  1. 構造を確認します:

    • Bear/Base/Bull のシナリオブロックに、予測年全体の前提条件が含まれていること
    • ケースセレクターが機能し、正しいシナリオブロックを参照する数式が設定されていること
    • 感度分析テーブルが別シートではなく、DCF シートの下部にあること
    • フォントの色:入力値は青、数式は黒、シート間リンクは緑
    • ハードコードされた入力値すべてにセルコメントがあること
    • 主要セクションがプロフェッショナルな罫線で囲まれていること
  2. 数式を再計算します:python recalc.py model.xlsx 30 を実行します

  3. 出力を確認します:

    • status が "success" の場合 → ステップ 4 に進みます
    • status が "errors_found" の場合 → error_summary を確認し、デバッグの手引きについて TROUBLESHOOTING.md を読みます
  4. エラーを修正し、ステータスが "success" になるまで recalc.py を再実行します

  5. 数式をスポットチェックします:

    • FCF 数式を 1 つテストします。正しい前提条件の行を参照していますか?
    • ケースセレクターを変更します。集約列は正しく更新されますか?
    • 売上高の数式が、ネストされた IF 数式ではなく、集約列を参照していることを確認します
  6. モデルを納品します

利用可能なデータソース
  • MCP サーバー:設定されている場合(過去の財務データには Daloopa)
  • ウェブ検索/取得:最新の株価、ベータ、市場データ用
  • ユーザー提供データ:過去の財務データ、コンセンサス予想
  • 手動抽出:フォールバックとして SEC EDGAR の提出書類

最終出力チェックリスト

DCF モデルを納品する前に:

必須:

  • ステータスが "success"(数式エラーがゼロ)になるまで python recalc.py model.xlsx 30 を実行します
  • 2 つのシート:DCF(下部に感度分析を含む)、WACC
  • フォントの色:入力値は青、数式は黒、シート間リンクは緑
  • ハードコードされた入力値すべてにセルコメントがあること
  • 感度分析テーブルに数式がすべて入力されていること
  • 主要セクションがプロフェッショナルな罫線で囲まれていること

検証:

  • OpEx は売上高に基づいている(売上総利益ではない)
  • ターミナルバリューは EV の 50~70%
  • ターミナル成長率 < WACC
  • 税率は 21~28%
  • ファイル名:[Ticker]DCF_Model[Date].xlsx

コメント