Calculation catalog › Accounts and growth

MCP batch ending traditional objective

Ending traditional-account balance of each evaluated candidate, published as batch_evaluate's ending_trad objective.

Field: Batch ending traditional balance objective Unit: US dollars Basis: nominal dollars Computed by: Engine Status: Complete chain

Appears in: mcp (batch_evaluate.results[].objective)

Calculation records

  • MCP batch ending traditional balance objective Composition record, justified by derivation

    Purpose: The figure RetireGolden-MCP's batch_evaluate ranks candidates on under objective ending_trad: each candidate plan's ending traditional balance.

    Statement: For objective=ending_trad, RetireGolden-MCP's batch_evaluate reports, for each candidate plan it projects, projection/compare.ts#summarizeProjection's endingByCategory.traditional: the last ledger row's published balances summed over the plan's accounts of type traditional (kinds ira and employer, inherited accounts included), each logical account id once, by projection/yearFigures.ts#balancesByCategory. Roth, HSA, taxable, cash and equity-compensation balances are not in it, and it is the gross balance, before heir tax. The engine publishes the figure and the adapter selects it, since RetireGolden-MCP 0.11.0 (#81) and so at b2c7f717 (0.12.0, the census's MCP pin until 2026-10-11); through mcp-v0.10.0 (3197d359) the adapter walked the last row's balance entries and added those whose account type is traditional. On the worksheet's six accounts the objective is 550,750.75. Units: nominal USD of the projection's end year. Rounding: none.

    Formula: objective = Σ over the plan's logical accounts a with type traditional of lastYear.balances[a.id]

    • lastYear: The final ledger row (unit: year row) (domain: an empty ledger publishes 0)
    • lastYear.balances[a.id]: Account a's published year-end balance, 0 when absent (unit: nominal USD of the end year) (domain: finite)

    Timing: once per evaluated candidate, on the final ledger row

    Rounding: none

    Limits:

    • Gross: the objective ranks the pre-tax balance a candidate leaves, before the heir tax and before any nondeductible basis; what heirs keep is projection-summary-ending-after-tax-estate.
    • The mcp-v0.10.0 adapter (3197d359) added the balances in the order of the row's balance entries; the engine adds them in the order of the plan's accounts. The two orders can differ in the last binary digit, never by a cent; on the worksheet's accounts they give the same double, which the evidence asserts.
    • balancesByCategory refuses a plan whose account id is also the id of a property, a debt or a permanent-life policy, where the mcp-v0.10.0 adapter's walk would have added whatever the ledger published under that id; the plan checks refuse such plans before a projection runs.

    Provenance: derived by claude, implemented by claude.

    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: mcp-batch-ending-traditional-objective.md Mutation receipt: mcp-batch-ending-traditional-objective.mutation.md

    Evidence tests: compareSummary.mcpObjectives.evidence.test.ts

    Implemented in: compare.ts; yearFigures.ts

    Is the number of: mcp-batch-ending-traditional-objective

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

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.