Monte Carlo simulation is a quantitative risk technique that assigns a probability distribution to each uncertain input in an underwriting model, then runs thousands of randomized trials to produce a full distribution of possible outcomes rather than a single point estimate. In commercial real estate it converts one base-case IRR into a probability curve.
How Monte Carlo Simulation Works
Monte Carlo simulation is executed in three steps: assign a probability distribution to each uncertain input, draw one random value from every distribution to compute a single trial outcome, then repeat that draw thousands of times. The collected outcomes form an empirical distribution the underwriter reads as probabilities.
The technique was developed in 1946 by Stanislaw Ulam and Nicholas Metropolis at Los Alamos National Laboratory, where it was first used to model neutron diffusion for weapons work (Los Alamos National Laboratory). The same logic applies to a deal: instead of one guess for rent growth or exit cap rate, the model samples across the range each input could take.
Trial counts typically fall in a representative range of 1,000 to 10,000 iterations, with more trials stabilizing the tails of the distribution. The CFA Institute curriculum treats Monte Carlo simulation as a standard method for valuing positions and modeling outcomes that have no closed-form solution.
Input | Distribution type | Purpose |
|---|---|---|
Rent growth | Normal | Captures symmetric upside and downside around a mean |
Exit cap rate | Triangular | Bounds a low, most-likely, and high value |
Cost overrun | Uniform | Treats every value in a band as equally likely |
Lease-up timing | Discrete | Assigns odds to specific month outcomes |
Why Monte Carlo Simulation Matters
Monte Carlo simulation is valuable because it reports the probability of loss, not a single internal rate of return. A deterministic pro forma returns one IRR that hides how fragile the assumption stack is. Monte Carlo replaces that point with a distribution, so the underwriter can quote the odds of missing a target.
Monte Carlo simulation replaces a single internal rate of return with a probability curve, so an underwriter can state the odds of falling short of a hurdle instead of hoping the base case holds. That reframing changes committee conversations from "the deal returns 14 percent" to "the deal clears our 12 percent hurdle in roughly two-thirds of trials."
The method also exposes asymmetry. Two deals can share the same expected IRR while one carries a long left tail of loss and the other does not. A point estimate treats them as equal; a distribution does not.
Example
This worked example is a five-year hold modeled with three uncertain inputs: rent growth, exit cap rate, and cost overrun. Each input is assigned a distribution, ten thousand trials are run, and every resulting IRR is sorted into percentiles. The percentiles below come from a single representative run.
Input | Distribution | Range |
|---|---|---|
Rent growth | Normal | 1.0% to 5.0%, mean 3.0% |
Exit cap rate | Triangular | 5.5% low, 6.25% mode, 7.5% high |
Cost overrun | Uniform | 0% to 10% of budget |
IRR percentile | Value | Reading |
|---|---|---|
P10 | 8.4% | 10% of trials returned less than this |
P50 | 14.1% | Median outcome |
P90 | 19.7% | 10% of trials returned more than this |
The base-case IRR of 14.1% sits at the median, but the spread is the point. The P10 of 8.4% shows a plausible downside if a wide exit cap and a cost overrun land together, while the P90 of 19.7% shows the upside if rent growth runs hot. Against a 12% hurdle, a representative reading of this run clears the bar in roughly two-thirds of trials, a figure no single-number model can produce.
Variations and Edge Cases
Monte Carlo simulation is only as reliable as its inputs: garbage in, garbage out. The distributions chosen and the correlations between them govern the result, and two errors dominate. Distributions guessed without data yield false precision, and correlated inputs treated as independent understate tail risk.
Issue | Effect |
|---|---|
Garbage-in distributions | A precise-looking curve built on invented ranges is baseless |
Correlated inputs as independent | Understates extremes; rent and exit cap often move together in a downturn |
Too few trials | Percentile estimates shift run to run and mislead at the tails |
Thin-tailed assumptions | Normal curves understate rare but severe downside events |
Monte Carlo Simulation vs Sensitivity Analysis
Monte Carlo simulation is often confused with sensitivity analysis, but they answer different questions. Sensitivity analysis is the practice of changing one input at a time to see how far the output moves. Monte Carlo simulation is the practice of varying all uncertain inputs at once across their distributions to produce a probability for each outcome.
Sensitivity analysis maps which lever matters most; it is a one-dimensional stress test. Monte Carlo combines every lever simultaneously and returns a full outcome distribution. Sensitivity analysis tells you the exit cap rate is the biggest driver. Monte Carlo tells you the odds the deal loses money once every driver moves together.
Frequently Asked Questions
How many iterations does a Monte Carlo simulation need? Trial counts typically fall in a representative range of 1,000 to 10,000 iterations. More trials stabilize the tail percentiles where rare downside outcomes live. A model read primarily for P5 and P95 values benefits from the higher end of that range.
What is the difference between Monte Carlo simulation and a base-case pro forma? A base-case pro forma returns one IRR from one set of assumptions. Monte Carlo simulation assigns each uncertain assumption a distribution and runs thousands of trials, returning a probability curve of IRRs instead of a single number, which lets an underwriter quote the odds of loss.
Where did Monte Carlo simulation come from? Monte Carlo simulation was developed in 1946 by Stanislaw Ulam and Nicholas Metropolis at Los Alamos National Laboratory, first applied to neutron diffusion. Finance later adopted it to model asset paths and returns that have no closed-form solution.