Methodology
How ChartFI models your money
ChartFI is a living version of a detailed financial-independence spreadsheet: it projects your finances year by year across your lifetime and answers one question — when does your money become enough to live on without working? This page is the honest version of how it does that, including where the model stops. It's a model, not a crystal ball, and we'd rather you know exactly what that means.
The one definition
What “FI” means here
You are financially independent in the first year that your portfolio × your safe withdrawal rate (SWR) ≥ your annual expenses. Two numbers fall out of that and appear throughout the app:
- FI Number = your annual expenses ÷ SWR. At a 4% SWR, $100k of spending needs a $2.5M portfolio.
- FI Year = the first calendar year your projected portfolio reaches that target.
Spending is organized around five life phases — Working, Wind-down, Early retirement, Retired and Downsized — because the budget differs in each. The last three require you to have actually retired: turning 65 is a health-coverage fact, not a work fact, so a plan that works to 70 keeps contributing and keeps its working budget until then. Downsized needs both triggers — retired and past your downsize year.
Tax planning segments on different boundaries, because the tax rules change at ages the budget does not care about: the 10% early-withdrawal penalty before 59½, the ACA gap between retiring and Medicare, Medicare from 65, and RMDs from 73. The Roth-conversion optimizer sizes a separate conversion target in each of those bands.
Taxes
Tax modeling, in detail
Taxes are where a FIRE plan is won or lost, so this is where ChartFI spends most of its effort. Each projection year computes taxes from your actual income sources and account types, not a flat effective rate:
Federal + all 50 states & DC
Federal brackets plus state-and-local income tax for every U.S. state and DC — flat, bracketed, or no-income-tax states are each modeled with their own rules, standard deductions, and Social-Security treatment.
Roth conversions
In low-income years you can deliberately convert tax-deferred balances to Roth, paying tax at a low rate now to avoid a higher rate — or forced RMDs — later. The optimizer searches conversion targets to shrink lifetime tax.
RMDs
Required minimum distributions from tax-deferred accounts starting at age 73 are forced into taxable income on the schedule the IRS requires.
IRMAA
Income-related Medicare surcharges (Parts B & D) at 65+, including the two-year lookback — the income you report at 63 sets your first surcharge tier. After the first death, the surviving spouse is charged at single-filer rates: the surcharge follows your current filing status, not the couple you were two years earlier.
ACA subsidy cliff
Marketplace health-insurance subsidies depend on modified AGI, and disappear entirely above roughly 400% of the federal poverty level. If you tell us you buy your own coverage, the model holds income under that line whenever it sizes a Roth conversion — in every year before Medicare at 65, not just the years just before it. On employer, COBRA, retiree or a spouse's coverage there is no subsidy at stake, and the cap is lifted.
The subsidy taper below the cliff
The cliff is not the whole story: below it the credit shrinks steadily as income rises, on the IRS applicable-percentage schedule, so income costs you subsidy long before you reach 400%. Mark a Budget line as an unsubsidised premium — the full price before any subsidy — and the model prices the credit against it each year and spends only the difference. Between 100% and 400% of the poverty level that taper acts like an extra ~10% tax on each additional dollar, and steeper still in the 250–300% band. Below 100% there is no credit at all; the model does not attempt to represent Medicaid.
QCDs
Qualified charitable distributions can satisfy RMDs without adding to taxable income — modeled as a lever for the charitably inclined.
Capital-loss carryforward
Realized capital losses beyond the annual deduction limit carry forward to offset future gains, exactly as the tax code allows.
Social Security
Each person's benefit and filing age is modeled, and the optimizer searches joint claiming ages alongside retirement age and conversions to maximize lifetime after-tax wealth — with a robustness note when the answer is sensitive to longevity. A benefit is paid from the first full year after the filing age is reached — someone born in 1968 who files at 67 turns 67 in 2035 and sees their first benefit on the 2036 row — so the yearly tables show it one row after the age you set.
The constants ship for the current tax year and are the same for every plan — they are not a per-plan setting. Like any model of the tax code, they are an approximation that improves as the rules are updated.
Risk
How the Monte Carlo works — and what it can’t promise
Your FI Year on the projection assumes steady, average returns every year. Real markets deliver good and bad years in an unlucky order (“sequence-of-returns risk”). The Monte Carlo analysis runs hundreds of alternate lifetimes for your exact plan and reports the share in which your plan always met its spending needs (the success rate), the range of portfolio outcomes (the fan chart), and how much your FI date moves with luck.
Three return models — from a clean normal to real market history.
You choose how each simulated year's returns are drawn. Normal samples each asset class from a multivariate-normal distribution using your assumed means, volatilities, and cross-asset correlations — transparent and fully tunable. Fat-tailed (Student-t) keeps those same assumptions but thickens the tails, so severe crashes get a realistic probability instead of being treated as near-impossible. It's a realism knob, not a way to look safer — heavier tails can actually nudge the headline success rate up, so every run discloses which model produced it. Historical (block bootstrap) resamples real market history in multi-year blocks, so genuine crashes, recoveries, and the order they arrived in — sequence-of-returns risk and regime co-movement — carry through instead of being averaged away.
On top of the fan chart you can overlay named historical scenario lines — a deterministic replay of your exact plan through real cohorts such as the Great Depression (1929), the 1966 stagflation retiree, the 2000 dot-com-and-GFC lost decade, and the 1982 bull market — each using that era's actual returns and inflation. The underlying return data comes from public sources (Damodaran / NYU Stern for stocks, bonds, cash and inflation; Nareit for REITs).
The honest limit hasn't moved: every mode still rests on a finite return history and on assumptions you can only estimate, so read the success rate as a stress-test of your plan's resilience, not a probability of the future. The right use is to push returns, volatility, inflation, or withdrawal rate to a pessimistic case and watch how far the FI Year slips.
Validation
How we keep the math honest
The calculation engine is snapshot-tested across more than 80 household scenarios — every field of every projection year is pinned to a reviewed expected value, so a code change that alters any number is caught before it ships. On top of that, each run applies validation and reconciliation checks that flag internal inconsistencies (for example, cash identities that don't balance) so a plan that clears them is internally coherent.
What that buys you is consistency — the model computes what it says it computes, the same way every time. It does not, and cannot, promise the market will cooperate.
Limits
What ChartFI deliberately does not do
- No accuracy percentages or guarantees. We don't publish an “X% accurate” figure, because no honest projection can. A projection is an estimate from stated assumptions.
- No account aggregation. ChartFI doesn't link to your bank or brokerage; you enter balances and, once a year, real year-end numbers in Plan vs Actual. That's a deliberate privacy trade-off.
- Capital gains use average cost basis, and start from the cost basis you enter. Selling shares from a taxable account to fund spending realizes capital gain on the appreciation above your cost basis, at the account's average — there are no individual tax lots, so specific-lot selection and tax-loss harvesting aren't modeled, and every gain is treated as long-term. If you don't enter a cost basis for an account, the plan assumes the balance you typed is entirely basis and taxes only the growth it projects from there, which understates the tax on holdings you have owned for a long time. Dividends and yield are taxed every year as they accrue.
- It isn't financial, tax, or legal advice. It's a planning tool. Big, irreversible moves — large Roth conversions, claiming decisions — are worth checking with a professional who knows your full situation.
How we compare
ChartFI vs. the alternatives
An honest, updatable comparison. Every tool here is good at something; the right choice depends on what you value. Where a competitor is stronger, we say so.
| ChartFI | Spreadsheets | Free calculators | Premium DIY planners | |
|---|---|---|---|---|
| Tax-timing depth | Federal + all-50-state, IRMAA, ACA cliff, RMDs, QCDs, Strategy Optimizer for Roth conversions | Whatever you build yourself | Usually federal-only, flat rates | Strong; varies by tool |
| Guidance loop | Recommends the next move, then tracks it (Plan vs Actual + Actions) | None — it's a canvas | One-shot answer | Some scenario guidance |
| Risk analysis | Monte Carlo — normal, fat-tailed, or block-bootstrap (tunable) | DIY | Rare or basic | Monte Carlo; some historical backtesting |
| Historical backtesting | Yes — block-bootstrap + named historical scenario lines | DIY | No | Often yes |
| Account aggregation | No (privacy trade-off) | No | No | Often yes — an edge here |
| Track record / brand | New | n/a | Varies | Established — an edge here |
The short version: ChartFI's edge is the guidance loop and tax-timing depth. If you want account aggregation or a long track record today, the premium DIY planners are strong, fair choices — and a spreadsheet still wins on raw flexibility.
Disclaimer
Projections are estimates based on stated assumptions — they are not guarantees or financial advice. This tool is for personal planning purposes only. Past performance is not indicative of future results.