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 bygrok.Independent review:
cursorGates (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.