Skip to content

What (One-liner) ​

An insurance ALM reading on one honest daily axis — liability PV and Fisher-Weil duration from a declared template, the duration gap against a parameterised asset side, NAV impact under the in-force Solvency II Art. 166/167 rate shocks (verbatim tables), and a cashflow coverage runway.

How to use ​

Pick the liability template (life decaying-annuity or P&C runoff) and scale, set the asset side (value, duration, liquid share, income rate), choose the sovereign curve and run. Read the rate-shock loss proxy headline with the binding-scenario badge, then the duration-gap series chart. The shock table is relative and front-loaded — the binding scenario can contradict the gap sign's naive suggestion; read the badge. Wire it upstream of risk_management or meta_strategy, or an xlang script for an independent recompute. ⬇ CSV exports the full daily axis with every convention in the header.

Core formula ​

Shocks:  r_up(t) = max(r·(1+s_up(t)), r+1pp);  r_down(t) = r·(1−s_down(t)), nil if r<0
         s_up: 70..26% over 1..20y → 20% at 90y;  s_down: 75..29% → 20%  (linear interp)
Liab:    PV = Σ L_t·e^{−r(t)·t};  FW duration = Σ t·PV_t / PV
Assets:  ΔA = −D_A·Δr(D_A)·A          (duration-point approximation, declared)
Proxy:   scr_ir_proxy = larger of the two NAV losses, floored at zero   (Art. 165 shape)
Runway:  liquid assets + cumulative income vs cumulative outflows, whole years

Assumptions & applicability ​

Assumptions: sovereign curve ≠ EIOPA RFR (declared); declared parametric liability templates; duration-point asset side; ln(1+r) normalisation before shocking; endpoint-flat outside curve knots.

Applicable: life and P&C balance-sheet shapes on any of the five official sovereign curves; scenario-shape and runway reading.

Not applicable: regulatory SCR levels, actuarial valuation, bond-level analytics, the pending 2025 redesign.

Input / Output contract ​

Inputs: liability_template (life_annuity | pnc_runoff), liability_annual, liability_years, liability_decay, asset_value, asset_duration, liquid_share, asset_income_rate, curve, lookback_years.

Output: metrics (liability_pv, liability_fw_duration, duration_gap_years, nav_base, nav_delta_up_pct, nav_delta_down_pct, scr_ir_proxy_pct, binding_scenario, coverage_runway_years, n_dates, curve, liability_template) + one axis namespace series (dates + six per-date series, all equal length on the curve-panel axis), plus a provenance block declaring the shock-table version, both article rules, the curve basis, the asset approximation, the template spec and the runway convention.

Known limitations ​

  1. The binding scenario under the in-force table can flip the naive duration-gap intuition (front-loaded relative shocks) — this is the reading's core lesson, stated everywhere the number appears.
  2. scr_ir_proxy_pct is shape-only: never compare its level to a reported regulatory SCR.
  3. Templates are declared shapes, not actuarial models; mortality trend and lapse stress are separate family-D operators.
  4. A missing curve degrades honestly — the card never fabricates a term structure.

Verifiable intelligence for the decisions that demand scrutiny.