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.

Contents