CFDL

Credit: IO/bullet bridge loan

An interest-only loan repaying its entire principal in a single balloon at maturity.

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 $10m interest-only bridge pool at 7.25% for 60 months, bought at par. Nothing amortizes: the borrower pays interest monthly and the entire principal returns in a single balloon at maturity. Against that sit a 5% constant prepayment rate, a 1.5% default rate, 40% loss severity and a four-month recovery lag.

The reference

Interest-only and bullet-maturity conventions as defined by the standard market formulas for non-amortizing collateral.

Not redistributable. The source cannot be published, so its conventions are recreated independently of the model and compared month by month.

What it exercises

Packcredit
Contract typescredit.loan, credit.purchase
Language featuresa pack contract paired with a purchase price
Conventionsinterest-only accrual, a bullet maturity, CPR, CDR, severity, recovery lag

With no scheduled amortization, weighted average life is driven entirely by prepayment and default.

The result

Present value −61,370.42, multiple on invested capital 1.286054 and weighted average life 3.864922 years.

Asserted: net cash flow per period across 64 months, plus the three summary figures.

The delta

None: every period agrees inside a one-cent tolerance.

Run configuration

{
  "deterministic": {
    "annual_discount_rate": 0.07
  }
}

Verified results

Checked period by period: 1 series across 64 periods64 values in all, each within ±0.01 of the reference.

  • net_cash_flow

Summary metrics for the base run:

MetricValueTolerance
model.npv-61,370.42±1
model.moic1.286054±0.0001
model.wal_years3.864922±0.0001
domain.credit.interest3,088,798.79±1
domain.credit.principal9,355,691.08±1
domain.credit.recoveries386,585.35±1
domain.credit.wal_years4.328274±0.0001
domain.credit.collections12,831,075.22±1
domain.credit.purchase10,000,000±1
domain.credit.collections_multiple1.283108±0.0001