Skip to content

What (One-liner) ​

The editable LDI book as an input-data node: a materialised level-payment liability schedule plus the asset/hedge side — deliberately curve-free, feeding both the engine and its independent verification from one place.

How to use ​

Set the liability profile / annual payment / horizon and the asset value + duration (hedge optional), then run — it materialises the schedule (liability_cashflows plus flat cf_t/cf_amount arrays for script binding). Wire it upstream of ldi_funding_gap_v1 (the engine consumes book) and/or a script node. Because both chains read this one node, editing the book here changes both sides of a cross-check at once.

Input / Output contract ​

Inputs: liability_profile (annuity_20y / level_30y / custom), liability_annual, liability_years, asset_value, asset_duration, hedge_notional, hedge_duration.

Output: book (structured liability_cashflows + flat cf_t/cf_amount + liability_annual and asset/hedge scalars), liability_nominal_total (undiscounted), n_cashflows, plus flat display scalars. Scripts should rebuild the level schedule from the SCALARS (liability_annual × n_cashflows) — binding the 20-length arrays next to date-axis series would trigger the script lane's shortest-length alignment (the 2026-08-25 template lesson).

Known limitations ​

  1. Level-payment profiles only; bespoke schedules need a future custom-cashflow mode.
  2. The hedge overlay is notional × duration bookkeeping, not an instrument model.
  3. No discounting here by design — PV and duration belong downstream, against a curve node.

Verifiable intelligence for the decisions that demand scrutiny.