Monte Carlo retirement simulation: understanding portfolio percentiles
One fixed-return projection cannot show how the order of investment returns might affect a retirement. Simulated paths help you explore a range of outcomes under explicit assumptions.
What the simulation does
Each path starts with your invested portfolio. Before retirement, the model adds month-end contributions with your selected annual increase. At retirement, new contributions stop. Starting the next month, it withdraws your inflation-adjusted monthly expenses before applying that month’s simulated return. Retiring now starts withdrawals in the first simulated month.
What P10, P25, P50, P75 and P90 mean
At each displayed age, balances across all simulated paths are sorted. P10 is the 10th percentile: 10% of modelled balances are at or below that value. P50 is the median; half are at or below it. P90 is the 90th percentile. The chart’s outer band spans P10–P90, with a darker P25–P75 band.
These percentiles are calculated separately at each age. A percentile line does not track one particular portfolio, and the bands are not confidence intervals for your actual future balance. A P10 line at zero means that at least roughly 10% of the modelled balances have reached zero by that age; it does not cap how bad real outcomes could be.
Two different percentages
“Portfolio lasted through the horizon” is the share of simulated paths that never depleted during retirement and still had money at the ending age. A portfolio that exactly reaches zero counts as depleted. “Met the FIRE target at retirement” is the share whose balance met the expense-based withdrawal-rate target at the selected retirement age. Meeting that target once is different from funding every later withdrawal.
Today’s versus future money
The simulation runs in nominal currency amounts. Today’s-money view divides each displayed balance by (1 + inflation)years elapsed. The same simulation can therefore be shown in either purchasing-power convention without rerunning. CSV exports include both conventions.
Return assumptions
This is a single-portfolio, independent monthly lognormal-return model. Its expected monthly gross return matches 1 + your nominal annual return ÷ 1,200. Annual return volatility describes the standard deviation of annual simple returns, not a guaranteed loss limit. The default 15% is an illustrative input, not a measured risk estimate for your investments.
Returns and inflation are not estimated from current market data. Inflation stays constant; no pensions, local tax rules, fees, asset allocation changes or contribution interruptions are included. Independent returns do not capture all real-world market regimes, correlations or extreme losses. The simulation cannot establish a universally safe withdrawal rate.
Reproducible scenarios
The random seed fixes the generated paths. The same inputs, number of paths and seed reproduce results. “New random sample” changes the seed. More paths reduce random sampling noise; they do not correct inaccurate assumptions or model design.
Try retirement today
Use “My FIRE number today” to see the expense-based target without a retirement date. Its simulation starts retirement at your current age. In “Plan my retirement”, the retirement age can equal your current age, or fall later. The simulated horizon must extend beyond retirement.
Run your own Monte Carlo simulation →
Sources and model details
The NIST handbook describes the lognormal distribution. Our methodology provides the model equations and timing. No external source endorses this calculator or its example assumptions.