Calculation catalog › Optimizer and comparisons
Exact ledger validation traditional depletion year
First year traditional-account assets are depleted under the validated schedule.
Field: traditionalDepletionYear Unit: calendar year Basis: no dollar basis Computed by: Engine Status: Complete chain
Appears in: report (traditional depletion year)
Calculation records
-
Full projection traditional depletion Formula record, justified by derivation
Purpose: Name the first year the plan's own traditional balances are exhausted under a candidate schedule.
Statement: projection/optimizePlan.ts#evaluateExactLedgerSchedule publishes ExactLedgerValidation.traditionalDepletionYear through decisions/evaluateCandidate.ts#findTraditionalDepletionYear as the first ascending candidate-result year whose non-inherited traditional account balances sum to at most the validation tolerance, one dollar by default, and null when no year does.
Formula:
traditionalDepletionYear = min { y ascending : sum over own traditional accounts a of balance(a, y) <= toleranceDollars }, else null-
balance(a, y): Year-end balance of own traditional account a in year y (unit: nominal USD) (domain: nonnegative) -
toleranceDollars: Validation tolerance, DECISION_NEUTRAL_TOLERANCE_DOLLARS by default (unit: nominal USD) (domain: 1)
Timing: candidate-result years in ascending order; the first qualifying year wins
Rounding: none; the boundary is inclusive at the tolerance
Limits:
- Inherited traditional balances are excluded, the boundary is inclusive so an owned sum of exactly the tolerance qualifies, and a later fully drained year cannot displace the first qualifying one. Beyond the worksheet's three account balance columns the test assumes a validated plan whose two owned traditional accounts and one inherited traditional account carry the worksheet's ids, an empty requested schedule, and a baseline result that the entry requires and the worksheet does not name; the candidate projection is supplied as a ProjectionResult value at the exported validation entry, so the selection is the real function while no ledger run is exercised here.
Provenance: derived by
codex, implemented byclaude.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: exact-ledger-traditional-depletion.md Mutation receipt: exact-ledger-traditional-depletion.mutation.md
Evidence tests: optimizePlan.evidence.test.ts
Implemented in: optimizePlan.ts; evaluateCandidate.ts
Is the number of: exact-ledger-validation-traditional-depletion-year
-
Engine source: engine/src/projection/optimizePlan.ts
(ExactLedgerValidation.traditionalDepletionYear)
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.