Calculation catalog › Insights

Insight widows penalty bracket jump

Federal tax on the first single-filed survivor year's MAGI computed as Single minus the same income computed as married filing jointly, deflated to today's dollars.

Field: Survivor bracket jump Unit: US dollars Basis: today's dollars (real) Computed by: Engine Status: Complete chain

Appears in: insights (widows-penalty-roth card rationale "cost about $X more (today's $)")

Calculation records

  • Rough real survivor bracket jump, single versus joint on the same MAGI Model record, justified by derivation

    Purpose: The extra federal tax of filing the first single-filed survivor year as Single rather than married-filing-jointly, deflated to today.

    Statement: On the plan's first survivor year that files Single, hold that year's MAGI fixed: J = Tax_single(M) − Tax_joint(M); J_today = J × d, where d is the deflator from that year to today. Units: today's dollars. Rounding: production rounds J_today with Math.round before publishing.

    Formula: J_today = (Tax_single(M) − Tax_joint(M)) × d

    • M: Survivor-year MAGI, held constant across the two filings (unit: usd) (domain: finite)
    • Tax_single, Tax_joint: Federal tax on M under Single and MFJ, already resolved (unit: usd) (domain: finite)
    • d: Deflation factor from the survivor year to today (unit: 1) (domain: d > 0)

    Timing: first single-filed survivor year; QSS interlude years keep joint tables and are not priced

    Rounding: Math.round on the deflated jump; the card publishes whole-dollar strings (formatWholeUsd, Math.round) and the evidence asserts the published figure

    Limits:

    • Identifies a conversion-planning question, not a forecast of the survivor's actual return
    • The worksheet supplies the already-resolved Single and MFJ tax figures; the evidence passes those through rather than recomputing federal tax
    • Production floors a negative jump at 0 before deflating; the worksheet's Single > MFJ case does not hit that floor
    • The card omits the evidence row when the rounded today-dollar jump is at most $100

    Provenance: derived by codex, implemented by grok.

    Independent review: cursor

    Gates (6 of 6 pass): fixture registers a test: pass; pins resolve: pass; families exist: pass; worksheet exists: pass; mutation receipt exists: pass; provenance independent: pass

    Worksheet: insight-widows-penalty-bracket-jump.md Mutation receipt: insight-widows-penalty-bracket-jump.mutation.md

    Evidence tests: widowsPenalty.evidence.test.ts

    Implemented in: widowsPenalty.ts

    Is the number of: insight-widows-penalty-bracket-jump

Engine source: engine/src/insights/detectors/widowsPenalty.ts (widowsPenalty.screen (bracketJumpToday))

The evidence links on this page (each record's worksheet, mutation receipt, evidence tests and implementation, and the source links) are pinned to engine commit 2624dbdba9fd, committed 2026-10-11. The live calculation index and output-family census links point at the repository's main branch, so you can check this snapshot against them.