Methodology and data status

Every calculator on this site is a pure function of its inputs and a data file that names the document each figure was read from. This page states the rules in plain steps, lists what each tool leaves out, and shows the verification status of every data file.

Data status

Data fileStatusLast verifiedUsed by
Social Security rules verified 2026-09-10 break-even calculator; the §86 rules in the taxable Social Security and withdrawal calculators
Life-expectancy tables and mortality rates (2022) verified 2026-09-10 72(t) calculator; RMD calculator (Uniform Lifetime and Joint and Last Survivor tables)
Required minimum distribution rules verified 2026-09-11 RMD calculator
120% mid-term AFR, 2021-01 to 2026-10 verified 2026-09-30 72(t) calculator (interest-rate ceiling)
Real total returns, US stocks and 10-year Treasuries, 1928 to 2025 verified 2026-09-12 safe withdrawal rate calculator (the historical model)
US federal 2025 brackets and standard deduction verified 2026-09-05 not used on this site
US federal 2026 brackets and standard deduction verified 2026-09-05 withdrawal and taxable Social Security calculators (federal tax estimate)

"Verified" means two independent reads of the primary documents produced the same figures and a third pass tried to break the mechanics with the agency's own examples; "draft" means one read so far. The federal file was verified in an earlier project that shares this calculation engine. Verification method and dated notes for each file are shown below its rules.

Social Security claiming and break-even

Calculator: Social Security break-even calculator

The calculator applies the SSA's month-by-month reduction and delayed-retirement-credit rules to the visitor's birth date and primary insurance amount, then sums the benefits of two claiming ages month by month to find the break-even age.

  1. The SSA birth month: someone born on the 1st is treated as born the previous month, and on January 1 as born the previous year.
  2. Full retirement age by year of birth: to 1937: 65; to 1938: 65 and 2 months; to 1939: 65 and 4 months; to 1940: 65 and 6 months; to 1941: 65 and 8 months; to 1942: 65 and 10 months; to 1954: 66; to 1955: 66 and 2 months; to 1956: 66 and 4 months; to 1957: 66 and 6 months; to 1958: 66 and 8 months; to 1959: 66 and 10 months; 1960 and later: 67.
  3. Reduction for each month before full retirement age: 5/9 of 1% for the first 36 months, then 5/12 of 1%.
  4. Delayed retirement credit for each month after full retirement age up to 70: one twelfth of the annual rate for the year of birth (8% for 1943 and later). The credit is applied to the unreduced benefit; a claim before full retirement age earns none.
  5. The earliest month of entitlement is the first month in which the person is 62 throughout: the birthday month for someone born on the 2nd, the following month for everyone else.
  6. Spousal benefit: 50% of the worker's PIA at the spouse's full retirement age, reduced 25/36 of 1% for each of the first 36 months early and 5/12 of 1% beyond, never increased for delay.
  7. Monthly benefit: the PIA is truncated to the dime (§415(a)(1)(A)); the unreduced amount — half of it for a spouse — is itself truncated to the dime, which POMS RS 00601.020 A.4 requires and this engine omitted until 2026-09-15, paying a dollar less than the SSA on any PIA ending in an odd dime; the reduction for early months is computed on that amount and rounded UP to the dime (§402(q)(8)); delayed retirement credits add one twelfth of the annual rate per increment month (§402(w)(1)); and the result is rounded down to the dollar (§415(g)), except that an amount under $1.00 is left alone rather than rounded to nothing (RS 00601.020 D.3). The Medicare premium the statute deducts before that rounding is not modeled.
  8. Timing of credits (§402(w)(3)): credits earned in the calendar year of a claim are applied from the following January, or from the month the person reaches 70 if that comes first (the statute's second clause; POMS RS 00615.690 B lists both effective months); a claim in or after the month of the 70th birthday gets every credit at once. The calculator shows the first checks separately when they differ.
  9. Break-even: each month's benefit is added from the month the claim starts, and a total "by age N" includes the check for the month of the Nth birthday; each December after the earlier claim's month the PIA is raised by the COLA and truncated to the dime (§415(i)(2)(A)(ii)); every benefit received grows at the return entered, compounded monthly at the twelfth root of the annual rate on the balance received so far. The break-even month is the first month after the last one in which the earlier claim is still strictly ahead — a month in which the two totals are exactly equal counts as caught up; none is reported when the later claim never catches up by the horizon.

Dual entitlement — a spouse who also has a retirement benefit of their own — follows POMS Method C: the unreduced own benefit is subtracted from the unreduced spousal amount, and only then is each part reduced, the own benefit at 5/9 of 1% a month and the excess at 25/36 of 1% (§402(k)(3)(A), §402(q)(3)). The subtraction comes before the reduction, not after, and each part is rounded down to the dollar separately before they are added (POMS RS 00601.020 D.2). A spouse whose own primary insurance amount reaches half the worker's is not entitled to a spousal benefit at all (§402(b)(1)(D)) — that is an entitlement test, not a benefit reduced to zero. Delayed retirement credits never enlarge the spousal side, so past full retirement age a dually entitled person gains nothing until their own credited benefit passes half the worker's. The subtraction that produces the spousal side happens at the dime and each benefit is rounded to the dollar afterwards (RS 00615.694, steps 4 to 6); rounding first would throw away the remainder, which is worth up to a dollar a month.

The retirement earnings test (§403(f)) withholds benefits while a beneficiary below full retirement age works. The rates are in §403(f)(3) and not in §403(b), which carries the machinery and no rate: excess earnings are half of what is earned above the annual exempt amount, or a third above the higher amount in the year full retirement age is reached, and are rounded down to the dollar. In that year only earnings for months before the month of attainment count, while the full annual threshold is subtracted; from the month of attainment nothing is withheld at all. The year's excess is charged to months in order, so a year ends with some months paid nothing, at most one paid in part, and the rest paid in full. In the first taxable year containing a month not worked on or after entitlement, §403(f)(1)(E) bars charging any month not worked, however large the year's earnings — which is what makes a mid-year retirement come out right.

Every month charged with excess earnings then drops out of the reduction period (§402(q)(7)(A)), including a month charged only in part; the SSA's practice of spreading one month's withholding over several cheques does not multiply the count (POMS RS 00615.482B). The reduction is rebuilt on the months that remain, at that benefit's own first-36-months rate, rather than scaled by the ratio of months — so the months come off the cheaper five-twelfths tail first. Sixty reduction months less twelve credited is a 25% reduction, not the 24% a ratio would give. The adjustment applies from the month of full retirement age and is permanent (20 C.F.R. §404.413(c)(1)); the money withheld is never refunded.

Not modeled: survivor benefits, family maximums, the "B then A" dual-entitlement case where a spousal benefit starts before the person's own, the child-in-care exception to the age reduction, the "substantial services" standard for a month of self-employment, the second grace year available to a widow or widower, the special minimum PIA, and Medicare premiums. Earnings are taken as a steady annual figure, so a bonus paid in a single month is spread across it.

Verification: Two independent reads on 2026-09-10 — the first from the SSA actuarial and planner pages (web.archive.org snapshots of June–September 2026, since ssa.gov refuses non-browser requests), IRC §86 and Publication 915; the second, blind to the first, from the same pages plus 42 U.S.C. §402, §415 and §416(l) — agreed on every figure. A third, adversarial pass recomputed the SSA's $1,000-PIA tables, its 2026 worked cases and Publication 915's four filled-in worksheets by hand and compared 240 claiming cases and 20 taxation cases with the engine.

Taxation of benefits (IRC §86)

Calculators: Taxable Social Security calculator · Retirement withdrawal calculator

  1. Provisional income = other income in AGI + tax-exempt interest + one-half of benefits, less above-the-line adjustments other than student loan interest (Publication 915, Worksheet 1, lines 1–8).
  2. If it does not exceed the base amount — $25,000 single or head of household, $32,000 married filing jointly, $0 married filing separately and living together — nothing is taxable.
  3. Otherwise up to 50% of the excess over the base amount is taxable, capped at half the benefits, and once provisional income passes the adjusted base amount ($34,000 / $44,000) 85% of the further excess is added, with the 50%-tier piece capped at $4,500 / $6,000; the total is capped at 85% of the benefits.
  4. Married filing separately and living together: 85% of provisional income, capped at 85% of the benefits.
  5. The taxable Social Security calculator shows the same arithmetic as Publication 915's Worksheet 1, line by line, and adds a federal income-tax estimate for the single year: AGI = other income − adjustments + the taxable part; less the standard deduction with the additional amount from 65 and the 2025–2028 senior deduction; the year's brackets on the rest, all other income at ordinary rates. "Tax attributable to the benefits" is the estimate with the benefits less the estimate without them; the "one more $1,000" figures are the same estimate with $1,000 more other income.

The engine reproduces Publication 915's five filled-in worksheets in its tests. The amounts are statutory and not indexed.

Retirement withdrawals

Calculator: Retirement withdrawal calculator

The calculator projects one year at a time: spending indexed to inflation, income that has started, the withdrawal that covers the gap after federal tax, and the balance rolled forward at the return.

  1. Each year: spending = first-year spending × (1 + inflation)years elapsed. Ages are the age reached in each calendar year, the way the tax rules count them.
  2. Income sources that have started are added. An amount entered in today's dollars is raised by inflation for the years until it starts; after it starts it rises by its own increase (Social Security by the inflation rate, a pension by whatever you enter).
  3. An income already in payment when the projection starts is entered at its current amount; its increases count from the first projected year.
  4. Money kept outside the account (income above spending, or a required minimum distribution above the year's need, after tax) is spent before the account is touched; it earns the same return, untaxed.
  5. The withdrawal is the amount for which income + withdrawal + outside money used − federal tax = spending, found by bisection with a bracket widened until it contains the answer.
  6. Federal tax: ordinary income = the pre-tax part of the withdrawal (for a mixed account, the required minimum plus the pre-tax proportion of the rest) + pension + the taxable part of Social Security from the §86 rules above; taxable income = ordinary income − the standard deduction for the filing status, including the §63(f) additional amount for each person 65 or over, − the §151(d)(5) senior deduction (2025–2028, $6,000 per person 65 or over, each person's $6,000 less 6% of modified AGI over $75,000, or $150,000 on a joint return where both spouses' amounts are reduced, not on separate returns); the brackets and standard deduction are indexed to the projection's inflation rate each year (the §86 amounts and the senior deduction are not); tax from the 2026 brackets.
  7. Required minimum distribution from the applicable age of §401(a)(9)(C)(v) (73 for births 1951–1959, 75 from 1960; a 1959 birth meets both clauses of the statute as drafted and is read as 73, as the IRS's proposed regulations do (REG-103529-23, proposed §1.401(a)(9)-2(b)(2)(v), 89 FR 58644)): the pre-tax part's opening balance ÷ the Uniform Lifetime factor for the age reached in the year (Treas. Reg. §1.401(a)(9)-5(b), (c)); the withdrawal is at least that amount, taken in the year it falls due — the option of delaying the first one to April 1 of the following year, which puts two in that year, is not modeled. The account is kept as a pre-tax part and a Roth part: the minimum comes from the pre-tax part and is taxed in full; the rest of the year's withdrawal is drawn from both in proportion to what each holds, so the pre-tax share falls only when a minimum forces more out of it.
  8. The balance after the withdrawal earns the return for the year. A year in which neither the account nor the outside money can cover the spending is the year the savings run out.

The same projection can be run three ways: against one return repeated, against every stretch of the record long enough to finish the plan, and against whole years drawn from the record at random. Only the return of each year changes — the tax, the required minimums, the income sources and the pre-tax and Roth split are the same code in all three, which is why the counts can be compared with each other at all.

The record holds returns after inflation and carries no inflation series of its own, so a year's nominal return cannot be recovered from it. The projection is nominal — spending rises with inflation, a pension without an increase does not, the brackets and the standard deduction are indexed to the same rate, and the §86 thresholds that decide how much of a Social Security benefit is taxable are fixed dollar amounts that erode as prices rise. So the returns are converted to the projection rather than the projection to the returns: the nominal return for a year is (1 + that year's real return) × (1 + your inflation rate) − 1. The sequence supplies the pattern of real returns, which is what the record is evidence for and what a single rate cannot express; your assumption supplies the price level. Results are shown in today's dollars by deflating at the same rate.

This was written the other way round first, restating the plan in real terms with inflation set to zero, and an external review found two things wrong with it on 2026-09-16. A pension entered as the amount it will pay in a future year was treated as though that were today's money — $20,000 starting three years out is $18,571.99 of present purchasing power at 2.5%, and the error moved one historical run from 50 of 65 periods surviving to 55. And the federal layer is not unit-free: zeroing inflation froze the §86 thresholds in real terms when they should erode, understating tax and overstating one 34-year plan's ending balance by $4,001.97. Converting the returns keeps every one of those rules exactly as the steady mode has them, and leaves no second tax model to keep in step. A stock and bond mix is still a blended return, because one account can express annual rebalancing and nothing else.

The random setting draws 500 paths rather than several thousand, and the count was chosen by measuring. On this page's default plan with the full tax layer and the required minimums, a keystroke costs 14 ms on the steady setting, 15 ms against the record's sequences and 65 ms at 500 draws — measured in the browser, an input event per character with the frame painted after it, which is what makes typing feel slow or not. A thousand would cost about 130 ms. What the extra paths buy is a fall in the seed-to-seed standard deviation from 1.7 percentage points to 1.0, a cut of about 40% — while the record those years come from carries ten to twenty-two points of its own, measured above. Doubling the wait to take 0.7 of a point off the smaller of two uncertainties, already an order of magnitude under the larger, is not worth it.

Not modeled: state income tax, itemized deductions, blindness, capital-gains treatment of taxable accounts and of the outside money, Medicare premiums, a return that responds to the plan, and a portfolio left to drift.

Required minimum distributions

Calculator: RMD calculator

The calculator applies the lifetime rules for account owners in IRC §401(a)(9) and Treas. Reg. §§1.401(a)(9)-2, -5 and 1.408-8. Beneficiaries of inherited accounts are outside its scope.

  1. Applicable age from the date of birth (§1.401(a)(9)-2(b)(2)): 70½ before July 1, 1949; 72 from July 1, 1949 through 1950; 73 for 1951–1958; 75 from 1960. Paragraph (b)(2)(v), for 1959, is reserved in the final regulation; the proposed regulation of the same day (REG-103529-23) fills it with 73, and the calculator follows it. The Federal Register carried no later document on the subject as of 2026-09-11.
  2. First distribution calendar year (§1.401(a)(9)-5(a)(2)(ii)): the year the applicable age is reached — for a workplace plan and a participant who is not a 5-percent owner, the later of that year and the year of retirement when the plan allows it (§1.401(a)(9)-2(b)(1), (b)(3)); an IRA owner has no such deferral (§1.408-8(b)(1)(i)). The required beginning date is April 1 of the following year.
  3. Deadlines (§1.401(a)(9)-5(a)(3)): the first year's minimum by the required beginning date; every later year's by December 31 of that year.
  4. Amount (§1.401(a)(9)-5(a)(1), (b); §1.408-8(b)(2)): the balance at December 31 of the preceding year — for a plan, the last valuation in that year adjusted for later allocations and distributions, without designated Roth amounts — divided by the applicable denominator, and never more than the balance. A distribution above the minimum in one year earns no credit in another ((a)(6)).
  5. Denominator (§1.401(a)(9)-5(c)): the Uniform Lifetime Table (§1.401(a)(9)-9(c)) for the age reached on the birthday in the distribution year; the Joint and Last Survivor Table (§1.401(a)(9)-9(d)) for both ages reached in the year when the sole beneficiary for the entire year is a spouse more than ten years younger (marital status as of January 1: a death or divorce during the year takes effect the following year, (c)(2)(iii)). The calculator asks for years of birth only and treats a difference of eleven or more years as more than ten. A difference of exactly ten needs no closer look: the Uniform Lifetime Table equals the Joint and Last Survivor Table for a spouse ten years younger at every age from 72 to 120 (checked cell by cell in the engine's tests), so either reading gives the same period. The tables follow the regulation text; Publication 590-B (2025) Appendix B misprints four cells of Table II — (90, 76) as 14.8 for 14.7, and (112, 102), (112, 103), (112, 107) 0.1 too low — found by the second read on 2026-09-11.
  6. Projection convention, not a rule: the balance grows at the entered rate for the whole year and the year's minimum leaves at the end of it, the latest the rule allows; a first-year minimum delayed to April 1 leaves on that day, after three of the following year's twelve months of growth — (balance × (1 + r)¼ − the delayed minimum) × (1 + r)¾ − that year's own — which is the latest the rule allows for it too. The second minimum is computed on a balance that still contains the first, because on December 31 it does.
  7. Excise tax (§4974(a), (e); §54.4974-1(a)): 25% of the shortfall, 10% when a corrective distribution is taken and a return filed within the correction window — the earliest of a notice of deficiency, an assessment, or the last day of the second taxable year after the one in which the tax is imposed; 50% for years before 2023.
  8. Roth (§1.408-8(b)(1)(ii); §402A(d)(5), tax years after 2023): no lifetime minimum. Qualified charitable distributions count toward the minimum (§1.408-8(g)(1)); the §408(d)(8)(A) limit is $111,000 for 2026 (Notice 2025-67).

Not modeled: inherited accounts, annuity contracts and QLACs, the year-of-death minimum, plan terms requiring distributions while working, pre-1987 403(b) amounts, and income tax on the distribution.

Verification: Two independent reads on 2026-09-11 — the lead's from the documents above and a blind second read (report V-RMD, data V-RMD-rules.json) that quoted every rule from the documents and transcribed Table III and spot-checked Table II by its own scripts — plus a red team (R-RMD) whose clean-room reimplementation from the regulation text agreed with the engine to the cent on 73,568 single-year inputs and 13,216 projections and reproduced every IRS example; its six hostile-input findings were fixed the same day.

72(t) substantially equal periodic payments (Notice 2022-6)

Calculator: 72(t) calculator

Each method converts the account balance into an annual payment: the required minimum distribution and fixed amortization methods divide by a figure from a life-expectancy table of Treas. Reg. §1.401(a)(9)-9, the fixed annuitization method by an annuity factor from its mortality rates, and the two fixed methods use an interest rate no higher than the ceiling in Notice 2022-6 §3.02(c).

  1. Life expectancy from the chosen table for the owner's age on the birthday in the distribution year: the Single Life Table or the Joint and Last Survivor Table of Treas. Reg. §1.401(a)(9)-9, or the Uniform Lifetime Table as extended from age 10 in Appendix A of the Notice.
  2. RMD method: payment = balance ÷ life expectancy, recomputed each year from that year's balance and age.
  3. Fixed amortization: payment = balance ÷ [(1 − (1 + i)−n) ÷ i], n the first year's life expectancy (fractional years allowed), i the chosen rate — the IRS example's factor of 18.9559 for 36.2 years at 4% is reproduced.
  4. Fixed annuitization: payment = balance ÷ Σk≥1 vk·kpx, where v = 1/(1 + i) and kpx is the probability of surviving k years from the mortality rates in §1.401(a)(9)-9(e) — the IRS example's factor of 18.1568 for age 50 at 4% is reproduced. For a joint annuitization the factor pays while either life survives.
  5. Rate ceiling: the greater of 5% and 120% of the federal mid-term AFR for either of the two months before the month of the first payment, read from that month's revenue ruling. The rulings print the 120% rate for four compounding periods and the Notice does not choose between them; the engine uses the annual-compounding figure. The published 120% row is the IRS's own figure (it is built from the semiannual rate, so it can differ from 1.2 × the annual AFR by up to 0.02 points) and is used as printed.
  6. Modification window: the later of five years after the first payment and the day the owner reaches 59½ (birth date plus 59 years and 6 months, same day of the month, or the last day of the month when that day does not exist); the IRS's two dated examples are reproduced.

Not modeled: the recapture tax itself, the tax on the payments, the pre-2022 tables for series begun under Rev. Rul. 2002-62, transfers between plans mid-series (Notice 2022-6 §3.02(e) and §72(t)(4)(C) differ), and payments more often than annually (the annual amount may be split into installments without recomputation).

Tables — verification: Two independent script transcriptions on 2026-09-10 — the first from the CFR text and the Federal Register PDF of T.D. 9930, the second (blind to the first, report V-72T) from the Cornell text, the Cornell HTML, the eCFR XML and its own extraction of the Federal Register PDF — agree on every cell: 121 single-life, 49 uniform, 121 mortality and 14,640 joint entries, with the one blank cell noted below. Publication 590-B Tables I and III and Notice 2022-6 Appendix A agree with the regulation; Table II differs in the four cells noted. A red team (report R-72T) then rebuilt the tables from the mortality rates by the regulation's own method, spot-read 30 cells in three documents, and reproduced the IRS's 72(t) examples from its own code.

AFR history — verification: Two independent automated reads of each ruling's PDF text on 2026-09-10 — the first by the lead, the second blind to the first (report V-72T, which also hand-read eight rulings from the text and from rendered page images) — agree on all four mid-term AFR and 120% figures for every month from January 2021 to September 2026; a red team (report R-72T) hand-read twelve further months and checked the ceiling logic for six start months. Every month satisfies 120% AFR ≈ 1.2 × mid-term AFR within 0.025 points. October 2026 (Rev. Rul. 2026-19) was added on 2026-09-30 after two independent reads that agree on all eight figures: the lead's text extraction, and a second reader blind to it who also read a rendered image of the table.

Safe withdrawal rate

Calculator: Safe withdrawal rate calculator

The calculator offers three models: the withdrawal run against the historical record in its recorded order, against years drawn at random from that record, or against one constant return.

Against the record

  1. One retirement is run for each starting year the data allows, so a 30-year horizon over 98 years of returns gives 69 periods, the last beginning in 1996.
  2. The first-year rate is the withdrawal entered divided by the balance entered. Returns are real, so that withdrawal is held constant in buying power for the whole period and no inflation figure is used.
  3. The withdrawal is taken at the start of each year from both sleeves in proportion to what each holds, never from bonds first. What remains earns that year's real return on the chosen mix, and the mix is restored at the start of every year.
  4. A period succeeds only if every withdrawal, the last one included, is funded in full. The rate that never failed is the highest rate at which every period succeeds, found by bisection.
  5. The worst period is the one that ran out soonest; when every period survived it is the one that ended with the least left. Ranking on the ending balance alone would tie every failure at zero.

The returns are December-average to December-average, because the underlying monthly price is the average of that month's daily closes. That is not the calendar year, so figures here differ from calendar-year quotes for the same year. The bond series is the holding-period return implied by the 10-year Treasury yield rather than a fund that could have been bought, and before 1953 those yields are interpolated between annual anchors. Both series are gross of tax and fees. Not modeled: taxes, fees, spending that responds to the market, an allocation that shifts with age, any country other than the United States, and the fact that overlapping periods are far from independent tests.

Against years drawn at random

The same simulator, fed a different sequence of years. Every convention above is unchanged; only the source of each year's returns differs. Stated in full, because a model is not a document and cannot be verified by citing one:

  1. Return model. No distribution is fitted. Each simulated year is one complete annual observation drawn at random, with replacement, from the 98 in the verified record — the stock return and the bond return of that same year together, so the relationship between the two sleeves is the recorded one rather than an assumed correlation. There is no expected return, no volatility and no correlation parameter to disclose, because none is used.
  2. Inflation. None is modelled and none is asked for. The returns are already real, so a withdrawal held constant in buying power needs no separate inflation series.
  3. Allocation, rebalancing and withdrawal timing. As above: the withdrawal comes out at the start of the year, constant in real terms, taken from both sleeves in proportion, and the mix is restored at the start of every year.
  4. Failure. A path fails the first time a withdrawal cannot be funded in full, judged to within 1e-12 of the balance. A path that ends at exactly zero having funded its last withdrawal is a success.
  5. Paths and seed. 10,000 paths, from a seeded generator (mulberry32) fixed at seed 1. Neither is offered as an input. The same inputs therefore always give the same answer, and a saved link reproduces a result exactly. A seed box would let a reader hunt for a flattering figure, and a path-count box would suggest that more paths mean a more reliable answer. More paths do cut the simulation noise, but they cannot make 98 years of history more representative of the future, and it is the second of those that dominates here.
  6. Percentiles. Balances by linear interpolation at rank (n − 1)p; counts of withdrawals by nearest rank, since half a withdrawal does not exist.
  7. Taxes and fees. Neither, as in every mode on this page.

What it cannot do, and what is an assumption rather than a fact. That future years resemble recorded ones is the central data-generating assumption, and it is the reader's to reject. A second one sits beside it: that annual observations can be drawn independently and are interchangeable. Drawing years independently destroys the order they came in. It still produces sequence-of-returns risk, because a drawn path has an order and a portfolio under withdrawal is affected by it; the failure tail exists precisely because bad years landed early in those paths. What it does not preserve is the dependence between adjacent years in the record: regimes, clustering and serial correlation are broken. The record model keeps them, and the two are not comparable. About two points of the gap between them is not about markets: a recorded period uses 30 distinct years while a draw may take 2008 three times, and at a balanced mix that sampling difference is the whole of it. Success rates are therefore given as whole percentages: another seed moves one by about a point, and the 98-year record is itself uncertain by a standard deviation of 10.7 to 22.1 points — a 95% interval 37.7 to 82.6 points wide — measured by resampling the record and redoing the whole calculation. The experiment is below, with its parameters, its generator and its table, so that figure can be checked rather than believed. Running more paths narrows the first of those and leaves the second untouched.

The invariant that ties the two models together. Blocks default to one year, which is the model described above. Set a block as long as the record itself and there is only one legal starting point for a block that long, so every path is the record in its recorded order and the model must reproduce that single historical period exactly. It does, and the test is pinned. The per-path simulator is one function shared by both modes rather than two implementations that agree by inspection.

Against one constant return

With real return g = (1 + r)/(1 + i) − 1 and withdrawals at the start of each of n years, the first-year rate that exhausts the portfolio at the end of year n is g ÷ [(1 + g)(1 − (1 + g)−n)], and 1/n when g is zero. Years remaining for a given withdrawal solve the same equation for n. A constant return is assumed throughout; the page says why that is the optimistic case.

How much of this is the century we got

Both this page and the safe-withdrawal page quote an uncertainty for these success rates. The whole experiment is set out here so a reader can recompute it instead of taking it on trust. Until 2026-09-15 those two sentences gave a spread without saying what statistic it was, over what grid, or with what resampling — which left it unfalsifiable, and, as it turns out, quoted low.

  1. The record is 98 years of real total returns, one stock figure and one bond figure a year.
  2. The statistic: at a withdrawal rate and a stock share, run the 30-year withdrawal path from every year the record is long enough to finish — 69 overlapping windows — and take the share of them that funded every withdrawal. Rebalanced yearly, withdrawal at the start of the year, as the calculator does.
  3. Draw 98 years with replacement from the record, keeping each year's stock and bond returns together so the relationship within a year survives; build the same 69 overlapping windows from the drawn sequence; recompute the share. Repeat 2,000 times from seed 1.
  4. Report the 2.5th and 97.5th percentiles of those 2,000 shares, and their standard deviation.

The generator is mulberry32, the same one the random mode uses, and it is short enough to print in full, so nothing about the experiment is left to a library version. Percentiles are linear interpolation at rank (n − 1)p. Each cell restarts the generator from the seed, so any one row can be reproduced on its own.

function mulberry32(seed) {
  let a = seed >>> 0;
  return () => {
    a = (a + 0x6d2b79f5) >>> 0;
    let t = a;
    t = Math.imul(t ^ (t >>> 15), t | 1);
    t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
    return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
  };
}
RateStocksObserved95% intervalWidthStd. dev.
3.0% 0% 82.6% 60.9% – 100.0% 39.1 11.6
3.0% 25% 100.0% 87.0% – 100.0% 13.0 3.9
3.0% 50% 100.0% 88.4% – 100.0% 11.6 3.7
3.0% 75% 100.0% 81.2% – 100.0% 18.8 5.5
3.0% 100% 100.0% 72.5% – 100.0% 27.5 8.1
3.5% 0% 50.7% 34.8% – 100.0% 65.2 18.3
3.5% 25% 100.0% 71.0% – 100.0% 29.0 8.4
3.5% 50% 100.0% 76.8% – 100.0% 23.2 6.7
3.5% 75% 100.0% 71.0% – 100.0% 29.0 8.1
3.5% 100% 100.0% 63.8% – 100.0% 36.2 10.5
4.0% 0% 40.6% 13.0% – 95.7% 82.6 22.1
4.0% 25% 76.8% 50.7% – 100.0% 49.3 14.2
4.0% 50% 94.2% 62.3% – 100.0% 37.7 10.7
4.0% 75% 94.2% 60.9% – 100.0% 39.1 11.1
4.0% 100% 94.2% 55.1% – 100.0% 44.9 13.0
4.5% 0% 36.2% 1.4% – 81.2% 79.7 21.3
4.5% 25% 56.5% 30.4% – 100.0% 69.6 19.4
4.5% 50% 84.1% 47.8% – 100.0% 52.2 14.8
4.5% 75% 88.4% 50.7% – 100.0% 49.3 14.2
4.5% 100% 88.4% 46.4% – 100.0% 53.6 15.1
5.0% 0% 29.0% 0.0% – 63.8% 63.8 17.7
5.0% 25% 42.0% 13.0% – 95.7% 82.6 21.6
5.0% 50% 69.6% 33.3% – 100.0% 66.7 18.3
5.0% 75% 78.3% 39.1% – 100.0% 60.9 16.9
5.0% 100% 79.7% 39.1% – 100.0% 60.9 17.1

Widths and standard deviations are in percentage points. Eight of the 25 cells sit against 0% or 100%, where the interval can only run one way; over the 17 where the rate is free to move in both directions the interval is 37.7 to 82.6 points wide and the standard deviation is 10.7 to 22.1 points.

That is larger than the thing it is measuring. At three quarters in stocks the record puts a 4% rate at 94.2% and a 4.5% rate at 88.4% — under six points apart, with an interval around either of about forty. The record can rank two rates; it cannot separate them.

What this does not measure. It measures sampling variability: how far the answer moves when the same process hands us a different century of the same length. It says nothing about whether that process is the right one. The record is one country over one century, and no resampling of it reaches a century it did not contain. Drawing years independently also breaks the serial dependence in the record. That does not make this a lower bound: resampling in blocks, which keeps the dependence, moves the interval in both directions depending on the block length. At 4% and half stocks, from the same seed, five-year blocks give 31.9 points against the 37.7 here, while two-year blocks give 39.1 (measured 2026-09-16). Read it as one estimate of the record's own sampling variability, not as the least it could be. Run it yourself with pnpm exec tsx tools/experiments/record-uncertainty.ts.

Historical real returns — verification: Two independent derivations from the same primary workbook on 2026-09-12 agree bit for bit: the lead's (docs/verification/2026-09-retirement/derive-historical-returns.py) and a blind second one that did not see it (report V-HIST, data V-HIST-returns.json). Across 98 years and four figures per year the largest absolute difference is 0.000e+00. Independence here is in the reader, as it was for the AFR rulings, because only one publisher issues this series. A red team (report R-HIST) then attacked the engine that consumes the file with its own clean-room implementation and a third in Python, agreeing run for run across 360 input combinations.

Pension vs lump sum

Calculator: Pension vs lump sum calculator

Present value = Σ paymentt ÷ (1 + m)t over every month t = 1, 2, … from the valuation date through the end of the horizon age, payments at the end of each month, m = (1 + r)1/12 − 1 the monthly equivalent of the annual return, each year's payments raised by the pension's increase on the anniversary of its start (a pension already in payment enters at its current, increased amount); the required return is the rate at which that equals the lump sum (bisection); the drawdown invests the lump sum at the return and pays the same amounts until it is exhausted.

FIRE and coast FIRE

Calculator: Coast FIRE calculator · FIRE calculator

FI number = spending ÷ withdrawal rate. Years to FI solve P(1 + r)n + A((1 + r)n − 1)/r = F with contributions at the end of each year. Coast number = FI number ÷ (1 + r)years to retirement; with contributions, the coast age is the first year-end at which the balance exceeds that year's coast number. Barista FI number = (spending − part-time income) ÷ withdrawal rate. Everything is in today's dollars at a real return.

Worked examples

Twelve cases with every input stated, so any of them can be redone on paper or in a spreadsheet and compared. The figures below are not typed in: they are computed when the site is built, by the same code the calculators run, and an automated test recomputes each one separately from the rule it rests on — the regulation's table, Publication 915's worksheet, Notice 2022-6's formulas, a plain sum of discounted payments — and holds it to a value worked out by hand. The site cannot be built while any of them disagrees. Each case opens in its calculator with the same inputs.

A first required minimum: born in 1953, $500,000 in a traditional IRA on December 31, 2025

The whole rule in one division: the age reached in the year picks the distribution period from the Uniform Lifetime Table. Open it in the calculator.

Age reached in 202673
Distribution period (Uniform Lifetime Table)26.5
Required minimum for 2026$18,867.92

The same account with the first minimum delayed to April 1, 2027, growing 5% a year

Two distributions fall in 2027, and the second is computed on a balance that still holds the first. The delayed one leaves after three months of that year's growth. Open it in the calculator.

2026 minimum, taken April 1, 2027$18,867.92
Balance on December 31, 2026, nothing yet withdrawn$525,000
2027 minimum, on that balance$20,588.24
Distributed in 2027$39,456.16
Balance on December 31, 2027$511,090.63

72(t): age 50, $400,000, 4% — the IRS's own example

The three methods of Notice 2022-6 on the figures in the IRS's questions and answers, which give $11,050, $21,102 and $22,030. The annuity factor is rebuilt from the regulation's mortality rates, not copied. Open it in the calculator.

RMD method: balance ÷ 36.2 (Single Life Table)$11,049.72
Fixed amortization: balance ÷ 18.9559$21,101.63
Fixed annuitization: balance ÷ 18.1568$22,030.33

72(t): the highest rate for a first payment in September 2026, and in October 2026

The ceiling looks at the two months before the first payment, not the month of it: September's 5.40% cannot be used until October. Open it in the calculator.

First payment in 2026-09: the greater of 5% and 120% of the mid-term AFR for 2026-07 and 2026-08 (shown here)5.23%
First payment in 2026-10: the greater of 5% and 120% of the mid-term AFR for 2026-08 and 2026-09 (shown here)5.40%

Social Security: born on June 2, 1960, a primary insurance amount of $2,000, claimed at 62 and at 70

Sixty months early is 36 × 5/9 of 1% plus 24 × 5/12 of 1%; thirty-six months late is 36 × 2/3 of 1%. Open it in the calculator.

Reduction at 62 (60 months early)30.00%
Monthly benefit at 62$1,400
Delayed retirement credit at 70 (36 months)24.00%
Monthly benefit at 70$2,480

Tax on benefits, 2026: single, 67, $24,000 of benefits and $30,000 of other income

The §86 worksheet, the standard deduction with the additional amount from 65, the 2025–2028 senior deduction and the brackets, end to end — and why another $1,000 of income costs $222, not $120. Open it in the calculator.

Taxable benefits (Publication 915, Worksheet 1)$11,300
Standard deduction with the additional amount from 65$18,150
Senior deduction$6,000
Taxable income$17,150
Federal income tax$1,810
Added tax on another $1,000 of other income$222

Taxable benefits: $30,000 of benefits and $40,000 of other income, single and joint

The same income on the two sets of fixed thresholds. These are amounts that enter taxable income, not tax. Open it in the calculator.

Taxable benefits, single$22,350
Taxable benefits, married filing jointly (shown here)$15,350

Income that counts for the test but is not taxed: single, 67, $30,000 of benefits, $20,000 of other income and $10,000 of municipal bond interest, 2026

Two fields that look alike do different things. Tax-exempt interest is counted when deciding how much of the benefits is taxable, and then stays out of adjusted gross income; other income does both. Entered as other income, the same $10,000 makes exactly the same share of the benefits taxable and then is taxed itself, which more than doubles the estimate. The worksheet's line 5 add-backs (excluded savings bond interest, adoption benefits, excluded foreign earnings) work the same way and the calculator has no field for them; until 2026-09-17 this site told readers to enter them as other income. Open it in the calculator.

Provisional income: half the benefits, other income and the tax-exempt interest$45,000
Taxable benefits$13,850
Taxable income: other income and the taxable benefits, less the deductions — the interest is not in it$9,700
Federal income tax$970
Taxable benefits if the $10,000 is entered as other income instead: the same (shown here)$13,850
Federal income tax on that reading (shown here)$2,116

Pension or lump sum: $2,000 a month from 65, valued at 60, paid through the end of age 90, against $300,000 at 5%

312 monthly payments discounted at the monthly equivalent of 5%, the return at which the two are worth the same, and what is left if the lump sum pays the pension itself. Open it in the calculator.

Payments, undiscounted$624,000
Present value at 60$276,460.28
Return at which the lump sum is worth the same4.45%
Lump sum paying the pension: balance at the end of 90$106,824.20

A pension already in payment: started at 65, now 70 and paying $2,000 a month, rising 2% a year, against $300,000 at 5%

What the amount means matters more than the arithmetic here. The $2,000 is what the pension pays today, so it is valued from today and rises from today; treating it as the amount first paid at 65 would raise it by five increases it has already had. The page did exactly that until 2026-09-17, and showed this pension as worth $411,884. Open it in the calculator.

Payments, undiscounted$618,799.61
Present value at 70$373,056.20
Return at which the lump sum is worth the same7.56%
Lump sum paying the pension: the age at which it runs out85

FIRE: $80,000 of income, 30% saved, $50,000 invested, 5% real return, 4% withdrawal — and coasting from 30 to 65 on $100,000

The closed-form years to a target with year-end contributions, and the amount that reaches $1,000,000 by 65 with no further saving. Open it in the calculator.

FI number (spending ÷ withdrawal rate)$1,400,000
Years to reach it25.95 years
Coast FIRE: the FI number for $40,000 of spending (shown here)$1,000,000
Needed at 30 to reach it by 65 with no further saving (shown here)$181,290.29
What $100,000 becomes by 65 (shown here)$551,601.54

A constant return: 5% a year against 2.5% inflation for 30 years, withdrawals at the start of each year

The rate that spends the balance to exactly zero, and the balance a $24,000 withdrawal needs at that rate. With no bad years early on this is the optimistic case, which is why the calculator opens on the historical record instead. Open it in the calculator.

First-year withdrawal rate that lasts exactly the period4.63%
Balance a $24,000 first-year withdrawal needs at that rate$518,787.53

The calculators round for display: the FIRE page shows 26.0 years for the figure above, and the RMD table rounds each minimum up to a whole dollar, because a minimum rounded down is a shortfall.

How figures are verified

Each data file is read from the primary documents — SSA actuarial pages, the Internal Revenue Code, Treasury regulations, IRS notices, publications and revenue rulings — and marked verified only after a second, independent read produces the same figures and an adversarial pass has recomputed the agency's own worked examples against the calculators. The examples are pinned in automated tests; the site cannot be built while any fails. The full rules are in the editorial policy, and every dated change is on the corrections page. Thistlebourne is independent developer and publisher, not a licensed financial professional or actuary; corrections to support@retirematics.com.