Skip to main content

What it does

The core DCF engine. Takes all prior outputs — including the four 10-year forecast schedules from growth-and-profitability — and runs the full FCFF valuation, producing an estimated value per share.

The three stages

Stage 1: 10-year FCFF projection

The engine consumes four pre-computed schedules (each a list of 10 values, one per year) generated by the curve shapes library: For each year 1–10, the engine computes: Because the schedules are curve-shaped rather than linearly interpolated, the projection captures realistic convergence patterns — e.g., exponential growth deceleration or S-curve margin expansion.

Stage 2: Terminal value

Where:
  • FCFF(11) = year 11 free cash flow (at stable growth)
  • WACC(stable) = cost of capital at maturity (risk-free rate + base ERP, or user override)
  • g(stable) = stable growth rate (typically ≤ risk-free rate)

Stage 3: Equity bridge

Default assumption overrides

Beyond the four forecast schedules, the model accepts 9 toggles for structural assumptions (terminal cost of capital, terminal ROIC, failure probability, reinvestment lag, tax convergence, NOL carryforward, risk-free rate override, growth rate override, trapped cash). In Expert mode, all 9 are presented for user override. In Novice and Lucky modes, Damodaran’s standard defaults are used.

Python engine

The math is implemented in lib/dcf_engine.py — a pure Python module with no AI dependencies. It accepts both pre-computed schedules (from the curve library) and legacy scalar inputs (for backward compatibility). Every intermediate value is logged to the run transcript for auditability.