FIREscape

Historical Backtest

Stress-test your asset allocation and withdrawal plan against every historical period. Uses real annual returns, not simulated numbers.

How this works

Instead of assuming a fixed annual return, this calculator replays your portfolio through every possible starting year in history. For each window it applies the actual returns that occurred, deducts your withdrawal, and checks whether the portfolio survived.

The success rate tells you what fraction of historical windows ended with money remaining. Past performance is never a guarantee of future results.

Withdrawal strategies

  • Fixed amount — you withdraw the same real income every year regardless of markets. This is the classic 4% rule and it can run out of money, which is what the success rate measures.
  • Percentage of balance — you withdraw a set percentage of whatever the portfolio is worth. Because the withdrawal shrinks with the portfolio, it can never hit zero, so its success rate is ~100% by construction. The meaningful risk is how far your income falls.
  • Guyton-Klinger — you start from an inflation-adjusted income but apply guardrails: if a slump pushes your withdrawal rate more than 20% above its starting level you cut spending 10%, and if a boom pulls it more than 20% below you raise it 10%. You also skip the inflation raise in the year after a losing one. These dynamic adjustments cushion sequence-of-returns risk, so the portfolio survives more often than a level income — at the cost of a variable paycheck.

Monte Carlo — instead of contiguous history, this mode reshuffles individual historical years at random (bootstrap resampling with replacement) across thousands of simulations, giving a probability of success and a full range of outcomes. Because it samples with replacement it isn't capped by how many non-overlapping windows history holds, though it also breaks up real multi-year momentum and mean-reversion.

Data sources

  • S&P 500 (total return) — Damodaran / NYU Stern public dataset, 1928–2026
  • US 10-Year Treasury (total return) — Damodaran / NYU Stern public dataset, 1928–2026
  • US Total Market (Wilshire 5000) — Wilshire index factsheets, 1971–2026
  • Small-Cap (Russell 2000) — FTSE Russell published index returns, 1979–2026
  • Nasdaq-100 — Nasdaq published index returns, 1986–2026
  • Real Estate (NAREIT All Equity REITs) — Nareit published index returns, 1972–2026
  • Gold (spot) — London bullion market reference prices, 1968–2026
  • US CPI inflation — US Bureau of Labor Statistics, 1928–2024
  • ETF total returns (SPY, QQQ, SOXX, XLK/XLV/XLF, ARKK, SCHD/VIG/VYM, VXUS/VWO, TLT/IEF/BND/LQD, DIA) — Published fund total returns — verify provenance before launch, inception–2026

Known limitations

  • Annual rebalancing assumed — no transaction costs, fees, or taxes are modelled.
  • Adjacent rolling windows overlap heavily, so the effective sample size is far smaller than the window count and the success rate understates true uncertainty.
  • All returns are in nominal USD — no currency conversion is applied.
  • Withdrawals are taken at the start of each year, before that year's return is applied.

Index names and ETF tickers are shown for identification only and are not recommendations to buy any product. Disclaimer

Frequently asked questions

Why does adding Gold shorten my backtest?+
A backtest can only cover years where every selected asset has data. Gold's series begins in 1968 and REITs in 1972, so including them truncates the window. The tool tells you which asset is limiting the range.
Why does percentage withdrawal always show ~100% success?+
Because it mathematically cannot fail. If you always withdraw a percentage of the current balance, the withdrawal shrinks as the portfolio shrinks and never fully empties it. The real risk is that your income collapses, which is why we also report worst-case income.
Where does the historical data come from?+
Annual total returns are compiled from public reference sources — academic datasets for equities and Treasuries, and index publishers for the remaining series. Each series and its range is listed on the backtest page.

Related tools