Retirement Simulator

Simulation Parameters

Enter your assumptions, then run a simulation. Use the ? beside a field for help.

Every run is anchored to the current calendar month. The simulator projects forward from today and never back-tests, so it cannot simulate a period that has already passed: a run anchored to an earlier month is rejected by the engine rather than replayed.

Personal Information

Your age this year. Simulations always start in the current calendar month, so a saved profile keeps your birth year and your age advances as the years pass.

Selects which mortality table column is sampled, because life expectancy differs by sex at birth. Mortality data: SSA 2023 Period Life Table (2026 Trustees Report) with SOA Scale MP-2021 cohort improvement (base year 2023).

A plan shared with a partner has to last until the second of you dies, not the first, so leaving a partner out shortens the horizon and overstates how well the plan is funded. Only mortality is modelled: spending, pensions, and accounts are unchanged by the first death.

The age when withdrawals begin. Select the earliest retirement age solver as the simulation type above to search for the earliest achievable age instead.

When lifetimes are sampled from the mortality model, you can require each simulated retirement to last a minimum number of years so trials where you die before or shortly after retiring do not crowd out a typical retirement.

Sampled ages at death are drawn from the mortality distribution conditioned on surviving at least this many years past your retirement age, so no trial dies earlier. Must be greater than 0. Uncheck to also simulate dying before retirement.

Household Income

Gross annual income is your pre-tax household income. It is the single source for every percentage-of-income input: account contributions, employer match caps, and the replacement-rate option of the fixed real income spending plan. Enable it if you plan to use any of those; otherwise leave it off and enter dollar amounts directly.

Gross annual income is entered in today's dollars and grows at this rate every simulated year until retirement, so percentage-of-income contributions and income-capped employer matches keep pace with your raises. This is a real rate: it is the raise you get on top of inflation, because the whole simulation is run in today's dollars. Pick a preset or choose Custom and enter your own rate. The presets are historical averages deflated by CPI-U over the same window, so they are much smaller than the nominal growth you see on a pay stub: ECI holds the mix of jobs fixed, so it is the closest to staying in the same role; the Atlanta Fed tracker follows the same person year over year, so it includes promotions and job changes; the SSA and CES averages cover the whole economy and move with who is employed as well as with pay. 0% is a valid choice and models pay that rises exactly with prices, so it never buys more; negative wage growth is not accepted.

Accounts

Add one account for each place your money is held. Retirement accounts, such as a 401(k) or an IRA, can only fund spending from age 59½, so retiring earlier than that needs a taxable account to bridge the gap. Taxes are not modeled: every account that is available at your age is an equally viable source of withdrawals, and reported portfolio wealth is always the total across all accounts. Asset values and asset styles are per account, so one account can track a global index while another tracks the S&P 500. The target asset allocation and rebalancing below are per profile and keep the same allocation in every account. Give accounts an alias to tell apart multiple accounts of the same type; aliases must be unique per account type. A Social Security account is different: it holds no balance and takes no contributions, paying a monthly benefit you enter yourself from the age you claim it (62 through 70) that grows each year with the profile’s spending inflation. Add one Social Security account per claimant so a spouse’s benefit can be modeled alongside yours; a benefit someone else claims also takes the number of years they are younger than you, so their claiming age lands on your timeline.

Market Assumptions

Presets use historical total returns, including reinvested dividends or interest, and update the corresponding values on the Advanced tab. They are examples, not forecasts. These are the profile's default styles, used by every account that is not set to a style of its own.

Stock styles: S&P 500, US Total Stock Market (VTI), Global Equity (MSCI ACWI IMI), and DFA Global Equity based on DGEIX total-return history as a longer-history proxy for DFAW.

Bond styles: US 10-Year Treasury, US Total Bond Market (BND), and Global Credit (Bloomberg Global Aggregate Credit Bond Index, USD hedged).

The simulator runs in today's dollars, so this inflation assumption does not change spending or returns — it only sets the inflation path reported on the balance sheet. Inflation presets use BEA/FRED PCE, BLS CPI-U, and the BLS R-CPI-E research series through 2025. Each preset's rate and its volatility are the average and the standard deviation of the same December-over-December annual rates over the window named in the option, so the spread you simulate comes from the same data as the average you picked. Longer windows are more volatile because they contain more history: CPI since 1914 includes the World Wars and the Depression and carries a 4.75% standard deviation, while the post-2000 windows are nearer 1.4%. The 2% target is the Federal Reserve's longer-run PCE objective and has no historical window, so it is paired with the 1.90% inflation standard deviation from the Horizon Actuarial 2025 survey of capital-market assumptions, which is a forward-looking estimate rather than a measurement. Sources: PCEPI, CPIAUCNS, CPIEALL, FOMC longer-run goals, and the Horizon Actuarial 2025 survey.

Allocation Strategy

The remainder is allocated to bonds. This target is applied separately to every account.

Planning Goals

Goals define what counts as a successful simulation. The spending strategies that are measured against them are configured on the Spending Strategies tab.

Spending Strategies

Configure one or more spending strategies. All enabled strategies will be simulated and measured against the goals set on the Planning Goals tab.

Withdraw the selected percentage of the portfolio in the first retirement year, then increase that dollar amount with inflation each year (the 4% rule).

Withdraw the selected percentage of the current portfolio value each year. Spending rises and falls with portfolio performance rather than holding a constant purchasing power.

Withdraw the same annual amount in today's dollars every year — a constant standard of living — regardless of portfolio performance. Choose how that starting amount is set: reuse the Annual Income Target from the Planning Goals tab, enter a fixed amount, or express it as a replacement rate — a percentage of your gross annual income.

Each year, VPW amortises the current portfolio over the remaining horizon at a fixed real discount rate (an annuity-due PMT formula). Spending adjusts automatically with portfolio performance. Waring & Siegel (2015), VPW reference.

The real (after-inflation) rate used to spread your portfolio across the years left in the horizon. It is not a forecast of what you will earn, and raising it does not make you richer — it just moves spending earlier and guarantees cuts later, because the annuity is recalculated every year. How to pick: leave it at 2%, the rate Waring & Siegel use throughout the paper this strategy comes from, reflecting the long-run average real yield on safe bonds. Raise it only if you want to deliberately front-load spending and accept a declining path, and lower it towards 0% to spread the portfolio evenly and leave more for later years. Deliberately, it does not depend on your stock/bond mix: a riskier portfolio earns its extra return as a wider range of outcomes, which the simulation already shows you, so discounting at a higher rate would count that premium twice.

A VPW planning horizon age is required whenever lifetimes are sampled from the mortality model, because amortizing over a random remaining lifetime would change the plan every year. Turn on a fixed planning horizon on the Time Horizon tab to make this optional.

The age the portfolio is spread over. This is a planning convention, not a prediction of how long you will live, and it is never the simulated age at death — a spending rule that could see its own lifetime would be cheating. How to pick: leave this off and the engine uses the age by which 90% of people your age and sex have died, from the mortality table, which keeps a 10% survival margin and moves with your age and sex. Set it yourself if you want a fixed anchor; 100 is the common convention. A longer horizon spreads the same money thinner, so it lowers spending every year and leaves more behind. The horizon counts the current year, so an age of 100 at age 65 spreads the portfolio over 36 payments.

Start by withdrawing the selected percentage of the portfolio and increase that dollar amount with inflation, like the x% rule. Whenever the resulting withdrawal rate drifts outside the guardrail band around that starting rate, spending is cut (portfolio fell too far, when >15 years remain) or raised (portfolio grew) by the adjustment below and every later year grows from the new amount. Spending reacts to markets while staying steadier than a constant percentage of the portfolio. Guardrails reference.

When lifetimes are sampled from the mortality model, enter the expected age of death so the Capital Preservation suspension has a known horizon. A fixed planning horizon on the Time Horizon tab makes this optional.

Start by spending a target income in today's dollars, held constant like Fixed Real Income, and choose that starting amount the same way: reuse the Annual Income Target, enter a fixed amount, or use a replacement rate. That starting income, divided by the portfolio value at retirement, becomes the withdrawal rate the Guyton-Klinger guardrail band is centered on for the rest of retirement, instead of a portfolio percentage you set separately.

When lifetimes are sampled from the mortality model, enter the expected age of death so the Capital Preservation suspension has a known horizon. A fixed planning horizon on the Time Horizon tab makes this optional.

Simulation Settings

The simulation type is chosen from the arrow beside the Run simulation button. The basic simulation runs the plan exactly as entered; each solver searches for one missing input instead. Only one solver can run at a time, because solving two unknowns at once would mean re-solving one of them at every value of the other. Only the selected type's settings are shown below.

Each simulation is one possible market, inflation, and (when enabled) lifetime path. More paths make percentiles more stable but take longer.

How many of the first retirement years the Market Paths tab measures sequence-of-returns risk over. Ten years is the window the research treats as decisive: withdrawals taken from a falling portfolio early in retirement sell the shares that would have compounded for the rest of the plan, while later losses land on a portfolio already drawn down. A shorter window isolates the shock of retiring into a bad market; a longer one folds in more of the recovery that follows. Trials are ranked by the income that window's perfect withdrawal rate would buy from the portfolio each trial actually retired with, so the window sets both the rate and the spending it funds. Only trials whose simulated lifetime spans the whole window are ranked, so a window longer than your plan's longest possible retirement leaves that ranking empty rather than stopping the run. This setting changes only how trials are ranked for that tab, never the simulation itself.

Every field on this tab already holds a defensible value, so you can run a complete plan without opening it. Change one only when you can say what you would do differently if the answer moved: pick a different number, run the plan again, and compare. If the two runs agree, the assumption was not driving your decision and the default is fine; if they disagree, you have found a question worth resolving before you act on either answer. That is what these settings are for — they are the plan's load-bearing assumptions, and the point of exposing them is to let you test how much weight each one is carrying.

Ranking Preferences

How much an uneven retirement income bothers you. This is used only to rank trials against each other when picking which path to show at each percentile; it never changes how a plan is simulated, how much it spends, or whether it succeeds.

How to pick: compare two hypothetical retirement income patterns — not two of the spending strategies enabled in this simulation. Both are in today's dollars. Pattern A pays the same amount every retirement year. Pattern B pays $30,000 in half of the retirement years and $70,000 in the other half, scattered unpredictably rather than grouped early or late, averaging $50,000 a year. What constant annual amount from Pattern A would make you value both patterns equally? About $46,000 means 1; $42,000 means 2; $37,000 means 4; $33,000 means 8. Pick the number whose answer is closest to yours, and if the choice feels arbitrary, leave it at 2 and move on — it changes which trial is shown at each percentile, never whether the plan works. 2 is the value used for exactly this calculation by Blanchett & Kaplan, "Alpha, Beta, and Now… Gamma" (Journal of Retirement, 2013), whose equation [A6] this ranking implements; 10 is the upper bound Mehra & Prescott, "The Equity Premium: A Puzzle" (1985) argue is defensible at all.

Market Parameters

Defaults are S&P 500 and US 10-yr Treasury real (inflation-adjusted) arithmetic average returns and standard deviations (1928–2024), with a CPI-E inflation assumption for the reported inflation path. Return source: Damodaran (Jan 2025). Inflation sources: BEA/FRED PCE and BLS CPI-U / CPI-E research series.

Expected return is the arithmetic mean annual real (inflation-adjusted) return and may be negative down to -100%; volatility is its annual standard deviation. An arithmetic mean is not an annualized return: the simulator applies the drag of volatility itself, so the 8.61% stock default compounds at about 6.93% a year. Entering a published annualized return here would count that drag twice and understate the plan. The simulator runs in today's dollars, so returns, spending, and wage growth are all real; the inflation assumption below only sets the inflation path reported on the balance sheet. These are annualized assumptions, not guaranteed forecasts. How to pick: the safest change is none — choose a preset on the Investing tab instead, which fills every field here from a published series. Edit these directly only to answer a specific question, and change one number at a time so you can see what it did. The most useful thing to try is a deliberately pessimistic run: cut the expected stock return by two or three points and leave everything else alone. If the plan still works, the rest of the tab will not change your mind. Volatility is the number most people underestimate; raising it without touching the returns shows how much of your result depends on the market being calm rather than generous.

By default each year's inflation is drawn from a bell curve fitted to the rate and volatility above. Real inflation is not shaped like that: it is skewed, with a long upper tail of high-inflation years and comparatively few deflationary ones. Over 1914–2025 prices actually fell in 9.8% of years, while a bell curve with the same average and spread would have them fall in 25.0% of them — so the default model roughly doubles how often a retiree gets a year of falling prices, and understates how bad the worst inflation years get. Turning this on replaces the bell curve with a distribution fitted to the record itself, which puts deflation at 14.2% of years. Because the shape and the moments have to come from the same data to mean anything, turning it on also switches the rate and volatility above to US CPI-U, 1914–2025 (3.26% and 4.75%) and selects that preset. While it is on, those two values no longer set the spread of annual inflation — the fitted shape does. Moving away from that record — selecting another preset, or editing the rate or volatility — turns this back off, because the shape no longer matches the numbers above it.

Stocks, bonds, and inflation do not move independently of each other. Measured on annual real returns from 1928–2025, a year of high inflation is a year of poor bond returns (−52%) and, more mildly, poor stock returns (−17%), while stocks and bonds are close to unrelated (+9%). Those measured values are filled in below. Setting all three to 0% restores the older assumption that every series moves independently, which understates the risk of a bond-heavy plan because the event most likely to damage it is then modelled as unrelated to it.

Each value is the correlation of two series' monthly shocks, from −99% (they move in opposite directions) through 0% (unrelated) to +99% (they move together). How to pick: leave the measured values alone unless you have a reason not to. They come from Damodaran's annual real returns for the S&P 500 and 10-year Treasuries against CPI, 1928–2025, and they are not re-estimated for the other presets on the Investing tab — a global-equity or corporate-credit plan uses the same three numbers, which is an approximation. What they change: correlation barely moves the median outcome but widens the spread, so look at the percentile bands and the Market Paths tab rather than the headline success rate. Not every combination is possible — three series cannot all be strongly correlated in conflicting directions at once — and a combination that describes no real joint behaviour is rejected with an explanation rather than silently adjusted.

The correlations above fix how much two series move together in an average month. They say nothing about whether the two hit their extremes together, and those are separate properties. By default they do not: as you look at worse and worse years, the chance that a disastrous year for stocks is also a disastrous year for bonds falls away to nothing, however high the correlation above is set. That is the wrong assumption for a retirement plan, because the scenarios worth testing against are exactly the ones where several things fail at once. This setting couples the extremes instead. At the stock–bond correlation above, the chance that an extreme year for one is an extreme year for the other settles at roughly 2% under mild coupling, 7% under moderate, and 14% under severe, against effectively 0% by default. How to pick: this is a judgment, not a measurement — there is no historical figure to read it off, which is why the default leaves it off rather than guessing. Run your plan once on the default and again on moderate; the gap is how much your result depends on the assumption that bad news arrives one series at a time. What it changes: only the joint behaviour. Every return, inflation, and volatility assumption above is unchanged, and the default reproduces earlier results exactly.

The coupling is a Student-t copula, and this is its degrees of freedom. Lower numbers couple the extremes more strongly: 8, 5, and 3 are the mild, moderate, and severe choices above. The accepted range is 2 to 100 — below 2 the distribution has no finite variance, and above 100 it is indistinguishable from the default at any number of trials a run draws. Published fits to financial returns land between about 3 and 10, so the three named choices span that band and a value outside it is a deliberate statement rather than a calibration. Editing this directly selects Custom.

Separately from how the series move with each other, every month's shock is by default drawn independently of the month before it (i.i.d.). Optionally opt in below to serially correlate shocks month-to-month instead: stocks can mean-revert (a strong month tends to be followed by a weaker one), while bonds and inflation can persist ("stickiness", trending for a while). Enabling a control fills the suggested strength for the selected stock, bond, or inflation preset. This does not change the expected return/inflation or volatility assumptions above — only how consecutive months relate to each other.

How strongly a month's stock return pulls back toward the mean after a shock, from 0% (none) to 90% (very strong). How to pick: leave the suggested value alone unless you have a reason not to — it is set from the preset you chose on the Investing tab. Mean reversion makes long horizons look safer than i.i.d. draws do, because a bad month is partly undone by the next one, so treat a high value as the optimistic case rather than the neutral one. If you are unsure whether to believe in it at all, run the plan with this off and again at the suggested strength: the gap is how much of your result rests on the assumption. Evidence for reversion in stocks is real but contested, which is why it is opt-in.

How strongly a month's bond return carries over into the next month, from 0% (none) to 90% (very strong). How to pick: leave the suggested value alone unless you have a reason not to — it is set from the preset you chose on the Investing tab. Persistence works the opposite way to stock mean reversion: it makes runs of good and bad months longer, so the same annual volatility produces deeper drawdowns and a wider spread of outcomes. That matters most in the first retirement years, so if you raise it, look at the Market Paths tab rather than the headline success rate.

How strongly a month's inflation carries over into the next month, from 0% (none) to 90% (very strong). How to pick: leave the suggested value alone unless you have a reason not to — it is set from the inflation preset you chose on the Investing tab. The simulator runs in today's dollars, so this shapes only the reported inflation path, not spending or returns. Run the plan at 0% and again at the suggested strength to see how the reported inflation path changes.