SECURE 2.0 · IRS Uniform Lifetime Table · RMDs begin at age 75 · 2026 Tax / IRMAA Code
Retirement Projection Tool — How to Use
What is this?
A visual model for planning retirement asset growth and consumption — showing how multiple account types (pre-tax IRA/401k, Roth, brokerage, cash) grow, interact with Social Security and fixed income, generate Required Minimum Distributions, and draw down over time. It makes the tax consequences of each dollar visible so you can make informed decisions about withdrawals, Roth conversions, and spending.
The tool is particularly well-suited to modeling large pre-tax balances and the cascading RMD effects that can follow unexpected growth. Once an IRA grows large enough, RMDs can push you into higher tax brackets, trigger IRMAA surcharges, and — for a surviving spouse filing single — cause a severe "Widow's Tax" cliff. This tool makes those dynamics visible across all your retirement accounts, not just the IRA.
What can I explore?
Two withdrawal periods — Model a higher-spend early retirement followed by reduced withdrawals later (or vice versa). The "Withdrawal target" line steps between rates at their configured start ages.
Two Social Security incomes — Enter each spouse's SS amount (in today's dollars) and the age at which it begins, expressed relative to your current age. Both grow with inflation from their start years and are fully additive.
Roth conversion headroom — With SS and other income set, raise your withdrawal above lifestyle needs. The gap between the Total Income line and the next bracket ceiling shows how much you could convert annually.
MFJ vs. Single ("Widow's Tax") — Toggle the filing-status switch. Bracket thresholds roughly halve when filing single, often triggering IRMAA tiers that were previously clear.
Inflation's toll — Switch to Today's $ mode to see the gap between the nominal IRA balance and its real purchasing power.
Left Panel — Inputs
Display / Filing status (top toggles)
Display — Future $ shows nominal (inflated) values; Today's $ deflates all amounts back to today's purchasing power for a real-terms view.
Filing status — MFJ or Single. Toggle to model the "Widow's Tax" effect: bracket thresholds roughly halve when filing single, often triggering IRMAA tiers that were previously clear. This is a filing-status switch, not a "no spouse" switch — the spouse's accounts and income still contribute to the projection.
Personal Information
Your birth year / Birth month — Determines your current age, RMD start age (SECURE 2.0), and age-adjusted standard deduction.
Retirement start age — Contributions past this age require earned income (a warning appears if active).
Spouse birth year / Birth month — Used to compute spouse's age and RMD schedule independently.
Desired Spendable Income
Annual target — Lifestyle spending goal in today's dollars. Used to calculate Roth conversion headroom above the withdrawal target and to drive the spending-smile curve.
Mode — Constant $ (flat nominal), + Inflation (maintains real purchasing power), or Spending smile (real spending declines gradually with age).
Assumptions
Annual growth rate — Nominal pre-tax return applied to IRA, Spouse IRA, and Roth balances each year.
Inflation rate — Annual CPI assumption used to grow contributions, withdrawals, SS income, and tax thresholds.
State income tax — Select a state; its brackets are added to the Tax & IRMAA threshold lines.
Accounts
My IRA — Pre-tax account (Traditional IRA, 401k, 403b, 457b, SEP-IRA, etc.). Set starting balance; optionally configure annual contributions (with inflation-grow option and stop age) and planned withdrawals across two periods.
Spouse IRA — Spouse's pre-tax account. Enter starting balance; RMDs are calculated separately from the spouse's birth year per SECURE 2.0.
Roth — Tax-free account (Roth IRA, Roth 401k, Roth 403b, etc.). Enter starting balance and optional annual contributions. No RMDs; excluded from taxable income.
Brokerage — Taxable account with configurable basis, appreciation rate, dividends, and periodic capital gains events.
Cash — Liquid savings earning a configurable interest rate.
Income
Social Security (×2) — Up to two SS (or other inflation-linked) income streams, each in today's dollars with a start age. Both are inflation-adjusted from their start year and fully additive to total income.
Fixed income — Nominal income that does not grow with inflation: pension payments, bond interest, dividends, cap gains distributions.
Tax & IRMAA Thresholds
Editable bracket and IRMAA threshold lines sourced from 2026 federal tables. Amounts are in today's dollars and grown with inflation each year (except NIIT, which is flat). Add, remove, or adjust any line.
The Total Income line includes all sources (IRA withdrawals + Spouse IRA RMDs + SS + fixed income + brokerage distributions). Threshold lines grow with inflation so you can see directly which bracket your income falls in each year.
Withdrawal Logic
Each year: balance grows → RMD calculated (age ≥ 75) → target = active withdrawal period amount × inflation factor → IRA withdrawal = min(available balance, max(target, RMD)).
No IRA withdrawal before Period 1 start age.
Once the IRA is exhausted, IRA withdrawals stop — Total Income continues from SS and fixed sources only.
SECURE 2.0: RMDs start at 75 for those born after 1958.
Model Limitations
Taking Social Security before full retirement age comes with a SS penalty that is not modeled.
Withdrawing IRA or Roth funds does not model the age 59½ requirement and early withdrawal penalties.
Calculations
RMD — prior year-end balance ÷ IRS Uniform Lifetime Table factor (age 75+, SECURE 2.0, born after 1958).
IRA withdrawal — min(available balance, max(inflation-adj target, RMD)); zero before Withdrawal 1 start age.
Total income — IRA withdrawal + My SS (if active) + Spouse SS (if active) + fixed income.
SS amounts — entered in today's dollars; inflation-adjusted from their start year before contributing each year.
Thresholds — bracket floors and IRMAA tiers sourced from taxengine.js (2026 federal tables). The standard deduction is added automatically and age-adjusted at 65 (one stdbump applied for MFJ — assumes one spouse at 65; actual may be higher if both spouses are 65+). For example, MFJ income enters the 10% bracket at the $32,200 standard deduction — only income above that is taxable. Bracket fills extend to the next bracket line — click any legend item to toggle.
NIIT — not inflation-indexed; stored as a negative floor and plotted as a flat nominal line in Future $ mode.
"Funded until" — last year the IRA balance fully covers the active inflation-adjusted withdrawal target; the final projected year if never depleted.
Amber table rows — RMD exceeds your target withdrawal. Red rows — IRA depleted.
Tax, IRMAA & NIIT Threshold Lines
Colored bands — federal income tax brackets. Each filled band represents one bracket's income range.
Purple lines — Medicare IRMAA surcharge tiers. These are cliffs: one dollar over the line triggers the full annual surcharge.
NIIT line — Net Investment Income Tax threshold ($250k MFJ / $200k Single + std deduction). A 3.8% surtax on net investment income above this level. Unlike other thresholds, NIIT is not indexed to inflation and plots as a flat line in Future $ mode.
Threshold amounts are bracket floors from the 2026 tax tables with the standard deduction added automatically. The std deduction is age-adjusted at 65 (MFJ base $32,200 + $1,650 per spouse at 65; Single base $16,100 + $2,050 at 65). For example, MFJ income is first taxed at 10% above the $32,200 standard deduction — the first $32,200 is fully sheltered. Thresholds are grown with inflation each year (except NIIT, which is flat in nominal terms).
Click any legend item to show or hide it.
Threshold editor — amounts are in today's $ and grown with inflation each year. Federal brackets are compared against Fed Taxable Income; state brackets against State Taxable Income; IRMAA tiers against MAGI (≈ Total Income). A negative amount marks a non-indexed threshold that stays flat in nominal terms (e.g. NIIT). Colors: orange = fed bracket, purple = IRMAA/NIIT, blue = state bracket. Entries sort low→high when you leave the amount field.
Metric Cards
Nominal / Real bal — IRA balance at end of projection in future and today's dollars.
Peak RMD — largest required minimum distribution over the projection period.
Funded until — last year the IRA fully covers the active withdrawal target; the final projected year if never depleted.
Total IRA Drawn — cumulative sum of all IRA withdrawals over the projection window (nominal).
Total Income — cumulative sum of all income sources (IRA + My SS + Spouse SS + fixed) over the window (nominal).
Limitations
Growth is constant here; markets are not. A single annual rate is a useful fiction — actual returns vary year to year and sequence of returns matters.
Tax law changes. Brackets, standard deductions, and IRMAA thresholds are all subject to legislation.
Net spendable income is not calculated. The tool shows gross income and bracket placement, not after-tax cash in hand.
State tax is approximate. State brackets are modeled, but not every state exemption (e.g. SS exclusions, pension exclusions) is captured.
Longevity is unknown. Neither your lifespan nor your spouse's is factored in.
Tips
Amber rows in the table = RMD exceeds your target withdrawal. Red rows = IRA depleted.
For IRMAA planning: qualified charitable distributions (QCDs) do not count toward MAGI.
SS amounts are in today's dollars — no need to pre-inflate. The tool adjusts them before they begin.
Try Today's $ mode to see whether your real purchasing power holds steady over time.
Change Log
9.1: Added 14 more state tax brackets (28 states total, including 9 no-income-tax states). Dropdown and per-state notes now auto-populate from the tax engine.
Share / Bookmark
Copy this link to restore your current settings:
Append to the filename when opening directly: Retirement_Projection.html?v=8&age=…
Display in
Future $Today's $
Filing status
MFJSingle
Personal Information
Age 65 · RMD starts 75
65
⚠ Contributions past retirement start require earned income.
Age —
Desired Spendable Income
$0
1.5%
% per year spending decreases in real terms (spending smile mode only)
Assumptions
8.0%
Pre-tax return applied to IRA, Spouse IRA, and Roth.
2.5%
Accounts
My IRA
Type amount with optional suffix: 2M, 500k, 1.5M · Enter to confirm
Accumulation
e.g. 7k, 23k, 70k · Enter to confirm
⚠ Based on 2026 limits — contribution may exceed the annual maximum. Verify with a tax advisor.
62
⚠ Contributions past retirement start require earned income.
Withdrawals
65
⚠ Tax penalties may accrue (IRA/Roth withdrawals before age 59½)
$75,000
75
$60,000
Spouse IRA
e.g. 500k, 1.2M · Enter to confirm
Grows at shared growth rate. RMDs calculated per SECURE 2.0 from spouse's birth year (set in Assumptions → Personal Information).
Roth
e.g. 200k, 1M · Enter to confirm
Grows at shared growth rate. No RMDs. Tax-free — excluded from taxable income totals.
Accumulation
e.g. 7k, 14k, 82.5k · Enter to confirm
⚠ Based on 2026 limits — contribution may exceed the annual maximum. Verify with a tax advisor.
62
⚠ Contributions past retirement start require earned income.
Brokerage
e.g. 500k, 1.2M · Enter to confirm
60% · $0
What you originally paid as a fraction of current value. 100% = no embedded gain.
5.0%
2.0%
→ CashReinvest (DRIP)
Always taxable income regardless of destination.
NonePeriodic
$0
Fixed $+ Inflation
1
65
Cash
e.g. 50k, 200k · Enter to confirm
4.0%
Receives dividends (when not DRIPing) and brokerage sale proceeds. Interest accrues annually.
Income
62
$0
SS × 85%, TIPS, or other infl-linked income. Grows with inflation from start year. Age relative to you.
70
$0
Spouse's Social Security or other inflation-linked income. Age relative to you.
$0
Pension, interest, dividends, cap gains — fixed in nominal terms