Without the appointment. Without the subscription.
Your real retirement numbers. Honestly. In five minutes.
0
Success
Very strong — portfolio survives to age 90
Across 1,000 simulations of your real numbers.
Median ending balance: $2.85M.
Age 67
SS begins
Age 73
RMDs start
$36K
Tax this year
A retirement decision platform that does the work of professional software — Monte Carlo simulation,
actuarially correct Social Security, tax-aware withdrawal modeling — without
the cost, the appointment, or the account signup.
Free to calculate$79 one-time to optimizeNo subscription. Ever.
The middle is empty
Most retirement tools fail in one of two ways.
Free calculators don't take you seriously. Subscription software demands
an hour of setup before you see an answer. Both miss the largest segment
of people who just want to know where they stand.
Free + dumb
4%-rule calculators that don't engage with your situation.
They're funnels into wealth management or insurance products — not real planning tools.
Paid + complex
$144/year subscriptions that demand 30 minutes before delivering an answer.
Designed for people who enjoy financial planning as a craft. Most people don't.
Retirement Scenario Explorer
A real answer. In five minutes. $79 once if you want to go further.
Your actual numbers. Plain language. No appointment.
No subscription. No account required to calculate.
How it works
From "where do I start" to "I know exactly what to do."
Illustrative example — one sample plan, dramatized to show how the app works.
01
01 · Tell us about you
Start in plain language. No jargon.
The way you'd describe your situation to a friend is the way you can describe it to us.
We turn it into a real plan automatically — no financial vocabulary required.
Your plan
Current age
years
Household
Just meMarried
Saved for retirement
$
Target retirement age
62656770
Social Security claim age
62656770
Monthly spending goal
$/mo
Building your plan…
AI Advisor
Quick way to get started — just tell me about your situation. Where are you now, where do you want to go? I'll turn it into a real plan.
You
Got it. Let me run the numbers…
02
02 · See the answer
1,000 simulations. One real answer.
We run your actual situation through a thousand market futures — not a 4% rule, not a guess.
You see a clear verdict and the numbers behind it. The math you'd expect from professional software.
Simulating
TodayAge 70Age 80Age 90
0/ 1,000 simulations
Running…
Your result
0
Success
Solid — but bridge years thin
78% of simulations sustain through age 90.
Years 65–67 are the soft spot.
↗
$7,500/mo
Income
At goal
↗
$3.2K/mo
Guaranteed Income
SS + pension
↗
$420K
Nest Egg
$2.4M projected
↗
Age 67
SS Claiming
$2,940/mo at FRA
↗
2 years
Before Social Security
Age 65 → 67
↗
$1,470/mo
Claiming Strategy
Spouse benefit
Want to know why? Ask the advisor→
03
03 · Change the answer
Pick what matters. Smart Moves surfaces the rest.
Four retirement goals. The app reads your numbers and surfaces the moves that actually shift each one — not a generic checklist, the ones the math says will work for you. Toggle a move on and watch the projection change.
Smart Moves
Pick a retirement goal:
Retire earlierSpend moreLeave a legacyWeather a downturn
Moves that apply to your numbers
✓
Max your 401(k)
Tax-deferred
✓
Max your Roth
Tax-free growth
✓
Phase your retirement spending
Late-life draw
✓
Start an HSA
Triple tax-free
Your projection
Goal: retire earlier — same lifestyle
Stack four moves. Get years back.
Today's earliest
Age 65
→
With these moves
Age 65
Pick moves to see the impact
Projection, not prediction. Each move is modeled against your real numbers — you decide which ones fit your actual life.
04
04 · Have a real conversation
Not a chatbot. A retirement concierge.
The advisor reads your numbers, navigates the app, and proposes specific changes — you stay in control of every decision. Ask anything. Watch your plan respond.
Your plan
My Plan
Projection
Results
Stress Test
Current age
52
Retirement age
65
Social Security claim age
67
Monthly spending
$7,500
Plan updates as you change inputs.
Portfolio over timeBridge years 65–66
60708090
Age
SS Monthly
Portfolio Draw
End Balance
62
$0
$0
$510K
64
$0
$0
$575K
65
$0
$7,500
$485K
66
$0
$7,500
$405K
67
$2,940
$4,560
$365K
70
$2,940
$4,560
$310K
80
$2,940
$4,560
$185K
78
Success
Solid — bridge years thin
Retire at 65, claim SS at 67.
+$11.4K/yr
More Social Security
+$168K
Lifetime benefit
+13pp
Success rate
Recalculating…
AI Advisor
You're at 78% — solid. Ask me anything about it.
?
→Suggested change
Set Social Security claim age = 70
05
05 · Where the money flows
Where the money comes from. Where it goes.
Retirement isn't just spending down savings. Real income flows from Social Security, pensions, and your portfolio — split across living, taxes, and healthcare. See the whole picture, not a single number.
Your portfolio is one source among three — not the whole story.
Tax weight
Taxes are often the second-largest expense in retirement, ahead of healthcare.
Real headroom
See exactly where each dollar goes — not just whether you "have enough."
06
06 · Test what could break it
Honest about what could go wrong.
Real retirement risks aren't averages — they're sequences of returns, healthcare shocks, longevity. Test your plan against each one. See exactly which threats move the needle, and by how much.
Stress scenarios against your plan
Your plan91%success
Bad Start (Sequence Risk)
−0pp
drops to 91%
First 5 years as rough as 1973–77
Bad years5 yrs
1 yr3 yrs5 yrs
High Inflation Decade
−0pp
drops to 91%
8% inflation for the first 10 years
Live to 100
−0pp
drops to 91%
Money has to last 10 more years
Low Return Environment
−0pp
drops to 91%
3% returns after you retire
Long-Term Care
−0pp
drops to 91%
3 years of care from age 87
Social Security Cut
−0pp
drops to 91%
Benefits cut by 20%
Every number comes from the engine — and your advisor can show which moves soften each one, and by how much.
AI ADVISOR
→
AI Advisor
10 / 10×
I see you just stress-tested a bad start — five years as rough as 1973–77.
That drops your plan to 59%. Let spending flex instead: trim in bad years, never below $5,500 a month, and the same bad start holds at 95%. Same retirement date.
Want me to turn on spending guardrails and apply it to your plan?
07
07 · Some plans need a human
Built to be shared.
We don't try to keep everyone. We try to be the place that helps you know what you need next.
AI Advisor
10 / 10×
Running deep analysis…
01Overall assessment
Strong plan with a 91% success rate. Your bridge years are well-funded and your withdrawal sequence is tax-efficient.
02Key risks
A bad start — five years as rough as 1973–77 — would drop you to 59%. A decade of high inflation is nearly as damaging.
03Recommended moves
Let spending flex in bad years, never below $5,500 a month — after the same bad start, that plan holds at 95%, with no change to the retirement date. Consider long-term care coverage between ages 60-65, when premiums are still reasonable.
📄Analyze and export
Your Retirement Plan
Generated by RetirementScenario.com
Plan summary
91%
Success rate
65
Retirement age
$7,500
Monthly income
Projection through age 90
Analysis & recommendations
Overall assessment
Strong plan with a 91% success rate. Your bridge years are well-funded and your withdrawal sequence is tax-efficient.
Key risks
A bad start — five years as rough as 1973–77 — would drop you to 59%. A decade of high inflation is nearly as damaging.
Recommended moves
Let spending flex in bad years, never below $5,500 a month — after the same bad start, that plan holds at 95%, with no change to the retirement date. Consider long-term care coverage between ages 60-65, when premiums are still reasonable.
↓Export plan · take it to your CFP
08
08 · Stay on course
Plans go stale. Check in.
Life moves. The market moves. Your numbers move. Save a check-in whenever something changes — a raise, a spending bump, a market drop — and watch the plan hold or drift over time. The AI Advisor reads the trajectory and tells you what's actually driving it.
Your check-ins
Tracked over time
1 check-in
Success rate
82%
Sustainable spend
$7,100/mo
Nest egg at 90
$480K
Mar 2026
82%
Baseline
—
Jun 2026
87%
Maxed 401(k)
+5pp
Today
91%
Social Security at 70
+4pp
+Save a check-in
AI Advisor
Reading your trajectory
You're up 9 points since your March baseline. Both changes carried it.
What helped
Maxing the 401(k) added 5 points — your account had headroom. Claiming Social Security at 70 added another 4, with your retirement date still 65.
What's next
A bad start is still your biggest risk. Letting spending flex in bad years, never below $5,500 a month, holds the plan at 95% after one. Want me to model it?
Ask me to model another move
Prefer to watch?
One real plan, start to finish — in five minutes.
Dave, 52, gave up on retiring at 59. Watch the app take his actual numbers from a
74% plan to retiring two years earlier — and safer. Every number on screen is
computed live. Nothing is staged.
The AI Advisor that reads your plan — 25 deep analyses · 50 conversations
Smart Moves — the moves that get you to retire earlier, spend more, leave a legacy, or weather a downturn
Deep Search — ten optimizers that search your plan for the best answer: the couple's Social Security claim, the Roth Conversion Planner (conversions from retirement to your first required withdrawal, scored after tax), what your plan hinges on, solve-for-any-goal, how much you can really afford to spend, your spending guardrails, pausing work, your next home, whether two risks compound, and one-click Deep Scan
AI Plan Score — holistic plan strength beyond raw Monte Carlo
Save scenarios · compare side-by-side
PDF report — your numbers and your AI analyses, for your CFP, your family, your records
Need more AI later? Advisor Plus is $29, once, for 10 more deep analyses and 25 more conversations. Never expires.
A conversation answers one question. A deep analysis reads a whole tab of your plan, and there’s one for each:
ResultsYour whole plan: what’s working and what’s at risk, ranked by how much it matters, with an AI Plan Score.
Stress TestWhich bad scenarios actually hurt your plan, and what they have in common.
ProjectionYour plan year by year, read as phases, and where the pinch points are.
CompareThe real trade-off between the scenarios you’ve saved.
ProgressWhat has changed across your check-ins, and whether you’re drifting.
OptimizeWhere the leverage is across the whole plan, and where to leave things alone.
With Navigator, add any of them to your PDF report, where each sits next to the numbers it describes. How the AI Advisor works →
The questions worth asking
What you'll actually know.
Most retirement questions don't have rule-of-thumb answers — they have your-numbers answers. Here's what the platform helps you figure out, and why these questions are harder than they look.
The first conversation about retirement. Not the last.
Some people leave reassured.
Some go deeper into specialized software.
Some book a CFP appointment.
All three are wins.
We don't try to keep everyone — we try to be the place that helps you know what you actually need next.
CFP
Boldin
ProjectionLab
RetirementScenario
Price
$200–500 / hour
$144 / year
$109 / year
$79, once
First answer
3+ weeks (book)
1–2 hours setup
30+ min setup
5 minutes
AI Advisor
Human (limited)
Bolted-on, shallow
None
Yes, deep
Privacy
Full disclosure
Account required
Account required
No account
Best for
Complex life events
Planning as a craft
Serious FIRE workflow
A clear first answer
Choose us if you want clarity fast — no subscription, no account, no waiting room.
Why you can trust this. And how we keep it that way.
The math
Every formula. Every assumption. Every source.
A single retiree over 65 with $100K in brokerage gains and $40K in Social Security owes about $6,800 more in federal tax than a calculator that ignores how those gains make Social Security taxable. We model the IRS rules properly. Details like that matter.
No account, no copy of your plan — your inputs stay in your browser, and we never sell them or use them to train AI.
State impact, same plan
A married couple, both 65 and retiring now: $1.5M saved, $7,500/mo, Social Security from 67, planning to 92. Run the same plan in four different states:
Florida
$1.13M
No state income tax
California
$1.13M
Low bottom brackets + senior credits; Social Security untaxed
New York
$1.01M
Graduated brackets + a $20,000 retirement exclusion from 59½
Minnesota
$849K
Graduated brackets; can tax Social Security above an income line
Same inputs. Different state tax codes. About $280,000 of difference by 92. Most calculators ask for one state-tax percentage and apply it to every dollar — we run each state’s own return: its brackets, deductions and exemptions, which income it excludes, whether it taxes Social Security, and how it treats capital gains.
The engine
How we keep the math honest.
For FIRE planners
5–15 years from FIRE? You'll find what you need.
🔥Built for the FIRE-specific questions that matter.
For standard FIRE — W-2 income, 401k/IRA, brokerage, the classic accumulate-and-withdraw arc — this may be enough on its own. For deep multi-asset craft modeling, ProjectionLab and cFIREsim go further. Send us to anyone who wants a real answer without making retirement modeling a hobby.
You've been meaning to figure this out. Today's a good day.
Five minutes from where you are now to knowing where you stand.
No appointment, no signup, no subscription.
🔒 The short version: there's no account, and the retirement numbers you enter stay in your browser and we keep no copy. Two things send your numbers out, and only when you choose them: the AI Advisor and Share links. Separately, we record anonymous usage — which features you open, never a figure you typed. All of it is detailed below.
What we collect
There are no user accounts. The retirement numbers, assumptions, and scenarios you enter are stored in your browser's local storage — on your device. We never receive them and we keep no copy. We do run a server, and it holds two small things. If you buy, it stores what you purchased and how much of your AI allowance you've used — that's what makes your purchase work across sessions and devices. And we record anonymous usage, described under Analytics below. Neither one ever contains a dollar figure you entered.
What stays on your device
All of your inputs (age, savings, income, goals), all calculated results, and any scenarios you save are stored locally in your browser. Recent changes, the record of your last 20 changes to your plan that lets you go back to an earlier version, is kept there too; you can clear it any time from the Inputs tab. If you clear your browser data, that information is gone — we have no copy of it.
Payment processing
If you upgrade to Navigator, payment is processed by Stripe. We receive confirmation that a payment was made, but Stripe handles all financial data. We do not store your credit card number or billing details. You can review Stripe's privacy policy at stripe.com/privacy.
Analytics
We record anonymous product analytics ourselves rather than handing them to someone else — which features get opened, where people get stuck, and whether anything is crashing. Events are tied to a randomly-generated local UUID, not to any personal identifier, and they include a general description of your plan: whether it's for one person or two, whether you've already retired, the goal you chose, and roughly how well-funded it is. Never a dollar figure you entered, never a retirement number you typed, never an AI Advisor conversation. Raw records are deleted after 90 days. On this website we record the same kind of thing: which pages and calculators are used, whether an article was read to the end, which button led into the app, and the website that sent you here. It uses a random ID kept in your browser (no cookie), is passed to the app when you follow a link into it, and is never recorded for automated browsers.
AI Advisor data
When you use the AI Advisor, the numbers from your plan (anonymized — no name, account numbers, or institution names) are sent to our API and forwarded to Anthropic for processing. We do not log the request contents or store conversation history on our servers. Anthropic processes the request to generate the response and returns it to your browser. Their privacy practices are documented at anthropic.com/privacy.
Share links
When you click "Share Your Plan" and copy a link, the scenario inputs in your plan are encoded into a URL and sent to our short-link provider, short.io, which generates a shorter URL on link.retirementscenario.com for easy sharing. The encoded data contains only the numbers you've entered — no name, account information, or anything that identifies you. short.io may log clicks on the short link as part of their normal redirect service. You can review their privacy practices at short.io/privacy. Share links and the AI Advisor are the only two ways plan data leaves your browser, and only when you choose them.
Cookies
The app itself sets no cookies: your plan and settings live in your browser's local storage. If you arrive through a partner's referral link, our affiliate platform (Rewardful) sets a cookie holding a random referral ID so the partner who sent you is credited if you later buy — it identifies the link you clicked, never you, carries nothing you've entered, and expires after 90 days. Arrive any other way and no referral cookie is set. That cookie is not used for advertising.
Contact form and newsletter
If you submit our contact form or sign up for our newsletter, we receive your email address and any message you send. These are processed by Resend (our email provider) and stored only to enable us to respond and (for newsletter subscribers) to send periodic updates. We do not share email addresses with anyone, and you can unsubscribe from the newsletter at any time.
Third-party sharing
We do not sell, rent, or share your data with anyone, and we never will. The only outside companies that touch anything are the processors named above — Stripe for payment, Anthropic for AI Advisor requests, short.io for share links, Resend for email, Rewardful for crediting partner referrals — each doing one job and nothing else.
Children
This service is intended for adults planning for retirement. We do not knowingly collect information from anyone under 18.
Changes to this policy
If we change this policy in a meaningful way, we'll update the date at the top. The current version always lives at retirementscenario.com.
Contact
Questions? Use our contact form at the bottom of the page.
⚠️ RetirementScenario.com is a planning tool, not a licensed financial advisor. Nothing here is financial, tax, investment, or legal advice. Always consult a qualified professional before making retirement decisions.
What this tool is
RetirementScenario.com provides a retirement planning calculator and scenario modeling tool for educational and informational purposes. It is designed to help you think through retirement decisions — not to replace professional financial advice.
Not financial advice
All projections, estimates, scenarios, and outputs generated by this tool are hypothetical and based solely on the inputs you provide. They do not account for all real-world variables. Past performance of markets does not guarantee future results. We make no representation that any projection will be achieved.
No guarantee of accuracy
We work hard to make the calculations accurate, but we make no warranty that the tool is free from errors. Tax laws change. Social Security rules change. Economic conditions change. You are responsible for verifying any figures that inform real decisions.
Feature changes
Features available on RetirementScenario.com may be added, modified, removed, or improved over time as the product evolves. Features in your tier of access at time of purchase will continue to be available; new features added in the future may be made available to existing users at our discretion. We will not retroactively remove core features that you paid to access.
Your responsibility
By using this tool, you agree that: (a) you are using it for personal, informational purposes only; (b) you will not rely solely on its output for major financial decisions; (c) you will consult a licensed CFP, CPA, or other qualified professional for advice specific to your situation.
Navigator, Advisor Plus, and Advisor 365 purchases
Navigator is a one-time $79 purchase that includes 25 deep AI analyses, 50 AI Advisor conversations, and ongoing access to all paid features. There is no subscription and no recurring charge. All features available at time of purchase, plus future feature additions, are included.
Advisor Plus is an optional $29 add-on that adds 10 deep analyses and 25 AI Advisor conversations to your existing Navigator account. It stacks with any unused quota you have, and never expires.
Advisor 365 is a separate, optional one-time $79 purchase that extends AI Advisor access to unrestricted use for 365 days. It does not auto-renew. After 365 days you may choose to repurchase or revert to your standard Navigator usage limits. There is no automatic billing under any circumstance. See "AI Advisor fair use" below for the background bounds that protect the service against abuse.
We do not offer refunds after purchase, but if you have a problem, reach us via the contact form at the bottom of the page and we'll make it right.
AI Advisor fair use
The AI Advisor includes both per-tier conversation limits and per-session exchange limits. Each new conversation starts with fresh context. Free users get 3 conversations of up to 5 exchanges each (15 messages total). Navigator users get 50 conversations of up to 10 exchanges each (500 messages total). Advisor Plus purchases ($29 each) add 10 deep analyses and 25 conversations and stack indefinitely with no expiration.
Advisor 365 ($79 / 365 days) provides unrestricted AI Advisor use for the year. "Unrestricted" means your normal usage is not metered — you do not need to track or limit your message count, and you will not encounter upgrade prompts during use. The system includes fair-use bounds (per-conversation exchange caps, conversation context resets, per-IP rate limits, output length caps, and system-wide cost alerts) that run in the background to prevent abusive automated patterns; these bounds will not be encountered by normal use. We reserve the right to contact subscribers whose usage patterns suggest abuse and, in extreme cases, restrict access for accounts engaged in clearly abusive behavior. We will reach out before acting.
These limits exist to manage operating costs and ensure response quality, not to restrict legitimate use; if you have a problem, reach us via the contact form.
Intellectual property
The tool, its code, design, and content are owned by RetirementScenario.com. You may use it for personal planning purposes. You may not copy, reproduce, or redistribute the tool or its source code.
Limitation of liability
To the maximum extent permitted by law, RetirementScenario.com is not liable for any financial loss, decision, or outcome arising from use of this tool. Your use of the tool is at your own risk.
Governing law
These terms are governed by the laws of the State of Indiana, without regard to conflict-of-law principles. Any disputes arising from these terms will be resolved in the state or federal courts located in Indiana.
Changes to these terms
We may update these terms from time to time. Continued use of the tool after changes constitutes acceptance of the updated terms.
Contact
Questions about these terms? Use our contact form at the bottom of the page.
I built this because I needed it.
Why this exists
Most retirement calculators are either too simple or too complicated. The free ones miss the math that actually matters — Social Security filing strategy, spouse coordination, tax drag, sequence-of-returns risk. The professional software gets it right, but it's slow, expensive, behind a login, and built for advisors managing client portfolios — not someone who just wants to run a few scenarios on a Sunday afternoon.
So I built something in between. It's free to use. Navigator, which adds the AI Advisor and the deeper planning tools, is $79, once.
Every assumption in this tool is documented in How It Works — formulas, source data, tax brackets, Monte Carlo distribution. Nothing is hidden.
How the pricing works
The app and everything it produces — your projections, your scenarios, your Social Security analysis — is free. Navigator — $79, once — adds the AI Advisor reading your plan (25 deep analyses and 50 conversations), Smart Moves, Deep Search, saved scenarios compared side by side, the AI Plan Score and the PDF report. (If you run out, Advisor Plus is $29 and adds 10 more deep analyses plus 25 more conversations; Advisor 365 at $79 for 365 days unlocks unrestricted AI access for the year, though most never need that.) The AI costs real money to run, so I charge for it. No required subscription.
I'd genuinely rather more people use this for free than pay me. If it helps someone retire smarter, that's the point. The money keeps the lights on.
On your data
There's no account, no server storing your numbers, no database holding your plan — it lives in your browser. Two things can send your numbers out, and only if you choose them: the AI Advisor, which sends anonymized numbers to generate your reply and then discards them, and Share links, which put your numbers into the link itself (a shortened link passes through our server to our link-shortening service, which keeps the full link so the short one works). Otherwise no figure you enter reaches me — I don't even require an account.
The export is designed to be useful on its own — or as preparation for a conversation with a financial advisor.
Who built it
My name is Luke. I have a software and financial services background, and I've spent enough time around retirement planning to know what good math looks like — and what shortcuts to avoid. I'm not a financial company, a fintech startup, or a registered investment advisor. I'm someone who spent time and money solving a problem I had, and figured others might find it useful too. This is a tool I'd want to exist — so I built it.
You can also find me on Reddit as u/lnewton_me, where I'm active in r/DIYRetirement, r/Fire, r/ChubbyFIRE, and a few other personal-finance communities. If you've got a question and would rather post it publicly, that's a good place to flag me.
Get in touch
Questions, bug reports, feature requests, or just telling me how your plan looks — all welcome. Use the contact form at the bottom of the page. I read every message and reply to most.
Most retirement planning software wants a piece of you forever. We built this on a different posture. Here are the four commitments behind it.
01
One purchase. Yours forever.
Pay once. Never again.
Navigator is $79. Once. Not $79 a month. Not "with a free trial that quietly converts." The app and the AI Advisor are yours from the moment you pay. Step away for two years, come back — your purchase still works. Nothing about the tool depends on you being "active."
If you ever want more AI capacity, Advisor Plus ($29) adds it. If you want unrestricted AI for a year, Advisor 365 ($79) does that. Both are optional, both are one-time, neither auto-renews. You always know exactly what you're paying for and when.
02
We keep no copy of your plan.
No account. No copy of your plan. Nothing for us to leak or sell.
Your inputs live in your browser, not a database we control. Your spouse's name, your account balances, your real numbers — there's no account system and no server-side copy of your plan to lose, leak, or sell. We couldn't sell your plan if we wanted to; we don't keep it.
The AI Advisor sends your plan’s numbers (no names or account details) only when you ask it something, and only inside bounded retirement-domain prompts. We don't train models on your inputs.
03
No account. No login. No marketing follow-up.
Nothing to sign up for. Nothing to cancel.
You don't sign up. You don't create a password. There's no email required to use the tool, and no automated drip campaign waiting for you. Bookmark the page and your work persists in your browser. The only inbox we'd ever touch is the newsletter at the bottom of the page, which is opt-in and only sends when something material changes.
04
Open math. No black box.
Every formula documented. Every source cited.
Every formula in this tool is documented. Every assumption sourced. Every methodology decision explained. The trust framework documents 32 pre-push gates, 109 AI evals, and 55 personas tested before every release. If you ever want to know exactly why the AI Advisor said what it said, the answer is on the page.
You pay for a tool. You get a tool. You own it.
We're not building a recurring revenue stream that depends on keeping you subscribed — we're building software you can rely on whenever retirement questions come up, whether that's once a month or once a decade. Same tool. Same math. No invoices.
It's not unusual because it's clever. It's unusual because the industry stopped doing it.
The questions we actually get asked. If yours isn't here, use the contact form at the bottom of the page.
What's the difference between free and paid?
The free version gives you the full calculator: 1,000-scenario Monte Carlo simulation, Social Security optimizer, stress testing, tax-aware withdrawal ordering, Roth conversion sweet spot analysis, and the cohort benchmark. Navigator (the $79 paid upgrade) adds the AI Advisor that reads your specific numbers (25 deep analyses and 50 conversations included), Smart Moves — the moves that get you to retire earlier, spend more, leave a legacy, or weather a downturn — AI Plan Score (holistic plan strength beyond raw Monte Carlo), Deep Search — ten optimizers that search your plan for the best answer (the couple's Social Security claim, the Roth Conversion Planner (conversions from retirement to your first required withdrawal, scored after tax), what your plan hinges on, solve-for-any-goal, how much you can really afford to spend, your spending guardrails, pausing work, your next home, whether two risks compound, and one-click Deep Scan) — saved scenarios with side-by-side comparison, and PDF export. One-time purchase — no subscription required.
Is this a subscription?
Navigator is a one-time $79 payment — no recurring charge, no cancellation needed. If you ever exhaust your 25 included deep analyses or 50 conversations, you can buy Advisor Plus ($29) which adds 10 more deep analyses and 25 more conversations with no expiry, or upgrade to Advisor 365 ($79 for 365 days of unrestricted AI Advisor access, never auto-renews). Most people never need either.
What does the AI actually do?
The AI Advisor works two ways. A conversation answers a specific question about your plan, like "should I claim Social Security at 67 or 70?" or "what's my Roth conversion window?" A deep analysis reads a whole tab at once, and there's one for each: your overall plan (Results), the Stress Test, the year-by-year Projection, a comparison of your saved scenarios, your Progress check-ins, and an Optimization Review of where the leverage is. With Navigator, each can be added to your PDF report next to the numbers it describes. Free includes 1 deep analysis and 3 conversations; Navigator includes 25 deep analyses and 50 conversations, enough to run a fresh analysis each time your numbers change.
Does the AI do the math?
No. Every number you see is calculated by our simulation engine — 1,000 Monte Carlo runs, deterministic tax modeling, and actuarially correct Social Security. The AI Advisor reads those results and helps explain what they mean for your specific situation. It interprets the numbers. It doesn't produce them.
How accurate are the projections?
The Monte Carlo simulation runs 1,000 scenarios using market returns drawn at random around your return assumption (inflation varies year to year around its average, the way it has historically). It accounts for inflation, Social Security timing, tax estimates, and withdrawal sequencing. No model is perfect — tax laws change, markets surprise, and life doesn't follow a formula — but we work hard to make the math honest and the assumptions transparent. Click "See Our Math" in the footer to see exactly how every number is calculated.
How do you keep tax and Social Security figures up to date?
Every week, a script reads the IRS, Social Security Administration, Medicare and HHS publications for next year’s figures: contribution limits, tax brackets, the cost-of-living adjustment, Medicare premiums and surcharge brackets, and ACA subsidy figures. It has to reproduce this year’s figures exactly from the same documents before it reports a new one. New figures are never applied automatically: each is put into the engine and re-tested against all 55 test plans, and a release can’t go out while a data set is overdue. State tax rules are reviewed by hand each spring, once states publish. Each year’s changes are listed on What changed this year, and the full process is in the trust framework.
Can I model spending that adjusts to market conditions?
Yes — the engine supports Guyton-Klinger dynamic spending guardrails, the academic best-practice strategy widely used in the FIRE community. Instead of the static 4% rule (where you spend the same amount every year, adjusted only for inflation), guardrails trim what your savings pay by 10% when your withdrawal rate climbs 20% above where it started and raise it by 10% when the rate falls 20% below; a year's inflation raise is capped at 6%, and nothing is cut in a plan's final 15 years. Guyton and Klinger's 2006 paper found starting rates around 5.2–5.6% held up historically under these rules — higher than the 4% rule. It's opt-in: choose it in Inputs under how your spending adjusts, or try it as a Smart Move in the Leave a Legacy and Weather a Downturn lenses.
Can I model stopping retirement contributions early (Coast FIRE)?
Yes — the engine supports Coast FIRE. Set a "Stop contributing at age" in Inputs (and the parallel field for your spouse if you're a household). When that age is reached, all retirement contributions and the employer match stop, but existing balances keep compounding at your pre-retirement return through retirement age. Coast FIRE is the variant where you front-load enough savings to remove savings pressure by your mid-40s or 50s, then downshift to lower-paying or more enjoyable work — your income covers expenses, but no new money goes into retirement accounts. The appeal is the workload change, not the timeline change: you typically still retire at 60–65, but the back half of your career changes. Default is 0 (no Coast — contribute right up to retirement); opt in by setting an age between your current age and retirement.
What if my situation changes — can I come back and update my numbers?
Yes — that's the whole point. Your plan changes when your numbers do, so the tool is designed to be revisited. Update your salary, contributions, retirement age, or anything else, and the projections recalculate immediately. Navigator is lifetime access, so come back as often as you need. Most people return when they get a raise, change jobs, sell a house, get an inheritance, or just want to check in on whether they're still on track.
Is my data saved anywhere?
No. Your inputs are stored in your browser's local storage — on your device. There are no user accounts and no server-side copy of your plan. Two things can send your numbers out, and only if you choose them: the AI Advisor, which sends anonymized numbers (no names or account info) to generate your response and then discards them, and Share links, which put your numbers into the link itself (a shortened link passes through our server to our link-shortening service, which keeps the full link so the short one works). Otherwise we never receive your numbers. If you clear your browser data, the information is gone.
Is it safe to use the AI Advisor?
Yes. The AI Advisor sends only the numbers from your plan — no name, no account numbers, no institution names. We don't log the request contents, and no conversation history is stored on our end, so there's no account and no saved transcript to breach. That's the real difference from a personal ChatGPT or Claude.ai account, where your conversations are saved and tied to your login.
Is this financial advice?
No. RetirementScenario.com is an educational planning tool. The projections are based on your inputs and historical assumptions — they are not a guarantee of any outcome. Before making major financial decisions, please consult a licensed CFP or other qualified professional.
No account, no copy of your plan — your inputs stay in your browser, and we never sell them or use them to train AI.
Why this is more accurate than other calculators
Most free calculators assume the same return every single year. This one runs 1,000 simulations of your retirement — each with randomized market returns drawn from a realistic distribution. Your success rate reflects all of them, including the bad sequences that derail real retirements.
Most free calculators ignore taxes on withdrawals. This one models the IRS provisional income formula for Social Security taxability, long-term capital gains rates on brokerage draws, and tax-aware withdrawal ordering — taxable first, then pre-tax 401(k), then Roth last. The order you withdraw determines how much goes to the IRS vs. your retirement.
Most free calculators apply the same tax rate every year regardless of your income that year. This one stratifies long-term capital gains across the 0%, 15%, and 20% brackets based on your other income each year, includes brokerage gains in the AGI calculation that determines how much of your Social Security is taxable, applies state tax to home sale gains above the IRS Section 121 exclusion, and inflates federal brackets and the standard deduction forward each year to match how the IRS actually adjusts them. These details matter — a single retiree with $100K in brokerage gains and $40K in Social Security pays roughly $5,000 more in tax than a calculator that ignores the LTCG-into-AGI interaction would suggest.
Most free calculators use a generic Social Security estimate. This one adjusts your benefit for your actual claiming age using SSA adjustment factors, models spousal benefits correctly, and accounts for the bridge period your portfolio has to cover before SS kicks in.
How we keep this math reliable
The calculations below are documented section-by-section. Before any of them reach you, the engine runs through a verification discipline designed to keep your projections accurate and stable.
Reproducibility. Every change is tested. We don't ship around failing tests.
Real-scenario coverage. The math is exercised against realistic retirement profiles — early retirees, FIRE plans, household and single, multiple states — not toy examples. Every profile re-runs when the engine changes.
No silent drift. Your projection won't change without us telling you. Every code change is locked against a regression gate that fails on any output drift, so we can't accidentally shift your numbers. When we do deliberately change calculator fidelity — a tax law update, a methodology refinement, a bug fix — we document it. You'll never see your retirement numbers shift without knowing exactly why.
Source-vs-shipped parity. What you run in your browser is verified against the version we test in development. If they ever diverge, we catch it before you see it.
About the AI Advisor
The AI Advisor is powered by Claude (Anthropic) and has full visibility into your retirement plan — your numbers, your gap, your Social Security strategy, your highest-impact moves, and your earliest retirement age. It doesn't give generic advice. Every response is grounded in your actual inputs.
Your data is sent to the AI model only to generate your response, then discarded. No account required. No data retention, and your numbers are never used to train models.
The AI Advisor is a thinking tool, not a licensed financial advisor. It interprets your calculator results and surfaces things worth considering. All output is for informational and educational purposes only — it is not financial, tax, investment, or legal advice. For decisions involving significant money, consult a qualified CFP, CPA, or estate attorney. Many people find this tool helps them have a much better conversation when they do.
How the Math Works
1
📈 Pre-Retirement Accumulation
We grow each account (401(k), Roth, savings, brokerage) separately using the future value of an annuity-due formula, accounting for both your existing balance and ongoing contributions.
r = pre-retirement return, n = years to retirement, counted from today to the birthday you retire on: with your birth month entered, the first year is just the months left until your next birthday, and inflation to retirement is counted the same way. Lump sums (home sale, inheritance) are grown to retirement age. Household plans grow each spouse independently then combine at your retirement date. In retirement, a household plan runs to whichever spouse lives longer — set each spouse's life expectancy separately — and switches to survivor economics at the first death: spending drops to your survivor goal (default 75% of your monthly goal), the larger of the two Social Security checks is kept (the smaller stops; the deceased’s check follows the survivor rules: it can start at 60, is reduced if taken before full retirement age, and when they die before claiming it is their full benefit plus any delayed credits earned before the death), tax filing becomes single, and the deceased spouse's pension continues at the survivor percentage you set for it (50% by default) while the survivor's own pension continues in full. When the two life expectancies differ, this materially changes projected legacy and survivor planning.
2
🏛️ Social Security Adjustment
Your benefit is calculated from your Full Retirement Age (FRA) benefit and adjusted for when you claim. Claiming before FRA permanently reduces it; delaying past FRA increases it up to age 70.
Adjusted benefit = FRA benefit × SSA factor(claimAge)
SSA factors: ~0.70 at 62, 1.00 at FRA (67 for most), 1.24 at 70. This tool assumes a Full Retirement Age of 67, which applies to anyone born in 1960 or later. If you were born before 1960, your FRA is slightly lower (66 for born 1943–1954, graduating to 67 by 1960) — enter your actual FRA benefit to keep the math accurate regardless. Spousal benefit is the higher of their own record or 50% of your FRA benefit. Benefits are inflation-adjusted to retirement-year dollars. Stress-testing for legislative shortfall: the SSA Trustees project the trust fund hitting depletion in 2033, after which scheduled benefits would be reduced by ~20-23% absent congressional action. To stress-test your plan against this, set the "SS Benefit Confidence" slider to 80% (or another haircut you find plausible) — the engine will scale all SS benefits accordingly.
3
💸 Sustainable Monthly Income
Your Monthly After-Tax Income headline is the spend level your projection actually sustains through your full retirement horizon. We compute it by bisecting the deterministic projection: probe a spend amount, run the year-by-year simulation, check whether the portfolio depletes; raise the probe if it survives, lower it if it depletes. The result is the maximum monthly spend you can fund without running out — a readout of the projection itself, not a separate model.
Find max S where projection(monthlyGoal = S) does not deplete
Bisect within $25; up to 10 iterations to converge
The Monte Carlo success rate (Section 6) tells you the probability of that draw working across 1,000 different market scenarios — use the deterministic headline for capacity, the MC rate for confidence. The 4% rule was calibrated to a 30-year horizon with ~95% historical survival; it was not designed for someone retiring at 55 with a 35+ year horizon, and it doesn't account for guaranteed income streams (Social Security, pensions) that change the math materially. The bisection answer respects your actual horizon and your actual income streams.
4
🧾 Tax Calculation
We model post-retirement taxes using 2026 federal brackets (inflation-adjusted forward to each future year), state-specific tax codes for all 50 states plus DC (see Section 19), and the IRS Publication 915 provisional income formula for Social Security taxability. Tax is computed on your full income each year — pension, taxable SS, ordinary 401(k) draws, and long-term capital gains on brokerage draws. Brokerage gains count in your AGI when determining how much of your Social Security is taxable, which materially affects retirees with significant taxable accounts. Both the deterministic projection and Monte Carlo simulations use tax-aware withdrawal ordering and stratified LTCG. The provisional-income thresholds themselves ($25,000/$34,000 single, $32,000/$44,000 married) are held FIXED in future years, matching the statute — Congress has never inflation-indexed them, which is why a growing share of Social Security becomes taxable over a long retirement — while tax brackets, the standard deduction, and capital-gains breakpoints do index forward. The engine also applies the 3.8% Net Investment Income Tax on realized gains and cash interest above the statutory $200,000/$250,000 MAGI thresholds — which the law also leaves unindexed — the additional standard deduction from age 65 (per person, indexed, and correctly reduced to the single amount in survivor years), and ordinary income tax on high-yield savings and bridge-reserve interest in the year it accrues (interest the model previously grew tax-free). For tax years 2025–2028 the engine also applies the temporary OBBBA senior deduction: $6,000 per person aged 65+, reduced by 6% per person of income above $75,000 single / $150,000 married — amounts the statute fixes, so they are never inflation-indexed here. It is a below-the-line deduction: it lowers taxable income but never changes Social Security taxability, NIIT, Medicare IRMAA, or ACA subsidy income. It expires after 2028 and the projection drops it then automatically.
Provisional income = ordinary income + LTCG + 50% of SS
SS taxability tiers (single):
≤ $25k → 0% of SS taxable
$25k–$34k → up to 50% of SS taxable
> $34k → up to 85% of SS taxable
Baseline tax = federal + state on (pension + taxable SS + part-time)
Marginal tax = federal + state + LTCG on portfolio draws beyond baseline
401(k) draws are ordinary income. Brokerage draws are taxed at stratified long-term capital gains rates (0% / 15% / 20%) — the rate depends on where the LTCG sits relative to your other income that year, not a flat 15%. Roth withdrawals are tax-free. Savings (HYSA) withdrawals are also tax-free — principal is treated as already-taxed cash; interest is assumed taxed annually as it accrues, consistent with real-world HYSA behavior. Tax brackets and the standard deduction inflate forward each year (when "Inflation-adjust brackets" is enabled in your inputs), matching the inflation applied to your spending and balances — so your real tax burden tracks consistently across the projection. The tax estimate shown each year combines baseline tax (owed on guaranteed income alone) plus marginal tax (additional tax caused by any portfolio draw or RMD). For households with strong guaranteed income — pensions, multiple SS streams — baseline tax can be $20-50K/yr even when no portfolio draw is needed. Many free retirement calculators skip this entirely, inflating end balances by $30-80K/yr. IRMAA (Medicare Part B + D Income-Related Monthly Adjustment Amount): when MAGI exceeds bracket thresholds (2026: $109K single / $218K MFJ for tier 1, scaling up to $500K / $750K for tier 5), Medicare premiums add a per-person surcharge ranging from ~$1,148 to ~$6,936/yr. We model these surcharges in healthcare cost for any year a household member is 65+ and the household's MAGI crosses a tier threshold; thresholds inflate at general CPI to track real-world bracket creep. The surcharge follows the IRS two-year lookback: each year's premium is priced on the income you realized two years earlier (the first two Medicare years, and the years after a spouse's death or work stopping, use current income, as SSA allows). Brokerage cost basis: long-term capital gains tax is computed on the realized GAIN portion of a brokerage withdrawal — not the full withdrawal amount. The engine tracks your brokerage cost basis (original principal + ongoing contributions + any lump sums routed to brokerage) and computes realized gain as withdrawal × (1 − basis/balance) when you draw. Pre-May 2026 the engine simplified by treating full draws as gain, which over-stated LTCG tax for plans with substantial taxable brokerage; the May 16 update corrected this and shifted projections up for brokerage-heavy plans by $40K–$550K at life expectancy. Dividends and interest: each year the brokerage pays out a yield (1.5% of its balance by default, set in Inputs) that is taxed that year at qualified-dividend rates (the part of a yield above 1.5% is treated as bond and money-market interest, taxed as ordinary income), plus the 3.8% surtax where it applies; dividends are not netted against capital losses, and states tax them at their ordinary rate; it counts toward the marketplace-credit and Medicare-surcharge income tests, uses 0%-bracket room before any gain harvest, and is reinvested, raising the cost basis. Before retirement only the basis rises: that tax is paid from your paycheck, which the plan does not model. State tax runs through each state's own return (see Section 19); Maryland and Indiana county taxes are included at a statewide average. Other city and local income taxes are not modeled.
5
📋 Required Minimum Distributions
The IRS requires minimum annual withdrawals from pre-tax accounts. Under SECURE 2.0, your start age depends on your birth year: 73 if born 1951–1959, 75 if born 1960 or later. The amount is your projected balance divided by an IRS life expectancy factor that decreases each year.
RMD = account balance / IRS distribution period
Start age: 73 (born 1951-59) or 75 (born 1960+)
We use the IRS Uniform Lifetime Table (2022+) and SECURE 2.0 Act start-age rules. When your spouse is more than 10 years younger, the IRS Joint and Last Survivor table applies instead (it divides by more years, so each required withdrawal is smaller); the plan assumes your spouse is the sole beneficiary of your accounts, and uses the Uniform table again after a spouse dies. After a death the survivor takes required withdrawals from the whole account on their own age and start date, as a spousal rollover allows. The more-than-10-years test uses birth years when you have entered them. RMDs stack on top of SS and portfolio draws, potentially pushing you into higher brackets. Roth accounts have no RMDs. When your RMD exceeds your spending need (common for households with strong guaranteed income), we compute the marginal income tax on the overage using your year-specific bracket position — including any capital gains bracket cliff your other income causes — pay the tax, and reinvest the after-tax remainder into your brokerage account, preserving wealth that would otherwise be unnecessarily drawn down. Household plans run each spouse's share of the pooled pre-tax balance on that spouse's own clock: your share follows your birth-year start age and your attained age's divisor, your spouse's share follows theirs — so an older spouse's required withdrawals begin when THEY reach their start age, which can be years before yours. The share split is fixed at retirement in proportion to each spouse's pre-tax balances (draws and conversions deplete both shares proportionally — a simplification; real households may drain one spouse's accounts first). Two disclosed edges: a spouse already past their start age before the projection begins has their pre-retirement RMDs unmodeled (forced draws start at the first retirement year), and the survivor analysis keeps the surviving person's own schedule without modeling inherited-IRA elections.
6
🎲 Monte Carlo Simulation
We run 1,000 simulations of your retirement, each with randomized annual returns drawn from a log-normal distribution. The success rate is the percentage where your portfolio survives to life expectancy. Results are hypothetical and do not reflect actual investment results — they depend on your return and volatility assumptions.
Annual return = exp(μ + σ × Z) − 1 where Z ~ N(0,1)
μ = ln(1 + your return), σ = volatility, so the typical simulated future compounds at exactly your return (the way published forecasts quote returns) and volatility widens the spread around it. Random draws use the Box-Muller transform. Inflation is drawn too: each simulated future carries its own inflation path — persistent year to year (a spike is followed by elevated years, not an instant return to normal), mean-reverting to your stated rate, and mildly negatively correlated with the same year's market return, so the joint bad year — poor returns while prices rise — genuinely occurs in the sample. Your stated rate is the average year: the model is centered so its long-run average equals your rate, which puts the typical year a little below it while occasional spikes run well above, as in real history. Market returns do not rise with inflation in the model, so a long stretch of high inflation lowers real returns, a cautious assumption. Each year’s spending is taken at the start of the year and what remains grows, the convention the historical back-test and most planners use. Growth before retirement is not simulated: savings compound at your pre-retirement return every year, and the 1,000 simulated futures start on retirement day. The process constants (persistence 0.67, shock 2.11%/yr, return correlation −0.30, floored at −1% deflation) are fitted by ordinary least squares from the same 1948–2025 CPI-U series the Historical Back-Test replays — public data, standard method — and an independent published fit of the same data lands on the same numbers. The year-by-year projection table deliberately stays at your stated rate: its job is one legible future you can check by hand; the Monte Carlo's job is the thousand around it. The High Inflation Decade stress scenario shifts the process to average 8% (or the rate on its slider) for the first 10 years of retirement, then lets it ease back to your rate, with its variance intact — the way the 1970s actually behaved — and the Historical Back-Test replays actual year-by-year CPI-U joined to the same years' real market returns. 85%+ is a common benchmark for 30-year retirements — for longer horizons (40+ years), many planners target 95%+. Default volatility (σ) is 12% — consistent with a balanced 60/40 portfolio. You can adjust this in the Inputs tab under Return Assumptions. Higher volatility widens the range of outcomes and lowers your success rate; lower volatility narrows it. Savings (HYSA) balances are NOT subject to market volatility in the simulations — they grow at your entered savings rate deterministically each year, since cash doesn't experience equity drawdowns. This matters for plans with significant cash positions: many calculators (including ours, prior to April 2026) accidentally subjected cash to market swings, distorting both upside and downside scenarios. Limitation: returns are modeled as independent year-to-year using your fixed mean and volatility assumptions. If future market conditions differ significantly from your inputs, outcomes will differ. Use the stress test and try lower return assumptions to understand your plan's sensitivity.
7
🤖 AI Plan Score
When you run a deep AI analysis, the success ring updates from a raw Monte Carlo percentage to a Plan Score — a holistic assessment that weighs your simulation results alongside factors the Monte Carlo doesn't model: sequence-of-returns vulnerability during your bridge period, Social Security timing risk, account concentration, and the sustainability of your spending assumptions.
Plan Score = f(MC success rate, sequence risk, SS timing risk, account mix, spending sustainability)
A plan with 95% Monte Carlo success but significant sequence-of-returns exposure during an 8-year bridge period may score 85 — not because the math changed, but because the AI identified risks the simulation masked. The score uses the same health labels as the AI analysis: Excellent, Strong, Solid, At Risk, Critical. If you haven't run a deep analysis, the ring shows the raw Monte Carlo success rate.
8
🏦 Account Withdrawal Ordering
Each year — both in the deterministic projection and in every Monte Carlo simulation — withdrawals follow a fixed, tax-aware order: any earmarked bridge reserve first (during the gap before SS starts), then savings (zero tax — already-taxed cash), then brokerage (long-term capital gains rates, stratified across 0/15/20% brackets), then pre-tax 401(k) as ordinary income, then HSA at age 65 or later (treated as ordinary income for non-medical use, like a traditional IRA), then Roth last at zero tax. The HSA pays Medicare premiums tax-free from 65; health-insurance premiums before Medicare are not an eligible HSA expense, so the plan keeps the HSA growing until then (out-of-pocket costs, which are eligible at any age, are not modeled separately, and the whole Medicare premium is treated as eligible although a Medigap share is not). As accounts deplete the tax burden shifts naturally — we model this rather than holding the Year 1 account mix fixed for 40 years. RMDs from your applicable start age (73 or 75 — see Section 5) are enforced as a 401(k) floor on top of voluntary draws. This conventional order is not always the lowest-tax one: drawing some pre-tax money in the low-income early years can pay less tax over a lifetime, so the Taxes card also runs your plan drawing Roth first and drawing evenly from every account, and shows the engine’s result for each.
When your RMD exceeds your spending need, we compute the marginal tax on the excess at your year-specific bracket position and reinvest the after-tax remainder into your brokerage account — preserving wealth that would otherwise be unnecessarily drawn down. This is the same approach used in professional planning software; most free calculators either skip RMDs entirely or treat the full RMD as consumption. After portfolio depletion, the projection shows what you can actually fund from remaining sources (guaranteed income), not your original goal — so the "spending" line reflects reality rather than wishful thinking.
Bridge reserve mechanics. The reserve can be funded from explicit cash savings (the "Cash reserve" input) OR earmarked from expected one-time inflows (home sale proceeds, inheritance, severance, other lump sums). Each source has its own toggle in Inputs — flipping the earmark routes that money to the bridge bucket instead of the general portfolio. The reserve grows at your high-yield savings rate (not equity returns), reflecting that it's parked in HYSA-style cash — protecting it from sequence-of-returns risk during the highest-risk withdrawal window. Bridge reserves not consumed during bridge years remain available as a last-resort source after all other buckets are exhausted (the engine tracks them through to end-of-plan rather than orphaning unused balance).
9
📉 Phased Spending (Retirement Smile)
Research shows retirees spend more in early retirement (active years), less in the middle (slower pace), and more again late in life (healthcare). Every plan models three distinct spending phases — Go-Go, Slow-Go, and No-Go — each running independently through every simulation. You can adjust each phase amount and the age at which the next phase begins.
Annual draw = phase spend × (1 + inflation)ᵗ per simulation year
New plans default to Go-Go (100% of monthlyGoal), Slow-Go (85%), and No-Go (75%) — fully customizable in the Inputs tab. Setting all three phases equal models flat spending across retirement. monthlyGoal is a derived weighted average across the three phases, not a fixed monthly draw.
10
📊 Return Rate & Inflation Assumptions
The model uses a single pre-retirement return rate and a single post-retirement return rate for your entire portfolio. This is a deliberate simplification — a full plan would model equity/bond allocation with correlated assets. For scenario modeling, the user controls these assumptions directly, which is more honest than hiding them inside an allocation model.
Healthcare costs inflate at the higher of your general inflation rate plus 2% or 5%, reflecting the historical premium of medical inflation over general CPI (typically 5-7%). This applies automatically — you don't need to enter an inflated healthcare estimate. If your actual healthcare spending will track general inflation more closely (some Medicare recipients), you can lower your monthly healthcare input directly. To see how much your result depends on these assumptions, open “How much do assumptions matter?” on the app’s Results tab — the same plan under cautious, popular-planner and market-history assumptions.
Why these defaults.Growth after you retire, 5%: near the middle of the 2026 ten-year forecasts from Vanguard, J.P. Morgan, Schwab and Morningstar for a balanced mix (about 4.7–6.4%). We don’t use history’s higher average because those forecasts are lower for the decade ahead, and running short at 85 is much harder to fix than having extra. Growth while you’re saving, 7%: closer to history than to today’s forecasts, because people usually hold more stocks while saving. It leans optimistic, and the app says so on the Inputs tab. Inflation, 3%: a little above the roughly 2.5% forecasts, because the things retirees spend on, healthcare especially, tend to rise faster. A slight, stated lean toward caution. Random markets, not just history: history holds only a few separate 30-year stretches, and every crash in it was followed by a recovery. Random simulations (see Monte Carlo Simulation) test bad stretches history never happened to produce; the Historical Back-Test sits beside it so you can compare. A plan that runs to 90 or beyond: planning only to average life expectancy leaves half of people running short (see Planning Horizon). Every one of these is yours to change on the Inputs tab.
11
🎯 Smart Moves & the Lens System
Smart Moves are concrete actions you can apply to your plan to improve specific outcomes — earning a part-time bridge income, converting to Roth, delaying Social Security, harvesting capital gains, and others. The Results tab organizes them into four lenses, each measuring impact in the currency that matters to that goal: Retire Earlier (how much younger can you stop?), Spend More (how much more can you sustain?), Leave a Legacy (how much larger is the median ending balance?), and Weather a Downturn (how much higher is the survival rate under stress?). Click any move to see its individual impact in the active lens; toggle a move on to apply it to your plan and see the live effect on every other metric.
Per-lens metric (each computed via a dedicated engine scan):
Retire Earlier: youngest age sustainable at 85% Monte Carlo success
Spend More: additional $/month sustainable at 85% MC success
Leave a Legacy: median end balance at life expectancy (today's dollars)
Weather a Downturn: Monte Carlo success rate under a 5-year bear market at retirement
Each move's impact is measured against your CURRENT plan (baseline), not against other selected moves. The "See if this combined plan works" button at the bottom of each lens runs a unified Monte Carlo with all selected moves applied together — capturing interaction effects (e.g., part-time bridge income + Roth conversion timing + delayed SS) that aren't visible from individual impact deltas summed. Some moves are lens-aware: spend-reduction moves are excluded from the Spend More lens (contradicts intent); retirement-deferral moves are excluded from Retire Earlier (same reason); gain harvesting only appears when bridge years exist. The AI Advisor can recommend specific moves in conversation and deep-link you to the relevant lens with the move pre-toggled — useful when you want to explore a specific strategy without manually scanning all four lenses.
12
🔗 Combined Moves
When you tick several Smart Moves, the lens re-runs its own question — earliest age, highest spending, largest legacy, or odds in a downturn — on your plan with every ticked move applied together. Moves that interact (retiring later and delaying Social Security, bridge income and Roth conversions) are measured jointly, never added up.
Result = the lens’s own search run once on (your plan + all ticked moves)
A single move shows its own figure. Nothing changes your plan until you apply it.
13
📅 Earliest Retirement Age
Ignores your entered retirement age. Scans candidate ages 50–75, runs 750 Monte Carlo simulations at each, and returns the earliest age that hits 85% confidence. When moves are applied, each move's override is recomputed at the candidate age — so bridge sizing, SS windows, and other age-dependent overrides are accurate for each age tested, not pre-baked from your entered retirement age.
Find min age ∈ [50,75] where MC(inp with overrides at age) ≥ 85%
750 sims per age balances scan speed with accuracy. The 85% threshold is fixed as a common benchmark. For very long retirements (40+ years), a higher target like 90–95% is more appropriate.
14
🎯 SS Optimal Claim Age
Scans Social Security claim ages 62–70 and finds the age that best fits your specific scenario. For early retirement plans, near-term income is weighted more heavily because the bridge period cost is real. For normal retirement timing, lifetime benefit optimization dominates.
This is a heuristic that finds a good answer for most scenarios — not a full actuarial NPV analysis. A rigorous breakeven calculation would account for joint life expectancy and mortality tables for married couples. For high-stakes SS timing decisions, specialized tools or a CFP are worth consulting.
15
🔑 Roth Building Strategies
We model three lifetime phases of building Roth assets: direct Roth IRA contributions while working, the Roth conversion sweet spot during your bridge years, and backdoor + mega backdoor Roth for high earners locked out of direct contributions. Each phase has different rules, eligibility, and tax treatment.
Backdoor: $7.5k or $8.6k catch-up per spouse, gated on MAGI > $165k single / $246k married
Mega: user-supplied amount up to $46k/yr, plan-dependent
Conversion sweet spot: min(bracket headroom, IRMAA headroom, LTCG bracket-cliff headroom)
Backdoor and mega backdoor amounts are sourced from after-tax savings, so we deduct them from your brokerage contribution to avoid double-counting. The pro-rata rule applies if you have existing Traditional IRA balances — we surface this as an informational flag rather than modeling the tax cost precisely (would require knowing your trad IRA balance). When you set an annual Roth conversion amount, the engine routes that amount from 401k to Roth each bridge year (until the 401k is exhausted), computes the marginal income tax using your year-specific bracket position, and pays the tax from savings or brokerage. Conversions show up in your projection as a 401k → Roth movement and reduce future RMDs. The three phases address different lifetime windows: direct contributions during income years, conversions during low-income bridge years, and backdoor when you're income-gated out of direct contributions. LTCG bracket-cliff handling: when you have significant taxable brokerage drawing in the same year, the sweet spot calc also checks the LTCG 0%/15% bracket boundary — a conversion that pushes your ordinary income high enough to spill long-term capital gains from the 0% bracket into 15% is bracket-cliff territory, and the sweet spot conservatively backs off below that line. This prevents the sweet spot from recommending a conversion amount that triggers an unexpected 15% LTCG tax on your brokerage withdrawals in the same year.
Roth conversion ladder (FIRE framing). The FIRE community refers to a multi-year conversion sequence as a "ladder" — converting a deliberate amount each bridge year, then withdrawing seasoned conversions to fund pre-59½ retirement. Each year's conversion starts its own IRS 5-year clock for penalty-free principal access (separate from the contribution and earnings 5-year rules). The engine models the conversion side year-by-year — amount, tax impact, future-RMD reduction — and the sweet-spot calc above helps size each rung. The engine doesn't enforce the withdrawal-side 5-year clock, so anyone running a true ladder needs to track each conversion's seasoning themselves and pair the strategy with a bridge reserve to cover the first 5 years before any conversion is withdrawable.
16
📊 Cohort Benchmark Comparison
The Compare tab includes a Median Saver in Your Cohort benchmark — automatically matched to your age band, income group, and household type. The benchmark uses cohort-appropriate balance, contribution rate, and Social Security benefit, but mirrors YOUR retirement goal and structural assumptions — so the comparison answers "if I had what a median saver has, would my plan still work?" rather than "can a median saver fund a synthetic 75% replacement target?" (the latter produces 0% success for most cohorts and isn't useful).
Balance: SCF 2022 mean ÷ 2.0 (mean→median) × age scaling factor
Social Security: SSA hypothetical scaled worker mapped to per-spouse income
Goal & assumptions: mirrored from your plan
Household split: balance and contribution scaled by your earnings split (handles SAHM-rejoiner and single-earner-household patterns)
Sources: (1) Federal Reserve Board, "Changes in U.S. Family Finances from 2019 to 2022" (October 2023), Box 1 Table A — household-level mean retirement balances by income percentile group, working families ages 35-64 with retirement accounts (combined IRA + DC); (2) SSA Office of the Chief Actuary, Actuarial Note 2025.3 (June 2025) — hypothetical scaled worker AIMEs already account for real career arcs from the Continuous Work History Sample, with PIAs computed using 2024 bend points and the standard 90/32/15 progressive formula; (3) Center for Retirement Research at Boston College, Issue Brief 23-25 — published median 401(k)+IRA balances by age band for working households, used to calibrate the age-progression factors. The benchmark is anchored to published, household-level data — no per-individual synthesis. The mean→median conversion uses the ~2.0× ratio observed between SCF's published mean ($331k for 35-64 working savers) and CRR's published median ($204k for 55-64 working savers with a 401(k)).
17
🏠 Lump Sum Tax Handling
Home sales, inheritances, and other expected lump sums each get different tax treatment based on real-world IRS rules. The amount that lands in your brokerage is the after-tax net, not the gross.
Taxable gain = max(0, profit − Section 121 exclusion)
Home sale net = profit − (taxable gain × 15% federal LTCG)
− (taxable gain × your state rate)
Exclusion: $250,000 single / $500,000 married
Inheritance: arrives untaxed (stepped-up basis)
Other lump: routed gross — enter your expected after-tax amount
Home sale: We apply the IRS Section 121 primary residence exclusion ($250K single / $500K married) and tax the excess at 15% federal LTCG plus your state's capital-gains rate. The 15% federal rate is an approximation — your actual rate could be 0% (very low total income that year) or 20% (very high), but 15% is the standard rate for typical retirees. Most states (CA, NY, NJ, MA) tax LTCG at ordinary income rates, so applying your state rate to the gain is conservative and matches how most state tax codes work. Section 121 requires meeting the IRS ownership and use tests (lived in home as primary residence at least 2 of the last 5 years). If you live in a no-state-tax state (FL, TX, NV, WA), set state tax to 0% in your inputs and only the federal portion applies. Inheritance: Generally not subject to income tax under stepped-up basis rules — the recipient's cost basis is reset to the fair market value at the decedent's date of death, so liquidating immediately produces zero capital gain. We model inheritance as arriving untaxed. (Federal estate tax only applies to estates above $15M individual / $30M married in 2026; if you expect that, enter the after-estate-tax inheritance amount.) Other lump sum: Treated as a generic windfall routed at face value. If your expected lump is taxable (severance, deferred comp, lottery, business sale gain), enter the after-tax amount you expect to receive.
18
🌪️ Stress Test & Sequence-of-Returns Risk
The Stress Test tab models specific, named risks rather than abstract market volatility. Each scenario card runs 1,000 Monte Carlo simulations with one stated change applied to your plan — nothing hidden. The SS Cut card models exactly your SS reduction; it does not also lower your return assumption or shorten your retirement. Moves (working longer, saving more, claiming later) are not stresses; they live in Smart Moves on the Optimize tab.
Per scenario: MC(your inputs with one override) × 1,000 sims
Projection stress band: same engine as MC, with the first 5 years compounding to history's worst five years after inflation (1973–77, about −28%)
Stress Test cards — what each one changes:
Bad Start (Sequence Risk) — the first 1–5 retirement years at 1973–77's average pace after inflation (about −6% a year), then ordinary markets
High Inflation Decade — inflation at the slider's rate for 10 years, then the plan's rate
Stagflation — inflation at the slider's rate AND a 4.5% portfolio return before inflation (your own return if lower), both for 10 years, then the plan's rates
Low Return Environment — the post-retirement return, for the whole plan
Historical Back-Test — the plan replayed on real history (70/30); the share of start years that last
Social Security Cut — every benefit reduced by the slider's percent
Tax Rate Increase — state income tax raised by the slider's points, retirement income included (Social Security keeps its treatment)
Sell in a Down Market — the sale price falls by the slider's percent; selling costs, the mortgage payoff and the capital-gains tax are re-run on the lower price (a plan with only a sale-profit figure has its proceeds cut)
Stop Working Early — retire at the slider's age (contributions end then), optional part-time income to the planned age as its own stream; part-time work you planned still starts when planned
Career Break — no contributions for 1–5 years from the slider's age, living costs and health cover from savings, then back to work
Emergency Withdrawal — a one-time expense of the slider's amount this year, paid like any life event (savings, brokerage, Roth, then 401(k), taxed as income)
Gray Divorce — both people's accounts and pensions, the home-sale money and any planned home split 50/50, a single plan, spending cut by the slider's percent
Forced Early SS Claim — Social Security claimed at the slider's age
Expected Money Falls Short — future inheritances and windfalls at the slider's percent
Supporting Family — a monthly amount for 1–15 years from today, rising with inflation
Healthcare Costs — pre-65 premiums and Medicare raised by the slider's percent; optionally less of the marketplace credit
Live to 100 — the longer-lived person reaches the slider's age
Long-Term Care — a care event at the slider's monthly cost
Persistent Spending — every later spending stage held at the first, plus the slider's percent
The stress band on the Projection chart shows what happens if you retire into a 5-year bear market (sequence-of-returns risk). It uses the same calculation engine as the deterministic projection and Monte Carlo — same per-account sequential drawdown, same tax math, same Roth conversion modeling — and only differs in its first 5 retirement years, which compound (in the middle path) to history's worst five years after inflation for a 70/30 portfolio — 1973–77, about −28% — with the usual year-to-year swings. After that, returns are ordinary; no recovery bounce is added. For most people this is the most important stress test in the tool: a bad market in early retirement, when your portfolio is largest and you're drawing down, is far more dangerous than the same bad market 15 years in. Plans that look healthy under normal Monte Carlo can show dramatically lower survival rates under sequence-of-returns stress, especially if heavily weighted toward equities. If your stress band looks much worse than your Monte Carlo result, that is the model telling you something true about your specific plan — not a glitch. Common responses: delay retirement by 1-2 years, reduce early-retirement spending, or turn on spending guardrails.
19
🗺️ State Tax Modeling
Most calculators ask for a single state tax rate and apply it to every dollar of retirement income. State tax codes are far more varied than that. Pennsylvania doesn't tax pensions, or IRA withdrawals from age 59½. Hawaii excludes employer pensions but still taxes 401(k) withdrawals and Roth conversions. Six states can tax Social Security: Montana as the federal return does, and Minnesota, New Mexico, Rhode Island, Utah and Vermont only above an income line (from about $80,000 for a Vermont couple to $150,000 in New Mexico). Twenty-four states exclude part of retirement income once you reach a set age, usually up to a dollar cap and often only below an income limit — Georgia, for example, excludes up to $65,000 per person from 65, and New Jersey up to $100,000 for a couple under its income limits. Nine states apply preferential rates to long-term capital gains. And states with graduated brackets tax a modest retirement income at a lower rate than a large one, after their own deductions and exemptions, not the federal ones. We model 51 jurisdictions individually using their actual structure — when you pick your state in Inputs, the engine looks up the right rules and applies them year-by-year through your entire projection.
For each jurisdiction: { brackets, deductions, exemptions, credits, taxesSS, retExcl, ltcgRate }
9 states with no income tax:
AK · FL · NH · NV · SD · TN · TX · WA · WY
10 states fully exclude retirement income (401k, IRA, pension):
AK · FL · IL · NH · NV · SD · TN · TX · WA · WY
4 states partially exclude (employer pensions only):
AL · HI · MS · PA
24 states exclude part of retirement income, by age and income limit
(each spouse's exclusion covers their own income; MT, SC and VA age deductions count against joint income):
AL · AR · CO · CT · DE · GA · IA (55+) · KY · LA · MD · ME · MI · MO · MS · MT · NJ · NY · OK · PA · RI · SC · VA · WI · WV
6 states can tax Social Security (5 only above an income limit):
MN · MT · NM · RI · UT · VT
9 states with preferential long-term capital gains rates:
AR · AZ · MO · ND · NM · SC · VT · WA · WI
Verified against authoritative sources (Tax Foundation 2026, PolicyEngine-US,
Kiplinger, state revenue departments) as of 2026-10-03.
Concrete impact — a married couple, both 65 and retiring now, with $1.5 million saved ($1.2 million in a 401(k), $300,000 taxable), spending $7,500 a month, Social Security of $2,800 and $2,000 a month from 67, 5% returns and 3% inflation, planning to 92: they end with about $1.13 million in Florida, $1.13 million in California, $1.01 million in New York and $849,000 in Minnesota. California lands next to Florida at this income because its lowest brackets, its senior credits and its Social Security exemption leave a modest retirement income lightly taxed; a single average rate would have hidden that. Each state is taxed the way its own return works: the state's graduated brackets, its own standard deduction, personal exemptions and age-65 extras, its credits, and — where they exist — its high-income recapture (New York, Connecticut, Arkansas) and federal-tax deduction (Alabama, Missouri, Oregon). Bracket and deduction amounts rise with inflation only in states whose law indexes them; elsewhere they stay fixed and real bracket creep is modeled. Checked against PolicyEngine-US on 546 sample households. Documented simplifications: Maryland and Indiana county income taxes are included at a statewide average (3.1% and 1.8% of state taxable income); other local income taxes are not modeled — most of them (Philadelphia, Detroit, Ohio and Kentucky cities) tax wages only, so they matter mainly in your working years, while NYC and Ohio school-district taxes also reach retirement income; itemized deductions are not modeled (the state standard deduction is always used); Washington's capital gains tax (7% on gains above about $278K a year, 9.9% on the part above $1 million) is not modeled. Federal tax modeling is unchanged from Section 4. The state and federal pieces compose: federal first, then state on the relevant income depending on the state's rules. Source data: PolicyEngine-US 2026 parameters and the Tax Foundation's 2026 State Individual Income Tax Rates and Brackets, plus the Kiplinger State-by-State Guide to Taxes on Retirees and each state's revenue department for the Social Security and retirement-exclusion specifics.
20
🌾 Gain Harvesting (0% LTCG Bracket)
During your bridge years, if your taxable income drops low enough, long-term capital gains can be "harvested" at 0% federal tax — sell appreciated brokerage holdings and immediately rebuy them to reset your cost basis upward, locking in the gain at zero tax cost. This eliminates future tax on those harvested gains. The "Harvest gains" Smart Move enables this in your projection.
0% LTCG bracket cap (2026, inflation-adjusted forward each year):
Single: ~$49,450 of total taxable income (ordinary + LTCG combined)
Married: ~$98,900 of total taxable income (ordinary + LTCG combined)
Harvest amount per year = min(0% bracket headroom, unrealized brokerage gain)
The 0% LTCG bracket is one of the cleanest tax wins in retirement planning, but it's only available when your other taxable income is low — bridge years before Social Security starts. When the harvest move is enabled, the engine each year checks: (1) your projected taxable income for the year (post-deduction); (2) the remaining headroom under the 0% LTCG bracket cap; (3) your unrealized brokerage gain (balance − basis). Whatever fits gets harvested — basis steps up, no federal tax owed on the harvested portion. State tax may still apply depending on your state (most states tax LTCG at ordinary rates without a preferential 0% bracket; the eight that DO have preferential LTCG rates are honored). The move only fires when there's meaningful headroom and meaningful gain to harvest — it doesn't bother with sub-threshold amounts where the bookkeeping wouldn't change the projection. Pairs well with Roth conversions in the same bridge years: both strategies use the same low-income window to convert future tax burden into present-zero tax. The conversion sweet spot calculator (Section 15) and the harvest move are complementary — the sweet spot stops before pushing LTCG into the 15% bracket, leaving room for the harvest move to fill the rest of the 0% bracket.
21
🛡️ Guyton-Klinger Dynamic Spending Guardrails
An opt-in dynamic spending strategy that adjusts annual spending based on portfolio performance instead of using a fixed inflation-adjusted withdrawal. The strategy applies two rules: "capital preservation" cuts spending when your withdrawal rate climbs too high in a bad market; "prosperity boost" bumps spending when your rate drops too low after a good run. An optional third rule from the same paper skips the year's inflation raise after a year the portfolio lost money, while you are withdrawing more than your starting rate. Guyton and Klinger's 2006 paper found starting rates around 5.2–5.6% held up historically under these rules (a 65% stock portfolio), higher than the static 4% rule. Your spending phases (Go-Go / Slow-Go / No-Go) still apply: the rules move the whole spending curve and keep each planned step between phases.
initialWR = the first retirement year's goal (in that year's dollars) × 12 / nest egg (auto-derived when you enable; user can override)
upper guard = initialWR × (1 + band/100)
lower guard = initialWR × (1 - band/100)
For each year N ≥ 2:
prevWR = (previous year spending + this year's housing payments) / investable portfolio at start of year
if prevWR > upper guard AND more than 15 years of the plan remain:
spend = previous year spending − adjust/100 × portfolio share // capital preservation
[no inflation adjustment applied this year]
else if prevWR < lower guard:
spend = previous year spending × inflation_factor + adjust/100 × portfolio share // prosperity boost
else if skip-raise rule on AND last year's portfolio return < 0 AND prevWR > initialWR:
spend = previous year spending // inflation rule: raise skipped, never made up
else:
spend = previous year spending × inflation_factor // baseline
if spending floor set:
spend = max(spend, 12 × (floor + any mortgage your goal includes) × inflation since today) // optional floor in today's $ on everyday spending (housing is paid on top), never above your goal
survivor years (household plans): the rules run on what the survivor spends — previous spending × (survivor goal ÷ couple goal) — and a floor never lifts it above the survivor goal
portfolio share = spending plus this year's housing payments (a mortgage or rent, upkeep changes) minus guaranteed income after tax (Social Security, pensions, other income), between 0 and spending — the part the portfolio pays; with no guaranteed income it is all of spending, the paper's case
inflation_factor = this year's price level ÷ last year's on the same path: the simulated inflation in the Monte Carlo, history's CPI in the back-test, the entered rate in the projection; capped at 1.06 (a 6% raise at most, as in the 2006 paper, never made up later).
Default parameters: band = ±20%, adjustment = ±10% (Guyton + Klinger 2006), no floor — cuts compound with no bottom unless you set one.
Year-1 spending is your first spending phase (your go-go amount × 12 × inflation); the rules then move your whole spending curve up or down, keeping each planned step between phases (a step to the next phase is never read as a market signal). Rules fire starting year 2 based on the prior year's withdrawal rate, measured at your first phase's spending level. Because of that, the rules judge your go-go years as if that spending continued, so they can cut a little sooner in those years and raise a little more later on. The investable portfolio (for the WR denominator) excludes bridge funds (earmarked home-sale net, inheritances, other lumps) because those are pre-allocated for the bridge period and not part of the long-term investment portfolio the strategy is meant to govern. The rules apply throughout retirement, including bridge years, except that no cut is made once 15 or fewer years of the plan remain, as in the 2006 paper. Bridge years front-load withdrawals by design, and the rules read that as danger: on plans whose Social Security starts 3 or more years after retirement, expect cuts during the bridge that later good years may not restore. The Inputs panel warns about this.
SMART MOVES — guardrails are offered as a move in the Leave a Legacy and Weather a Downturn lenses, started at your plan's own first-year withdrawal rate. They are left out of Spend More and Retire Earlier: guardrails reach a higher spending figure or an earlier age by cutting spending in bad years, which is not the question those lenses ask.
LIVED EXPERIENCE UNDER GUARDRAILS (Results card) — when Dynamic Spending is active, the Results tab surfaces a dedicated card showing what the strategy actually looks like across simulated retirements. Three-tier severity on the "Years below target" tile (default text under 30%, amber 30–50%, red ≥50%) gives an at-a-glance read on how often spending falls below your stated monthly goal. The "Worst-10% spending floor" tile surfaces a concrete dollar gap and percentage below your goal — making the floor's lived meaning legible at a glance. A bad-sim narrative above the spending trajectory chart names the actual cut-fire ages from your worst-lived-experience surviving simulation ("In a tough sequence, cuts fired at ages 61, 62, 63, 64, and 68 — 7 years below your stated goal, with 4 of those consecutive"). Picks the surviving sim with the most below-target years so you read a real lived-experience story, not a worst-case hypothetical.
The FIRE community references this strategy as "Guyton's guardrails." Reference: Guyton, J. T., and Klinger, W. J. (2006). "Decision Rules and Maximum Initial Withdrawal Rates." Journal of Financial Planning. See also Pfau (2010) "Safe Savings Rates" and Kitces (multiple articles) for the post-2008 lower-yield critique.
PERCENTAGE OF SAVINGS — the other flexible spending rule (Inputs → How your spending adjusts). Based on the Bogleheads variable percentage withdrawal method: each year the portfolio pays the level amount that would spend it down to zero by age 100 if it earned your own expected return after inflation, applied to what the portfolio is worth that year. That amount is everything taken from savings that year: taxes, healthcare and housing (a mortgage or rent) come out of it, and your spending is what is left plus your guaranteed income after tax. Formula: draw = balance × r ÷ ((1 − (1 + r)^−n) × (1 + r)), the start-of-year payment, where r = (1 + post-retirement return) ÷ (1 + inflation) − 1 and n = years from this age to 100 (or to five years past the plan's end, if later), this year included. Because r is your own expected return after inflation rather than the Bogleheads table's asset-class returns, the percentages differ from the published table. Spending follows the market, so the success rate is usually very high — spending falls when markets do; the card leads with typical and worst-year spending instead. Your phases pause while it is on. Taxes are only known after the year's withdrawal, so each year estimates them from the year before; a year when taxes jump (Social Security starting, taxable accounts running out) can take somewhat more or less, and the next year's amount, recalculated from the actual balance, corrects for it. One-off costs you list separately are paid on top. Savings rarely run out; a spending floor makes it more likely. An optional spending floor holds spending up at the cost of success. Tools that search for a spending level (Spending Shape, Spending Guardrails, the Solve-for-Goal spending lever, Spend More) step aside, because your goal no longer sets spending.
RESEARCH-COMMUNITY CRITIQUE (calculator's honest framing) — the Guyton + Klinger 2006 paper calibrated against historical data through ~2005, when stock valuations (Shiller's CAPE / cyclically-adjusted P/E ratio) and bond yields sat in a meaningfully different regime from today's market. Subsequent research has raised valuation-based concerns about whether those historical safe-start rates transfer cleanly to high-CAPE starting environments: Pfau (2010, 2012, multiple) finds that high-CAPE start years materially compress safe withdrawal rates across historical replays; Karsten Jeske's "Big ERN" Safe Withdrawal Rate series (2017+) extends the analysis to longer (40–60 year) retirements common in FIRE planning and concludes the historical 4–5% rules-of-thumb may overstate safety for early-retiree windows. Users with sub-3.5% effective withdrawal rates have substantial buffer regardless of this debate; users at 4–5% are operating in the contested window where the GK strategy's historical defensibility is genuinely debated in current academic literature. We surface the rules and the lived-experience tradeoff; we are not committing a position on whether GK guardrails will provide the same results forward as they did historically.
WHAT THE CALCULATOR DOES AND DOESN'T DO WITH CAPE — your specific start-year CAPE (Shiller's cyclically-adjusted P/E ratio) is the empirical variable the Pfau + Big ERN bodies of work argue determines whether the 2006 paper's range is conservative or aggressive at your retirement year. The engine does not read your start-year CAPE and does not fold it into any recommendation — the rules run as the 2006 paper wrote them, starting from your own first-year withdrawal rate. We deliberately don't take a position on whether today is a high-CAPE environment because that reading changes year-over-year, requires picking + citing a specific CAPE source, and the conservative-end anchor's defensibility doesn't depend on the answer. If you want to interpret the cap against today's valuation environment, the cited Pfau and Big ERN work is the place to start that reading.
22
🏝️ Coast FIRE
An opt-in workflow for users who plan to save aggressively until their existing balances will compound to their retirement target — then stop contributing and "coast" (keep working but with no new savings going in) the rest of the way to traditional retirement. The math is the same compound-growth formula running all retirement projections; the workflow change is splitting the future-value calculation into two phases: a contribution phase (current age → coast-end age), then a growth-only phase (coast-end age → retirement age).
Two-phase future value at retirement:
contribYears = max(0, contributionEndAge − currentAge)
coastYears = max(0, retirementAge − contributionEndAge)
// Phase 1: balance + annual contribution (with catch-up logic if applicable)
balanceAtCoastStart = fvWithCatchup(
currentBalance, baseContrib, catchupContrib, return,
currentAge, contributionEndAge, superCatchupFlag
)
// Phase 2: growth-only compound from coast-end to retirement
finalBalance = balanceAtCoastStart × (1 + return)^coastYears
Applied independently to each retirement account (401(k), Roth IRA, brokerage, HSA) for the user and the spouse. Sentinel: contributionEndAge = 0 means no Coast — engine reduces to standard fvWithCatchup with the full contribution window.
When Coast FIRE is active for a party, the engine stops ALL retirement contributions for that party at the coast-end age — 401(k), Roth IRA, brokerage, HSA, and the employer match (employer match is contribution-linked, so it ends when contributions end). Catch-up contributions still apply DURING the contribution window if the party is 50+ (the wrapper passes the truncated window to fvWithCatchup, which handles catch-up logic internally). The defaults are zero — Coast is opt-in. Most users will keep contributionEndAge = 0 (and spouseContributionEndAge = 0), which preserves the conventional "contribute right up to retirement" behavior with byte-identical engine output. Out-of-range values are handled gracefully: a coast-end age before currentAge collapses to "no contributions from now" (just compound existing balances); a coast-end age at or past retirementAge reduces to sentinel behavior. SMART MOVES INTERACTION — when Coast is active, the Smart Moves workshop filters contribution-boost moves (max 401(k), max Roth, employer match, catch-up routing, backdoor Roth, mega backdoor Roth, HSA contributions, and spouse equivalents) from the applicable lists across all four lenses. They don't make sense as recommendations when the user has explicitly opted to stop contributing. Non-contribution moves (SS timing, Roth conversions, spending discipline, gain harvesting) still apply normally. WHAT THIS DOESN'T MODEL — Coast FIRE changes what happens to your retirement accounts, not your income or your spending. The engine assumes you're still working through retirement age (your wages cover expenses); it just doesn't direct any portion of those wages into retirement accounts after the coast-end age. If your real-world Coast involves a meaningful salary cut, edit yourSalary directly to reflect it. WHY THIS WORKFLOW — Coast FIRE is widely discussed in the FIRE community as a less-extreme version of FIRE: instead of front-loading enough savings to retire at 45, you front-load enough to remove savings pressure by 45 and let compound growth carry you to 60–65. The workload change matters more than the timeline change — Coast lets people downshift to lower-paying, more enjoyable work without retirement-math anxiety. High earners: from 2026 a worker whose salary is over $150,000 must make catch-up contributions as Roth (SECURE 2.0), so the engine counts that person's 401(k) catch-up, including the ages 60–63 super catch-up, as Roth 401(k) money.
23
☕ Barista FIRE — Post-Retirement Wage Income
An input for modeling part-time work income during the retirement window — the FIRE variant where retiring from a career doesn't mean retiring from all wage income. You enter an annual wage amount and the age range it covers (start age → end age, both inside your retirement window). During those years, the wage reduces the portfolio withdrawal need and stacks on top of any other ordinary income for tax purposes.
The interactions that matter for FIRE planning. Tax bracket. Barista wage is ordinary income and stacks with portfolio draws and SS — a high enough wage can push you into a higher bracket and squeeze the Roth conversion sweet spot (Section 15) during the same years. Social Security earnings test. If you claim SS before your Full Retirement Age and your barista wage exceeds the annual earnings limit ($24,480 in 2026, adjusted each year), the SSA reduces your benefit $1 for every $2 over the limit. If this applies to your plan, model the reduced benefit by lowering the "SS Benefit Confidence" slider accordingly. IRMAA. Barista wages count toward MAGI when 65+, so they can push you across an IRMAA tier and add Medicare premium surcharges (Section 4 covers the bracket mechanics). ACA subsidies. Pre-65, MAGI determines marketplace subsidy eligibility — a barista wage that crosses the cliff can substantially raise out-of-pocket healthcare cost. What this doesn't model. FICA tax on the wage itself (~7.65% W-2 / 15.3% self-employed) is not subtracted from the wage you enter — use your expected after-FICA take-home if precision matters. Employer 401(k) match during barista years isn't separately modeled; if your barista job offers a match, fold it into your savings rate. Why this workflow. The FIRE community widely treats Barista FIRE as a hedge — partial wage income reduces sequence-of-returns risk in the early retirement window and lets people retire from their career years earlier than full-FIRE math requires.
24
🏥 Healthcare Bridge — Pre-Medicare Cost Modeling
The window between retirement and Medicare eligibility (typically retirement age → 65) is one of the most under-modeled costs in early retirement. Employer coverage ends, COBRA expires after 18 months, and an ACA marketplace plan becomes the realistic option for most households — at premiums driven by household MAGI relative to the federal poverty level. The engine treats this bridge as a first-class input rather than rolling it into general spending, because the dollar exposure is large ($15k–$30k+/yr per adult is typical for full-cost marketplace plans without subsidies) and the MAGI interaction creates real planning leverage that disappears once Medicare starts.
Pre-Medicare healthcare cost per year:
inflated_cost = monthly_healthcare_input × 12 × max(general_inflation + 2%, 5%)^yearsFromToday
(inflated from today through retirement, not just one year forward — fixed May 2026)
Post-65 IRMAA surcharge (per Medicare-eligible household member):
Triggered when MAGI > tier_threshold; 5 tiers in 2026
Tier-1 thresholds: $109K single / $218K MFJ
Tier-5 thresholds: $500K single / $750K MFJ
Surcharges: ~$1,148 to ~$6,936/yr per person, on top of base Medicare premium
Thresholds inflate at CPI
ACA premium-credit cliffs are modeled per state, refreshed annually with IRS / CMS data.
The mechanics that matter across the bridge. Pre-65 cost input. Monthly healthcare goes into Inputs as a dollar figure; the engine inflates it year-over-year at the higher of general inflation + 2% or 5% (medical inflation has historically run 5–7%, well above CPI). The runway from today to retirement is fully inflated, not just one year forward — pre-fix (May 2026), plans with long timelines under-stated pre-Medicare cost by 50%+. ACA subsidy and the cliff. ACA marketplace premium tax credits scale with household MAGI; the engine tracks the per-state cliff thresholds and refreshes them annually. The Cliff Proximity Gauge on the Taxes card shows live MAGI position vs. the ACA cliff and the five IRMAA tiers — so you can see whether a Roth conversion or gain-harvest in a given bridge year pushes you across. IRMAA at 65+. Once a household member is Medicare-eligible, MAGI above the tier-1 threshold triggers Part B + Part D surcharges, applied per person crossing the threshold (Section 4 covers the tier-by-tier mechanics; thresholds inflate at CPI to track real-world bracket creep). The bridge planning question. Which bracket-management strategies — Roth conversions (Section 15), gain harvesting (Section 20) — make sense in the bridge years? Both lower future RMDs and IRMAA exposure, but both raise current MAGI and can shrink ACA subsidies if you're still pre-65. The Cliff Proximity Gauge exists for exactly this tradeoff. What this doesn't model. COBRA (the 18-month employer-plan continuation) isn't a distinct path — if you plan to use COBRA before the marketplace, enter the COBRA premium for those years. State Medicaid expansion variations (eligibility at low MAGI differs by state) aren't modeled. Long-term care premiums are modeled separately under Inputs → Life Events → Long-Term Care, not in this healthcare-bridge mechanic. Medigap and Part D plan selection aren't optimized — the IRMAA surcharge applies on top of whatever baseline Medicare premium you've factored into your monthly input. Why this matters. Pre-65 healthcare is one of the most-cited reasons FIRE-leaning households delay retirement, and the most mis-estimated line item in early-retirement budgets. Modeling it explicitly — with the ACA cliff and IRMAA cliff visible together — turns "is healthcare going to wreck my plan?" into a question the math can actually answer.
25
🕰️ Historical Back-Test
Replays your plan against the ACTUAL year-by-year market returns and inflation from a past retirement-start year, drawn from Robert Shiller's canonical dataset, 1928–2025 (2023–2025 extended with his method from public monthly data; S&P 500 nominal total return, 10-year Treasury nominal total return, CPI-U inflation). This is the Bengen (1994) and Trinity Study (1998) methodology that originated modern withdrawal-rate research — decades before stochastic Monte Carlo was widely available. Each year’s spending comes out at the start of the year and what is left earns that year’s return, the convention used by Bengen, the Trinity Study, FIcalc and cFIREsim. (The Monte Carlo and the projection use the same start-of-year timing.) Surfaced two ways on the Stress Test tab: a Historical Back-Test card (one of five named eras, cohort-survival ring) and the Historical Robustness Workshop (full-range exploration, every eligible start year + stock allocation).
Per retirement year t (0 → yearsInRet):
marketRet[t] = stockAllocPct × stockNominal[startYear + t]
+ (1 − stockAllocPct) × bondNominal[startYear + t]
inflAt[t] = cumulative product of (1 + CPI[startYear + i]) for i = 0..t−1
state = buildInitState(inp, calcRetirement(inp))
for t in 0..yearsInRet:
simYearMC(state, sim, inp, c, t, marketRet[t], null, inflAt[t])
// Deterministic — same plan + same start year → same outcome
survived = !state.depleted
Cohort SR for an era's rolling window W of start years:
cohortSR = (count of starts in W where survived) / |W| × 100
Start years too recent for a full retirement are replayed through the last year of data and marked 'so far': the workshop shows their balance at the end of that year in today's dollars, beside your plan's own projected balance at the same age. They are not counted in any survival rate.
COHORT SR vs MONTE CARLO SR — Both express probability on the 0–100 scale, but they measure different sample spaces. Monte Carlo SR is the fraction of 1,000 stochastic-sample futures where the plan succeeds (random draws from a log-normal distribution). Cohort SR is the fraction of historical start-year cohorts where the plan would have survived. Neither is "more correct." Monte Carlo explores tails that never historically occurred (its left tail is wider than history); historical replay captures mean reversion that the MC model doesn't have access to. How close the two land depends mostly on the return you assume: if your assumption is lower than what history actually delivered, the replay will look better than the simulation, and the reverse if it is higher. For thin-margin plans (4%+ WR, 30+ yr retirement) historical replay is where dramatic divergences appear: Bengen famously showed that the 1966–1973 cohort broke at 5% WR while later cohorts survived at 6%. METHODOLOGY COMPLETENESS — Investment buckets (401(k), Roth, Brokerage, HSA) grow at the historical year's actual market return. Spending goal, Social Security, pensions with COLA all scale via historical CPI-U. Tax brackets (IRMAA, LTCG) inflate via the historical sequence × pre-retirement constant rate. HYSA + Bridge Cash buckets grow at the historical year's inflation rate (real return ~0% — matches Shiller's long-run T-bill empirical regularity; floored at 0% nominal to prevent shrinkage during deflation). Slightly conservative in eras where T-bills genuinely paid above inflation (e.g., 1980s) but unbiased on average. This closes the methodology seam that previously existed where cash buckets grew at the user's modern HYSA assumption regardless of era. ERA_WINDOWS CURATION — Five canonical eras, each a rolling window bracketing the named stress event with starts on either side: Great Depression 1929 (window 1928–1933, 6 starts), 1966 Bear Market (1965–1969, 5 starts), Stagflation 1973 (1969–1976, 8 starts — the canonical FIRE break window), Dot-Com Bust 2000 (1999–2003, 5 starts), Financial Crisis 2008 (2007–2010, 4 starts). References: Bengen, W. P. (1994). "Determining Withdrawal Rates Using Historical Data." Journal of Financial Planning. Cooley, P. L., Hubbard, C. M., & Walz, D. T. (1998). "Retirement Spending: Choosing a Sustainable Withdrawal Rate" (the Trinity Study). Shiller dataset: http://www.econ.yale.edu/~shiller/data/ie_data.xls.
26
📋 Future Expenses
Your monthly goal handles ongoing living costs — housing, food, transport, healthcare, leisure. Future Expenses is a separate list for the lumpier outflows that arrive at specific ages: a daughter's wedding at 68, four years of college help from 58, a kitchen remodel at 75, a car loan's payments to 72. You enter each in today's dollars and the engine inflates it to each year it fires — or mark it "Fixed amount" and the typed figure is charged exactly, never inflated: the right treatment for a contract price (a loan payment, a lease). An entry can be one-time or repeat — every year through a chosen age (a payment: tuition, a loan), or every few years (a repeating lump sum: a new car every 7 years, a roof every 15). Up to 15 entries. Ongoing lifestyle costs still belong in your monthly goal.
Per expense entry e = {label, amount, age}:
if e.age ∈ [currentAge, lifeExpectancy]:
yearsToExpense = e.age − currentAge
inflatedAmount = e.amount × (1 + inflationRate/100)^yearsToExpense
cascade: savings → brokerage (via _drawBrok) → Roth → 401(k)
else: silently skip
Multiple entries at the same age are processed in array order. Out-of-range entries (age < currentAge or > lifeExpectancy) are skipped without crashing.
The cascade reuses the same withdrawal order as the home purchase deduction (§17 Lump Sum Tax Handling) — savings first (no tax friction), then brokerage with basis-adjusted gain tracking (the engine applies the same _drawBrok cascade helper used everywhere else), then Roth (no tax), then 401(k). This isn't tax-perfect for every individual situation (tax on the 401(k) portion would be assessed in the year of draw at your marginal rate), but it produces the structurally correct cash flow and follows the same conservative ordering every other lump-sum deduction uses.
UI-MANAGED ONLY — Future Expenses is the only DEFAULTS field in the app that the AI Advisor explicitly cannot modify via APPLY. The AI has full READ access to your list (it can reference "your $30k wedding at 68" in narrative) but cannot add, edit, or remove entries on your behalf. The list is yours: you stay in control of what counts as a planned one-time expense and what doesn't. This is enforced two ways: server-side (futureExpenses is intentionally excluded from the AI's fields[] catalog in the chat prompt) and client-side (the applyToPlan central pipeline drops any futureExpenses field from inbound APPLY changes before committing). If you want the AI's help thinking about a planned expense, ask it conversationally; the AI will discuss the trade-off and point you to the Future Expenses panel in Inputs → Life Events to add the entry yourself.
WHAT THIS DOESN'T MODEL — Ongoing LIFESTYLE costs (annual vacations, ongoing parental support, predictable medical co-pays) still belong in your monthly goal — use spending phases for those. But a FIXED-TERM recurring cost (college tuition over four years) is a PAYMENT — entered once as an amount per year with a last-payment age — and a purchase that comes back (a new car every 7 years) is a REPEATING LUMP SUM, entered once with its gap; the engine draws each occurrence in the year it fires, priced in that year's dollars. By default an expense is paid in the usual withdrawal order. You can name the account that pays first (cash savings, brokerage, Roth or 401(k)/IRA), and the usual order covers anything it can't. HSA and 529 money can't be named, so HSA-only medical costs and 529-paid tuition follow the usual order. Since August 2026 the 401(k) portion of a draw is charged its real tax in the year of the draw — the engine withdraws enough extra to cover the tax bill itself. The list cap is 15 entries (raised from 10 in August 2026); that's an architectural limit, not a research recommendation — most retirement plans don't need more than 5–10 entries to capture material outflows.
HOW TO USE IT WELL — Estimate in today's dollars; let the engine handle inflation. Be conservative on amount: $35k for a wedding rather than $25k unless you really have it dialed in. Be specific on age: "sometime in my 70s" isn't actionable — pick a specific year. Run Monte Carlo before and after adding expenses to see how your plan absorbs them — if a $30k expense at 70 visibly drops your success rate, that's the model telling you the expense is straining your plan and you may want to budget for it in advance (more savings now, smaller monthly goal in retirement, or accepting the trade-off honestly).
27
🎁 Qualified Charitable Distribution (QCD)
A Qualified Charitable Distribution is a direct gift from a Traditional IRA to a qualified charity, allowed once you're 70½. Unlike a normal charitable deduction, a QCD is EXCLUDED from your income entirely — it never appears as taxable income in the first place. It counts toward your Required Minimum Distribution tax-free, and because it keeps your income (and therefore your MAGI) lower, less of your Social Security is taxed and you stay further from the Medicare IRMAA surcharge cliffs. The honest trade-off: the donated principal leaves your estate, so it lowers your legacy. Two inputs in the Tax section — a fixed annual amount, or “give my entire RMD to charity” (which tracks the RMD as it grows year over year).
Per year, computed before the RMD step and the IRMAA MAGI check:
target = qcdGiveFullRmd ? thisYearRMD : (qcdAnnual × inflation_factor) // qcdAnnual in today's $
eligible = age ≥ 70 AND (qcdGiveFullRmd ? thisYearRMD > 0 : qcdAnnual > 0)
qcd = eligible ? min(target, QCD_LIMIT × inflation_factor, IRA balance) : 0
One value feeds three channels:
(1) IRMAA MAGI proxy: magiRMD = max(0, projectedRMD − qcd) // QCD-satisfied RMD excluded
(2) RMD step (73+): IRA balance −= qcd // to charity, tax-free, leaves estate
taxableRMD = min(IRA balance, max(0, RMD − qcd)) // only the unsatisfied RMD is taxed
(3) Legacy: the IRA bucket is reduced by qcd
QCD_LIMIT = $111,000 (2026, IRS Notice 2025-67, today's $, indexed forward each year)
THE HEADLINE CHANNEL IS IRMAA — a normal RMD inflates your MAGI; a QCD-satisfied RMD does not. For a retiree sitting just over an IRMAA tier threshold, redirecting the RMD to charity can drop MAGI back under the cliff and erase the Medicare surcharge for both spouses. The SS-taxability and federal-bracket savings fall out automatically as the taxable RMD shrinks. IRA-ONLY, AGAINST A POOLED BUCKET — a QCD must come from an IRA, not a 401(k). The engine pools all pre-tax balances (401(k) + Traditional IRA) into a single bucket, so it models the QCD against that pooled pre-tax balance; if your pre-tax money is mostly in a 401(k), roll the portion you intend to give into an IRA first (a standard tax-free rollover) so the real-world mechanics match the model. USER-ONLY (v1) — the QCD applies to your own pre-tax bucket; because the pooled bucket cannot attribute whose IRA a dollar came from, a separate spouse QCD is not modeled in this version. WHAT THIS DOESN'T MODEL — the 70½ half-year is applied from age 70 (whole-year engine). Full-RMD mode is the precise, correctly-timed path (it auto-starts at your RMD age); a fixed annual QCD applies from 70 regardless. State tax follows your state's general retirement-income rules. BYTE-IDENTICAL WHEN OFF — with no QCD set, every QCD computation reduces to zero, so plans without a QCD are unchanged. References: IRS Publication 590-B; Internal Revenue Code §408(d)(8).
28
⚠️ Early-Withdrawal Penalty (Before 59½)
Withdrawals from pre-tax retirement accounts (401(k), Traditional IRA) before age 59½ normally incur a 10% federal early-withdrawal penalty on top of ordinary income tax. The engine applies this penalty by default. Because the engine draws taxable accounts first (bridge reserve → savings → brokerage → 401(k)/IRA → Roth), only plans that exhaust their taxable accounts before 59½ ever reach the penalized pre-tax bucket — in practice, marginal early-retirement (FIRE) plans. A toggle in the Tax section (“penalty-free access before 59½”) turns the penalty off for users with a qualified early-access strategy: a 72(t)/SEPP schedule, the Rule of 55, or a Roth conversion ladder.
Per year, after the 401(k)/IRA draw is determined:
earlyPenalty = (!earlyAccessStrategy AND age < 59.5 AND from401k > 0) ? 0.10 × from401k : 0
couples: the 401(k) share owned by a spouse who is 59.5+ is drawn first, penalty-free; only the draw beyond it is penalized
pre-tax balance −= earlyPenalty // withdraw extra to pay the IRS → lowers end balance
Integer age ⇒ age < 59.5 is equivalent to age ≤ 59.
Roth is NOT penalized (drawn last; contributions penalty-free).
HSA is separately age-gated; RMDs are 73+, so they never overlap the penalty window.
DEFAULT-ON IS THE HONEST FLOOR — modeling the penalty by default means an aggressive early-retirement plan shows its true cost: a 50-year-old draining a 401(k) to bridge to 59½ loses 10% of every pre-tax dollar to the IRS. Turning the toggle on is the user asserting they have a real penalty-free mechanism in place. WHO ACTUALLY HITS IT — most plans don't, because the engine spends taxable money first; the penalty only bites when taxable + Roth-contribution money run out before 59½. That's exactly the thin-margin FIRE population for whom the 10% matters most, and the population most likely to have a 72(t) or Rule-of-55 in place — hence the toggle. WHAT THIS DOESN'T MODEL — the penalty on Roth EARNINGS withdrawn before 59½ (would require Roth cost-basis tracking the engine doesn't carry; Roth is drawn last anyway); per-spouse age within the combined household pre-tax bucket (uses the primary age); state-level early-withdrawal penalties (federal 10% only). The toggle trusts your assertion — it does not validate that you've set up a compliant 72(t), satisfied the Rule of 55's separation requirement, or seasoned a ladder five years. Reference: Internal Revenue Code §72(t).
29
💼 Social Security Earnings Test (Claiming Early While Working)
If you claim Social Security before your Full Retirement Age (67 for anyone born in 1960 or later) and you keep earning a paycheck, the SSA applies an “earnings test”: it withholds $1 of benefits for every $2 you earn above an annual limit (~$24,480 today). The withheld benefits aren't lost — at your FRA the SSA recomputes your benefit upward to credit back the withheld months, so over a normal lifespan it's roughly actuarially neutral. The real cost is timing: less SS during the early working years (when your portfolio is largest and sequence risk is highest), more later. It's the classic Barista FIRE surprise. The engine applies this automatically — there's no toggle; it triggers whenever you claim before FRA and have part-time income above the limit.
SS_EARNINGS_LIMIT = $24,480 (today's $, indexed forward — alongside FRA = 67)
Modeled as an EFFECTIVE CLAIM AGE — working above the limit while claiming early ≈ delaying the claim:
workingYrsPreFRA = max(0, min(FRA, partTimeUntilAge) − ssClaimAge)
withheldPerYr = 0.5 × max(0, 12 × partTimeMonthly − SS_EARNINGS_LIMIT) // $1 per $2 over the limit
monthsWithheld/yr = min(12, withheldPerYr ÷ monthly benefit at the early claim age)
effectiveClaim = min(FRA, ssClaimAge + workingYrsPreFRA × monthsWithheld/yr ÷ 12)
ssMonthly = adjustedSSBenefit(ssFRABenefit, effectiveClaim) // recomputed at the later age
ssBridgeYrs = max(0, effectiveClaim − retirementAge) // longer bridge to fund from the portfolio
ONE ADJUSTMENT, TWO EFFECTS — pushing the effective claim age later captures both halves in a single number: a LONGER BRIDGE (SS starts later → your portfolio funds more of the early working years) AND a HIGHER RESTORED BENEFIT (less early-claim reduction once it starts). Because the headline numbers, the year-by-year projection, and every Monte Carlo path read the same effective claim age, the three surfaces stay perfectly consistent. INFLATION-INVARIANT — earnings and the limit inflate together, so the withheld fraction doesn't depend on the inflation assumption; the calculation is done in today's dollars. INDIVIDUAL TEST — per-person, on your own SS based on your part-time income only; there's no spouse part-time-income field. WHAT THIS DOESN'T MODEL — partial withholding is modeled as deferral (a slight conservative bias); the higher special $1-per-$3 limit in the calendar year you reach FRA is not modeled (standard under-FRA $1-per-$2 throughout); only EARNED income counts (pensions, account withdrawals, investment income don't trigger it). When it applies, a note under your SS claim age shows the estimated annual withholding and your effective claim age. Reference: Social Security Administration, Retirement Earnings Test.
30
🧭 Planning Horizon (Longevity Risk)
How long should your money last? Most people plan to their life expectancy — but that's a coin flip: by definition, half of people outlive it. Planning to the average means a 50% chance of running short in your final years, the single most avoidable retirement mistake. The Planning Horizon Workshop suggests a horizon you're unlikely to outlive by reading the actual survival curve, not the average — drawn from the Social Security Administration's 2022 Period Life Table (the same actuarial data Social Security uses). For couples it plans to the LAST survivor, which is meaningfully longer than either spouse alone.
survival(current → target, sex) = lx(target) ÷ lx(current) // conditional survival from the SSA cohort table
horizon(p) = the oldest age where survival(current → age) ≥ (1 − p) // e.g. p = 0.85 → only 15% are still alive
Couples (last survivor):
jointSurvival(age) = 1 − (1 − survival_you(age)) × (1 − survival_spouse(age))
household horizon(p) = the oldest age where jointSurvival(age) ≥ (1 − p)
PLAN TO THE TAIL — mean life expectancy is the wrong target: it's a 50/50 bet, and outliving your money is far worse than dying with a cushion. A percentile slider lets you choose your own margin (the default plans to roughly the 85th percentile — only about a 1-in-7 chance of outliving it); the mean is always shown alongside as the coin-flip for contrast. Optionally provide sex at birth for a sharper read — it's a workshop-only choice, never saved. FREE — the workshop and a gentle plan-health nudge (shown when your set life expectancy carries a real chance of being outlived) are free, not a paid feature. CAVEATS — the 2022 period table slightly understates future longevity (a conservative direction), and it's population-average, age + sex only: affluent, healthy, or long-lived-family profiles run longer, so lean toward the cautious end. Reference: Social Security Administration, Period Life Table, 2022 (2025 Trustees Report), table 4.C6.
31
🔎 Deep Search (Searched Optimizers)
The free calculator answers what your plan does. Deep Search answers which strategy is best — it puts the same simulation engine to work, running hundreds of scenarios against your actual plan to find the strongest choice for one decision at a time, judged on your real outcome — median legacy in today's dollars for the legacy-seeking tools (for Roth conversions, legacy after the income tax your heirs would owe on inherited pre-tax money), success rate for the risk-side scan. Ten searched optimizers: the couple's Social Security claim (all 81 combinations, survivor benefit included), the Roth Conversion Planner (formerly the Bridge Optimizer — conversion ladders across every year from retirement until the year before your first required withdrawal, plus shorter ladders that stop when Social Security starts, each tested with and without 0% gain harvesting, ACA subsidies and IRMAA cliffs priced into every candidate; scored on what your family keeps after the heirs' income tax, at the heirs' bracket you choose — charity, lower, middle or higher — with the answer shown at all four, and a materiality floor so a noise-level win never dethrones your current plan), what your plan hinges on (a tornado ranking which assumption you're most fragile to), solve-for-your-goal (name a target like 95% success and it works backward to the exact lever value that hits it), Spending Shape (the permission-to-spend search — the most you can spend, especially in your go-go years, while your odds hold a floor you choose and your legacy stays above what you want left, which can be zero), the Combined Risk Scan (the risk-side sibling — it stacks validated pairs of the Stress Test tab's one-at-a-time risks, reports honestly whether any combination hits harder together than the two cards predict separately, and when one does, prices the defense — dynamic spending guardrails — against your own worst pair), Employment Pause (how long you could stop working and still land the plan), Your Next Home (the whole housing timeline priced — sell, buy, rent, or finance), Spending Guardrails (the portfolio lines where you would trim or could raise), and Deep Scan (the one-click capstone that runs the legacy-seeking optimizers together for the true combined payoff — deliberately excluding Spending Shape, because spending more is a values trade, not a free win). It's the searched optimization the $5,000–$10,000 advisor tools charge for, opt-in behind a Run button in the Optimize tab, part of Navigator.
Each tool searches the same seeded engine, scored on your real outcome:
Couples SS argmax over all 81 (your claim, spouse's claim) pairs → median legacy
Roth Planner argmax over conversion ladders to the year before your first RMD, × harvesting (cliff-priced) → median after-tax legacy at your heirs' bracket
Plan Hinges rank each assumption by | metric(better) − metric(worse) | (tornado)
Solve-for-Goal grid a lever, interpolate to where metric(lever) = your target
Spending Shape max spending s.t. success ≥ your floor AND median legacy ≥ what you want left
Deep Scan apply every legacy-seeking winner to one plan → ONE combined Monte Carlo → the true joint gain
SEARCHED ON YOUR REAL PLAN — every candidate is a full run of the same Monte Carlo engine behind your headline numbers, so it reflects your actual taxes, bridge years, and sequence risk, not a rule of thumb. THE MOVES INTERACT — Deep Scan runs one combined simulation instead of adding up the parts, because delaying Social Security reshapes the room for Roth conversions; the true joint payoff isn't the sum. MONTE CARLO NOISE — under simulation variance, sub-dollar precision is illusory, so Solve-for-Goal searches a grid, then narrows down at the full display count to the loosest value that still meets the target; the other searches run at a lighter sim count, then the winner is re-scored at the full display count. NO ENGINE CHANGE — Deep Search re-applies inputs the engine already reads, so it never alters how your plan is computed or your saved AI Plan Score. OPT-IN AND PAID — each optimizer runs only when you press Run (Couples SS alone is 81 full plans); it's part of Navigator. Reference: RetirementScenario.com, Optimize tab.
32
🌱 Contribution Escalation (Ramping Savings)
Most calculators assume you contribute the same dollar amount every year until retirement — but real savers raise their contributions as their income grows. Contribution escalation models that: pick any account (401(k), Roth, savings, brokerage, HSA — for you or your spouse) and set it to climb each year, either by a percentage that tracks your raises or a flat dollar step. Tax-advantaged accounts ramp up to the IRS limit, then hold. The result is a more realistic accumulation path — and a "Building your nest egg" table on the Projection tab that shows, year by year, how your contributions and growth compound into your retirement-day nest egg. There's also a free Smart Move that recommends ramping your 401(k) for savers who can't max out today but have the runway to grow into it.
Percent mode: contribution(year t) = start × (1 + rate)^t // compounds, tracking raises
Dollar mode: contribution(year t) = start + step × t // a flat annual increase
Capped (401k, Roth): min(contribution, IRS limit) // climb to the cap, then hold
Nest egg builds year by year: balance = (balance + contribution) × (1 + return)
RAMPS TO THE CAP, THEN HOLDS — for 401(k) and Roth, the yearly increase stops at the IRS contribution limit; it never assumes you'd contribute above the legal maximum. BOTH SPOUSES — each account, for you and your spouse, escalates independently. BYTE-IDENTICAL WHEN OFF — a plan with no escalation set computes exactly as before; the ramp only changes the math when you turn it on, so your saved AI Plan Score is unaffected until then. THE ACCUMULATION TABLE RECONCILES — every row reads Start + Contributions + Growth = End, and the final row equals the nest egg your retirement projection starts from, to the dollar, so you can validate it yourself. A MODELING ASSUMPTION, NOT A COMMITMENT — you tune it or turn it off anytime; real-world raises aren't guaranteed, so model conservatively. Reference: RetirementScenario.com, Inputs tab.
A retirement plan is only as good as the math under it. Here is how that math works, how we test it, what happens to your data, and what the model doesn’t do.
The five promises in full, and every check a change has to pass.
The five pillars
What we promise about your retirement numbers
Each pillar is a promise about how this platform's accuracy is maintained. Together they describe the trust posture from end to end — math engine through AI Advisor.
🧪 Reproducibility
Every change is tested. The pipeline runs automatically on every push — the tier that protects your numbers before the release goes out, the rest within minutes of it. We don't ship around failing tests; the test gets fixed or the change comes back out.
Math is exercised against 55 realistic retirement profiles — early retirees, FIRE plans, Coast FIRE, household + single, multi-state edge cases, pension-heavy. Every profile re-runs when the engine changes.
Your projection won't change without us telling you why. Every code change is locked against a regression gate that fails on any output drift. When fidelity does change — a tax law update, a bug fix — it's documented in the changelog.
What you run in your browser is verified against the version we test in development. Bundle minification can silently strip dead code; this gate catches that failure mode.
The AI Advisor you talk to is verified against a 109-entry canonical question set covering navigation, card references, deterministic field citations, recommendation shape, out-of-scope handling, and compositional patterns. By policy, the AI never recommends specific products, services, or providers — it educates and grounds in authoritative sources (IRS, SSA, Bengen / Trinity / Pfau research). Every shipped fix to AI grounding gets a permanent regression test, so when something slips it can't slip the same way twice.
Contribution limits, tax brackets, the Social Security cost-of-living adjustment, Medicare premiums and ACA subsidy figures change every year. A plan built on last year’s figures is quietly wrong, so keeping them current is a process with checks, not a reminder.
The official publications are read every week.A script reads the IRS, Social Security Administration, Medicare and HHS publications for next year’s figures. Before it reports a new figure, it must reproduce this year’s figures exactly from the same documents. If it can’t, it’s flagged as broken and its figures are held back.
Nothing is applied automatically.Each new figure is put into the engine and re-tested against all 55 test plans, the same checks as any other change.
A release can’t go out with overdue data.Every data set has a due date. Once one is a month past it, releases stop until the figures are updated, confirmed unchanged, or a written reason is recorded.
Every change is public.Each year’s new figures are listed on What changed this year, dated, with what each one does to a plan. Those pages are checked against the figures the app uses, and every change to the engine is in the changelog.
What’s still done by hand.State income tax rules are reviewed by hand each spring, once states publish, because they come in too many formats to read reliably by machine. So are a few federal figures, such as the Medicare drug-plan surcharge, and the yearly long-term care cost and property tax data.
Math methodology signatures
Distinctive methodological commitments
Seven methodological commitments that distinguish this platform from category baseline. The full math doc lives in the "How It Works" modal — link below to open it at any specific topic.
Seeded Monte Carlo
Monte Carlo simulations use a deterministic seeded RNG. Same inputs produce identical trajectories across reloads — no success-rate flicker. 1,000 sims for headline confidence; 750 for sweep metrics.
SECURE 2.0 birth-year-aware RMDs
RMD age is dynamic per birth year: 75 for births 1960+, 73 for births 1951–1959, per IRS Pub 590-B. No hardcoded "73" anywhere in the engine; the prompt verifier scans for drift on every push.
51-state tax modeling
All 50 states + DC modeled individually: each state’s own brackets, deductions and exemptions, whether it taxes Social Security and retirement income, its retirement-income exclusions and its capital-gains treatment; Maryland and Indiana county taxes at a statewide average. Federal brackets, IRMAA and the ACA cliffs use the national figures. Refreshed annually against state, IRS, CMS and HHS publications.
Roth conversion sweet spot + IRMAA framing
Engine computes annual Roth conversion recommendation grounded in the user's bracket headroom AND IRMAA Medicare-surcharge tier position — not generic 4% conversion advice.
Tax-aware withdrawal order
Withdrawal sequence — bridge → savings → brokerage → 401(k) → HSA → Roth — applied year by year. The order you withdraw determines how much goes to the IRS vs. your retirement.
Guyton-Klinger dynamic spending
Opt-in dynamic withdrawal modeling the Guyton + Klinger 2006 guardrail framework. Capital preservation rule + prosperity rule. The 2006 paper found starting rates around 5.2–5.6% held up historically, versus the 4% rule's static math.
Historical back-testing (Bengen / Trinity Study)
Plan replayed against Shiller's 1928–2025 data of actual S&P 500, 10-year Treasury, and CPI-U sequences. Two surfaces: a five-era card (Great Depression / 1966 / stagflation / dot-com / financial crisis) and a full-range workshop (every eligible start year, allocation slider). Cohort survival rate sits alongside Monte Carlo SR — two views of the same plan, honest about what each measures.
AI Advisor verification
A four-tier regime for AI behavior — not just AI prompts
The most likely production-bug source in any LLM-integrated product.
The pipeline has 32 pre-push gates. The AI Advisor needs a different kind of verification — one that actually talks to the AI and checks what it says. Three tiers shipped and active; a fourth (live response-pattern telemetry) is queued.
Brand-voice principle (mechanically enforced): the AI never recommends specific products, services, or providers. It educates on principles, frameworks, and trade-offs; it grounds in authoritative sources (IRS, SSA, CFPB, FINRA, SEC, Bengen / Trinity Study / Pfau / Kitces research). Trust gets eroded when calculators recommend things — so we don't.
For every category of question users ask the AI — "where do I change X?", "tell me about Y card", "what's my Z value?", "should I do strategy W?", "should I buy this specific product?" — there's a canonical entry in the eval corpus. Each entry has shape-based assertions; the runner dispatches each to Anthropic, applies assertions to the response, compares against the locked baseline.
109Eval entries across 13 categories
9Permanent regression locks per shipped AI bug
2Cross-cutting brand-voice assertions on every response
3Static prompt-source gates in pre-push pipeline
Every reported AI bug becomes a permanent regression entry — when something slips, it can't slip the same way twice. The same discipline that math regression-locks every shipped bug fix, extended to AI behavior.
Every release runs all 32. The ones that protect your numbers — a zero-drift check against 55 saved plans, the structural invariants, the determinism check — block the release outright: the first red gate halts it, no opt-outs. The rest, covering things like our free calculators and page layout, run in the minutes after and alert us if they fail. We split them deliberately. A wrong number has to be impossible. A wrong layout has to be fast to fix.
1 · ~50ms · static
Size guard
Asserts the deployed bundle is above a calibrated byte threshold. The bundle minifier can silently strip dead code; this gate catches the failure mode where a refactor accidentally removes a load-bearing chunk and the build looks fine but ships broken.
Locks: what you run in your browser matches what we built.
2 · ~2s · byte-compare
Deployed-bundle freshness
The app you load is a minified build of the source. This gate rebuilds the bundle from the current source and byte-compares it against the committed file — catching the failure mode where a fix lives in the reviewed source but a stale build never carried it to your browser.
Locks: what you run is a fresh build of the reviewed source.
3 · ~50ms · static
Gate wiring
A verification gate only counts if something actually runs it. This gate walks every verifier in the repository and asserts each one is reachable by a runner — or carries a written reason it is run by hand. Added after two gates were found fully written, documented, and wired to nothing.
Locks: every gate on this page actually runs.
4 · ~100ms · static
Three-list alignment
Every input field is defined in four places — the engine's defaults, the user-action whitelist, the AI Advisor's known-fields list, and the cache-key derivation list. This gate verifies all four agree.
Locks: input contracts stay synchronized.
5 · ~80ms · 306 deep checks
State tax profile parity
State tax modeling for 51 states (50 + DC) is defined in two places — the engine and the methodology doc. 51 × 6 fields = 306 equality checks confirm the documented tax treatment is exactly what the engine applies.
Locks: documentation can't drift from code.
6 · ~80ms · static
Actuarial life-table parity
The Planning Horizon Workshop reads the SSA 2022 period life table. The table is defined in two places — the engine and the methodology doc. This gate confirms every survival probability the workshop shows you is exactly the number the engine computes with.
Locks: longevity math matches its documentation.
7 · ~80ms · doc parity
Long-term-care cost parity
Long-term-care costs are priced from a 50-state, three-care-level table sourced from a published cost-of-care survey. The table lives in the engine and in a citable reference document; this gate proves the two match, cell for cell.
Locks: the care costs you see match the cited source data.
8 · ~60ms · static
Move library descriptor drift
The Smart Moves library (31 moves) is defined in the engine; the AI needs a parallel description. This gate confirms the AI's catalog matches the engine's exactly.
Locks: AI knows the same moves the engine can apply.
9 · ~6s · static
ENGINE_VERSION drift
The engine carries a version stamp that must change whenever the calculation math changes. This gate diffs the current engine functions against the version they were last stamped at and fails the push if the math moved without a stamp bump — the same stamp that invalidates any cached AI analysis so you are never shown a stale number against new math.
Locks: engine math can't change silently.
10 · ~30ms · parse-only
API syntax check
Runs node --check on every server-side file. Added after a single misplaced apostrophe in a system prompt broke the AI Advisor endpoint for ~24 hours.
Locks: server-side code parses before deploy.
11 · ~50ms · static
API no-undef scan
Static scope analysis of every server-side file — catches a reference to a variable that was never defined, the runtime-error class a plain syntax check can't see. Added after exactly that bug: a reference to an undefined body returned a 500 on every AI call for ~24 hours.
Locks: server code can't ship an undefined-variable crash.
12 · ~1s · static
Worker no-undef scan
The heavy maths runs on a background thread, which gets its own copy of the engine built from the same source. This checks that every name that copy uses actually exists inside it — a function left behind in the rebuild would work perfectly on the page and fail only in the background, which is the hardest kind of fault to notice.
13 · ~80ms · 5 schema checks
AI deep-link infrastructure
The AI Advisor can navigate you to a specific input when you ask "where do I change my SS claim age?" This routing relies on three layers staying in sync; this gate verifies all three are wired so AI navigation can't silently no-op.
Locks: AI deep-link navigation stays functional.
14 · ~80ms · static
AI prompt section-target drift
The AI's system prompt references specific UI cards by name. If a card gets renamed but the prompt still references the old name, the AI would confidently tell you to look for a card that no longer exists. This gate verifies every reference resolves.
Locks: AI navigation references real, current surfaces.
15 · ~2s · 5 personas × 9 fields
AI context payload schema
When the AI responds, it gets your specific data — your RMD age, your success rate, your bridge-year MAGI, your effective tax rate. If the engine stops producing one of these fields, the AI silently falls back to generic defaults. This gate catches that.
Locks: AI receives the deterministic data it expects.
16 · ~50ms · regex scan
AI prompt hardcoded-value scan
Scans prompt source for known-drifty hardcoded values (specific ages, dollar amounts, tax brackets) that should be dynamically interpolated. Context-aware: legitimate historical references don't fire; user-direct claims do.
Locks: AI prompts can't quietly drift from current rules.
17 · ~1s · 330 assertions
Structural invariants
Six structural rules across 55 personas (330 assertions): balances can't be negative, monthly displays can't exceed annual ones, depleted-flag semantics must be consistent. Catches math regressions that don't shift the bottom line enough to fail persona-gate.
Locks: engine math respects structural rules.
18 · ~3 min · 270+ verifiers
Per-bug + Worker verifiers
Every shipped bug fix gets a dedicated verifier. Same for Worker infrastructure (the off-thread calculation pipeline) and the Observation Engine's detector mechanisms. Each checks its own fix, often several ways. If any future refactor accidentally reverts a fix, the verifier fires.
Locks: every shipped fix is permanently regression-tested.
19 · ~1s · 20 boundary shapes
Degenerate-input safety
Runs 20 degenerate and boundary input shapes — zero balances, a life expectancy at or below retirement age, already-retired, extreme values — through the engine and all three Monte Carlo paths. Asserts no output is ever NaN or a stray infinity, and that an impossible window returns a clean “no result” instead of a crash or a garbage number.
Locks: edge-case inputs degrade gracefully, never into a broken number.
20 · ~2s · every persona with a home
Persona home consistency
A saved test plan that includes a house has to store the figures its own entries produce, or the gate below locks a plan this app could never actually produce. Added 2026-08-03 after one test plan was found carrying a $700,000 home and a description saying it downsized, while modelling no sale at all — three quarters of the plan it claimed to describe was never being simulated. A baseline that locks the wrong plan is worse than none, because it reads as coverage.
21 · ~1s · 55 personas · $0 drift
Persona end-balance gate
The master correctness check. 55 synthetic retirement profiles — early retirees, FIRE plans, Coast FIRE, household + single, multi-state edge cases — run through the engine and compare against locked baseline end balances. Any drift, even $1, fails the push.
Locks: your projection won't change unless we tell you why.
22 · ~8s · 12 cells
Monte Carlo determinism
Monte Carlo uses random numbers, but for the same inputs they must produce the same results across runs. Verifies the seeded RNG produces byte-identical MC trajectories across 4 personas × 3 simulation functions.
Locks: reload the page, get the same success rate.
23 · ~40s · structural integrity
Lens consistency
Smart Moves has four lenses (Retire Earlier, Spend More, Leave a Legacy, Weather a Downturn). Validates every move object across all four is well-formed.
Locks: Smart Moves system can't ship malformed move objects.
24 · ~28 min · 220 lens computations
Smart Moves snapshot
The largest gate. For each of 55 personas, computes baseline + optimized values across all four lenses (220 total computations using real Monte Carlo bisection). Compares against locked baseline with tight tolerance bands.
Locks: the flagship feature produces consistent recommendations.
25 · ~1s · copy ↔ constants
Doc constant drift
User-facing copy — methodology, glossary, in-app tips — cites IRS limits, tax thresholds, and contribution caps. This gate re-derives each from the live engine constant every run and fails if any copy string still shows a stale value (last year’s number after a limits update). The discipline gate 13 applies to the AI prompt, applied to the words humans read.
Locks: the words describing your numbers can’t drift from the numbers.
26 · ~50ms · static
Doc ledger 1:1
Every methodology section and every glossary entry must have a row in the documentation coverage ledger — and no ledger row may cite a section or term that doesn’t exist. A new feature can’t quietly add engine math without its documentation being accounted for.
Locks: documentation coverage stays mapped to the code.
27 · ~1s · anchors
Methodology anchors
Every section of the methodology declares which engine functions it describes, and a retired model leaves a “tombstone” phrase its section may never use again. A methodology sentence describing code that no longer exists blocks the push — the engine and its documentation must move in the same commit.
Locks: the methodology describes the engine that actually runs.
28 · ~1s · cross-repo
Trust-page figures vs the code
The numbers on this very page — gate count, benchmark plans, AI evals, glossary entries — are re-derived from the code on every push and compared against what this page claims. A stale figure blocks the push outright. It caught this page being several gates behind on the day the newest gates landed.
Locks: this page cannot silently drift from the code it describes.
29 · ~1s · cross-repo
Concierge surface map
The AI concierge on this site can open modals and scroll to sections; its allowed targets live in a prompt on the app side. This gate proves every target the prompt claims still exists on the real page, and that the prompt’s pricing matches the pricing canon.
Locks: the concierge can never cite a stale price or open a door that isn’t there.
30 · ~3s · mock ↔ build
Design mock parity
When a screen is designed as a mock first, that mock becomes the build checklist. This reads the approved mock and the built app and compares them element by element, so a piece of an approved design cannot quietly be left out and forgotten — which had happened twice before it existed.
31 · ~2s · contract
Analytics contract
What the app records about usage is held to a written contract, checked against the real API handlers: an allow-list of what a session document may contain, a purchase counted only when money actually moved, and an excluded browser proven to send nothing.
Locks: usage numbers mean what they say — an admin unlock is never counted as a sale.
32 · ~90s · headless browser
Headless UI smoke
Loads the built app in a real headless browser and walks every tab on realistic and boundary plans — asserting no render crash and that the cards that should appear actually appear. The gates above test the engine in a sandbox; this one catches render-layer failures they can’t see — a plan that calculates correctly but crashes on screen.
Locks: the app renders, not just calculates.
Two further steps check this site against the app: one that the app and marketing changelogs stay in sync (it blocks a release), and one that checks every figure on this page against the code it describes (it blocks every change). They aren’t counted among the 32 gates above.
🛑
Fail-fast: first red gate halts the push
If any single gate fails — even the cheapest 30ms check — the entire push is blocked. No manual override, no per-gate bypass. Either every gate passes and the code ships, or nothing ships and we fix the regression first.
Persona corpus
55 synthetic retirement profiles, baseline-locked
The persona gate (step 21 above) runs each of 55 hand-built retirement profiles through the engine on every push: early retirees, traditional retirees, FIRE plans, Coast FIRE, single-earner households, dual-earner households, pension-heavy plans, multi-state edge cases. Each persona has a locked baseline end balance. The gate compares fresh runs against the lock. Any drift — even one dollar — fails the push. The corpus expands as we discover real-world edge cases users hit.
AI Advisor eval set
109 canonical question/response pairs
The pipeline has 32 gates. AI behavior needs a different mechanism — one that actually talks to the AI. For every category of question users ask — "where do I change my X?", "tell me about Y card", "what's my Z value?", "should I do strategy W?", "should I buy this specific product?", "what about a survivor scenario?", "I just got laid off and I'm panicking" — there's a canonical entry in the eval corpus.
Each entry has shape-based assertions (does the AI emit the right navigation directive? cite the right number? decline the right kind of request? never recommend a specific product?). The runner dispatches each entry to Anthropic, applies assertions to the actual response, compares against the locked baseline. Any entry that flips from passing to failing exits non-zero and the change doesn't deploy until it's understood. The eval set runs separately from the pre-push pipeline (cost + dispatch time make per-push unfit). Discipline rule: any change to AI prompt source triggers an eval run before deploy.
Source-vs-shipped parity
What runs in your browser matches what we test
The size guard (gate 1) + the persona end-balance gate (gate 21) together lock the relationship between the source we develop against and the bundle we ship. The minified browser bundle is verified semantically equivalent to the source across all 55 persona end balances. If they ever diverge, we catch it before you see it.
Your data, your device
Privacy isn't a policy. It's an architecture.
There's no user account, and your retirement numbers live in your browser — we keep no copy you could lose, leak, or sell. Our server holds only what a purchase needs and anonymous usage of the app itself, never a figure you entered. The two opt-in exceptions — the AI Advisor and Share links — are detailed below.
🔒 Stored in your browser
Inputs, calculations, saved scenarios — all stored in your browser's local storage. Clear your browser data and it's gone; we have no copy.
🚫 No account, no signup
Use the full calculator without registering anything. No email, no profile, no marketing pipeline waiting to be hacked.
📊 Anonymous analytics only
We record which features and pages get used ourselves, tied to a random ID kept in your browser — no names, no dollar figures, no AI conversations, no cookies. Nothing goes to an outside analytics company.
🤖 AI Advisor — anonymized in transit
Plan numbers (no names, no account numbers, no institutions) go to Anthropic to generate the response, then discarded. We don't log requests; Anthropic doesn't train on them.
💳 Stripe handles payment
If you upgrade to Navigator, payment is processed by Stripe. We see a confirmation; Stripe handles every financial detail. No credit cards stored on our side.
🤝 Zero third-party data sales
We don't sell, rent, or share user data with third parties — because we don't have user data to share. The architecture makes it impossible, not a policy promise.
·
Honest limits
What this regime doesn't cover
Honest scope acknowledgment. Naming the limits is part of the trust posture, not a defect.
Calculator results are projections, not guarantees.Monte Carlo gives confidence bands across simulated futures; reality is one path, not 1,000. Use these projections as planning instruments, not crystal balls.
This is not financial, tax, investment, or legal advice.It's an informational and educational tool. For decisions involving significant money, consult a qualified fiduciary CFP, CPA, or estate attorney.
Free-form AI prose quality.The eval set checks structural behavior. It doesn't grade subjective writing quality.
Adversarial AI prompts designed to jailbreak.Out of scope for a retirement-calculator AI.
Cross-model drift on provider updates.When Anthropic ships a new Haiku or Sonnet version, the AI eval set must be rerun and recalibrated.
Real-time AI response telemetry.Tier D — live response-pattern monitoring — is queued for a future release.
Edge cases not represented in personas.Our 55-persona corpus covers realistic edge cases but real-world situations have variations no corpus fully captures.
No silent drift
The changelog
Every change that moved a number, or corrected one you had already been shown, is dated and described.
A fee-only Certified Financial Planner is the gold standard for personalized retirement planning — and worth the cost for the right situation.
$200–$500/hr
Hourly rate
3+ weeks
First answer
$1k–$3k
Initial plan
vs Retirement Scenario Explorer
$79 once
Lifetime
5 minutes
First answer
$0/yr
No subscription
What CFPs do best
A fee-only Certified Financial Planner is the gold standard for personalized retirement planning. They take a complete picture of your financial life — assets, debts, income, taxes, estate, insurance, family situation, goals — and produce an integrated plan that no software can match. They catch things a calculator can't: the cousin you're going to inherit from, the small business interest your spouse never told you about, the way your kid's special-needs trust changes everything. For households with real complexity or significant assets, a CFP relationship is genuinely valuable.
Where CFPs don't fit for most people
Fee-only hourly engagements run $200–$500 per hour, with most retirement reviews requiring 3–8 hours of planner time plus your prep work — call it $1,000–$3,000 for an initial plan and another few hundred annually for updates. The first answer takes 3+ weeks between booking, intake, prep, and the actual meeting. And the plan you walk away with is a static PDF — when your numbers change next year, you're back on the calendar.
CFPs are built for ongoing relationships and life-complete planning. We're built for the moment you want to know "am I on track?" — and to come back whenever the answer might have changed.
Why people choose Retirement Scenario Explorer
If your situation is reasonably typical (W-2 income, 401(k) and IRA accounts, a paid-off-or-paying-off mortgage, Social Security on the horizon), a CFP's integrated plan is overkill for the question you actually have: am I on track? Retirement Scenario Explorer answers that in five minutes, with the same Monte Carlo math, the same actuarially correct Social Security modeling, and the same tax-aware withdrawal sequencing professional planners use — for $79 once instead of $2,000 every year.
If you eventually want a CFP, you'll show up to the conversation with better questions and a baseline you understand. That makes the CFP's hours go further.
Boldin is the most comprehensive consumer retirement planning software on the market — and well worth the subscription if retirement planning is a hobby you enjoy.
$144/yr
Subscription
1–2 hours
Setup time
$1,440
Decade cost
vs Retirement Scenario Explorer
$79 once
Lifetime
5 minutes
First answer
$79
Decade cost
What Boldin does best
Boldin is the most comprehensive consumer retirement planning software on the market. Their depth on tax modeling — Roth conversions, Social Security taxability, state-by-state retirement tax variation — is genuinely impressive. They've built tools for advanced techniques most calculators don't touch: backdoor Roth, mega backdoor Roth, healthcare cost projections by state, IRMAA brackets, even rental property income modeling. If retirement planning is a craft you enjoy and want to spend hours on, Boldin rewards that effort.
Where Boldin doesn't fit for most people
Boldin runs $144 per year, ongoing — that's $1,440 over a decade for a tool you'll mostly use a few hours each year. Setup takes 1–2 hours of milestone configuration before you see your first meaningful answer. Their AI assistant is a more recent addition and feels bolted on — useful for some queries but not the conversational depth you'd expect from a tool that knows your full plan. And there's no path to "just give me the answer" — Boldin is built around exploring scenarios in detail, not delivering verdicts in five minutes.
Boldin is built for people who want to be their own retirement architect. We're built for people who want clarity quickly and don't want to subscribe to anything.
Why people choose Retirement Scenario Explorer
If you've tried Boldin and bounced off the setup, or if the annual subscription doesn't match how often you'll actually use it, Retirement Scenario Explorer gives you the same calculation engine — Monte Carlo simulation, tax-aware withdrawal sequencing, Roth conversion analysis, stress testing — without the 90-minute setup or the recurring charge. $79 once. Yours forever. And the AI Advisor is the conversation layer Boldin's tool doesn't have: ask anything about your plan in plain English, get an answer that knows your actual numbers.
ProjectionLab is the FIRE community's favorite retirement tool, and the visualizations are exceptional — well worth the price for serious FIRE planners.
$129/yr
Premium plan
30+ min
Setup time
No AI
Assistant
vs Retirement Scenario Explorer
$79 once
Lifetime
5 minutes
First answer
AI Advisor
Built in
What ProjectionLab does best
ProjectionLab is the FIRE community's favorite retirement tool, and for good reason. The visualizations are exceptional — chart-rich, dense with information, satisfying to explore. The simulation flexibility is unmatched: you can model nearly any scenario you can imagine, with surgical control over assumptions. For someone who wants to model "what if I take a sabbatical at 45, work part-time at 50, downshift expenses at 55, and still want to retire at 60," ProjectionLab is built for exactly that.
Where ProjectionLab doesn't fit for most people
ProjectionLab runs $129 per year ongoing (about $1,290 over a decade; the lifetime license has been discontinued). Setup takes 30+ minutes to get a meaningful first projection — they want detailed phase-by-phase income, expense, and savings inputs before producing results. There's no AI assistant of any kind. And the depth of customization is its own form of friction: it's possible to spend hours configuring scenarios that, for most users, don't materially change the answer.
ProjectionLab is built for the FIRE planner who treats retirement modeling as a hobby. We're built for people who want the answer to "am I on track?" without the production.
Why people choose Retirement Scenario Explorer
If you're planning a relatively standard retirement (W-2 income, employer plans, Social Security, maybe a paid-off home), ProjectionLab's flexibility is mostly cost without value. The math under the hood is comparable, the tax modeling is comparable, the Social Security modeling is comparable. What's different is what we don't make you do: 30 minutes of setup, $129/year forever, or learning a sophisticated tool to answer a simple question.
If you're a serious FIRE planner with complex multi-phase scenarios, ProjectionLab is probably the right tool for you, and we'll cheerfully say so. For everyone else, $79 once and a 5-minute first answer is the deal.
If you're already using ProjectionLab, cFIREsim, or your own spreadsheet — this isn't trying to compete on depth. It's the recommendation for two groups: people who'd never set up PL on a Sunday afternoon, and standard-FIRE planners who don't need 12 asset classes modeled to answer "am I on track?"
The current default recommendation is broken
When someone asks "what calculator should I use," the practical options today are:
Empower / Personal CapitalFree, but it's a wealth-management lead-gen tool. Your friend gets advisor calls within weeks of signing up.
Vanguard / Fidelity calculatorsFree, but too thin to model anything specific. No bridge years, Roth conversions, or sequence-of-returns risk.
Boldin / ProjectionLabSubstantively good, but $129–$144/year and 1–2 hours of setup. The friend probably won't actually use them.
A 4% rule worksheetUseless for a real answer.
So the FIRE-knowledgeable recommender either gives a non-answer ("just save more"), points at Empower and accepts the lead-gen risk, or hands them their own ProjectionLab login (which isn't going to happen).
This is the third option.
$79 one-time. Real Monte Carlo. No account, and your plan stays in your browser. No upsell funnel. The friend gets a meaningful answer in five minutes; the recommender doesn't get blamed for sending them somewhere that turned out to be a sales pitch.
A note from me
I built this because at 49, I was tired of two options: oversimplified calculators (the 4% rule doesn't tell you much) and overcomplicated subscription tools (I didn't want to model 12 asset classes manually to ask a simple question).
Most retirement-tool conversations among FIRE-knowledgeable people are about which depth-tool to use — Boldin or ProjectionLab or build-your-own. Those are good questions. But the people in your life asking you what to use aren't asking that question. They're asking: "is there something between a free calculator that doesn't say anything and a $144/year tool I'll never set up?"
This is built for that gap. Real Monte Carlo math. Real Social Security modeling. Real tax-aware withdrawal sequencing. $79 once, no subscription, no account required, no hidden funnel. The math is sound enough that you can confidently point a friend at it without worrying they'll be misled or upsold. And honestly — sound enough that for a standard-FIRE plan, you might find yourself using it too.
— Luke
What works well for retirement modeling
The math is the same whether you're targeting 65 or 50 — what changes is which features matter most:
1,000-scenario Monte CarloReal probability of plan survival, not a single-point estimate.
Historical back-testingReplay your plan against every actual market sequence from 1928 onward, or by named stress era (Great Depression, 1966, stagflation, dot-com, financial crisis). The Bengen / Trinity Study methodology — cohort survival rate next to Monte Carlo on the Stress Test tab.
Actuarially correct Social SecurityProper FRA adjustments, claiming-age modeling, spousal benefits.
Tax-aware withdrawal orderingTaxable, then tax-deferred, then Roth — modeled in every simulation.
Phase-based spendingDefine your own go-go / slow-go / no-go boundaries; model spending that tapers with age instead of a flat number.
Coast FIRESet a stop-contributing age; balances compound through to retirement. The variant where front-loaded savings remove savings pressure, not retirement itself.
Guyton-Klinger guardrailsSpending that is trimmed after bad markets and raised after good ones. The 2006 paper found starting rates around 5.2–5.6% held up historically, versus the static 4%.
Roth conversion sweet spotFinds bracket headroom in your low-income post-retirement years.
Gain harvesting (0% LTCG)Sells and rebuys brokerage holdings in bridge years to reset cost basis at zero federal tax. Pairs with Roth conversions to fill both bridge-year brackets.
Bridge reserve modelingEarmark cash, home sale, or inheritance to fund the gap before Social Security.
Future one-time expensesPlan-aware lump outflows at specific ages — college help, gap-year travel, car replacement, late-life inheritance gifts. Engine inflates from today's $ via CPI and draws from buckets in optimal order.
Healthcare bridge panelExplicit pre-Medicare cost modeling — the early-retirement expense most calculators ignore.
Sequence-of-returns stressThe most important risk most free calculators don't model.
Backdoor & Mega Backdoor RothModeled correctly — high-earner staple, often ignored.
Cohort comparisonAnchored to published Federal Reserve and SSA data — full sourcing in How It Works.
AI AdvisorInterrogate scenarios conversationally — "if I convert $50k/yr from Traditional to Roth from 65–70, how does that change my IRMAA exposure?"
What this isn't
Honest about limits — important if you're vouching for it:
Not a full planning tool like ProjectionLab or cFIREsim. If your friend turns out to be a craft planner, send them there.
No Vanguard dynamic spending or Kitces ratcheting (Guyton-Klinger is supported — see above).
Single return rate assumption. No asset-allocation modeling.
How to recommend it well
If you're pointing someone at it:
Tell them it takes five minutes. That's actually true. The friction sink with most planning tools is what kills the recommendation.
Tell them no account is required. This is the differentiator from Empower they may not realize matters until you name it.
Tell them $79 is the upgrade, not the entry. The free version runs the full Monte Carlo and gives a real answer.
Set their success-rate target appropriately. 85%+ for traditional retirement; 95%+ if they're targeting 50 or earlier.
Point them at the SS Benefit Confidence slider if they're decades from claiming. Modeling Social Security at 70–80% of projected is the honest hedge against the 2033 trust-fund shortfall — it's the question every FIRE planner has about Social Security, and most calculators won't let them ask it.
Send them the share link if they have a complex situation. The AI Advisor can answer specific questions about their plan in plain English.
📐 How It Works → full methodology
Every formula, assumption, and source — the SCF cohort tables, the SSA hypothetical worker AIMEs, the IRMAA thresholds, the Monte Carlo distribution, the tax brackets. Nothing is hidden. Vet it before you recommend it.
Your benefit is calculated from your Full Retirement Age (FRA) benefit and adjusted for when you claim. Claiming before FRA permanently reduces it; delaying past FRA increases it up to age 70.
SSA factors: ~0.70 at 62, 1.00 at FRA (67 for most), 1.24 at 70. This tool assumes a Full Retirement Age of 67, which applies to anyone born in 1960 or later. If you were born before 1960, your FRA is slightly lower (66 for born 1943–1954, graduating to 67 by 1960) — enter your actual FRA benefit to keep the math accurate regardless. Spousal benefit is the higher of their own record or 50% of your FRA benefit. Benefits are inflation-adjusted to retirement-year dollars. Stress-testing for legislative shortfall: the SSA Trustees project the trust fund hitting depletion in 2033, after which scheduled benefits would be reduced by ~20-23% absent congressional action. To stress-test your plan against this, set the "SS Benefit Confidence" slider to 80% (or another haircut you find plausible) — the engine will scale all SS benefits accordingly.