Quant Memo
Advanced

Building and Calibrating a Prepayment Model

A production prepayment model combines several separate effects — turnover, refinancing incentive, burnout, seasonality — into one multiplier, then is calibrated against real pool history until its predictions match what pools have actually done.

Prerequisites: Prepayment S-Curves and Refinancing Incentive, Burnout, Turnover and Seasoning Effects

Every effect covered elsewhere — base turnover rising with loan age, the S-curve's response to refinancing incentive, burnout dulling that response for previously-rallied pools, and seasonal patterns (people move more in summer than in January) — has to be combined into one number a pricing engine can use every month, for every pool, under every simulated rate path. That combination is a prepayment model, and building one is mostly an exercise in multiplying several independent multipliers together and then checking the result against history.

A prepayment model is not one formula — it's a base turnover curve multiplied by a refinancing-incentive multiplier, multiplied by a burnout adjustment, multiplied by a seasonality factor. Each piece is estimated separately, then the whole product is calibrated against actual pool-level prepayment history until it fits.

Putting the pieces together

A common structure multiplies the components:

CPRt=CPRturnover(aget)×Mrefi(incentivet)×Mburnout(historyt)×Mseason(montht)CPR_t = CPR_{turnover}(age_t) \times M_{refi}(incentive_t) \times M_{burnout}(history_t) \times M_{season}(month_t)

In words: start from the base turnover speed appropriate for a loan of this age, scale it up by however much the current refinancing incentive calls for, scale that down if the pool has already burned out from a past rally, and adjust up or down slightly for the calendar month. Each multiplier is estimated on its own from historical pool data — turnover from very-low-incentive pools, the refinancing multiplier from pools observed across a wide range of incentive levels, burnout from pools that have lived through more than one rate cycle.

turnover refi incentive burnout seasonality × projected CPR calibrate against actual pool history
Each effect is estimated as its own multiplier, combined into a single projected CPR, and the whole model is checked against actual historical prepayment data.

Worked example

A pool of loans is 36 months seasoned (turnover multiplier: 1.0, at its ramped-up steady level), sits at a refinancing incentive that the S-curve says warrants a 3.5x multiplier over base, has already been through one rally so gets a burnout discount of 0.7, and it's May, a modestly active moving season, adding a seasonality factor of 1.05. If base turnover at this age is 7% CPR, the model computes 7%×3.5×0.7×1.0518.0%7\% \times 3.5 \times 0.7 \times 1.05 \approx 18.0\% CPR for that month. The model is then checked: if actual pool data from similar loans in similar conditions historically ran closer to 21% CPR, the burnout or refinancing multiplier gets adjusted until the model's output matches that observed speed.

What this means in practice

Prepayment models are re-calibrated regularly as new pool data arrives, because mortgage borrower behavior shifts with underwriting standards, refinancing technology (online applications lowering the effective cost of refinancing), and the composition of who's still holding a mortgage. A model calibrated on one era's data can misprice pools originated under different conditions.

A prepayment model's output is only as good as the historical regime it was calibrated on. Models built during a period of easy, low-cost refinancing can understate speed once technology or policy makes refinancing even cheaper, and models built during a tight-credit period can overstate the pool of borrowers actually able to act on incentive.

Related concepts

Practice in interviews

Further reading

  • Fabozzi, The Handbook of Mortgage-Backed Securities
ShareTwitterLinkedIn