πŸ’Ύ Scenarios

Interactive Retirement Account Balance Projector

Single
Taxable brokerage
$150k basis / $100k gains (only gains taxed)
Roth IRA
Earnings: $25,000 (locked until 59Β½)
Traditional IRA / 401k
Withdrawals = ordinary income Β· 10% penalty before 59Β½
Crypto
Assumes long-term gains (β‰₯1 yr held)
Off
Pre-65 health insurance is a major early-retirement cost. ACA subsidies depend on MAGI β€” Roth conversions push MAGI up and can cost subsidies. Switch the regime to "2026 cliff" or "Enhanced" to model ACA impact. The 2026 cliff cuts off subsidies entirely above 400% FPL ($62,600 single / $84,600 two-person). Enhanced caps premiums at 8.5% of MAGI with no cliff.
Taxable Roth IRA Trad IRA Crypto Total
Balance projections by account type.
Taxes: 2026 federal brackets and standard deduction (post-OBBBA). Long-term capital gains stack on top of ordinary income β€” filling the 0% LTCG bracket is a real opportunity in low-income years. Trad IRA withdrawals before 59Β½ incur a 10% penalty. Roth conversions count as ordinary income in the year of conversion. State tax is a flat rate on ordinary income only (real state codes vary). RMDs checked starting at age 73 via the IRS Uniform Lifetime Table.

Inflation: When ON, expenses, the SS benefit amount, withdrawal targets, tax brackets, and the standard deduction all grow at the assumed rate each year. Critically, the Social Security taxability thresholds ($25k/$32k single/MFJ) do NOT inflate β€” they're statutory, frozen since 1983. Over time this pushes more retirees into the "SS tax torpedo" where 85% of benefits become taxable. Investment returns are nominal (your "5%" stays 5% nominal; real return = nominal βˆ’ inflation). Withdrawal slider amounts and the expense slider are interpreted as today's dollars and inflated forward internally β€” from the retirement age, which is where the simulation's clock starts. Toggle "Today's $" / "Nominal $" to switch the chart and metric display.

ACA subsidies (pre-65): Modeled using 2025 FPL guidelines ($15,650 single, +$5,500/person). The 2026 cliff regime restores pre-ARPA rules β€” full subsidy phaseout from 100%–400% FPL, hard cliff above. The enhanced regime (if Congress extends) caps benchmark premiums at 8.5% of MAGI with no cliff. Net health insurance cost = benchmark premium βˆ’ subsidy, which we subtract from net spendable. This is a simplification: real subsidies depend on benchmark plan cost, age, and geography; we use a single-premium slider as a proxy. The big idea: Roth conversions push MAGI up. A $20k conversion at 405% FPL can cost $5–15k in lost subsidies β€” often more than the 22% federal tax. The optimizer accounts for this.

Phases: The withdrawal plan is split into age bands anchored to multiples of 5 (60 = penalty-free traditional withdrawals, 65 = Medicare, 73 = RMDs), plus an extra split at your Social Security start age so no band mixes pre-SS and post-SS years. With SS at 67 the 65–69 band becomes 65–66 and 67–69, each with its own sliders. Moving the SS age re-slices the cards but carries your entered amounts across by age; changing the retirement age rebuilds them from age-appropriate defaults.

Accumulation (today β†’ retirement): Optional, and off by default. Current balances grow at the same investment return you set for retirement (crypto at its own rate), and recurring deposits are entered in today's dollars and inflated forward, so a deposit holds constant purchasing power instead of quietly shrinking. Deposits land at the end of each year β€” a contribution earns nothing in the year it is made β€” and add to cost basis at cost, so the derived taxable and crypto basis percentages fall as gains accumulate, and Roth deposits join the contribution basis that's withdrawable at any age. The result is offered in two bases because the simulator's clock starts at retirement, not today: Today's $ keeps the projected balances comparable to the expense and Social Security sliders, which are also today's dollars, and is the internally consistent choice; Age-N $ is the literal figure a statement would show that year, but it is then spent against expenses entered in today's money, which understates what those years actually cost. Nothing here is modelled beyond compounding β€” no salary, no employer match schedule, no contribution limits, no sequence-of-returns risk.

Optimizer: Runs a fixed set of named strategies through the same simulator and ranks them by your objective. Each strategy is a deterministic rule (e.g., "fill the 12% bracket each year"); the optimizer doesn't search continuously. Strategies that break the 5-year Roth seasoning rule before 59Β½ are flagged with a warning badge.