Calculation catalog › Ladders and valuation

Ladder rung face

Face value purchased for a modeled ladder rung.

Field: face Unit: US dollars Basis: today's dollars (real) Computed by: Engine Status: Complete chain

Appears in: income-floor (face value)

Calculation records

  • Level-real-income ladder: faces solved back to front Formula record, justified by derivation

    Purpose: The face amount of each rung so that every payout year's maturing principal plus the coupons of the rungs still outstanding equals the target real income.

    Statement: For target real income A, first payout offset p and payout count q (each rounded to an integer and clamped to at least 1), rungs mature at offsets m = p..p+q-1 with coupon rates c_m = max(0.125%, y(m))/100. Faces are solved from the last offset backward: F_m = max(0, (A - sum over later offsets j of F_j c_j)/(1 + c_m)), so that F_m(1 + c_m) plus the coupons of every rung still outstanding equals A in year m. Each rung is then priced on the curve (ladder-annual-coupon-par-pricing); totalCost is the sum of rung costs; annualRealIncomeByOffset lists coupons plus maturing principal for offsets 1..p+q-1 (coupon-only inside a deferral window); targetAnnualRealIncome echoes A. Units: real (today's) dollars. Rounding: none.

    Formula: F_m = max(0, (A - sum_{j>m} F_j c_j) / (1 + c_m)) for m from last to first; income_m = F_m (1 + c_m) + sum_{j>m} F_j c_j = A

    • A: Level real income target per payout year (unit: usd) (domain: A >= 0)
    • m: Maturity offset of a rung (unit: years) (domain: integer, p <= m <= p+q-1, p >= 1)
    • c_m: Coupon rate of the rung maturing at m, as a fraction (unit: 1) (domain: c_m >= 0.00125)
    • F_m: Real face of the rung maturing at m (unit: usd) (domain: F_m >= 0)

    Timing: end of year, annual; the rung maturing in year m pays its last coupon and principal that year

    Rounding: none

    Limits:

    • Faces are floored at zero: a target smaller than the later rungs' coupons yields a zero-face rung and that year then receives more than the target
    • Payout offset and count are rounded and clamped to at least 1 rather than rejected
    • Coupons pay annually and par yields serve as spot rates for pricing (ladderMath.ts header simplifications)
    • No CUSIP-level lot rounding in core mode; faces are continuous

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

    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: ladder-backward-face-construction.md Mutation receipt: ladder-backward-face-construction.mutation.md

    Evidence tests: ladderMath.evidence.test.ts

    Implemented in: ladderMath.ts

    Is the number of: ladder-rung-face, ladder-build-annual-real-income-by-offset, ladder-build-total-cost, ladder-build-target-annual-real-income

Engine source: engine/src/ladder/ladderMath.ts (LadderRung.face)

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.