4-Factor Prepayment Model

In previous posts, I have covered CPR, PSA, and a spreadsheet that allows for any prepayment vector you might want to create. There have been many attempts to describe what the prepayment pattern for MBS will look like in the future. One of the models that has been used extensively, particularly with ALM (Asset / Liability Management) models, is the 4-Factor prepayment model. Some models have more than four factors, but I am hoping this spreadsheet with four factors, will give the user an idea of how the 4-Factor model might work. The model relies on historic data, but can be adjusted for the user’s personal expectations. The four factors I will consider are:

1. Refinance Incentive: This is the difference between the weighted average coupon (WAC) of the loans, and the current market yield that is an alternative for refinancing the loans. This is the base factor that determines what will happen to the CPR, under various changes in market yields.

2. Burnout:  After the loans have gone through one or more interest rate cycles, and for various reasons still have not refinanced, the expectation is that the remaining loans might be less likely to refinance in the future.

3. Seasoning: Like the PSA model, it is assumed that newer loans are less likely to prepay than more seasoned loans. The PSA model assumes the CPR will start at 1/30th if the CPR, ramps up until it peaks at 30 months, and then assumes the full CPR for the rest of the life of the loans. This seasoning factor takes into consideration the base model to determine in what month the ramping of the expected CPR will peak.  Unlike PSA, the seasoning factor is not dependent on only one CPR (6%).

Seasonality: Run virtually any data set and you will find that, for various reasons, people tend to sell or refinance their homes more often during certain months of the year. For this reason, the amortization schedule used to run the model, needs a starting date.

The Excel functions looks like this for 7/1/2017:

Base Factor (CPR)

Assuming the spread is -2.00% (WAC – Market Rate)



Base Factor = .006924

*CPR = Base Factor Table


Assuming a pool factor of 1.0


Burnout = 1.000

*CPB = Current Principal Balance

*OSB =  Original Starting Balance

*Burnout = Burnout Table


Assuming the spread is -2.00% (WAC – Market Rate) & the payment number is 19



Seasoning = 0.39583

*Seasoning = Seasoning Table


Assuming the payment date is 7/1/17


Seasonality = 1.10

*Seasonality = Seasonality Table

SMM (Single Monthly Mortality Rate)

SMM = .006924 *1.00* .39583* 1.10

SMM for the 7/1/2017 payment  = .003015

On the right hand side of the amortization sheet I show the calculations for each factor, and for each payment:

Change the Market Yield (use the drop down box) to see how it effects the prepayment chart. Note the change of scale on the Y axis:

Download “4-Factor


Don Pistulka
Don Pistulka

Retired Credit Union CFO - Finance
Background: over 40 years in investments, asset/Liability management, banking, securities trader.
Worked for: California Credit Union, WesCorp, CalFed S&L, Crocker Bank, Carroll McEntee, Federal Home Loan Bank Board (D.C.), Western Asset Management, Security Pacific National Bank.


  1. Thanks a ton for this, very helpful. I am a fan of your posts and take help from them every now and then.
    Can you help demonstrate how – CPR for base factor, Likelihood for burnout, and seasonality Factors are arrived. I understand you mentioned in a previous comment that these are calculated using historical data, but can you illustrate how these are calculated using historical data?


    1. I am not sure what more about the calculations I can say than I did in the post. The second sheet of the spreadsheet called 4-factors, shows a simple weighting of each of the factors that calculates a SMM for just one month (payment 19 in this example). SMM is the monthly CPR equivalent. The calculations are applied each month for the remaining life of the pool of loans. The base factor is the only one of the four that does not change. It is assumed that the difference in current market rates and the WAC remain the same.


      1. Thanks. I wanted to ask how you calculated following –
        1. CPR for a spread of -2% is 8.
        2. Burnout likelyhood for 0.4 is 0.900.
        3. seasoning for -2% is 48 months
        4. Seasonality factor for May is 1.06

        So basically calculation of factors for all the 4 parameters.


        1. All four inputs are examples of what historical numbers might look like. They are not calculated, but used only for example purposes.

  2. Thank you, this is very good.
    One question I have, the example you gave is for one mortgage.
    If I have a pool of mortgages, to model the prepayment will I have to consider this pool as a single mortgage with WAC of pool & maturity as WAM of pool?
    Will this be accurate approach, is there any alternative approach?

    1. Pankaj,
      The example I used is a pool of loans. A single loan would not have a weighted average maturity (WAM) or a weighted average coupon (WAC). A single loan would not have a constant rate of prepayments each month. When mortgage backed securities are created, each loan in the pool typically has the same interest rate and maturity, with possibly small exceptions. If you are using the CPR for a pool of loans with various coupons and maturities, it negates the value somewhat, in that CPR assumes that the WAC will remain the same and the payments will reduce the maturity (WAM) consistently.

      If have not answer your question, please rephrase what you are looking to use the 4-factor model for. There are many other amortization models on my site that might fit you requirements.


  3. Hi, thanks for your awesome work.
    I just wanted to know how can one derive the reference tables viz. Base factor, Seasonality, Burnout and Seasoning using the historical data?
    if you have some illustrations, it would be of great help.

    1. Gupta,
      Historical data is available from sites like FNMA, Freddie Mac, etc. Brokerage firms are also a good source, but usually they require business relationship’s. Academic papers can also be helpful. As far as illustrations, I’m not sure what you mean.


      1. Thanks for your revert. I just want to know how did you arrive at the vectors for the 4 factors. In other words, how did you calculate what will be the CPR for a given spread; how did you calculate the burnout likelihood, seasoning and seasonality.
        Thanks in anticipation.

        1. Gupta,
          Seasonality and Burnout came from a firm that had experience with historical data. Seasoning and Base Factor are more arbitrary. The numbers I used is not really the point of the model. The point is to show how one might create a model that could be more precise, under certain conditions, than a simple CPR or PSA. The numbers can be whatever your experience with your portfolio tells you.

  4. Phenomenal work you have done here and finding a site like yours is a rare pleasure indeed. Do your monthly seasonality adjustments seek to capture both day-count (as CPR tends to report monthly retro to current) or mainly is it weighted toward capturing the speedup in ‘moving around’ months. In any event, I very much like your adjustments and thank you for running such a site.

  5. Hi, Don. This is great work. I love this prepayment model. Could I download the model?

  6. I have been asked to research “Agency Factors” in relation to the prepayment of loans for an interview. I am in finance and familiar with mortgage loans to the extent of amortization tables and P&I but have never heard of “Agency Factors”. Maybe its just a terminology thing, but your blog is the only thing that looks like its related. Is it?

    Thank you!!

    1. I am not sure what “Agency Factors” are either. The first thing that comes to mind are pool factors, that represent the percent of original principal remaining for MBS.

      If they are asking about the factors go into the models that agencies like Fannie Mae, Freddie Mac, etc. use for prepayment assumptions, the agencies are not going to divulge that. Even if they did, the assumptions will most likely change over time.

      I think your best bet is to ask the person that asked you the question to be more explicate in their request.

      Sorry I could not be of more help.

  7. Thanks for doing this blog. Your spreadsheets are the best on the web for this subject matter.

Leave a Reply to Don Pistulka Cancel reply

Your email address will not be published. Required fields are marked *