Compute Forward DCF
compute_dcfForward discounted-cash-flow valuation (two-stage Gordon-growth model): caller provides growth + WACC + terminal assumptions, returns per-share intrinsic value (value_per_share_cents, cents USD) + 5×5 sensitivity grid. Pulls FCF base + net debt + shares from R2; caller can override any field. Definitions (consistent with get_financial_ratios / get_capital_allocation_profile): FCF base = operating_cash_flow − capex (absolute USD); net_debt = total_debt − (cash + short-term investments). Shares resolve via a fallback chain (valuation row → fact CommonSharesOutstanding → net_income/eps_diluted), reported as result.shares_source. The pulled inputs are echoed in result.inputs_echo with their source lineage so the valuation is reproducible and traceable. A null value_per_share_cents means the model is degenerate (e.g. WACC ≤ terminal growth, or FCF base ≤ 0) or a required input was unavailable — it is NOT a zero valuation; the reason field explains. Use the returned figures exactly. Use this when you want to drive the assumptions yourself; for the pipeline's pre-computed DCF/DDM value and inputs (no assumptions needed) use get_valuation_metrics instead. Does NOT persist a report — use create_report (report_type:'reverse_dcf') for that.
fcf_source (default "trend"): "trend" compounds a single FCF base by stage1_growth_rate every year (the original behavior, unchanged). "three_statement" instead runs a full linked Income Statement / Balance Sheet / Cash Flow projection (project_three_statement's engine) and feeds its year-by-year FCF stream into the same PV math — stage1_growth_rate is then ignored (kept for echo only) because revenue growth + margins drive FCF instead of a flat compounding rate. The projection detail (including per-year tie_out_ok) is returned in three_statement_detail when used. Tier: sp500+.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wacc | No | Discount rate. Default 0.09. | |
| ticker | Yes | Stock ticker symbol of the company to value, e.g. AAPL, MSFT, BRK.B. | |
| as_of_date | No | Point-in-time cutoff (YYYY-MM-DD) for the auto-pulled inputs. Fundamentals are filtered by SEC accepted_at (strict PIT); valuation.parquet inputs are best-effort PIT (filtered by created_at, its accepted_at proxy — no SEC acceptance timestamp exists for pipeline-computed valuations). Omit to use the latest knowable inputs. | |
| fcf_source | No | "trend" (default): compound fcf_base by stage1_growth_rate every year (unchanged original behavior). "three_statement": derive the FCF stream from a full linked 3-statement projection instead — see the tool description for details. | trend |
| stage1_years | No | Number of explicit high-growth projection years before the terminal stage (3–15). Defaults to 5. | |
| shares_override | No | Override shares outstanding. Leave unset to use R2-derived. | |
| fcf_base_override | No | Override the auto-pulled FCF base (USD). Leave unset to use R2-derived. | |
| stage1_growth_rate | Yes | Stage-1 FCF growth rate (e.g. 0.12 = 12%/yr). | |
| terminal_growth_rate | No | Long-run growth. Default 0.025. | |
| three_statement_assumptions | No | Only used when fcf_source is "three_statement". Overrides for the underlying projection; unset fields use project_three_statement's defaults. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| _meta | Yes | Provenance envelope — data lineage for every MCP response | |
| result | Yes | ||
| ticker | Yes |