← Back to Calculator

How It Works

Overview

This calculator models your financial journey in two phases: an accumulation phase (working years, growing your portfolio) and a drawdown phase (retirement, spending down). All internal math uses nominal dollars; inflation-adjusted ("real") values are derived at display time.

At every step the model tracks three separate account buckets — pre-tax (401k/IRA), Roth, and taxable brokerage — and applies 2025 federal income tax brackets to estimate actual after-tax spending power.

Accumulation Phase

Starting from your current age and account balances, the model compounds each bucket by your chosen investment return rate each year. You enter your annual contributions to pre-tax, Roth, and taxable brokerage accounts as direct dollar amounts; the calculator derives the total savings rate and the per-bucket allocation fractions before running the simulation.

total_contribution = pretax_$ + roth_$ + taxable_$ savings_rate = min(total_contribution / annual_income, 1) portfolio(year+1) = portfolio(year) × (1 + return_rate) + annual_income × (1 + salary_growth)^year × savings_rate

Each bucket grows by its own contribution share. If your contributions exceed your income the savings rate clamps at 100% and the per-bucket fractions are scaled proportionally.

Accumulation runs from your current age to your target retirement age. The chart always splits at the target — the FIRE age marker is shown separately if you could retire earlier.

FIRE Number

FIRE stands for Financial Independence / Retire Early. The FIRE number is the portfolio size that sustains your desired retirement spending indefinitely, accounting for taxes on withdrawals.

FIRE number = portfolio such that: portfolio × SWR − taxes(portfolio × SWR × pretax_fraction) = net_spending net_spending = desired_spending + healthcare − ss_real − retirement_income_real

This is solved via binary search (60 iterations, converges to within 0.00001%). The tax term uses the marginal bracket rate on the pre-tax portion of the withdrawal plus 85% of Social Security income (the IRS-taxable fraction).

Social Security and retirement income streams are discounted to today's dollars before being subtracted from net spending:

ss_real = annual_ss / (1 + inflation)^(claiming_age − current_age) retirement_income_real = amount / (1 + inflation)^(start_age − current_age)

Earliest FIRE Age

The calculator searches year by year through your accumulation to find when your real (inflation-adjusted) portfolio first crosses the FIRE number. At each candidate age the FIRE number is recomputed with that age as the retirement age — this ensures income streams that start after the candidate age are not counted prematurely.

The real portfolio is compared to the real FIRE number. Comparing nominal values to a real FIRE number would make retirement appear reachable years too early.

Drawdown Phase

Starting at your target retirement age, the model simulates spending year by year through age 95, tracking all three account buckets.

Spending

Desired spending and healthcare costs are inflated each year from your current age:

spending(age) = (desired_spending + healthcare) × (1 + inflation)^(age − current_age)

One-time expenses (e.g. a home purchase) are added as a lump sum in the year they occur. Retirement income streams are fixed nominal amounts — they do not inflate, similar to a fixed pension or annuity.

Withdrawal Strategies

Three strategies control the order buckets are drawn down:

StrategyOrderWhen to use
Conventional Taxable → Pre-tax → Roth Default; preserves tax-free Roth growth longest
Roth-first Roth → Pre-tax → Taxable Minimizes current-year taxes; useful if in a low bracket early in retirement
Proportional All buckets pro-rata Smooth tax exposure; approximates Roth conversion ladder

Tax Gross-Up

When withdrawing from pre-tax accounts, you need to withdraw more than you spend to cover the tax bill. The model solves this iteratively (6 rounds of fixed-point refinement):

gross = net_needed + tax(gross × pretax_fraction + 0.85 × ss_income) → repeat until converged

Required Minimum Distributions (RMDs)

When RMDs are enabled, the IRS Uniform Lifetime Table is used to compute the minimum required withdrawal from your pre-tax accounts starting at age 73 (SECURE 2.0 Act). If the RMD exceeds your spending need, the surplus is re-invested in the taxable account.

Tax Brackets (2025)

Federal income tax is computed using 2025 marginal brackets. Filing status affects both the bracket thresholds and the standard deduction.

RateMarried Filing JointlySingleHead of Household
10%$0 – $23,850$0 – $11,925$0 – $17,000
12%$23,850 – $96,950$11,925 – $48,475$17,000 – $64,850
22%$96,950 – $206,700$48,475 – $103,350$64,850 – $103,350
24%$206,700 – $394,600$103,350 – $197,300$103,350 – $197,300
32%$394,600 – $501,050$197,300 – $250,525$197,300 – $250,500
35%$501,050 – $751,600$250,525 – $626,350$250,500 – $626,350
37%$751,600+$626,350+$626,350+

Standard deductions: MFJ $30,000 · Single $15,000 · Head of Household $22,500.

Tax brackets are updated annually. State income taxes are not modeled. Capital gains rates on taxable brokerage withdrawals are also not modeled — all withdrawals are treated as ordinary income, which is conservative.

Social Security

The monthly benefit you enter represents your benefit at full retirement age (67 for most people). The claiming age adjusts this by SSA factors:

Claiming Age626364656667686970
Factor70%75%80%86.7%93.3%100%108%116%124%

SS income is a fixed nominal amount from claiming age onward. Cost-of-living adjustments (COLA) are not modeled. 85% of SS income is included in taxable income per IRS rules.

Monte Carlo Simulation

The Monte Carlo simulation runs hundreds of randomized retirement scenarios to estimate the probability of not outliving your portfolio. Each simulation draws annual returns from a log-normal distribution:

annual_return = exp(μ + σ × Z) − 1 where Z ~ N(0,1) μ = ln(1 + expected_return) − 0.5σ² σ = return volatility (std dev slider)

The chart shows 10th/50th/90th percentile portfolio paths. The success rate is the fraction of simulations where the portfolio survives to age 95.

A common benchmark: the "Trinity Study" found ~96% success for a 30-year retirement with a 4% SWR using a 50/50 stock/bond portfolio (historical returns ~7%, volatility ~10–12%).

Default Values & Their Sources

The calculator ships with a pre-filled "Base Case" scenario. These defaults are meant to be plausible starting points for a median US household, not prescriptions. Every value is editable.

Parameter Default Rationale
Investment return rate 7% Approximate long-run annualized real return of a diversified US equity portfolio (S&P 500 historical average ~10% nominal, ~7% after ~3% inflation). Often cited in the Trinity Study and similar research.
Inflation rate 3% US CPI has averaged ~3% over the past century; slightly above the Federal Reserve's 2% long-run target as a conservative buffer.
Salary growth rate 2% Modest nominal wage growth assumption — roughly in line with the Fed's inflation target, implying flat real wages. Adjust upward if you expect career advancement or promotions.
Safe withdrawal rate 4% The "4% rule" originates from Bengen (1994) and the Trinity Study, which found a 4% initial withdrawal (inflation-adjusted annually) survived 30-year retirements ~96% of the time across historical market conditions.
Monte Carlo volatility 15% Approximate annualized standard deviation of a US stock market index fund (historical range ~15–20%). A blended stock/bond portfolio will be lower.
Social Security benefit $1,800/mo Near the SSA's reported average monthly retired-worker benefit (~$1,700–$1,900 as of 2024). The SSA's my Social Security portal gives your personal estimate.
Desired spending $65,000/yr Roughly 80% of the $80,000 default income — a common rule of thumb for retirement spending needs.

Key Assumptions & Limitations

For personal planning purposes only. Not financial advice. Consult a qualified financial advisor before making retirement decisions.