Engine
- Paths per scenario: 2,000
- Step: monthly (12 steps per year)
- Return distribution: i.i.d. normal, sampled via Box-Muller
- Per-step return:
r = μ/12 + (σ/√12) × z, where z ~ N(0,1)
- Balance update:
B(t+1) = B(t) × (1+r) + contribution
- Stored snapshots: yearly only
Asset class assumptions
| Profile | μ (annual) | σ (annual) |
All figures are real (net of inflation), pre-fee, pre-tax. Source: placeholder values consistent with major forward-looking capital market assumption frameworks (Mercer LTCMA, JP Morgan LTCMA typical ranges); they will be re-sourced against a specific CMA reference in a later update. Not specific to any product or fund.
Real-terms convention
All amounts in this tool are expressed in real (today's dollars) terms. Profile expected returns are net of inflation — a 5% real return for Growth means the portfolio's purchasing power grows by 5% per year, not its nominal value.
Contributions and withdrawals maintain their real purchasing power throughout the projection. A $1,000/month contribution today represents the same purchasing power across all projection years, which is equivalent to that contribution growing with CPI in nominal dollars. The same applies to drawdown withdrawals.
Profile expected returns are placeholder values consistent with forward-looking capital market assumption frameworks. They will be updated with sourced figures in a future release.
A future update will add a nominal-dollars toggle for users who want to see the inflated nominal values alongside the real values.
Inflation assumption
The future-dollars display converts real (today's dollars) values to nominal future values using a deterministic inflation rate. The default rate is 2.5% per annum, consistent with the RBA's target band midpoint. Users can adjust this rate; the change will affect future-dollars chart values and displayed contribution and withdrawal streams but not the underlying simulation.
Inflation in this tool is deterministic — every simulated path assumes the same inflation rate. Real-world inflation varies stochastically and across paths, but modelling stochastic inflation is out of scope for this version.
Today's dollars vs future dollars
The simulation runs in real (today's dollars) terms. All inputs — contributions, withdrawals, starting balance, profile returns — are denominated in today's purchasing power and stay constant in those terms throughout the projection. This means contributions and withdrawals implicitly grow with inflation in nominal terms to preserve their real value.
The display toggle lets you view the same projection in either:
- Today's dollars. Values are shown in current purchasing power throughout the projection. This is the default. Easier to compare to current financial goals and spending levels.
- Future dollars. Values are shown in inflated nominal dollars at each future year, using a fixed inflation assumption (default 2.5%). Useful for understanding what the projection looks like in the dollars that will actually be circulating at that future date.
The underlying simulation is identical regardless of which display mode is active. Only the displayed units change. Probability of ruin and other dimensionless statistics are the same in both modes.
Return distribution and regime switching
The simulation models market returns with a two-state regime-switching variance model. At any given month, the market is in one of two states:
- Normal. Typical conditions with lower volatility.
- Stress. Occasional periods of elevated volatility.
The market transitions between states with small monthly probabilities, set so that stress periods occur every 7–10 years on average and last about 10 months when they occur. This captures the empirical observation that volatile periods in real markets cluster — the 2008 financial crisis, the 1970s stagflation, COVID-19, and similar episodes were not isolated bad months but coherent stressed regimes.
The mean return (μ) is the same in both states — the forward-looking expected return from the profile assumptions is preserved exactly. Only the volatility (σ) differs between states. The weighted average of normal-state and stress-state volatility reproduces the profile's long-run σ assumption.
This approach is "forward-looking on what returns are on average, backward-looking on how returns evolve through time." Expected returns and long-run volatilities come from forward-looking capital market assumptions; the time structure (clustering, stress duration, stress amplification) is calibrated to historical market behaviour.
What this changes in the output:
- Median and 25–75 percentile bands: barely change.
- 5–95 percentile bands: noticeably wider at long horizons — real markets have fatter tails than a single-distribution model captures.
- Sample paths: some paths visibly show sustained drawdowns followed by recovery, rather than smooth random walks.
- Drawdown ruin probability: rises modestly because sequence risk is more pronounced under clustered stress.
What this does not capture:
- Cross-asset correlation changes during stress (multivariate regime switching is out of scope).
- Skewness within each state (returns within a state are symmetric).
- Slow-moving regime shifts beyond the two-state binary.
- Inflation-specific dynamics.
In compare mode, paired scenarios share the same uniform draws that drive regime transitions, so the regime sequences they see are aligned (identical when profiles match; closely correlated when they differ). This isolates strategy differences from regime luck.
Why monthly, not daily
Under i.i.d. normal sampling, returns drawn at any sub-monthly frequency converge to an indistinguishable terminal distribution once correctly scaled. Daily steps multiply compute by ~21× with no visible change in the bands. Sub-monthly granularity only matters when path-dependent features (rebalancing rules, withdrawal triggers, stop-losses) require finer resolution. None apply here.
Annual steps would distort the early years, as monthly contributions do not compress cleanly into yearly buckets.
Why the median sits below the steady-return line
The dashed steady-return line is the deterministic projection: starting balance compounded at μ monthly, plus contributions. It represents the arithmetic expected outcome.
In a log-normal accumulation, the median outcome sits below the mean, roughly by μ − σ²/2 in continuous time. The median fan path will visibly fall below the steady-return line, and the gap widens at higher σ. This is the volatility drag, and it is correct behaviour, not a bug.
Overlay paths
The 30 grey paths drawn over the bands in single-scenario mode are sampled from paths whose terminal value falls between p5 and p95 of the full simulation. This is a presentation choice. The fan bands convey the true range; unconstrained overlay sampling occasionally produces outlier paths that compress the chart's y-axis and obscure the central story.
Probability of leading
In compare mode, both scenarios run against the same sequence of market shocks. The i-th simulated path of A and the i-th simulated path of B are responses to the same random market under different strategies — not two independent random universes. This isolates the comparison to the strategy decision itself: contributing more always beats contributing less when other inputs are equal, and asset-class comparisons reflect how each profile responds to the same market.
P(A > B) at year t is the fraction of paired paths where A's value exceeds B's. Ties contribute 0.5 to each side, so identical configurations evaluate to 50% at year 0 rather than 0%.
When asset classes differ, the same shock produces different returns because higher-volatility profiles amplify it. A z = −1 month gives Growth a −2.55% return and Balanced a −1.77% return; a z = +2.5 month gives them +8.57% and +6.32%. The probability line evolves because the strategies respond differently to the same market, not because they live in different random universes.
Goal target (drawdown mode)
The probability of ruin target determines when the tornado chart switches from standard mode to goal-seek mode. If your simulated ruin probability is below this target, the tornado shows what drives your outcome. If your ruin probability is above the target, the tornado switches to goal-seek mode and shows what each input would need to change to bring you to the target.
Industry consensus on acceptable success rates: Wade Pfau 90–95%; Blanchett 85–90%; Kitces 80–90%; Vanguard 85–90%; Schwab 85–90%; JP Morgan 80–90%; T. Rowe Price's "Confidence Zone" 80–95%. The 10% default sits in the more conservative half of this consensus, appropriate for a portfolio-only projection that does not model age pension, other retirement income sources, or spending flexibility.
Tornado chart
The tornado chart visualises input sensitivity. Each bar shows how much the projected outcome changes when one input is varied within its plausible range, holding all other inputs constant. Bars are sorted by absolute impact, largest at top.
Input perturbation ranges (chosen to represent approximately one standard deviation of plausible real-world variation):
- Monthly contribution: ±20%
- Starting balance: ±20%
- Time horizon (accumulation): ±5 years
- Retirement age (drawdown): ±3 years
- Annual withdrawal (drawdown): ±20%
- Asset class: ±1 step on the risk ladder
In drawdown mode, if your simulated probability of ruin is above your target, the tornado switches to goal-seek mode. In goal-seek mode, each bar shows the minimum change to one input that would bring you to your target probability of ruin. Inputs that cannot solve the problem alone within reasonable bounds are shown as maxed-out bars with an "insufficient alone" indicator.
Tornado computations use a reduced path count (1,000 paths per perturbation, vs. the main chart's 2,000) for performance. The result is illustrative — bar lengths may vary slightly between recomputations due to Monte Carlo noise.
Drawdown phase
The Drawdown toggle extends the simulation past retirement into the decumulation phase. The portfolio continues to compound at the selected asset profile; contributions stop, and a fixed real withdrawal is taken each month. Paths that deplete to zero stay at zero — no floor, no recovery.
Scope. This tool models a single investment portfolio in isolation. It does not include age pension entitlement, non-portfolio assets, partner's income, property, or other income sources. Total retirement income for most users will be higher than the portfolio drawdown shown here. For holistic retirement income modelling, this tool should be used alongside other planning resources.
Withdrawal assumption. The tool assumes a fixed-real withdrawal strategy (Bengen 1994) — the same real dollar amount withdrawn each year regardless of portfolio performance. Dynamic strategies such as Guyton-Klinger guardrails or fixed-percentage withdrawals produce different outcome distributions and may be added as comparison features in future versions.
Probability of ruin. Percentage of simulated paths where the portfolio depletes to zero at any point during the projection horizon. Ruin here means portfolio depletion only — it does not mean destitution. For an Australian user, the age pension (not modelled in this tool, by design) provides an income floor that continues after portfolio depletion. Ruin is the moment the portfolio stops contributing to retirement income, not the moment income stops altogether.
Model limitations
i.i.d. normal sampling is the dominant simplification. Real returns exhibit:
- Fat tails (more extreme outcomes than the normal distribution predicts)
- Volatility clustering (calm and turbulent periods cluster in time)
- Mild autocorrelation at short lags
- Occasional jumps and regime shifts
The current model captures none of these. Fan widths shown here are likely understated at the tails relative to historical experience. Tools incorporating jump-diffusion, GARCH, or empirical bootstrapping will show wider extremes at the cost of model complexity.
No fees and no taxes. Returns are real (net of inflation) and pre-cost, so contribution and withdrawal amounts you enter are in today's purchasing power. A future release will add a nominal-dollars toggle.
Time diversification: what this tool doesn't capture
The variance ratio measures how dispersion scales with horizon: it's the variance of N-year cumulative returns divided by N times the variance of 1-year returns. Under i.i.d. returns it equals 1 at every horizon. Under mean-reverting returns (the classical case for equities) it falls below 1 — time diversifies, and per-year dispersion narrows with longer horizons. Under persistent returns it rises above 1 — time amplifies dispersion.
Historical US data (Asness, Cliff, Ostdiek and others; 1872–present) is roughly:
| Asset | 1y | 5y | 10y | 20y | 30y |
| Equities | 1.00 | 0.95 | 0.85 | 0.70 | 0.60 |
| Bonds (long Treasury) | 1.00 | 1.30 | 1.65 | 2.10 | 2.50 |
| Bills (T-bills) | 1.00 | 1.20 | 1.40 | 1.65 | 1.80 |
The counter-intuitive result is the second row. Bond and bill variance ratios rise with horizon because their real returns are driven by inflation persistence — multi-year inflation surprises compound rather than wash out. Time diversifies equities but anti-diversifies bonds and cash in real terms.
This tool does not reproduce that. Its engine assumes i.i.d. returns within each regime state, with no mean reversion and no inflation persistence. The implied variance ratio is approximately 1 for every asset at every horizon, including Cash and Conservative. The historical numbers above come from outside the tool's model; treat them as a known limitation of the projection — long-horizon fan widths for bond-heavy and cash-heavy profiles are likely overstated, and for equity profiles likely understated relative to a model that captured time diversification properly. The tool's strength is showing dispersion at a fixed horizon; the variance-ratio story across horizons is outside its scope.
Scope
This tool is designed to show that a single "average return" figure hides material outcome dispersion, and that comparing strategies requires examining the full distribution rather than the central estimate.
Not for investment recommendations, fee analysis, retirement-adequacy modelling, or any scenario involving withdrawals from the portfolio.