Calculation catalog › Cash flow and summary

Insurance death benefit annual

Insurance death benefit included in the projection year estate value.

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

Appears in: csv (deathBenefit); cash-flow-drilldown (lifeInsuranceDeathBenefit source line)

Calculation records

  • Annual permanent-life cash value and death-year settlement Model record, justified by derivation

    Purpose: What a permanent-life policy is worth at year end, and what it pays in the insured's death year.

    Statement: projection/internal/types/result.ts#YearResult.insuranceCashValue and #YearResult.deathBenefit, transitioned by projection/internal/annualPermanentLifeTransitions.ts#annualPermanentLifeTransitions, publish the year-end cash-value asset and the death-year settlement. While the insured is below the death age, schedule mode interpolates the illustration table linearly by attained age with endpoint clamping and flat-rate mode compounds the prior cash value by cashValueGrowthPct. In the year attained age equals the death age the policy pays max(deathBenefit face amount, cash value) and its cash value becomes 0, and it stays 0 afterwards. Units: nominal USD. Rounding: none.

    Formula: schedule: cv = v_lo + (a - a_lo)/(a_hi - a_lo) (v_hi - v_lo); flat: cv = cv_prev (1 + g); death year: payout = max(face, cv_prev), cv = 0

    • a: Insured attained age (unit: years) (domain: clamped to the schedule ends)
    • v_lo, v_hi: Bracketing illustration values (unit: usd) (domain: nonnegative)
    • g: Flat cash-value growth (unit: 1) (domain: cashValueGrowthPct / 100)
    • face: Current face death benefit (unit: usd) (domain: nonnegative)

    Timing: once per projection year, per policy in plan order

    Rounding: none

    Limits:

    • Asserted at the exported phase helper with the worksheet's two policies, their modes, schedule points, entry cash value, growth rate and face amounts verbatim. Plan assumptions beyond the worksheet's inputs: both policies are paid-up, which this transition does not read
    • The first derivation put the settling policy at attained age 71 while its Claim and Arithmetic described and calculated the death-age-70 year; that derivation was corrected on 2026-09-18. The worksheet's Inputs table now states attained age 70, the death year production settles in, where the payout is max(50,000 face, 60,000 cash value) = 60,000 and the settled policy stops being a cash-value asset. Its last wrong reading moves that row to attained age 71 (the year after the death year, where the payout is null and the cash value 0) and the test asserts both, so no production-versus-worksheet discrepancy remains

    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: insurance-cash-value-and-death-benefit-annual.md Mutation receipt: insurance-cash-value-and-death-benefit-annual.mutation.md

    Evidence tests: annualPermanentLifeTransitions.evidence.test.ts

    Implemented in: result.ts; annualPermanentLifeTransitions.ts

    Is the number of: insurance-cash-value-annual, insurance-death-benefit-annual

    Feeds: accounts-net-worth-annual

Engine source: engine/src/projection/internal/types/result.ts (YearResult.deathBenefit)

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.