Calculation catalog › Monte Carlo

Annuitization payout rate pct

Annual annuity payout as a percent of premium at the payment start age, from the embedded default quote table or the user quote.

Field: SPIA payout rate Unit: percent Basis: no dollar basis Computed by: Engine Status: Complete chain

Appears in: monte-carlo-page (Annuitization paragraph "payout rate X% at age Y"); insights (annuitizationHeadroom card illustrative monthly income (spiaPayoutRate))

Calculation records

  • Life-only SPIA payout-rate linear interpolation Data record, justified by dataset

    Purpose: The default annual payout-rate fraction of premium at a start age, from the embedded female-conservative anchors.

    Statement: Anchors (age, annual payout/premium): (60, 0.060), (65, 0.070), (70, 0.084), (75, 0.103), (80, 0.129), (85, 0.153), the last extrapolated. Below 60 the rate is 0.060; above 85 it is 0.153; otherwise linear in age between the bracketing anchors. At 67.5, t = (67.5 − 65)/5 = 1/2 and the rate is 0.070 + 0.5 · (0.084 − 0.070) = 0.077, so $100,000 of premium pays $7,700 per year. Units: fraction of premium per year. Rounding: none after the table's source-side 0.1-percentage-point rounding down. Absolute tolerance 1e-12 on the rate.

    Formula: r(a) = r_i + (a − a_i)(r_{i+1} − r_i)/(a_{i+1} − a_i) for a_i <= a <= a_{i+1}; r(a) = r_60 for a <= 60; r(a) = r_85 for a >= 85

    • a: Payment start age (unit: years) (domain: worksheet 67.5)
    • r(a): Annual life-only payout as a fraction of premium (unit: 1/year) (domain: between the bracketing anchors)
    • premium: Illustrative premium (unit: usd) (domain: worksheet 100,000)

    Timing: a time-invariant lookup on the dated quote table

    Rounding: none after the source-side 0.1-percentage-point rounding down of the anchors

    Limits:

    • Planning defaults only; a user-entered quote always wins
    • The age-85 anchor is extrapolated, not quoted
    • Female column is the conservative unisex default; male quotes are higher
    • annuitization-sweep-annual-income is premium times this rate and annuitization-sweep-premium is the grid premium; those families are fed, not this interpolation's published number

    Dataset: annuity.org April 2026 $100,000 monthly-payout table by age/sex; anchors take the female column conservatively, rounded down to 0.1%; age 85 is extrapolated , as of 2026-04-01 , retrieved 2026-07-15

    Provenance: derived by codex, implemented by grok.

    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: spia-payout-rate-interpolation.md Mutation receipt: spia-payout-rate-interpolation.mutation.md

    Evidence tests: spiaQuotes.evidence.test.ts

    Implemented in: spiaQuotes.ts

    Is the number of: annuitization-payout-rate-pct

    Feeds: annuitization-sweep-annual-income, annuitization-sweep-premium

Records that feed this number

  • Temporary deferred-QLAC payout-rate placeholder Model record, justified by derivation

    Purpose: A conservative annual payout-rate fraction used for a deferred QLAC starting at 80–85 until a quoted deferred rate is sourced.

    Statement: QLAC_DEFERRED_PAYOUT_RATE = 0.16 (annual payout / premium) with no interpolation or rounding. For a $100,000 premium the annual payout is $16,000 and the monthly illustration is 16,000/12 = $1,333.33333333333. Units: fraction of premium per year. Rounding: none on the rate; exact cents on the annual figure; monthly illustration tolerance 1e-9 dollars.

    Formula: payout_annual = 0.16 · premium; payout_monthly = payout_annual / 12

    • premium: QLAC premium (unit: usd) (domain: worksheet 100,000)
    • 0.16: Placeholder annual payout-rate fraction (unit: 1/year) (domain: constant)

    Timing: a constant; applied when a deferred QLAC candidate is sized

    Rounding: none

    Limits:

    • No direct deferred quote was obtained; the constant is a placeholder to be replaced at the next refresh of the published parameters
    • It is intended to understate candidates (16% vs the age-85 immediate 15.3%), not to represent a sourced market quote
    • The census has no QLAC-specific family; annuitization-payout-rate-pct and annuitization-sweep-annual-income are named as the nearest families this placeholder feeds when a deferred QLAC candidate is sized, and are not this constant's published number

    Provenance: derived by codex, implemented by grok.

    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: qlac-deferred-payout-placeholder.md Mutation receipt: qlac-deferred-payout-placeholder.mutation.md

    Evidence tests: spiaQuotes.evidence.test.ts

    Implemented in: spiaQuotes.ts

    Feeds: annuitization-payout-rate-pct, annuitization-sweep-annual-income

Engine source: engine/src/decisions/annuitization.ts (AnnuitizationSweep.payoutRatePct)

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.