Skip to main content
CFDL

Credit: floating-rate bridge pool

A floating-rate bridge loan pool priced off a forward curve, where the coupon resets each period rather than being fixed at origination.

Every number below is checked against an independent reference implementation on every commit — period by period, and on each metric, inside a declared tolerance. See benchmark methodology.

The case

A $15m floating-rate bridge pool. The coupon is a benchmark rate plus 275 basis points, resetting each period off a stepped forward series, with a 7.00% floor that binds from month 12 to maturity, the last 24 of the 36 months. It runs 36 months to a bullet, bought at par, against a 10% prepayment rate, a 2.5% default rate, 45% severity and a five-month recovery lag.

The reference

Floating-rate pool conventions as defined by the standard market formulas — a coupon reset off an index, clamp(index + margin, floor, cap), so the floor applies after the spread.

Provenance. No external source exists for this case. The expectations come from an in-repo reference implementation generated from the pack's rules, built separately from the model and compared month by month, pending practitioner review. Nothing external asserts them.

What it exercises

Packcredit
Contract typescredit.loan, credit.purchase
Language featuresa series-shaped assumption (assume sofr = curve step …) read per period by the term index = inputs.sofr
Conventionsa coupon that resets rather than fixing at origination, a binding rate floor, a bullet maturity

A series-shaped assumption is exercised end to end here: its declaration, its representation in the compiled model, and the per-period read.

The result

Present value −433,719.03, multiple on invested capital 1.151953 and weighted average life 2.367044 years.

Asserted: net cash flow per period across 41 months, plus ten metrics, the three above among them.

The delta

None: every period agrees inside a one-cent tolerance, including the periods where the floor binds and the coupon stops tracking the index.

Run configuration

{
  "deterministic": {
    "annual_discount_rate": 0.075
  }
}

Verified results

Checked period by period: 1 series across 41 periods — 41 values in all, each within ±0.01 of the reference.

  • net_cash_flow

Summary metrics for the base run:

MetricValueTolerance
model.npv-433,719.03±1
metric.moic1.151953±0.0001
model.wal_years2.367044±0.0001
domain.credit.interest2,670,923.28±1
domain.credit.principal14,053,633.59±1
domain.credit.recoveries520,501.53±1
domain.credit.wal_years2.54018±0.0001
domain.credit.collections17,245,058.4±1
domain.credit.purchase15,000,000±1
domain.credit.collections_multiple1.149671±0.0001