Building a Simple Valuation Model in a Spreadsheet
The practical point: in a standard DCF, a 1.0 percentage-point change in terminal growth can move your valuation by ±15–25%, so your spreadsheet is only as good as the ranges you force into it—not the single "best" number you wish were true. (Koller, Goedhart & Wessels, 2020)
Why Valuation Models Matter
A valuation model is a controlled experiment with numbers. If you do it with discipline, you can tighten error bars. In one large-sample result, DCF valuations landed within ±15% of market price 68% of the time when analysts used sector-specific equity risk premiums, versus 41% with generic market premiums. (Damodaran, 2012)
Two uncomfortable facts force you to care about structure:
- Terminal value is usually 60–80% of enterprise value, meaning the last line of your model can dominate the first 50 lines. (Koller, Goedhart & Wessels, 2020)
- A 5-year explicit forecast period reduces mean absolute error by 31% versus 3 years, while going from 5 years to 10 years adds only 4% more accuracy—so "more years" is not a free lunch. (Fernandez, 2019)
The point is: you are not trying to predict 10 years precisely; you are trying to build a model that fails predictably inside quantified bounds.
DCF Modeling: The Minimum Viable Mechanics
1) Free Cash Flow (FCF): define it once, then lock it
A practical operating definition for an unlevered DCF is:
FCF = EBIT × (1 − Tax Rate) + Depreciation − CapEx − ΔWorking Capital
If you change sign conventions mid-sheet, you don't get a "small" mistake—you get a different business. One documented inconsistency (depreciation vs. capex treatment) creates an 18% average valuation discrepancy across frameworks. (Lundholm & O'Keefe, 2001)
Directive rule: in your spreadsheet, hard-code a single FCF line and reference it everywhere; do not recompute FCF in multiple places.
2) Discounting: WACC is a number with a floor
In a basic setup:
WACC = (E/V) × Re + (D/V) × Rd × (1 − Tax Rate)
A quantified floor keeps you from "optimizing" WACC into fantasy:
- WACC should exceed the 10-year Treasury yield by at least 3.0 percentage points.
- With a 4.5% Treasury, that implies ≥7.5% WACC for the lowest-risk equities.
That floor exists because an equity risk premium of 4–6% is the historical compensation for risks Treasuries do not have (earnings volatility, default risk, liquidity constraints).
3) Terminal value: treat it like the main event (because it is)
A standard perpetuity terminal value uses Gordon Growth:
Terminal Value = FCF_N × (1 + g) / (WACC − g)
When WACC − g gets small, the denominator becomes a lever. That's why ±1.0% in g can produce ±15–25% in total valuation. (Koller, Goedhart & Wessels, 2020)
Assumptions: Quantified Rules You Enforce (Not "Inputs" You Debate)
Use these as hard rails:
- Terminal value ceiling: target ≤75% of enterprise value for mature companies; if terminal value exceeds 80%, extend the explicit forecast period or reduce growth.
- Terminal growth ceiling: ≤3.5% for developed markets; 2.0–2.5% is the recommended band for most industrial companies.
- Forecast period: ≥5 years for most industries; 7–10 years for long-cycle industries (aerospace, infrastructure, pharmaceuticals).
- Discount-rate floor: WACC ≥ (10-year Treasury + 3.0%); example floor 7.5% when the Treasury is 4.5%.
- Margin of safety: require price ≤ intrinsic value × (1 − MOS) where MOS is 25% (stable), 40% (cyclical or leveraged), 50% (turnaround/speculative).
The point is: these rules prevent a single optimistic input (often terminal growth) from quietly becoming 60–80% of your valuation.
Sensitivity Analysis: Your Model Is a Range, Not a Point
A minimum viable sensitivity table is two-way:
- Vary WACC by ±2.0 percentage points
- Vary terminal growth by ±1.0 percentage point
That exact pairing is not arbitrary: it captures 89% of "reasonable valuation outcomes" for mature companies because typical estimation errors cluster around ~1.8% for WACC and ~0.9% for terminal growth at the 95th percentile. (Petersen, Plenborg & Kinserdal, 2017)
Directive interpretation rule: if your current market price is above your intrinsic value in ≥50% of the sensitivity cells, you do not have a margin-of-safety setup—you have a narrative.
Spreadsheet Structure: Make the Sheet Auditable in 3 Minutes
Use 5 tabs and keep each to one job:
- Inputs (~25–40 cells): tax rate, WACC components, growth, margin, reinvestment rates.
- History (5 years): 2020–2024 lines for revenue, EBIT, depreciation, capex, working capital changes.
- Forecast (5 years): 2025–2029 projected operating lines driven by a small set of rates.
- Valuation: present values, enterprise value, equity bridge (net debt), per-share value.
- Sensitivity: a 2D table (at least 5 × 5 = 25 cells) for WACC/g combinations.
3 hard checks (numeric, not vibes):
- CapEx vs depreciation (steady state): CapEx should be ≥ depreciation unless you explicitly model asset shrinkage.
- Terminal value share: terminal value should be ≤75% (flag >80%).
- Sign consistency: if ΔWC is an investment, it must reduce FCF (negative impact) in 100% of years it increases.
Worked Example: You Build a DCF for "PrecisionTech Corp" (Fictional)
Scenario: You value a mid-cap industrial equipment manufacturer with $500 million trailing revenue, 12% operating margin, and 3% historical revenue growth. You want a 5–10 year holding period and require a 25% margin of safety.
Step 1: You build a 5-year history block (2020–2024)
You create rows for Revenue, Operating Income (EBIT), Depreciation, CapEx, and ΔWorking Capital.
You compute unlevered FCF as:
FCF = EBIT*(1-TaxRate) + Depreciation − CapEx − ΔWC
You set Tax Rate = 25%.
Step 2: You compute baseline drivers from history (all quantified)
From the 2020–2024 block, you calculate:
- Revenue CAGR = 3.2%
- Average operating margin = 11.8%
- Depreciation / revenue = 4.1%
- CapEx / revenue = 5.2%
- Working capital investment = 8.5% of revenue change
Step 3: You project 5 years (explicit period = 5 years)
You project:
- Revenue grows 3.2% per year
- EBIT margin = 11.8%
- Depreciation = 4.1% of revenue
- CapEx = 5.2% of revenue
- ΔWC = 8.5% of revenue growth
You are not "forecasting everything"; you are forecasting 5 drivers.
Step 4: You compute WACC from explicit components
You assume:
- Capital structure: 70% equity / 30% debt
- Risk-free rate: 4.5%
- Beta: 1.1
- Equity risk premium: 5.5%
- Cost of equity: 4.5% + 1.1 × 5.5% = 10.55%
- Cost of debt: 6.5% pre-tax, 4.875% after-tax (with 25% tax)
- WACC: 0.70 × 10.55% + 0.30 × 4.875% = 8.85%
Step 5: You compute terminal value with a bounded growth rate
You pick g = 2.5%, inside the 2.0–2.5% recommendation band for industrials and below the 3.5% developed-market ceiling.
Given Year-5 FCF of $42.3M, you compute:
- Terminal Value = $42.3M × 1.025 / (0.0885 − 0.025) = $682.5M
Step 6: You discount and sum present values
You discount the 5 annual FCFs and the terminal value at 8.85%:
- PV of explicit FCFs = $165.2M
- PV of terminal value = $449.8M
- Enterprise value = $615.0M
You bridge to equity using $100M net debt and 10M shares:
- Per-share intrinsic value = $48.50
- If the stock trades at $38, margin of safety = 27.6%, which clears the 25% threshold.
Step 7: You build the sensitivity table (minimum statistical coverage)
You vary:
- WACC: 6.85% to 10.85% (±2.0%)
- Terminal growth: 1.5% to 3.5% (±1.0%)
You also record three scenario anchors:
- Baseline: $48.50 per share (WACC 8.85%, g 2.5%, margin 11.8%)
- Optimistic: EV $892.4M, per share $79.24 (WACC 7.85%, g 3.0%, margin 13.0%)
- Pessimistic: EV $423.1M, per share $32.31 (WACC 9.85%, g 2.0%, margin 10.5%)
The point is: your output is not "$48.50"; it is a priced distribution spanning at least $32.31 to $79.24 under bounded assumptions.
Historical Stress Tests (Dates + Numbers + Consequences)
Enron: when hidden liabilities break your denominator (Oct 2000–Dec 2001)
Enron's internal models assumed 15% annual revenue growth through 2010 and used 8.5% WACC, while adjusted WACC exceeded 14% when hidden debt was recognized. The models failed to incorporate $38 billion of off-balance-sheet liabilities (about 67% of total liabilities). The result: a DCF-implied $90/share versus a bankruptcy value of $0.26, and $74 billion of market cap erased within 12 months; terminal value assumptions contributed 82% of the valuation error. (Healy & Palepu, 2003)
Buffett's Coca-Cola valuation: when margin of safety is a numeric gate (Jun 1988–Dec 1988)
Buffett used a simplified DCF (owner earnings), projected 15% growth for 10 years and 5% perpetual growth, and discounted at 9%. The purchase price embedded a 43% margin of safety versus his intrinsic value estimate. By 2024, that position appreciated to $24 billion, a 23× return and 9.2% CAGR over 36 years. (Hagstrom, 2013)
Amazon: when heroic margins turn "DCF" into fiction (Jan 1999–Mar 2000)
A high-profile model required 60% annual revenue growth for 6 years and 40% operating margins, implying margins 6.5× Walmart's peak 6.2%. The model produced a $400 target versus an eventual $35–50 trading range in 2005; the stock fell 94% from peak by 2001, and Amazon's 2005 operating margin was 4.8%. (Mauboussin, 2006)
Common Implementation Mistakes (You Make Them; You Pay in Percent)
-
You mix nominal growth with real discount rates. If you plug 5% nominal terminal growth into a 6% real WACC, you compress the denominator and overstate terminal value by 45–60% on average. Fix: use nominal with nominal (including 2.0–2.5% inflation) or real with real—never cross streams.
-
You project CapEx below depreciation indefinitely. If you set CapEx at 80% of depreciation, you inflate FCF by 12–18% per year, which compounds into 40%+ overvaluation over a 5-year forecast. Fix: for mature companies, set CapEx to depreciation + 1–2% of revenue (growth investment) and sanity-check that PP&E can support revenue growth.
-
You publish a single intrinsic value without a sensitivity table. Single-point DCFs land within ±20% of trading prices only 34% of the time; adding sensitivity lifts that to 71% by making the range explicit. Fix: at minimum, run WACC ±2.0% and terminal growth ±1.0%, then mark the band that contains 80% of your scenarios.
Implementation Checklist (Tiered by ROI)
Tier 1—Highest ROI (do these every time)
- Build a 5-year explicit forecast (it delivers 31% lower error than 3 years). (Fernandez, 2019)
- Enforce rails: terminal growth ≤3.5% (developed markets) and terminal value share ≤75% (flag >80%).
- Add a 2D sensitivity table: WACC ±2.0%, terminal growth ±1.0% (captures 89% of reasonable outcomes). (Petersen et al., 2017)
Tier 2—Medium ROI (do when you care about precision)
- Use sector-specific equity risk premiums: it shifts "within ±15% of price" from 41% to 68% accuracy in one reported result. (Damodaran, 2012)
- Run 3 scenarios (base/optimistic/pessimistic) and report at least 2 per-share anchors beyond baseline (e.g., $79.24 and $32.31).
Tier 3—Lower ROI (do when scaling or sharing)
- Add 3 audit flags: CapEx vs depreciation, terminal value share, sign consistency for ΔWC (each should be correct in 100% of forecast years).
- Keep inputs to ~25–40 cells and drivers to ≤5–7 rates so reviewers can recreate the model in ≤3 minutes.
The Durable Lesson
You are not building a number; you are building a rule-bound range. If your valuation can swing 15–25% from a 1.0% terminal-growth tweak, then your job is to: (1) cap growth (e.g., 2.0–2.5% for an industrial), (2) floor WACC (e.g., ≥7.5% when the 10-year is 4.5%), (3) quantify uncertainty with ±2.0% / ±1.0% sensitivities, and (4) only act when the market offers a numeric buffer (e.g., ≥25% margin of safety). Under those constraints, you stop "believing" your spreadsheet and start using it the way it works: as a disciplined filter that turns stories into percentages.