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 byclaude-subagent.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: 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.