DCFアナライザー
このスキルを使用するタイミング
企業の割引キャッシュフロー(DCF)評価を構築します。ユーザーが企業のFCFとWACCを提供した場合、企業の本源的価値を尋ねた場合、または1株あたりの公正価値を尋ねた場合に使用します。対象企業が金融機関である場合は使用しないでください。
入力
- FCFF(フリーキャッシュフロー・トゥ・ザ・ファーム):N年間(N = len(FCFF))
- WACC(加重平均資本コスト)またはそのすべての構成要素(株主資本コスト、負債コスト、税率、E/V、D/V)
- ターミナル成長率g
- 企業の純負債(NetDebt)
- 発行済株式数(NShares)
ユーザーはメッセージまたはCSVでデータを提供できます。スキルはそれらを統合し、コントラクトに従ってinput.jsonを作成します。
手順
- 入力値を確認します。指標、値、符号を考慮します(負のCFなし、g < WACC)。
- すべての入力が正しい場合、必要に応じて変換します(例:パーセントを小数に変換:WACC、g、Ke、t...)。
- WACCが直接与えられていない場合(その構成要素が与えられている場合)、WACCを計算します。
- 入力を一時的なJSONに書き込み、
scripts/dcf.py <path>をBash経由で実行し、stdoutからJSONをパースします。 - WACCとgに関する感応度テーブルを作成します。
出力
企業のエンタープライズバリュー、エクイティバリュー、および1株あたりの公正価値の表を、感応度テーブルとともに関係します。表の下に、結果に関する簡単なコメントを添えます。
エッジケース
- g ≥ WACCの場合、警告を返し、ユーザーに有効な値を求めます。
- 感応度テーブルのセルでgがWACCより大きい場合、対応するfv_shareはnullになります。
- FCFがすべて負の場合、警告を返し、計算しません。
- 値が欠損している場合、ユーザーにその値が欠損しているかどうかを尋ね、代わりにどの値を使用するかを確認します。
- 計算中にその他のエラーが発生した場合、問題を説明する警告を返します。
コントラクト
スキルはinput.jsonを作成します。これはPythonスクリプトscripts/dcf.pyへの入力です。Bashでpython scripts/dcf.py input.jsonを実行します。
INPUTスキーマ(キー):
{
"FCFF": [float, ...],
"WACC": float | null,
"g": float,
"NetDebt": float,
"NShares": float,
"E_V": float | null,
"Ke": float | null,
"D_V": float | null,
"Kd": float | null,
"t": float | null,
"wacc_steps": [float, ...] | null,
"g_steps": [float, ...] | null
}
欠損値にはnullを使用します。Nはlen(FCFF)から導出されます。WACCがnullの場合、その構成要素(E_V, Ke, D_V, Kd, t)はすべて提供される必要があります。
スクリプトはJSONオブジェクトをstdoutに出力し、スキルがそれをパースします。
OUTPUTスキーマ(成功時):
{
"ok": true, "error": null, "field": null,
"enterprise_value": float,
"equity_value": float,
"fair_value_per_share": float,
"sensitivity": [{"wacc": float, "g": float, "fv_share": float | null}, ...]
}
OUTPUTスキーマ(エラー時):
{"ok": false, "error": "<message>", "field": "<key>"}
参考資料
すべての計算式についてはreferences/dcf_methodology.mdを使用してください。