Fast Formulas #2: Average Life of Mortgage (Amortizing with Balloon) presented a compact formula for calculating the average life of a mortgage that pays as scheduled until it is paid off with a “balloon” payment before the scheduled end of its term. It occurred to me that it might be possible to build on that formula to find something more significant: a concise formula for the average life of a pool of loans with ongoing prepayments. It turns out that there is such a formula.
Let me begin with some background for those unfamiliar with prepayment models. A simple but widely used model for loan prepayments is “CPR”, which stands for “constant prepayment rate” or “conditional prepayment rate.” A 10% CPR means that if there is a pool of 100 loans at the beginning of the year, by the end of the year 10 of those loans will have been paid off by voluntary prepayments and 90 of the loans will still be outstanding.
We assume that the prepayments occur every month. The monthly prepayment rate is also known as the Single Monthly Mortality (“SMM”). Suppose the monthly rate is 1%. Then 99% of the original loans are still outstanding after a month. After two months, 98.01% (99% of 99%) are still outstanding. After 12 months, 88.64% = .9912 of the loans are outstanding, and so the annual prepayment rate, or CPR, is 1 – 88.64% = 11.36%.
The CPR model assumes that the prepayments occur at a constant percentage of the declining population of loans. It ignores influences on borrower behavior from changing interest rates, the age of the loan, season of the year, or other economic or demographic factors. But the CPR model provides a consistent way to evaluate loan cash flows across a range of prepayment assumptions, and it has been used to analyze assets such as mortgages, home equity loans, and student loans.
A key summary statistic for a mortgage-backed or asset-backed security is the projected average life, which can be used to find a comparable U.S. treasury as a yield benchmark. The way to calculate the average life is to project the underlying loan cash flows under an assumed prepayment scenario, a task that demands careful modelling or special software.
But is there a concise formula for the average life of a loan pool that does not require detailed cash flow projections? I found that the answer is yes, under these idealized conditions: the prepayments must follow the CPR model, and the loans in the pool must have homogenous rates and terms.
Let’s assume our pool consists entirely of 30-year mortgages at a 6% interest rate. If there are no prepayments, we could calculate the pool’s average life with Formula 1.4 from Fast Formulas #1: Average Life of Mortgage (as Scheduled):
is the loan term, in months;
is the monthly interest rate;
is the monthly discount factor; and
But let’s assume that the pool will experience prepayments at a constant 1% monthly rate, which has the annualized equivalent of 11.36% CPR, as we saw above. Assuming perfect knowledge about the future performance of the pool, we can partition the mortgages into 360 classes: Class 1 loans will prepay in one month, Class 2 loans will prepay in two months, and so on. The final class, Class 360, contains the loans that will run to the 360th month without any prepayment.
Consider Class 12, the loans that will prepay one year from now. These are among the loans that will survive at least 11 months, but they are not among those that will survive beyond 12 months. So Class 12’s share of the entire pool is:
is the monthly prepayment rate; and
is the monthly survivorship factor.
For our purposes, we can think of Class 12 as a single loan that amortizes according to a 360-year schedule for 12 months, and is then paid off with a balloon payment. We can use Formula 2.2 from Fast Formulas #2 to calculate the average life for such a loan. This formula was derived from Ashwani Singh’s elegant solution to Puzzle #3: Mortgage Average Life (see Puzzle #3: A Better Answer). Applying Formula 2.2 to Class 12, we have:
is the number of months until the balloon payment; and
Class 12’s contribution to the weighted average life of the pool is the product of its share of the pool with its average life: . We could perform this calculation for each of the 360 classes and add the results to get the pool average life. These calculations would be more of a marathon than a sprint, but there is a short cut. With a couple of tricks and a few pages of algebra, I was able to condense the calculations down to this formula:
In our example, , , , , , and . So:
This calculation matches the result from a detailed monthly cash flow projection.
If there are no prepayments then Formula 3.1 should match Formula 1.4 (the average life for a mortgage without prepayments). But Formula 3.1 blows up if , since divides . Then what about very slow prepayments? As approaches , approaches (to see how this works, look at the binomial expansion of ). Formula 3.1 does converge to Formula 1.4 as approaches .
Perhaps Formula 3.1 could be useful as a way to:
- Estimate the average life of a loan pool;
- Test the reasonability of analysis generated by third-party software; or
- Understand the relationship between CPR and average life.
I think that Formula 3.1 may be original, but please let me know if you have seen it before.
I am very pleased that this formula grew out of the exchanges we’ve had on this blog. I am grateful to Ashwani Singh for his crucial contribution.
Copyright 2011, 2013. All rights reserved.
Revised July 25, 2011 with the correction of an exponent from 248 to 348, and with a slightly simpler version of Formula 3.1. Further revised on February 16, 2013 with LaTeX math formatting and minor changes to the text.
Revised August 31, 2016 with corrected value for . My thanks to Andy Cahill for catching the error.
Update: A spreadsheet implementation of this formula is now available at Fast Formulas #3: The Spreadsheet.
More Updates: Fast Formulas #4: Geometric Series (One of the Tricks) and Fast Formulas #5: Quasi-Geometric Series (The Other Trick) explain the tools I used to derive Formula 3.1. The derivation of this formula is given by Fast Formulas #3: The Derivation.