Calculation catalog › Taxes

Projection summary lifetime taxes and penalties

Total taxes and withdrawal penalties paid across all projection years.

Field: lifetimeTaxesAndPenalties Unit: US dollars Basis: nominal dollars Computed by: Engine Status: Complete chain

Appears in: results-headline (Lifetime tax + penalties); results-headline (KpiBar "Lifetime tax"); report (headline-results block lifetimeTaxesAndPenalties); scenarios-page (Headline "Lifetime tax plus penalties"); compare-page (Lifetime tax row levels, in today's (start-year) dollars when the two plans end in different years (PlanHeadlineComparison)); solver-page (Evidence lifetime taxes and SWR rule rows); ss-page (Survivor and claim tables lifetime tax); relocation-page (Lifetime tax + penalties column); mcp (run_projection.summary.lifetimeTaxesAndPenalties); mcp (compare_scenarios.a.lifetimeTaxesAndPenalties); mcp (compare_scenarios.b.lifetimeTaxesAndPenalties)

Calculation records

  • Projection summary lifetime taxes and penalties Composition record, justified by derivation

    Purpose: Sum annual tax and annual penalties over the whole projection.

    Statement: projection/compare.ts#summarizeProjection sums nominal YearResult.tax + YearResult.penalties across every projection year to publish lifetime taxes and penalties, with no stated rounding.

    Formula: L = sum over years y of (tax_y + penalties_y)

    • tax_y: Year y published tax (unit: nominal USD) (domain: nonnegative)
    • penalties_y: Year y published penalties, separate from tax (unit: nominal USD) (domain: nonnegative)

    Timing: every projection year

    Rounding: none stated

    Limits:

    • Penalties are a separate ledger field from tax, so summing taxes only, or adding penalties in the final year alone, understates the published figure. The valid domain is a finite projection-year sequence with finite annual dollar fields.

    Provenance: derived by codex, implemented by claude.

    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: projection-summary-lifetime-taxes-and-penalties.md Mutation receipt: projection-summary-lifetime-taxes-and-penalties.mutation.md

    Evidence tests: compareSummary.evidence.test.ts

    Implemented in: compare.ts

    Is the number of: projection-summary-lifetime-taxes-and-penalties

    Feeds: swr-rule-result-lifetime-taxes-and-penalties, scenario-comparison-cell

Engine source: engine/src/projection/compare.ts (ProjectionSummary.lifetimeTaxesAndPenalties)

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.