1. Discounted Cash Flow (DCF) & WACC
The intrinsic enterprise value $V_0$ of an asset equals the present value of expected future Free Cash Flows ($\text{FCFF}_t$) discounted at the Weighted Average Cost of Capital (WACC):
$$V_0 = \sum_{t=1}^N \frac{\mathbb{E}[\text{FCFF}_t]}{(1 + \text{WACC})^t} + \frac{\text{TV}_N}{(1 + \text{WACC})^N}$$Where Terminal Value under the Gordon Growth specification with stable perpetual growth rate $g$ is:
$$\text{TV}_N = \frac{\text{FCFF}_N (1 + g)}{\text{WACC} - g}$$2. Fundamental Theorem of Asset Pricing
The First Fundamental Theorem of Asset Pricing states that a financial market is arbitrage-free if and only if there exists at least one equivalent risk-neutral probability measure $\mathbb{Q}$ under which all discounted asset prices follow a martingale:
$$S_0 = \mathbb{E}^\mathbb{Q} \left[ e^{-\int_0^T r_s ds} S_T \right]$$3. Python Valuation Engine: Multi-Stage DCF
import numpy as np
def multi_stage_dcf(fcff_stream, wacc=0.085, terminal_growth=0.025):
"""
Compute intrinsic Enterprise Value via explicit forecast period and Gordon Terminal Value.
"""
n = len(fcff_stream)
t = np.arange(1, n + 1)
pv_explicit = np.sum(fcff_stream / (1.0 + wacc)**t)
terminal_val = (fcff_stream[-1] * (1.0 + terminal_growth)) / (wacc - terminal_growth)
pv_terminal = terminal_val / (1.0 + wacc)**n
enterprise_value = pv_explicit + pv_terminal
return round(enterprise_value, 2), round(pv_explicit, 2), round(pv_terminal, 2)
if __name__ == "__main__":
cash_flows = np.array([100.0, 112.0, 125.0, 138.0, 150.0])
ev, pv_fcff, pv_tv = multi_stage_dcf(cash_flows)
print(f"Intrinsic Enterprise Value: ${ev}M (Explicit: ${pv_fcff}M | Terminal: ${pv_tv}M)")