How we compute fair value
A two-stage finite-horizon DCF with CAPM-derived WACC. Here's how it differs from GuruFocus and why.
Finite horizon is the default: we stop at stage 1 + stage 2 (10 + 10 years by default). GuruFocus extrapolates cash flows to infinity with a Gordon perpetuity. You can opt into that model with the Terminal model toggle — we think finite is the safer baseline, but perpetuity is available when you want it.
Side-by-side: GuruFocus vs Ours
| Axis | GuruFocus | Ours | Why we differ |
|---|---|---|---|
| Base metric | EPS w/o NRI (default) | FCF per share (default) | FCF is cash; EPS is accounting. We offer EPS + Dividend as alternatives. |
| Growth rate | Past 10y EPS/Rev median, capped ±20% | Past 5y CAGR, clipped [2%, 15%] | Shorter window, tighter clip — less noise from ancient regimes. |
| Discount rate | Fixed 10% (business-predictability adjusted) | CAPM: rf + β·ERP + stability bump | CAPM is company-specific. One-size-fits-all 10% ignores β. |
| ERP | Implicit in the 10% | Market-aware (Damodaran Jan 2025): US 5.5%, TW/KR/HK 6.0%, CN 6.8%, IN 8.2% | The risk premium for holding equity over the risk-free rate is not universal — it reflects each market's sovereign risk. |
| Stability adj. | Predictability multiplier on DCF output | Stability bump added to WACC (min(0.05·CV, 0.03)) | We adjust the rate, not the output — upstream correction is cleaner. |
| Terminal value | Gordon perpetuity after stage 2 | None (optional toggle ships in Sprint 3) | See the P0 callout above. |
| Stage structure | 1 stage (10y default) + perpetuity | 2 stages (10y + 10y default), no perpetuity | Two-stage captures growth decay explicitly. |
The math, worked out
Discount rate (WACC)
rf = 10-year Treasury, snapshotted daily. β = yfinance trailing 5y weekly, clipped [0.3, 3.0]. ERP looked up by market (Damodaran Jan 2025); US=5.5%, ranges 5.5%-9.0% across the 12 markets we cover.
Growth rate
Endpoints of fcf_5y, requires ≥3 positive points. Falls back to default if the series is unusable.
Fair value
No third term. Years n1+n2+1 onward contribute zero. Sprint 3 adds an optional Gordon terminal-value third term.
Margin of safety
Identical to GuruFocus. Positive = undervalued.
EPS basis (EPS-mode only)
For EPS-based DCF we use the median of the last 5 years' GAAP earnings / shares to smooth non-recurring items. GuruFocus strips NRI line-by-line; median is a close approximation that yfinance can support.
Symbols
- Risk-free rate (10Y Treasury)
- Equity beta vs market, 5y weekly, clipped [0.3, 3.0]
- Equity risk premium, by market (Damodaran Jan 2025)
- Coefficient of variation of 5y free cash flow
- Base cash flow per share (FCF, EPS, or dividend)
- Stage-1 and stage-2 growth rates
- Weighted average cost of capital (discount rate)
- Number of years in each stage
Assumptions & limitations
- We assume the 20-year cash-flow slice captures most enterprise value. For long-duration compounders this understates FV by ~15–30%.
- We assume β captures all systematic risk. Tails and illiquidity premia are not modeled.
- We use yfinance — data gaps on smaller caps propagate downstream.