every model spec’d & versioned · harness ✓ greenchangelog →

Writing · Model catalog

Social Security Timing: Three Claiming Ages, Honestly Compared

The model compares claiming at 62, at full retirement age, and at 70 — with the discounting stated, the formulas published, and the exclusions named.

By Worthune Staff · 2026-08-14

The claiming decision is a trade between checks that start sooner and checks that run larger. Everything upstream of that trade — the benefit calculation itself, the earnings test, spousal coordination — is deliberately outside this model, and the spec says so.

Delaying Social Security from 62 to 70 raises the monthly check by a factor of about 1.77 for a worker whose full retirement age is 67 — the compounding of the early-claiming reduction and the delayed-retirement credits, under the claiming schedule set in motion by the 1983 amendments.[1] Whether the larger check is worth the eight years of foregone smaller checks is the timing question. The Worthune social-security-timing model computes that comparison for the three ages that anchor every claiming conversation: 62, full retirement age, and 70.

The six inputs

The model accepts six required inputs: the monthly benefit at age 62 (read from the user's SSA statement), the full retirement age as an integer between 65 and 67, the user's current age, a life expectancy, an annual return representing the opportunity cost of money, and an inflation rate. The claiming ages are not caller-chosen — the model always compares the fixed trio of 62, FRA, and 70, which keeps the contract small and the comparison legible.

Since spec version 1.1.0, the reduction and credit factors are derived from the general SSA formulas rather than hardcoded: benefits claimed early are reduced five-ninths of one percent per month for the first thirty-six months before FRA and five-twelfths of one percent per month beyond that, and benefits claimed late earn eight percent per year of delayed-retirement credits.[1] The two FRA-67 endpoints those formulas must reproduce — 0.70 at 62 and 1.24 at 70 — are pinned in the facts registry and cited on every response. The honest remaining limitation, visible in the spec's input table: real FRAs like 66 and two months are not representable, because the input is an integer.

What the model computes

For each of the three claiming ages the model produces the monthly benefit, then runs the streams out to the caller's life expectancy on two parallel tracks. The nominal track accumulates undiscounted running totals and reports two break-even ages — the first whole age at which the FRA claim's cumulative total overtakes the 62 claim, and the first at which the 70 claim overtakes the FRA claim. The discounted track divides each year's benefits by a factor built from the caller's return and inflation inputs, and reports the discounted lifetime total for each claiming age.

The model then makes its one recommendation: the optimal claim age is whichever of 62, FRA, or 70 maximizes the discounted lifetime total, with ties going to the later age. The spec is candid that the two tracks answer different questions and can disagree — a break-even at 80 coexists with an optimal age of 62 when the discount rate is high enough, because a dollar at 80 is not a dollar at 63.

The two tracks
nominal: cumulative[age] += 12 × monthly_benefit;  break_even = first age where later stream's total exceeds earlier stream's;  discounted: each year's benefits ÷ (1 + annual_return - inflation_rate)^(age - current_age);  optimal_claim_age = argmax of discounted lifetime totals (ties → later age)

One documented quirk to render carefully: the break-even fields use the starting ages as sentinels, so a returned 62 or 67 (the 67 is a hardcoded label for the FRA claim even when the FRA input is 65 or 66) can mean either "the later claim never catches up within life expectancy" or "immediately" — the spec documents the collision, and integrating UIs should read the surrounding totals to disambiguate.

What the model does not compute

The exclusions are the point of the spec. The model does not compute the primary insurance amount from an earnings history — the age-62 benefit is an input, taken from the user's own SSA statement. It does not apply the earnings test that withholds benefits from pre-FRA claimants who keep working.[2] It does not model spousal or survivor benefits, which follow different schedules and interact with the primary claim. It does not model the taxation of benefits, which can pull up to 85 percent of a check into federal taxable income.[3] And it does not COLA-index the checks: each stream's monthly benefit is level for life, with inflation entering only through the discount factor — a linear approximation the spec names rather than hides.

QuestionWhere it lives
What is my benefit at 62?Your SSA statement — a model input
62 vs. FRA vs. 70, in dollars?This model, both tracks
What if I keep working before FRA?Not modeled — SSA earnings test, caller advises
Spousal and survivor coordination?Not modeled — request via /roadmap
How are benefits taxed?Not modeled — IRS Publication 915 governs

A worked example, in nominal dollars

Take a worker with an FRA of 67 whose SSA statement shows fourteen hundred dollars a month at 62. The FRA-67 endpoint factors imply two thousand dollars at 67 and two thousand four hundred eighty at 70. In undiscounted arithmetic, the 70 claim gives up eight years of fourteen-hundred-dollar checks — about one hundred thirty-four thousand dollars — and recovers them at one thousand eighty dollars a month, crossing over at roughly age 80 and four months in a straight 62-versus-70 comparison. The model reports the two pairwise crossovers it actually computes, as whole ages — for these inputs, the FRA claim overtakes the 62 claim at 78, and the 70 claim overtakes the FRA claim at 82. Its discounted track then re-runs the same streams at the caller's return and inflation assumptions, which is where the recommendation actually comes from. A user who expects to live well past 80 and discounts lightly will see the optimal age lean late; a user with a shorter horizon or a higher opportunity cost will see it lean early. The model returns both tracks so the UI never has to pretend they are one number.

The response envelope

Every call returns the three monthly benefits, the two break-even ages, the three discounted lifetime totals, the optimal claim age, and a year-by-year cumulative series for charting — plus the spec version, an assumptions array naming that version, a facts array citing the two registry-pinned FRA-67 factors by id, value, period, and source name, and a record.sha256 over the model name, spec version, inputs, and outputs. The stored record makes the recommendation reproducible at audit time, under the exact assumptions that produced it.

Sources

  1. [1] SSA, Effect of Early or Delayed Retirement. https://www.ssa.gov/oact/quickcalc/early_late.html
  2. [2] SSA, Receiving Benefits While Working. https://www.ssa.gov/benefits/retirement/planner/whileworking.html
  3. [3] IRS Publication 915, Social Security and Equivalent Railroad Retirement Benefits. https://www.irs.gov/publications/p915
  4. [4] Social Security Fairness Act, Public Law 118-273 (January 5, 2025). https://www.congress.gov/bill/118th-congress/house-bill/82
  5. [5] Worthune social-security-timing spec. https://worthune.com/docs/models/social-security-timing