Quant Memo
Advanced

Monte Carlo Simulation Inside a DCF

A standard DCF plugs in one number for growth, one for margin, one for the discount rate, and spits out one value. A Monte Carlo DCF instead treats those inputs as ranges of uncertainty and reruns the whole model thousands of times, producing a distribution of possible values instead of a single misleadingly precise one.

Prerequisites: Discounted Cash Flow Valuation, Monte Carlo Simulation (Coding)

A standard DCF hands you a single number — "this company is worth $4.2 billion" — with a confidence that the underlying assumptions never actually earned. Revenue growth, margins, and the discount rate are each genuinely uncertain, and the model quietly pretends they're known to the decimal point. A Monte Carlo DCF is the same cash-flow machinery, run not once but thousands of times, each time drawing a fresh, randomly sampled set of inputs from a realistic range — turning "the company is worth $4.2 billion" into "the company is most likely worth between $3.1 and $5.6 billion, with a median around $4.2 billion."

Think of forecasting a road trip's arrival time. You could say "we'll arrive at 3:47pm," treating traffic, weather, and rest stops as fixed. Or you could say "based on a thousand simulated trips with realistic variation in each factor, we'll most likely arrive between 3:15 and 4:45pm, with 3:47 the single most probable time." The second answer is more work but tells the truth about what you actually know.

Monte Carlo doesn't add new information to a DCF — it makes visible the uncertainty that was already implicit in every single-point assumption, and reports a distribution of outcomes instead of one number dressed up as certain.

The mechanics

For each of many trials k=1,,Kk = 1, \dots, K, draw a fresh set of inputs from specified probability distributions, compute the DCF's implied value VkV_k, and after all KK trials look at the distribution of results:

gkN(0.08,0.02),mkN(0.22,0.03),rkN(0.09,0.01)g_k \sim \mathcal{N}(0.08, 0.02), \quad m_k \sim \mathcal{N}(0.22, 0.03), \quad r_k \sim \mathcal{N}(0.09, 0.01)

In words: instead of fixing revenue growth gg at exactly 8 percent, margin mm at exactly 22 percent, and the discount rate rr at exactly 9 percent, each is drawn randomly on every trial from a normal distribution centered on the analyst's best guess, with a spread reflecting genuine uncertainty. Each trial's draws feed through the ordinary DCF formula to produce one value VkV_k; repeating this thousands of times builds up a full distribution of VkV_k rather than a single point.

simulated enterprise value (USD bn) single-point DCF: 4.2bn 3.1bn 5.6bn
The base-case DCF lands near the peak of the distribution, but the simulation reveals how wide the plausible range actually is once input uncertainty is taken seriously.

Worked example: a tiny three-trial illustration

To see the mechanics stripped down, run just three trials of a simplified one-year model: value equals next year's free cash flow divided by (discount rate minus growth), a single-stage Gordon-growth shortcut.

Trial 1: g=0.07g = 0.07, r=0.10r = 0.10: FCF=100×1.07=107\text{FCF} = 100 \times 1.07 = 107, value =107/(0.100.07)=3,567= 107 / (0.10 - 0.07) = 3{,}567. Trial 2: g=0.09g = 0.09, r=0.08r = 0.08: FCF=109\text{FCF} = 109, value =109/(0.080.09)= 109 / (0.08 - 0.09) — negative denominator, model breaks (growth exceeds the discount rate, an impossible perpetuity). A real simulation must constrain draws so g<rg < r on every trial, or such trials are discarded and flagged. Trial 3: g=0.05g = 0.05, r=0.11r = 0.11: FCF=105\text{FCF} = 105, value =105/(0.110.05)=1,750= 105 / (0.11 - 0.05) = 1{,}750.

Even three trials show the value swinging from roughly 1,750 to 3,567 to an undefined blowup — a preview of how wide and how fragile the full distribution can be.

Worked example: reading percentiles from a full run

Running 10,000 trials of a full multi-year DCF for a real company produces enterprise values with a 10th percentile of $2.9 billion, a median of $4.2 billion, and a 90th percentile of $6.1 billion. An investor comparing this to a $5.5 billion market cap can now say something sharper than "the DCF says it's undervalued": specifically, the market price sits around the 80th percentile of the simulated distribution — the stock is priced for a fairly optimistic, though not extreme, scenario.

What this means in practice

Monte Carlo DCFs are standard in private equity and infrastructure valuation, where a handful of variables (commodity prices, occupancy rates, refinancing spreads) dominate the outcome and their uncertainty is large enough that a single-point answer would be actively misleading. The output — a distribution rather than a number — is also a better match for how investment committees actually think about risk: not "is it worth $4.2 billion" but "what's the chance we lose money at this price."

The classic mistake is sampling each input independently when they are actually correlated in reality — for example, drawing margin and growth as unrelated random variables when a recession scenario would plausibly hit both at once. Ignoring correlation between inputs understates the true tail risk and produces a distribution that is falsely narrow.

Key terms

  • Trial — one full run of the DCF using one randomly drawn set of inputs.
  • Input distribution — the assumed probability distribution (e.g., normal, triangular) each uncertain input is drawn from.
  • Output distribution — the resulting spread of computed values across all trials.
  • Correlated inputs — inputs that should be drawn jointly, not independently, when real-world scenarios move them together.

Related concepts

Practice in interviews

Further reading

  • Damodaran, The Dark Side of Valuation (ch. 4)
  • Glasserman, Monte Carlo Methods in Financial Engineering (ch. 1)
ShareTwitterLinkedIn