Monte Carlo simulation: the range of plausible futures
Interactive Monte Carlo simulator using geometric Brownian motion. Set drift, volatility and horizon to simulate 2,000 paths and read the 5th–95th percentile fan chart for an investment portfolio or an insurer's invested reserve fund.
A single forecast hides the thing that matters most about the future: how wide the range of outcomes is. Monte Carlo simulation replaces the point estimate with thousands of randomly generated paths and summarises them as percentile bands, so a question like "how likely is this portfolio to be below its starting value in ten years?" has a numerical answer.
This module simulates geometric Brownian motion, the standard starting model for asset prices: each year's log-return is drawn from a normal distribution with a chosen drift and volatility, and compounding does the rest. There are two scenarios, an investment portfolio ($1 million, 7% expected return, 15% volatility, ten years by default) and an insurer's invested reserve fund. The fan chart shows the median path, the 25th–75th band and the 5th–95th band of 2,000 simulated paths at every time step, with the final values plotted as a histogram.
At the portfolio defaults the median outcome after ten years is about $1.8 million, and roughly 11% of paths end below the starting value. Monte Carlo is used for investment planning, reserve adequacy testing, project budgets and solvency capital, and it is only as good as its inputs. Move the volatility slider and watch the fan widen; note that higher volatility also lowers the median path even when the expected return is unchanged.
Geometric Brownian motion (discrete step)
S_{t+Δt} = S_t · exp((μ − σ²/2) Δt + σ √Δt · Z), Z ~ N(0, 1)
S_t is the value at time t, Δt the time step (one year here), μ the annual drift (expected return), σ the annual volatility and Z a standard normal draw, generated with the Box–Muller transform. The −σ²/2 term is why the median grows more slowly than the mean.
Frequently asked questions
How many Monte Carlo paths are enough?
For the median and central bands a few hundred paths are stable. Tail percentiles (1st, 99th) need thousands to tens of thousands, and the error shrinks only with the square root of the path count. This demo uses 2,000 paths for responsiveness, so its outer bands shift slightly each time you re-run it.
What does the fan chart show?
At each time step, the percentiles of the simulated values across all paths: the bold line is the median, the inner band the 25th to 75th percentile, the outer band the 5th to 95th. The widening over time is uncertainty compounding.
Is geometric Brownian motion realistic for asset prices?
It captures compounding and proportional volatility but assumes constant volatility and normally distributed log-returns, so it understates crashes and volatility clustering. It remains the standard starting point; stochastic-volatility and jump models extend it.
Interactive explorer
The live model with sliders, charts and real-time statistics loads on this page. If it does not appear, enable JavaScript or open https://www.beyondaverages.org/monte-carlo in a modern browser.
Related modules
- Dice & convolution: Interactive 3D dice simulator. Roll up to five dice and watch the empirical sum histogram converge to the exact convolution probabilities: uniform to triangular to bell-shaped, the central limit theorem made visible.
- Cards & hypergeometric: Interactive card-dealing simulator. Deal hands from a 3D deck and compare empirical frequencies of aces, pairs and colors against exact hypergeometric probabilities, and see why a deck's memory matters.
- Frequency: Interactive Poisson distribution explorer for insurance claim counts and hospital admissions. Move the rate λ and watch P(X=k), the mode, and the probability of zero or extreme counts update live.
- Severity: Interactive loss severity explorer comparing Log-Normal, Pareto (heavy-tail) and Gamma distributions. Adjust parameters and see the mean, median, 95th and 99th percentile claim sizes, and the share of total cost from the largest 5% of claims, update in real time.