Calculation methodology
By the Coast FIRE Calculator editorial team, for an independent publisher. This describes the code in our calculation modules and the inputs the tools open with. It separates government rules from our editable planning assumptions; an official source does not endorse our model.
Coast FIRE and full FIRE
fire.ts uses FIRE target = annual spending ÷ withdrawal rate. Real return = (1 + nominal return) ÷ (1 + inflation) − 1. Coast target = FIRE target ÷ (1 + real return)years until retirement. At or after retirement, the Coast target equals the full FIRE target.
Opening inputs: age 30, retirement at 65, annual spending $48,000, invested assets $50,000, monthly savings $1,500, nominal return 7%, inflation 3%, withdrawal rate 4% and projection end age 90. These are assumptions, not government-prescribed rates or a validated probability of success.
calculateYearsToFire solves the compound-growth equation with annual savings; at zero real growth it uses (target − savings) ÷ annual contributions. The Coast age search checks whole ages. projection.ts credits real annual growth (rounded to dollars), adds annualized contributions at year-end while accumulating, stops contributions once Coast is reached, then subtracts annual spending after growth in retirement. Dollar values are in today's purchasing power.
Official context: SEC Investor.gov Compound Interest Calculator explains growth inputs. It does not prescribe a Coast FIRE formula or approve a withdrawal rate. Our formulas are planning identities; the 4% default is not an official rule. The model omits taxes, account-access rules, investment selection, return sequences and changing benefit or spending dates. See Coast FIRE, FIRE and worked examples.
Barista, Lean and Fat FIRE
variants.ts applies the same spending ÷ withdrawal-rate identity. Barista uses max(0, annual spending − annual part-time income); the opening part-time income is $20,000. Lean and Fat start with budgets of $28,800 and $72,000 respectively, editable independently. These budget choices are site scenarios, not official eligibility definitions. Each tool searches whole years, for up to 100 years, to find when savings plus annual contributions and real growth reach its target. A part-time income assumption does not verify job availability, health coverage, taxes or access to portfolio funds. See the same-input comparison.
Retirement withdrawals
withdrawal.ts takes the withdrawal at the start of each year, then grows what remains: end balance = (start balance − withdrawal) × (1 + nominal return). Indexed withdrawals increase by inflation each year. The level-plan first-year payment equals balance ÷ Σ[((1 + withdrawal growth) ÷ (1 + return))t], for t from 0 through years − 1. This is a finite-period mathematical payment, not a historically tested “safe” amount.
Opening inputs: $750,000 balance, $45,000 first withdrawal, age 65, a 30-year plan, 6% nominal return, 2.5% inflation and inflation indexing enabled. The schedule runs up to 60 years; “beyond 60” is not infinite solvency. Timing differs from the FIRE projection above. Official context: SEC Investor.gov: Annuities distinguishes insurance products from this arithmetic, and IRS Publication 590-B governs IRA distributions. Neither turns this spending schedule into an insurance quote, tax calculation or RMD compliance check.
Required minimum distributions (RMDs)
rmd.ts divides the prior December 31 account balance by the distribution-year age factor. It uses the Uniform Lifetime Table, or the Joint and Last Survivor Table when the spouse is sole beneficiary and more than 10 years younger. The projection removes the RMD before applying growth. Opening inputs: 2026 distribution year, $500,000 balance, owner born in 1952, no qualifying younger-spouse election and 6% growth; spouse birth year 1964 is used only if selected.
Sources: IRS Publication 590-B, lifetime distribution tables and 26 CFR 1.401(a)(9)-9. The implementation follows the regulation where the age-90/spouse-76 table cell differs from the publication. Birth year 1959 is flagged as pending in the existing implementation rather than presented as settled. The owner tool does not implement every plan exception, track actual payments, or substitute for the separate beneficiary tool.
72(t) substantially equal periodic payments
sepp.ts implements three methods: RMD = balance ÷ table life expectancy; fixed amortization = balance × r ÷ [1 − (1 + r)−life expectancy] (balance ÷ life expectancy at zero interest); fixed annuitization = balance ÷ a survival-weighted, end-of-year discounted annuity factor.
Opening inputs: $500,000, age 50, Single Life Table, first-payment month 2026-11, rate 5.54%. The month is the latest supported by the stored rate table, not automatically the current month. The maximum rate is the greater of 5% and 120% of the federal mid-term rate for either of the preceding two months; an unpublished required month produces no rate. Sources: IRS Notice 2022-6 and its referenced life and mortality tables, with the revenue rulings listed on the 72(t) page. The payment period runs until the later of five years or age 59½. This models annual amounts, not account setup, modifications, recapture tax or a personalized exception determination.
Roth conversions
taxPlans.ts calculates federal ordinary-income tax before and after adding a conversion, using taxYear.ts brackets and deductions. Conversion tax = tax after − tax before. It accounts for the modeled age-related standard deduction and income-based senior deduction; bracket-fill amounts iterate to account for deduction phaseout.
Opening inputs: 2026 tax year, married filing jointly, $60,000 other income before deductions, $50,000 conversion and zero people age 65 or older. Sources: IRS Revenue Procedure 2025-32 for indexed brackets and deductions, IRS guidance on the enacted senior deduction, and Publication 590-A for conversion rules. It assumes the entered conversion is taxable, and excludes nondeductible-basis pro rata allocation, state tax, credits, capital-gain stacking, benefit taxation, Medicare surcharges and a multi-year conversion strategy.
CPP and OAS
cpp.ts applies the age factor in canada.ts to the user's monthly pension estimate at 65: 0.6% less per month before 65, or 0.7% more per month after 65, with starts limited to ages 60–70. Opening inputs are age 65 and CAD 877.01 monthly, the stored April 2026 average for new pensions; the stored January 2026 maximum is CAD 1,507.65. Source: Service Canada: When to start your retirement pension. It does not reconstruct contribution history or CPP enhancement entitlement.
oas.ts starts from the stored October to December 2026 base of CAD 762.50 monthly, scales residence years after 18 by years ÷ 40 (capped at one, with zero below 10 years in this resident model), adds 0.6% per deferred month up to age 70 and increases the modeled amount 10% at 75. Opening inputs: age 65, 40 residence years, CAD 60,000 income. Recovery tax is the lesser of annual OAS and 15% of income above the stored CAD 93,454 threshold for 2025 income. Sources: Service Canada: OAS amounts and residence rules and OAS recovery tax. Values describe the stored quarter, not all future periods.
Both benefit tools hold purchasing power constant and compare cumulative payments without investment discounting or complete income tax. Residence scaling is not an eligibility decision; international agreements and individual records require agency confirmation. The Canadian Coast tool separately models pension-start bridge years; the US Coast tool does not.
Sources, checks and corrections
We update affected figures and rules when official numbers are published or changed. The check date printed on a calculator refers to its last recorded check for the stated material. Different sections may have different check dates. Source-check dates stay attached to the material they describe when we publish site updates.
To reproduce an error, send the URL, non-sensitive inputs, expected output and official source to hello@coastfirecalculator.io. The editorial team checks the governing source, corrects confirmed code or explanation errors and verifies the result. See editorial policy for scope and provenance.
How this content is made
We implement tax, account and benefit formulas and figures from official IRS, SSA, CMS, OPM, CRA and Service Canada publications. Each calculator page lists its sources and recorded source-check dates. For growth projections, we identify editable planning assumptions separately from official rules.
Our editorial team uses AI writing and coding assistants to draft explanations, write code and develop tests. These tools help us turn source material into clear explanations and working calculators; official publications remain the reference for rules and figures.
Before publishing, we check the applicable formulas and figures individually against official documents, write automated tests using official worked examples, and inspect pages at desktop and mobile widths.
To report an error, email hello@coastfirecalculator.io with the page URL, non-sensitive inputs, expected result and official source. We reproduce the issue, check the governing rule, correct the code or explanation and verify the result. We record significant changes in the Update log.
Update log
Dates below record site implementation and documentation changes from repository history, not the publication dates of government rules or a new source-check date. Earlier entries include their code revision for reference.
- — Published how this content is made, explaining AI assistance, official-source checks, testing and corrections.
- — Added the 2026 retirement account limits and tax figures reference, reading the calculators’ existing values. Sources include IRS Notice 2025-67, Revenue Procedure 2025-32 and Revenue Procedure 2025-19. Clarified editorial responsibility and simplified source-date labels without changing recorded dates.
- — Published this methodology and shared calculation examples; marked selected specialist worksheets noindex and removed them from the search sitemap while keeping their URLs accessible (
ab04bfc). Site editorial and indexing maintenance, not a change to government rules. - — Made first-payment timing and conditional shortfall-correction guidance easier to find on the RMD tool; improved projection-table readability (
6c9d1c4). Governing source: IRS Publication 590-B. Calculation rules were unchanged. - — Added the 401(k) contribution, employer-match, vesting and loan calculation module to repository history (
b3d4130; originally authored September 28). Limits use IRS Notice 2025-67; loan rules use 26 CFR 1.72(p)-1. - — Added 2026 IRA contribution and income-phaseout calculations (
3516411) and 403(b)/457(b) contribution calculations (7fc5f9a). Annual limits: IRS Notice 2025-67; IRA worksheets: Publication 590-A; plan catch-up rules: 26 CFR 1.403(b)-4 and 1.457-4. - — Added owner RMD ages, Uniform Lifetime and Joint Life tables and the pending birth-year flag (
231f822). Sources: Publication 590-B and 26 CFR 1.401(a)(9)-2. - — Added the three 72(t) methods and a stored monthly 120% federal mid-term rate table (
539c160), under IRS Notice 2022-6. The table’s monthly revenue rulings are linked on the 72(t) calculator; the stored data is not a live monthly feed. - — Added 2026 federal tax brackets, standard deductions, capital-gain thresholds and Roth-conversion tax math (
8ebffc0), using Revenue Procedure 2025-32 and the senior deduction enacted in P.L. 119-21, described in IRS senior-deduction guidance. - — Added HSA contribution and growth calculations with the 2026 limits (
b88d1f6). Sources: Revenue Procedure 2025-19 and Publication 969.