Calculation catalog › Optimizer and comparisons

Compare plan money deltas

Differences between two plans in ending net worth, ending investable, ending after-tax estate and lifetime tax plus penalties: in nominal dollars when both plans end in the same year, otherwise in today's (start-year) dollars, each plan deflated by its own published inflation factor and lifetime tax re-summed year by year (R13).

Field: Plan B minus Plan A money deltas Unit: US dollars Basis: nominal or real, as displayed Computed by: UI-native Status: Complete chain

Appears in: compare-page (Delta column of the four money rows, in the basis each row label states); mcp (compare_scenarios.headline.endingAfterTaxEstate.delta)

Calculation records

  • Compare plans: money rows in one stated basis Composition record, justified by derivation

    Purpose: Compare two plans' ending net worth, ending investable, ending after-tax estate and lifetime tax plus penalties in one dollar basis that the page states.

    Statement: scenarios/planHeadlines.ts#comparePlanHeadlines compares two projections that share a start year. When they end in the same year it publishes ending net worth, ending investable, ending after-tax estate and lifetime tax plus penalties in nominal dollars as the summaries give them, with moneyBasis nominal. When they end in different years (owner decision R13) it publishes each ending figure divided by that plan's own published inflation factor at its own end year, and lifetime tax plus penalties as the sum over that plan's years, in ledger order from 0, of each year's tax plus penalties divided by that year's factor, with moneyBasis today. Every row is scenarios/scalarComparison.ts#compareScalars(baseline, proposal): delta = proposal − baseline, a negative zero published as 0, and a non-finite figure refused with a RangeError, as are two different start years. An after-tax estate of $1,800,000 at the end of 2050 against $2,000,000 at the end of 2060, at 2.5 percent inflation from 2026, compares as $995,175.64 against $863,810.69 in 2026 dollars, a difference of −$131,364.95 where the nominal subtraction read +$200,000. Units: USD, nominal or start-year as moneyBasis says. Rounding: none.

    Formula: today when E_b ≠ E_p, else nominal; today: X_s = x_s / f_s(E_s) and T_s = Σ_y (tax_y + pen_y) / f_s(y); nominal: X_s = x_s and T_s = the summary sum; delta = X_p − X_b

    • x_s: A side's summary figure: ending net worth, ending investable or ending after-tax estate (unit: nominal USD of E_s) (domain: finite)
    • f_s(y): The side's published inflation factor for year y, exactly 1 in the start year (unit: 1) (domain: > 0)
    • E_s: The side's last projection year (unit: calendar year) (domain: integer)
    • tax_y + pen_y: The side's tax and penalties in year y (unit: nominal USD of year y) (domain: finite)

    Timing: once per pair of projections that share a start year

    Rounding: none; the page formats

    Limits:

    • Each plan is deflated by its own inflation assumption, so two plans that assume different inflation are compared each in its own view of start-year dollars. When they end in the same year the rows stay nominal, and that year's dollars then buy different amounts under each assumption (20 of the 50 same-end pairs of the example library).
    • Lifetime rows cover each plan's own years: a plan that runs ten years longer pays ten more years of tax, and the page names both end years.
    • The difference is taken between the unrounded figures, so beside the page's compact levels it can differ from the difference of the two printed levels by up to half a display unit on each side.
    • A plan's own level cells depend on its partner: the same plan reads in nominal dollars beside a plan that ends in its year and in start-year dollars beside one that does not.

    Provenance: derived by claude, implemented by claude-subagent.

    Independent review: codex

    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: compare-plan-money-deltas.md Mutation receipt: compare-plan-money-deltas.mutation.md

    Evidence tests: planHeadlines.evidence.test.ts

    Implemented in: planHeadlines.ts; scalarComparison.ts; dollarBasis.ts

    Is the number of: compare-plan-money-deltas

Transformations

  • scenarios/planHeadlines.ts#comparePlanHeadlines: moneyBasis nominal when the end years match (each row compareScalars of the summary figures), else today (each ending figure divided by its own plan's factor at its end year; lifetime tax plus penalties the sum of each year's figure divided by that year's factor); delta = proposal − baseline.

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.