DCF 분석기
이 스킬을 사용해야 하는 경우
기업의 할인된 현금흐름(DCF) 가치 평가를 구축합니다. 사용자가 해당 기업의 FCF와 WACC를 제공하거나, 기업의 내재 가치를 묻거나, 주당 공정 가치를 요청할 때 사용하십시오. 대상 기업이 금융 기관인 경우 사용하지 마십시오.
입력
- N년 동안의 FCFF (기업에 대한 자유 현금흐름) (N = len(FCFF))
- WACC (가중 평균 자본 비용) 또는 모든 구성 요소 (자기자본 비용, 부채 비용, 세율, E/V, D/V)
- 최종 성장률 g
- 기업 순부채 (NetDebt)
- 주식 수 (NShares)
사용자는 메시지 또는 CSV로 데이터를 제공할 수 있으며, 스킬은 이를 Contract에 따라 input.json으로 정리합니다.
절차
- 입력 값들을 해당 지표, 값 및 부호를 고려하여 검증합니다 (음수 CF 없음, g < WACC).
- 모든 입력이 올바르면 변환이 필요한 것들을 변환합니다 (예: 백분율을 소수로 변환: WACC, g, Ke, t...).
- WACC가 제공되지 않은 경우 (구성 요소가 제공된 경우) 계산합니다.
- 입력을 임시 JSON에 쓰고 Bash를 통해
scripts/dcf.py <path>를 실행한 후 stdout에서 JSON을 파싱합니다. - WACC와 g에 대한 민감도 표를 구축합니다.
출력
기업 가치, 자기자본 가치, 주당 공정 가치가 포함된 표와 함께 민감도 표를 반환합니다. 표 아래에는 결과에 대한 간략한 설명을 반환합니다.
경계 사례
- g ≥ WACC인 경우 경고를 반환하고 사용자에게 유효한 값을 요청합니다.
- 민감도 표의 셀에서 g가 WACC보다 큰 경우 해당 fv_share는 null이 됩니다.
- 모든 FCF가 음수인 경우 경고를 반환하고 계산하지 않습니다.
- 누락된 값이 있는 경우 사용자에게 누락 여부와 대신 사용할 값을 물어봅니다.
- 계산 중 다른 오류가 발생하면 문제를 설명하는 경고를 반환합니다.
Contract
스킬은 Python 스크립트 scripts/dcf.py의 입력인 input.json을 작성합니다. Bash를 통해 실행하십시오: python scripts/dcf.py input.json.
입력 스키마 (키):
{
"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)가 모두 제공되어야 합니다.
스크립트는 stdout에 JSON 객체를 출력하며, 스킬이 이를 파싱합니다.
출력 스키마 (성공):
{
"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}, ...]
}
출력 스키마 (오류):
{"ok": false, "error": "<message>", "field": "<key>"}
참고 자료
모든 공식은 references/dcf_methodology.md를 참조하십시오.