Simulating Pre-Payments
Overview
To fully simulate a fixed income asset, one must account for pre-payments. Some instruments allow the borrower to
pay down the balance prior to maturity. This is typical of mortgages in the United States. Other bank loans
will allow pre-prayment but charge a penalty for pre-payment.
A simple way to model pre-payments is to break the pre-payment model into two pieces, the probability of pre-payment
and a distribution for the amount.
For the most part, pre-payments occur when a customer refinances a loan, which means that the majority of pre-payments
are full downs, so that most companies will make that assumption when simuting pre-payments.
Probability of Prepayments
Under the standard assumption, pre-payments occur because the customer is re-financing the loan. re-financings will typically
occur when the current interest rate is lower than the rate on the loan. In a perfectly efficient market, customers will finance
as soon as the current rate falls below the loan rate, however, there are various frictions that prevent this from happening.
A simple model of the probability of pre-payment would be that it is zero when the loan rate is less than the current rate,
but it goes up linearly with the difference. The slope used here would have to be fit to a dataset.
function prepayProbability(loanRate, currentRate){
if(currentRate>=loanRate) return 0;
return slope * (loanRate - currentRate);
}
An alternative method would be the model the prepay probability as a
sigmoid function
instead of a linear one.
This type of function would top off at some probability.