Retirement Scenario Modeler Open the free calculator

How This App Works

A plain-language guide to every tab, every number, and every assumption baked into these projections.

The Two-Path Model

Every projection compares two parallel futures. The Current Path reflects your accounts exactly as configured — contribution amounts, autoMax ramps, and catch-up eligibility. The Optimized Path uses the same starting balances but swaps in the contribution amounts from whichever Plan you have active in the Plans tab. When no plan is active, both paths are identical.

Both paths run through one year-by-year simulator, from today to age 100. Each year it grows the balances, pays in contributions, works out guaranteed income, inflates your spending, grosses the withdrawal up for the tax it triggers, applies required distributions, and records what is left. Every tab reads that one run. Nothing re-derives a projection of its own, which is what keeps the figures on different tabs in agreement.

The closed-form future value equation still appears in one place, the Growth tab compounding curves, where nothing is being spent yet:

FV = PV × (1 + r)ⁿ + C × ( (1 + r)ⁿ − 1 ) / r

Where PV is current balance, C is annual contribution, r is your expected annual return rate, and n is years to retirement.

Today’s dollars against future dollars. The simulation runs in nominal terms, meaning actual future dollars. You enter spending and Social Security in today’s dollars and the model inflates them for you, so a 40 year old entering $75,000 of spending is modelled as needing about $139,000 a year by 65. Most tabs report the nominal figure. The Overview tab converts back to today’s dollars by default, because its answers are meant to be compared against the spending target you typed, and it has a switch to show either.

Assumptions Tab

This is the starting point. Every number you enter here flows into every tab.

FieldWhat it does
Your Age / Spouse AgeSets how many years until retirement, which accounts are eligible for catch-up contributions, and each of your SECURE 2.0 RMD ages — those come from birth year, so partners of different ages start distributions in different years.
Your Retirement AgeWhen you stop working. Years to retirement = this − Your Age.
Spouse / Partner Retirement AgeOn their clock, so a spouse two years younger retiring at 60 stops when you are 62. Blank means they stop the same year you do. When the two dates differ the plan draws only from whoever has retired — plus anything marked Joint — and keeps contributing to the other's accounts.
Spending covered by the retired partnerOnly asked when the two dates differ. The share of household spending the portfolio must fund in those years; the rest is assumed to come from the working partner's pay, which this model does not track anywhere.
Expected Annual ReturnNominal pre-tax growth rate applied uniformly to all investment accounts. 7% is a common long-run equity assumption.
Savings Interest RateWhat cash earns, and the rate a newly created savings account starts at. Each savings account can carry its own rate; the projection blends them by balance, because a high-yield account and a branch account paying 0.4% are not the same asset. It is also what the after-tax remainder of a forced distribution earns once it is banked.
Inflation RateInflates spending, Social Security and rental income each year, everywhere in the app. Social Security receives the full rate, since its COLA tracks CPI. Pensions are the exception: they grow only by whatever COLA you set on the pension itself, so a pension with no COLA loses purchasing power every year.
Marginal Tax Rate NowUsed in tax-efficiency analysis and insight recommendations — for example, flagging whether pre-tax or Roth contributions are more advantageous.
Effective Tax Rate in RetirementEffective, not marginal. Applied to every dollar of ordinary income — pre-tax withdrawals, RMDs, pensions and the taxable share of Social Security — so it should be your whole tax bill divided by your whole income. After the standard deduction and the lower brackets that is typically 10–15% federally, well below a 22–24% top bracket. The model uses one flat rate rather than real brackets, so it is a decent approximation in the middle and drifts at the extremes: it overstates tax on modest portfolios and understates it on large ones with heavy RMDs.
LTCG RateApplied to taxable brokerage withdrawals in the retirement income tax burden estimate.
Annual Retirement SpendingIn today's dollars, and after tax. What that lifestyle costs at today's prices — the model inflates it from your current age, and grosses withdrawals up so this much actually lands in your pocket. Every tab uses this same number.
Social Security ($/yr)Your own benefit in today's dollars, as your SSA statement quotes it. Grown with a full inflation COLA and, net of the tax it attracts, offsets spending before the portfolio is touched. Also settable from the Retirement Income tab.
Spouse's Social SecurityTheir benefit and their claiming age, entered separately because they are separate entitlements on separate clocks. A spouse three years younger claiming at 67 starts paying when you are 70.
SS Claiming AgeSS income is zero in projections until this age is reached. A later claiming age creates a gap period where the portfolio covers full spending. Each partner claims on their own clock, so a spouse claiming at 70 starts when they turn 70, not when you do.

Portfolio Tab

Where you define every asset you own. Each account belongs to one tax treatment bucket:

TypeExamplesHow it grows / is taxed
Pre-tax / Deferred401(k), 403(b), 457(b), TSP, Traditional IRAGrows tax-deferred; withdrawals taxed as ordinary income. Subject to RMDs at 73 or 75 depending on your birth year — including governmental 457(b), which is not exempt.
Roth / Tax-freeRoth IRA, Roth 401(k), HSAGrows tax-free; qualified withdrawals are untaxed. No RMDs — Roth IRAs never had them, and Roth 401(k)/403(b) balances are exempt from 2024 onward.
Taxable (LTCG)BrokerageNo contribution limit; withdrawals taxed at long-term capital gains rates. Simplification: the model has no cost basis, so it applies the LTCG rate to the whole withdrawal rather than just the gain. That overstates the tax on drawing from a taxable account.
Cash / SavingsSavings, money market, high-yield savings, CDsThe one bucket that does not grow at your expected return. It compounds at its own interest rate, set per account, and its withdrawals are ordinary income rather than capital gains, because interest is. No RMDs. Cash used to be a flavor of taxable, which credited a savings account the full equity return and taxed it at capital gains rates. Both were wrong, and wrong in the flattering direction.
Defined BenefitTRS, FERS, pensionNot a balance — modeled as a guaranteed income stream starting at a specified age with optional COLA.
Rental PropertySingle family, commercialModeled as equity + cash flow. Three exit strategies: keep (rental income continues), sell at retirement, or sell now and invest proceeds.

Contribute Max (autoMax)

Checking this sets your annual contribution to the current IRS limit for that account type and adds a small ramp (+$500 × (years ÷ 2)) to approximate future limit increases. The effective annual contribution used in projections is higher than the stored dollar amount — the stored amount is just this year's limit.

Catch-up Contributions

When checked, the app calculates how many years between now and retirement fall in eligible catch-up age ranges and averages the additional contribution over the full horizon:

  • Standard catch-up (age 50+) — most plans allow an extra $8,000/yr on top of the base limit.
  • SECURE 2.0 super catch-up (ages 60–63) — 401(k)/403(b)/457(b)/TSP allow $11,250/yr instead of $8,000 for these four years.
Plans tab caveat: a plan's contribution overrides are flat numbers. They replace the autoMax ramp and the catch-up averaging rather than building on them, so a plan that sets a 401(k) to this year's limit is modeling less than leaving the account on autoMax with catch-up enabled. The Plans tab shows each account's limit and catch-up eligibility next to the slider so the difference is visible while you set it. To capture catch-up in the Optimized Path, set the higher figure deliberately, or leave the plan inactive and rely on the Current Path.

Plans Tab

A Plan is a named set of annual contribution overrides — one number per investment account. When a plan is active the Optimized Path uses those numbers instead of the Portfolio settings. You can save multiple plans and compare them head-to-head in the Scenarios tab.

Plans are useful for modeling "what if I redirect my 403(b) contribution into a Roth IRA?" or "what if I max out everything?" The Current Path is always unaffected by the active plan.

One card per investment account, each with a slider and a bar showing how much of that account's IRS limit the amount uses, plus a chip when you are eligible for standard or SECURE 2.0 super catch-up. Above them, a running estimate of what the plan is worth at retirement against your current path, so the cost of a change is visible while you make it rather than a tab away.

Overview Tab

Overview answers the three questions people arrive with, in that order: how much do I need, will I have it, and if not, what do I change.

  • What you need at retirement is solved, not estimated. It is the balance on your retirement day that funds this exact plan to age 100 with nothing further paid in, with your Social Security, pensions, taxes and required distributions all in it. That is a different number from the usual 25x rule of thumb, and almost always smaller, because the rule of thumb has no way to count guaranteed income.
  • What you will have is the projected portfolio on the same day. Rental equity is reported next to it rather than inside it: the figure you need is a portfolio number, so folding property into it would overstate how funded you are.
  • Funded percentage is simply one divided by the other.

Today’s dollars or future dollars. Every figure defaults to today’s purchasing power, which is what makes it comparable to the spending target you entered on Assumptions. Your statement will show a larger number, because inflation sits in between, so a switch at the top of the tab converts the whole page either way. Both describe the same money. The switch cannot flatter a plan: every ratio on the page compares two figures anchored to the same year, so bar widths and the funded percentage are identical in both views. Note that what you withdraw inflates by exactly the same factor as what you hold.

Your plan, end to end puts every date that matters on one age axis: when you retire, when each benefit starts paying, when required distributions begin, and if it applies, the year the portfolio runs dry. Nothing is assumed. A household with no pension gets no pension marker.

Could you stop saving reports your Coast FIRE number, the balance that would carry the plan with nothing further paid in, and the age your projected balance reaches it. The Coast FIRE tab has the full comparison against the rule of thumb.

What it looks like as a paycheck converts the whole plan into money arriving each month, split into where it comes from. It shows one bar per phase rather than one average, because the composition usually changes at least once: the years before a benefit switches on are funded almost entirely by the portfolio, and that is both the riskiest stretch in most plans and the one an average hides. Each phase also reports how much of your spending is guaranteed for life, meaning it arrives whatever markets do.

The levers answer "what do I change". Spend less, retire later, or save more, each solved independently and ranked by how little has to move as a share of the number being changed, with the smallest marked. They do not compose, so the tab asks you to take one rather than add them up. The saving figure assumes the extra goes into a taxable brokerage account, which the panel states, because the bucket changes the answer substantially: the same goal can need noticeably less into a Roth and far more into cash. A funded plan sees the same three solvers read as room to move instead: how much earlier you could retire, how much more you could spend, whether you could stop saving.

Money the IRS forces out that you do not need appears only when required distributions exceed what the plan spends. The after-tax remainder is banked as cash at your savings rate rather than reinvested, because money the IRS made you withdraw is not money anybody chose to invest. On a comfortably funded plan that compounds into a surprisingly large share of the final balance, which is the clearest argument this app can make for Roth conversions in the years before your applicable age.

Two what-if tables finish the tab. One moves your retirement date, the other your return assumption. Both move both columns, which is the point: a later retirement means more compounding and fewer years to fund, and a weaker return builds you less while also raising the balance you need, because the money grows more slowly once you are drawing on it. A table that moved only what you would have would understate return risk by exactly the amount the other column moves.

What is not here. Overview answers what the number is. How confident to be in it is a separate question, and the Monte Carlo tab is where it is answered: run a simulation there and it reports the share of thousands of random return sequences your plan survives, which is a stricter test than any single-return projection. The automatic warnings about tax concentration, bridge liquidity and pension timing are on Insights, and what your money is made of is on Growth.

Insights Tab

Runs a rules-based health check across your full setup and returns scored findings in three categories: Needs Attention (red), Watch Items (orange), and What's Working (green).

The overall score (0–100) weights bad findings at −10 pts, warnings at −4 pts, and positives at +5 pts, starting from a baseline of 50. It's a rough signal, not a financial grade — use it to find the highest-leverage improvements, not to optimize the number itself.

Checks include: tax-bucket concentration and thin Roth share, employer match left on the table, catch-up eligibility not enabled, unused contribution room, no active plan, RMD pressure in the first RMD year, whether the plan funds your spending and at what withdrawal rate, the Social Security gap, pension timing, early-retirement bridge liquidity, rental concentration, and whether your return and inflation assumptions are defensible.

The income-coverage check will not call a plan healthy on the strength of the flat-return projection alone: if the first-year withdrawal rate is above about 5.5% it is flagged regardless, because that is a plan leaning on returns arriving on schedule. The Monte Carlo tab is the fuller answer.

Growth Tab

Year-by-year balance charts for each account type, from today to retirement age. Each line uses projectYearByYear() — the same FV formula applied one year at a time so you can see the compounding curve, not just the endpoint.

Two views are shown: Current Path (your accounts as-is) and Optimized Path (active plan contributions). The gap between them, if any, is the dollar value of the contribution changes in your plan.

Coast FIRE Tab

Coast FIRE is the balance that finishes the job on its own. Past it, compound growth on what you already hold carries you to a retirement you can fund, so you still have to earn a living but you no longer have to save.

Every other calculator answers this with one closed form: take your annual spending, divide by a safe withdrawal rate to get a target, then discount that target back at a real return. That formula quietly assumes your portfolio pays for every dollar of retirement. It has no Social Security, no pension, no taxes, no required distributions and no spouse.

This tab reports that figure, because it is the one people arrive holding, and then answers the question properly: it switches every contribution off, runs your actual projection, and solves for the balance that just carries it. The gap between the two numbers is the interesting part, and it is almost entirely guaranteed income. The tab states how much, and from what age.

The solver scales what you already hold rather than topping up one account, because your pre-tax, Roth and taxable mix drives the tax gross-up and the size of your required distributions. An answer that depended on which bucket the solver happened to pick would not be an answer about your household.

A safe withdrawal rate control sits under the chart. It moves the rule of thumb only. The projection funds your actual spending year by year and never uses a withdrawal rate at all. Worth knowing that a more cautious rate asks for more money, not less: your spending is fixed, so a smaller withdrawal percentage means the same spending has to come out of a bigger pot.

One distinction the tab is careful about: a portfolio reaching zero is not the same as a plan coming up short. Money can run out in a year when guaranteed income already covers the spending, and the plan is still funded, so the two are reported on separate rows.

Retirement Income Tab

Shows what your plan actually produces in any single year of retirement: the guaranteed income, what had to be withdrawn from each account to cover the rest of your spending, the tax on it, and what is left to live on. The numbers come from one shared year-by-year projection, so they match the RMD, Scenarios and Monte Carlo tabs exactly.

The income sources in order of tax treatment:

  • Pension — the annual benefit at the pension's start age, grown by its COLA if set. Nominal, so with no COLA its purchasing power erodes. Taxed as ordinary income.
  • Social Security — zero until your claiming age, then grown with a full inflation COLA. Up to 85% is taxable as ordinary income.
  • Pre-tax withdrawal — ordinary income; the balance it comes from drives your RMDs.
  • 457(b) withdrawal — taxed like pre-tax, but with no 10% early withdrawal penalty, making it a strong bridge account. Also subject to RMDs.
  • Roth withdrawal — tax-free; no RMDs.
  • Taxable brokerage withdrawal — taxed at LTCG rates.
  • Cash / savings withdrawal — taxed as ordinary income, not at capital gains rates, because interest is ordinary income. Not subject to RMDs.
  • Rental income — cash flow from "keep" properties, grown with inflation.

Withdrawals are grossed up for tax: to spend a dollar out of a pre-tax account you have to take out more than a dollar. The model draws proportionally from every bucket, so the rate applied is the blend of the accounts the money came from.

The estimated tax burden is a rough approximation: ordinary income × retirement tax rate + LTCG income × LTCG rate. It does not account for standard deductions, brackets, or IRMAA Medicare surcharges.

RMD Tab

The IRS requires that pre-tax retirement accounts (401(k), 403(b), Traditional IRA, TSP, etc.) begin distributing a minimum amount each year once you reach the “applicable age”. These Required Minimum Distributions are calculated by dividing your account balance by a life-expectancy factor from the IRS Uniform Lifetime Table.

That age depends on when you were born. SECURE 2.0 raised it in steps: born 1950 or earlier → 72, born 1951–1959 → 73, born 1960 or later → 75. The app works out which applies from the age you entered on the Assumptions tab and uses it everywhere: the RMD table, the Overview timeline, Insights and Monte Carlo.

RMDs are fully taxable as ordinary income regardless of whether you need the money. At large pre-tax balances they can push you into higher tax brackets and trigger IRMAA Medicare premium surcharges.

The RMD tab reads the same projection as everything else, so the balance it divides is net of the spending, taxes and earlier withdrawals your plan actually incurs — not a balance left to compound untouched. The table runs to age 100 using the full IRS Uniform Lifetime Table. Roth accounts and taxable brokerage accounts are not subject to RMDs; pre-tax accounts are — including governmental 457(b). If a required distribution exceeds what you needed to spend, the excess is taxed and reinvested into your taxable brokerage rather than disappearing.

The best hedge against large RMDs is Roth conversion before they start — moving pre-tax dollars to Roth while you're in a lower bracket reduces the taxable base that RMDs are drawn from. If your RMDs don't start until 75, that's two extra low-income years to convert in.

Scenarios Tab

Side-by-side comparison of all your saved Plans against each other and against the baseline (no plan). Each plan is projected at its contribution amounts with the same assumptions, and the resulting end balances and wealth figures are displayed together.

Save plans in the Plans tab, then come here to see which contribution strategy builds the most wealth by retirement. Plans can differ by any combination of accounts — you're not limited to changing one at a time.

Monte Carlo Tab

The deterministic projections elsewhere in the app assume a steady return every year. In reality, markets are volatile — a bad sequence of returns early in retirement can permanently impair a portfolio even if the long-run average is fine. Monte Carlo simulates thousands of random return paths to answer: what fraction of futures does this portfolio survive?

How the simulation works

  1. Draw a random annual return from a log-normal distribution parameterized by your expected return (mean) and the standard deviation you set. Log-normal is used because returns can't go below −100% and tend to be right-skewed.
  2. Grow the portfolio by that return.
  3. Subtract the inflation-adjusted spending need — but first offset it with pension and Social Security income, net of the tax those owe. Only the remainder hits the portfolio, and it is grossed up for the tax the withdrawal itself triggers.
  4. From your RMD age (73 or 75) onward, enforce the IRS RMD on the pre-tax + 457(b) balance. If spending already exceeds the RMD there's no additional effect. If spending is below it, the extra is forced out anyway, taxed, and held as cash at your savings rate — money the IRS makes you withdraw is not a new investment decision. It still increases depletion risk in bad-market years, because it moves money out of a tax-sheltered account on a schedule you don't control.
  5. A simulation fails at the first year it can no longer fund that year's spending. The success rate is the fraction of simulations that never hit that point.

Steps 2–4 are the same code the Retirement Income and RMD tabs run — the only difference is that they use your flat expected return where Monte Carlo uses a random draw. Setting the standard deviation toward zero converges the simulation on the deterministic projection.

Guaranteed income offsets

Pensions and Social Security are deducted from spending before the portfolio is touched, each year:

portfolio withdrawal = max(0, spending − after-tax guaranteed income) ÷ (1 − blended tax rate)

Both respect their start ages: a pension that begins at 65 provides zero offset during ages 61–64. SS provides zero offset before your claiming age. During those gap years the portfolio covers full spending. Pension income grows by its own COLA setting; Social Security grows with full inflation. Guaranteed income is netted of its own tax before being subtracted, which is why the formula above uses after-tax guaranteed income.

Rental income from "keep" properties is treated as an inflating income floor. "Sell" and "sell-now" properties contribute their after-tax proceeds to the taxable bucket at retirement, where they can be drawn down like any other money — in every tab, not just here.

Interpreting the results

  • Success rate ≥ 90% — generally considered robust. Green.
  • Success rate 75–89% — moderate risk; consider reducing spending or adding guaranteed income. Orange.
  • Success rate < 75% — high depletion risk. Red.
  • The fan charts show percentile bands (10th / 25th / median / 75th / 90th) of portfolio balance over time — the spread is sequence-of-returns risk made visible.
  • The failure age histogram shows when portfolios deplete in failed simulations. A cluster in the first decade of retirement signals heavy sequence-of-returns vulnerability.
Important context: "Portfolio failure" doesn't mean you run out of money if you have pension or SS income. Even if the portfolio hits $0, guaranteed income continues. The real question is whether total income (portfolio + guaranteed sources) covers spending — use the Retirement Income tab to evaluate that floor.

Privacy & cookies

Your plan — balances, contributions, assumptions, everything you type — is stored in this browser using local storage. It is never transmitted anywhere unless you create an account and turn on cloud sync.

This page sets no cookies and runs no scripts beyond one line that matches your light or dark theme. In the app itself the only optional cookies are Google Analytics, used to see which features get used; they are not set unless you accept them, and the choice can be changed at any time from this page inside the app.

That is the whole model. The app that runs it is free, needs no signup, and keeps everything you type in your own browser.

Build your projection

All figures the app produces are estimates from assumptions you supply — return rate, inflation and tax rates — and are not guarantees or individualized financial, tax or legal advice. Open the app · Read the blog