Welcome to PensionSim
PensionSim is a modelling tool for exploring how a pension pot might behave — whether you're still building it up, drawing an income from it, or want to see how it would actually have fared through real market history. It runs the numbers for you across thousands of possible futures (or every real year on record) so you can see a range of outcomes, not just one guess.
Not financial advice — please read this before relying on any result
- This is not financial advice. PensionSim is a modelling and education tool, not a recommendation to buy, sell, hold, contribute to, or withdraw from anything. Nothing it shows you is personalised to your circumstances.
- Use every result as a guide, not a prediction. Markets are unpredictable. A simulation shows what's possible given its assumptions, not what will happen — and a backtest shows what happened to specific real years in the past, which will not repeat in the same way.
- The underlying data may be incomplete or inaccurate. Historical return series come from third-party or user-supplied sources and can contain errors; "Assumptions" mode uses figures you (or a placeholder default) invent, not researched forecasts; and mixing asset classes priced in different currencies (e.g. US and UK holdings together) ignores exchange-rate risk entirely — the tool will warn you when a portfolio does this, but it doesn't correct for it.
- Nothing about your real finances is modelled. Tax, product charges, fees, the State Pension, other savings, debts, and your personal circumstances all sit outside every number here. Speak to a qualified, regulated financial adviser before making any real decision about your pension.
How the pages fit together
Portfolios is where you define what you hold — a name and a set of asset-class weights, nothing more. It has no model of its own; every other page borrows a portfolio's weights and decides how to run them.
Grow and Drawdown both run a Monte Carlo simulation: thousands of randomly resampled possible futures for the same portfolio, summarised as percentile bands ("in 90% of simulated futures, your pot was worth at least this much"). Backtest is different in kind, not just in withdrawal options — it replays one single, real sequence of actual historical years in the order they really happened, with no randomness at all, so it answers "what would literally have happened" rather than "what might happen."
Grow
Building up a pot — accumulation.
Grow models a pot that's being built up over time, optionally with regular contributions, and shows the spread of possible outcomes by the end of the period you choose.
Inputs
- Load Portfolio
- Fills in the asset-class weights from a portfolio you've saved (or, as a guest, one of the four example portfolios). Nothing can be simulated until one is loaded.
- Initial value, Years, Simulations
- Starting pot size, how many years to project forward, and how many random future paths to simulate (more paths give smoother percentile estimates; capped at 50,000).
- Regular contribution
- An optional amount added at the start of each simulated year, before that year's growth — per year or per month, with an option to have it rise in line with inflation.
- Show results in real (inflation-adjusted) terms
- Off by default (results in actual future currency). On, results are shown in today's purchasing power, using either a real historical inflation series or an assumed flat rate you set.
- Return model (Advanced settings)
- Historical data (the default) replays real market returns for whichever asset classes your portfolio holds. Assumptions instead lets you set your own expected return, volatility and correlation for hypothetical "what if" modelling.
- Start year / End year (Advanced settings, Historical only)
- Optionally narrows which historical years are drawn from — e.g. excluding the Depression era — instead of using the full span available.
- Random seed, Percentiles, Bootstrap block size (Advanced settings)
- A seed makes a run reproducible; percentiles choose which bands are shown; block size controls whether historical years are drawn independently or in contiguous multi-year runs (preserving real downturn-then-recovery patterns).
Outputs
- Median final value
- The middle outcome across every simulated path, with the 10th–90th percentile range alongside it — the range matters as much as the median, since it's the whole point of running a simulation rather than one calculation.
- Expected annual return
- The average compounded annual growth rate of the underlying investments across all paths. Often lower than a simple average of yearly returns — that's volatility drag, not an error.
- Probability of loss
- The share of simulated paths that ended with less than you started with.
- Fan chart
- Percentile bands of portfolio value across the years, with a hover tooltip for exact figures at any point.
- Performance summary
- Seven metrics (time-weighted return, end balance, annual mean return, volatility, Sharpe ratio, Sortino ratio, maximum drawdown), each shown across the same percentiles as the headline figures.
Drawdown
Drawing an income — decumulation.
Drawdown models taking an income from an existing pot — the retirement side of the same simulation engine Grow uses — so you can test whether a withdrawal strategy is sustainable and how likely the pot is to run out.
Inputs
Load Portfolio, Initial value/Years/Simulations, Return model, Start/End year, and the Advanced settings all work exactly as on Grow (see above). The one structural difference:
- Withdrawal strategy
- Replaces Grow's contribution section. No withdrawals; a fixed percentage of the current balance each year; a fixed percentage of the initial pot (the classic "4% rule"); a flat fixed amount; variable percentage (spends the pot down to exactly zero by the final year — a $0 ending balance is that strategy working as intended, not a bug); guardrails (cuts or raises the withdrawal when it strays too far from its starting rate); or a rate clamped between a floor and ceiling amount.
- Increase withdrawal in line with inflation
- Available for the fixed-amount-flavoured strategies — keeps the withdrawal's real-terms spending power flat instead of its nominal amount.
- Solve for maximum withdrawal
- Available for the percentage of initial pot and fixed amount strategies — instead of choosing a withdrawal yourself, give it a target survival probability (e.g. 90%) and it searches for the highest annual withdrawal that still keeps at least that share of simulated paths from running out of money. This is the classic "Safe Withdrawal Rate" question, answered directly by search rather than by trial and error. The other strategies aren't offered here: a percentage of the *current* balance never truly depletes, so there's nothing to search for; the dynamic strategies (guardrails, floor and ceiling, ratchet) adjust themselves too adaptively for a single "how much" figure to solve for reliably; and variable percentage/RMD have no separate withdrawal amount at all — the balance and a schedule decide it entirely.
- Other income (optional)
- Any number of guaranteed income sources — a State Pension, an annuity, a workplace pension — not modelled as part of the portfolio itself. Each one reduces what's actually pulled from the pot each year once it starts, rather than being added on top — e.g. a strategy withdrawing £30,000/year alongside a £11,500/year State Pension only takes £18,500/year from the pot. Add more than one if they start at different times (a workplace pension at 60, the State Pension at 67, say) — each has its own amount, starting year, and whether it should rise with inflation (checked by default, since a real State Pension typically is).
Outputs
Median final value, Expected annual return, Probability of loss, the fan chart, and Performance summary all mean the same thing as on Grow. Four more charts appear here, specific to decumulation:
- Probability of running out of money
- The share of simulated paths that had hit zero by each year — a genuinely different question from "Probability of loss" above, which just means ending with less than you started with. A path can lose money without ever running out, so watch which one you're reading.
- Annual withdrawal amount
- Percentile bands of what the strategy actually paid out each year — flat for the fixed-rate/fixed-amount strategies, but genuinely variable for guardrails, variable percentage, and floor-and-ceiling, where the payout itself responds to market performance.
- Income graph
- Your total income each year, stacked and colour-coded by source: the pot withdrawal (a selector picks which single percentile is shown, from every percentile this run requested — the default 10/25/50/75/90, or whatever you set in the "Percentiles" field) plus any "Other income" sources you've added (a State Pension, a workplace pension, ...), each starting in its own year. Shows one percentile at a time, not the full spread the fan chart above already covers.
- Distribution of final outcomes
- A histogram of ending pot values across every simulated path. The most extreme 1% of outcomes on each end is excluded so the typical range stays readable — a note under the heading says so, since the bars therefore sum to about 98%, not 100%.
Backtest
What would actually have happened — one real sequence of history.
Backtest replays your portfolio through real, consecutive historical years over a period you choose — no randomness, no resampling, one deterministic answer. It exists to answer a different question from Grow/Drawdown's "what might happen": "what would this portfolio actually have done between, say, 2007 and 2025" — including a real crash landing exactly where it really did, in the order it really happened.
Inputs
- Load Portfolio
- Same as the other pages.
- Start year / End year
- Not optional here, unlike Grow/Drawdown's version tucked in Advanced settings — the period you choose is the question a backtest answers.
- Initial value
- Starting pot size at the beginning of the chosen period.
- Withdrawals
- The same strategies as Drawdown, defaulting to No withdrawals — since the question here is usually "how would this portfolio itself have performed," not a withdrawal plan.
- Show results in real (inflation-adjusted) terms
- Same idea as Grow/Drawdown, using the real historical inflation series for the years in the chosen period.
Outputs
- Final value, Annualised return, Max drawdown
- The headline figures for the one real path that was replayed — single numbers, not percentiles, since there's only one answer.
- Portfolio value chart
- A single line against real calendar years, so a crash lands on the actual year it happened rather than an abstract "year 12 of 30."
- Annual income chart and table columns
- Appears whenever a withdrawal strategy is active. When viewing in real terms, shows both the nominal (actual cash paid out) and real (today's money) amounts, since a flat real income costs more actual dollars every year as prices rise — the year-by-year table also shows each income figure's percentage change from the previous year, which is what makes a dynamic strategy's cuts and raises (guardrails, variable percentage) directly visible.
- Performance summary
- The same seven metrics as Grow/Drawdown's table, but as the actual figures for this one path rather than percentiles.
- How each holding did
- Each asset class's own annualised return over the same period, so a result can be attributed to which holdings actually drove it.
Portfolio weights
Simulation settings
Regular contribution (optional)
Added at the start of each simulated year, before that year's growth. A monthly amount is rolled up into an equivalent annual contribution (the engine only models annual returns).
Advanced settings — sign in to use
Sequence-of-returns stress test: forces the worst N simulated years onto the front of every path, worst first, instead of leaving them wherever they landed. 0 (default) leaves the sequence as simulated. Useful for seeing how a contribution or withdrawal strategy holds up specifically against an early downturn, which an ordinary run mixes uniformly across the whole period.
1 = independent years (i.i.d.). Larger draws contiguous real historical runs instead, preserving multi-year patterns like downturns at the cost of fewer independent draws.
Results
View as table
Performance summary
Portfolio weights
Simulation settings
Drawdown strategy
Instead of running your chosen amount, this searches for the highest annual withdrawal that still keeps at least this share of simulated paths from running out of money — the classic "Safe Withdrawal Rate" question, answered directly rather than by trial and error.
Other income (optional) — sign in to use
A State Pension, annuity, workplace pension, or other guaranteed income not modelled as part of the portfolio itself. Each source reduces what's actually pulled from your pot each year once it starts, rather than being added on top — e.g. if your strategy would withdraw £30,000/year and this is £11,500/year, only £18,500/year comes from the pot. Add more than one if they start at different times — a workplace pension at 60 and the State Pension at 67, say. Each one starts in a real calendar year (e.g. 2035), not "N years from now" — so a saved plan (below) stays correct however long it sits unopened.
Advanced settings — sign in to use
Sequence-of-returns stress test: forces the worst N simulated years onto the front of every path, worst first, instead of leaving them wherever they landed. 0 (default) leaves the sequence as simulated. This is exactly the risk a real retiree worries about — a downturn arriving right as withdrawals begin can lock in losses no later recovery undoes, which an ordinary run mixes uniformly across the whole period instead.
1 = independent years (i.i.d.). Larger draws contiguous real historical runs instead, preserving multi-year patterns like downturns at the cost of fewer independent draws.
Results
Overview
View as table
Income graph
Your total retirement income each year — the pot withdrawal (pick a percentile below) plus any other income sources, stacked and colour-coded by source.
Performance summary
Probability of running out of money
The share of simulated paths whose pot has reached zero by each year.
Annual withdrawal amount
What the strategy actually pays out each year, across simulated paths.
Withdrawal amounts by year
The p25/median/p75 withdrawal each year across simulated paths, with the change from the previous year.
Distribution of final outcomes
How the ending pot value is spread across simulated paths. The most extreme 1% of outcomes on each end is excluded so the typical range stays readable.
Backtest period
Real historical years, replayed in the order they actually happened — no simulation, no randomness. One period in, one answer out.
Portfolio weights
Backtest settings
Withdrawals (optional)
Backtest results
Annual income
What the strategy actually paid out each year — the real (today's money) figure held steady doesn't mean the cash amount did.
Year by year
Performance summary
A single realised path, so these are actual figures rather than percentiles.
How each holding did
Each asset class's own annualised return over the same period.
Your portfolios
You're browsing as a guest — portfolios you create here won't be saved. Or sign in to save and revisit portfolios.
Showing portfolios for your account ().
New portfolio
If given, this becomes the starting balance on Grow, Drawdown and Backtest whenever this portfolio is loaded there — instead of whatever amount is already in the Initial value field on those pages. Leave blank to save just the proportions, with no size attached.
Asset classes
100.0% allocated
Distribution
Add at least one asset class with a nonzero weight to see the distribution.