CFDL

Credit: mortgage pool on a prepayment ramp

A mortgage pool on a ramping prepayment curve, where speeds build over the first thirty months before levelling off.

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

The same 30-year agency mortgage pool, but on a ramping prepayment curve: speeds build month by month over the first thirty months, then level off. A ramp is the standard market assumption for a seasoning pool.

The reference

The industry's own standard formulas for analyzing mortgage-backed securities, which define the ramp and publish a complete cash flow schedule computed on it.

Not redistributable. The publisher forbids reproduction in any form, so the source is neither vendored nor quoted; its figures are carried as anchor values and cited as facts.

What it exercises

Packcredit
Contract typescredit.loan
Language featurespack contract lowering to four cash flow lines; a per-period pool factor carried as state
Conventionsa prepayment ramp over thirty months, CPR-to-SMM conversion, default, severity, recovery lag

Under a changing hazard the surviving balance is a running product, and a closed-form pow(k, p) is exact only while the rate holds still.

The result

Interest, scheduled principal, prepayments and recoveries each reproduce as their own column across the schedule.

Asserted: four stream columns period by period.

The delta

The tolerance is 0.51 — just over half a dollar — set by the published schedule's whole-dollar rounding.

Run configuration

{
  "deterministic": {
    "annual_discount_rate": 0.08
  }
}

Verified results

Checked period by period: 4 series across 25 periods95 values in all, each within ±0.51 of the reference.

  • credit.loan.interest.a
  • credit.loan.sched_principal.a
  • credit.loan.prepay.a
  • credit.loan.recoveries.a