Monte Carlo

Generate return paths under the selected model and assumptions. Inspect outcome ranges, failure rates, and the effect of return order.

On this page

Use this when

Use Monte Carlo to estimate a range of outcomes. It samples paths from a return model and reports percentiles, failure rates, and depletion timing.

Good for

  • Stress-testing a withdrawal plan against many simulated paths.
  • Comparing how inflation, spending, or return-model choices change tail outcomes.
  • Estimating the probability of running out of money over a fixed horizon.

Reach for a different tool when

  • The exact behavior of a specific portfolio over a specific window. Use Portfolio Backtest.
  • Picking the best allocation. Monte Carlo evaluates a plan. It does not search for one.

First run

  1. Set the horizon

    Enter starting value, years, and path count.

  2. Choose spending

    Pick fixed, percentage, guardrails, VPW, or another supported rule.

  3. Check simulation assumptions

    Review return model, seed, inflation, and source portfolio assumptions.

  4. Read the distribution

    Compare median, tail percentiles, and failure timing.

Configuration guide

Return, inflation, and spending assumptions shape the outcome distribution. The model does not predict one specific path.

Choose the return Method, Projection years, Paths, and Inflation assumption separately from the historical estimation window. Set starting value in the portfolio row and spending in Projected cash flows. Open Simulation assumptions for the random seed and historical-model inputs. The parametric method shows its mean and volatility inputs directly.

Parametric example: Start with $1,000,000 for 30 years. Withdraw $40,000 in year one, a 4% initial rate. Increase the amount by 2.8% each year. Set annual mean return to 10% and annual volatility to 15%. These are example assumptions, not a forecast.

ConfigurationWhat it meansWhy it matters
Initial valuePortfolio value at the start of the simulation.This anchors every path and determines the dollar scale of withdrawals, contributions, and ending wealth.
YearsNumber of years each simulated path runs.Longer horizons expose the plan to more sequence risk and compounding uncertainty.
SimulationsNumber of generated paths.More paths make percentile and failure-rate estimates more stable, but they do not make the model itself more true.
Return source and modelThe return generator, such as parametric assumptions, historical bootstrap, block bootstrap, Student-t, or regime switching.Model choice controls whether paths preserve historical samples, serial patterns, fat tails, or simplified normal-like behavior.
Random seedA fixed value used to reproduce the same random draws.Use a seed when you need a stable comparison between two assumption sets.
Inflation modelHow nominal spending and cash flows change over time.Inflation assumptions can change real spending power and failure timing even when nominal returns do not change.
Withdrawal strategyThe spending rule used during each path, such as fixed dollar, percentage, guardrails, VPW, or RMD.Spending rules change who absorbs market stress: the portfolio, the spending level, or both.

Common pitfalls

  1. Reading the median path as a forecast

    The median is the middle of a distribution, not a prediction. The 10th and 90th percentile bands matter just as much.

  2. Comparing parametric and historical bootstrap without re-fixing the seed

    Fix the random seed so the only thing changing between two runs is the assumption you want to test.

  3. Cranking the path count to fight noisy results

    More paths only sharpen the estimate of the same model. If results feel wrong, revisit the return model and inflation assumptions first.

  4. Ignoring the spending path

    Adaptive rules (guardrails, VPW, Guyton-Klinger) absorb market stress by adjusting spending. The terminal balance alone hides that, so read the spending-path chart.

Return sources

SourceModelWhat it uses
Parametric assumptionsParametric (log-normal)Annual mean return and annual volatility entered in the form.
Historical returnsHistorical bootstrapResampled returns from a prior backtest or Library portfolio. The model assumes that future returns follow the historical distribution.
Historical blocksResample historical blocksContiguous blocks of historical returns, which preserve short serial patterns. The model assumes that future returns follow the historical distribution.
Student-t (fat-tailed)Parametric, Student-tStudent-t log returns use the historical log mean and standard deviation. Lower degrees of freedom produce fatter tails. The default uses a maximum-likelihood fit and clamps the fitted degrees of freedom to [3, 30]. The response returns the fitted value.
Regime-switching2-state markovTags each step as bull or bear based on trailing returns, then samples blocks from same-state historical runs. The engine returns the transition matrix and the stationary bear fraction. Falls back to plain block bootstrap when the data shows only one regime.

See the simulation models comparison guide for assumptions, defaults, and when to reach for each model.

Main inputs

  • Initial value: starting portfolio value in dollars.
  • Years: simulation horizon.
  • Simulations: number of generated paths.
  • Random seed: optional seed for reproducible results.
  • Inflation model: whether nominal cash flows stay fixed or move with inflation assumptions.
  • Withdrawal strategy: the spending rule used during the run.

Withdrawal strategies

Each strategy determines the withdrawal for each period. Fixed strategies keep spending constant. Adaptive strategies use portfolio performance, market conditions, or the remaining horizon.

  • Fixed dollar: withdraw a constant inflation-adjusted dollar amount each year. Spending is predictable, but the portfolio bears all market risk.
  • Percent of portfolio: withdraw a fixed percentage of the current portfolio value each year. Spending fluctuates with performance, but the portfolio never reaches zero.
  • Guardrails: start from a target withdrawal rate and inflate each year, but clamp spending when the implied rate drifts outside a floor/ceiling band. Balances income stability with portfolio protection.
  • Variable percentage (VPW): withdraw a percentage that changes each year based on remaining time horizon and equity allocation. Uses an amortization formula (PMT-based) to spread the portfolio over the remaining years, drawing more as the horizon shortens.
  • Guyton-Klinger: starts from an initial withdrawal rate and applies two annual rules. The capital preservation rule reduces spending above a threshold. The prosperity rule increases spending below a threshold. The default adjustment is 10%.
  • CAPE-based: set annual spending as a fraction of the portfolio scaled by the inverse of the CAPE (Shiller PE) ratio. A floor rate and a ceiling rate clamp the result. Withdraws less when valuations are high and more when they are low.
  • RMD-based: divide the portfolio by the IRS Uniform Lifetime Table divisor for the current age each year. Spending rises naturally as the divisor shrinks with age. For ages below 72, extrapolated divisors produce conservative (smaller) withdrawals.

What the result shows

  • Fan chart: Percentile bands of portfolio value through time. The width of the fan is the uncertainty.
  • Terminal wealth distribution: Histogram of where each path ended. Median, mean, and tails are different stories.
  • Paths ending above zero: Share of paths that completed the horizon without depleting. This does not show that the plan met the original spending target. Pair this with the survival curve to see when failures cluster.
  • Spending path: 10th, 50th, and 90th percentile spending across paths. Shows how much an adaptive rule adapts.
  • Representative scenarios: A downside, median, and upside path picked from the simulation set so you can inspect drawdown shape and depletion timing directly.

Tax-aware engine (Pro)

The tax-aware engine routes every simulated path through your saved household and holdings context. The result is an after-tax curve instead of a pre-tax one. Choose the household and holdings snapshot in the account controls before running.

  • After-tax outputs: after-tax success rate and terminal percentiles, lifetime taxes paid across paths, and separate indicators for primary-account depletion, unfilled withdrawals, and RMD shortfalls.
  • Return sampling: single shared driver, correlated parametric, or joint block bootstrap per ticker. The correlated modes need fetchable per-ticker price history.
  • Supported scope: paths cap at 500 and the engine locks brackets at 2026. Unsupported return models and dynamic withdrawal rules appear greyed out while the engine is on. Tax-loss harvesting and wash-sale treatment remain outside this model.
  • Distribution assumptions: enter optional per-asset yields as annual percentages. Select monthly, quarterly, or annual payments at month-ends counted from the projection start. The engine reinvests distributions in the source asset at that day's close. The qualified-eligible share remains subject to statutory holding-period tests. Nonzero yields require total-return inputs.

Set up the household in Tax profile & accounts. The same saved context powers the Household Rebalancing and the planners.

Read the outputs

  • Fan chart: percentile bands of portfolio value through time.
  • Terminal wealth: the distribution of ending values across paths.
  • Paths ending above zero: share of paths that complete the horizon without reaching zero.
  • Spending funded: the after-tax figures count delivered discretionary withdrawals, including configured household withdrawals and the selected rule, in dollars at the projection start date. They include partial withdrawals before depletion. They exclude required minimum distributions and sales that settle taxes. A positive ending balance does not mean the plan funded every request.
  • Tail metrics: measures focused on adverse outcomes, not the median path.
  • Spending path: when withdrawals are active, the results include 10th, 50th, and 90th percentile spending paths. These paths show how spending evolves over time, not just the ending balance. In multi-phase runs with additional income, they show total spending delivered, not only the portfolio-funded portion.
  • Survival curve: shows the share of simulations still above zero over time. It makes depletion timing visible instead of reducing the answer to a single terminal success rate.
  • Safe withdrawal rate: estimated spending level that satisfies the configured confidence target when you enable that analysis.
  • Representative scenarios: realized downside, median, and upside paths selected from the simulation set. You can inspect drawdown shape, depletion timing, and spending differences without relying only on percentile bands. When the engine uses the analytical fast path, these become percentile-derived representative paths and not sampled scenarios.
  • Rolling-historical companion: when enabled, the engine replays the same plan across every overlapping past window of matching length. Percentile bands use the same definitions as the Monte Carlo side, so disagreements between the two reflect assumption differences and not metric differences. Disabled by default because it roughly doubles engine cost for history-based models.
  • Conservative drift comparison: for history-based models, the server repeats the simulation with average return reduced 50% toward zero. It uses the same random draws. The comparison isolates dependence on the historical average. Tax-aware mode does not support it.

Median and average outcomes are only part of the result. The lower percentiles and failure metrics describe downside behavior.

Library portfolios and ticker modifiers

When the simulation uses a Library portfolio, its historical returns become the Monte Carlo input. If it has ticker modifiers, the model uses the transformed returns.

Glossary

Glossary

Percentile
If you sort all simulated outcomes from worst to best, the 10th percentile is the value 10% of paths fell below. The 50th is the median.
Failure / success rate
Failure means the portfolio reached zero before the horizon ended. Success rate is one minus the failure rate.
Sequence-of-returns risk
Two plans with the same average return can end far apart if the bad years happen early in retirement. Monte Carlo surfaces this directly.
Bootstrap
Resampling actual historical returns instead of drawing from a parametric distribution. Block bootstrap preserves short serial patterns.
Survival curve
The cumulative share of paths still solvent at each point in time.
Safe withdrawal rate
The largest spending level that satisfies a configured success-rate target across the simulated paths.
VPW (Variable Percentage Withdrawal)
A spending rule that amortizes the portfolio over the remaining years, withdrawing more as the horizon shortens.
RMD
Required Minimum Distribution. A spending rule based on the IRS Uniform Lifetime Table divisor for the current age.