Finding the cash flow of a mortgage backed security (MBS) is normally not easy because of the homeowners' right to prepay part of an MBS (at par value) or the whole MBS (with some notice). The central problem in pricing an MBS is therefore to estimate the security's future prepayments. The future prepayment level (homeowners future tendency to prepay) is influenced by a number of factors, among others the market term structure of interest rates.

There are a number of different methods for estimating the future prepayments, e.g. option pricing methods and econometric methods. A simple and practical method is based on a combination of historical prepayment levels and trader's subjective estimates of the future prepayments (this method, the PSA method, is described below).

The Public Securities Association (PSA) model is a conventional method for estimating the prepayment rate in the American market. The PSA benchmark, denoted 100 percent PSA, assumes a series of Constant Annual Prepayment Rates (called CPR) that begin at an annual rate of 0.2 percent (equivalent to a monthly rate of 0.017 percent) in the first month and increase by 0.2 percent thereafter, until 30 months after the mortgage origination when the CPR is a constant annual rate of 6 percent (equivalent to a monthly rate of 0.487 percent). The CPR for a period is defined as the percentage (an annual rate) of mortgages outstanding at the beginning of the period that terminate during that period.

The convention is to qoute multiples of PSA. For example a projected prepayment rate of 200 percent PSA means that the CPR in any month will be twice the CPR corresponding to 100 percent PSA. Thus for 200 percent PSA, the CPR will be 0.4 percent (annual rate) in month one, 0.8 percent in month two and so on, until it levels off at 12 percent in month 30.

Note that the annual prepayment rate CPR is less than the Constant Monthly Prepayment Rate (called CMP) multiplied by the number of settlements per year if the number of settlements per year is greater than one. This is because the outstanding principal (remaining balance) falls over time, i.e. if there are monthly payments (12 settlements per year) and a monthly prepayment rate of 1 percent, i.e. CMP = 1 percent, then the CPR will be 11.36 percent and CMP * 12 will be 12 percent. Therefore, if the outstanding principal amount at the beginning of the month is USD 1.000.000, and the scheduled repayment is USD 10.000, then a CMP of 1 percent means that 1 percent of USD 990.000 (which is USD 9.900) will be prepaid in that month.

A PassThrough is generally part of a pool of given mortgages, also called convertible annuities. The cash flows from the mortgages are passed through to the holders of the PassThrough securities.

In the examples below we show some of the Derivatives Expert functionality for working with MBO's such as PassThrough's based on the PSA method. Much functionality in Derivatives Expert can either be done in non-calendar time or in calendar time. Working in non-calendar time is often faster for doing quick calculations. If more precise real-life examples have to be calculated one can thereafter work in precise calendar time incorporating business days, holiday calendars etc. Below are shown examples both in non-calendar time and in calendar time.

Mortgage Backed Obligation example in non-calendar time

This opens the relevant package.

Needs["DerivativesExpert`MortgageBackedObligations`"]

With zero percent PSA, there are no prepayments (zero cash flow). The first element of each list element - of the returned list below - is the time-to-maturity, and the second element is the cash flow (which is zero in the below result).

Prepayment[PassThrough[100 USD,7,12,5,0,(1/4)]]

This PassThrough contract has a principal of USD 100, a coupon rate of 8 percent, monthly settlements, 40 settlements left to maturity and a PSA percentage of 145.

prepayment=Prepayment[PassThrough[100 USD,8,12,40,145,(1/4)]]

This is a plot of prepayment. One can see that the prepayments rise in the beginning and thereafter decrease after the mid-time-to-maturity (1.66 years).

ListPlot[prepayment/.{USD->1},AxesLabel->{"years","USD"},PlotLabel->"At 145 percent PSA",Prolog->{PointSize[0.01`]}]

Mortgage Backed Obligation example in calendar time

This PassThrough contract has a principal of USD 100, a coupon rate of 8 percent, is effective on March 14, 1997, matures on January 1, 2007, is settled on January 1 and July 1, a 100 percent PSA and a service fee of 0.25 percent. Day counting is done according to Actual/365.

contract1=PassThrough[100 USD,8,{1997,3,14},{2007,1,1},{{1,1},{7,1}},100,0.25,LengthMonth->Actual,LengthYear1->Actual,MethodDaycount->None,LengthYear2->365];

This the Prepayment of contract1.

Prepayment[contract1]