mbspassthrough

Mortgage pool cash flows and balances with prepayment

Description

example

[Balance,Payment,Principal,Interest,Prepayment] = mbspassthrough(OriginalBalance,GrossRate,OriginalTerm) calculates mortgage pool cash flows and balances with prepayments.

If a standard (PSA) prepayment is specified, "aging" is applied to standard prepayment vector. Aging is the same amount as the age of the pool (OriginalTerm - TermRemaining).

example

[Balance,Payment,Principal,Interest,Prepayment] = mbspassthrough(___,TermRemaining,PrepaySpeed,PrepayMatrix) specifies options using one or more optional arguments in addition to the input arguments in the previous syntax.

Examples

collapse all

This example shows how to compute the cash flows and balances of a 3-month old mortgage pool with original term of 360 months, assuming a prepayment speed of 100.

OriginalBalance = 100000;
GrossRate = 0.08125;
OriginalTerm = 360;
TermRemaining = 357;
PrepaySpeed = 100;

[Balance, Payment, Principal, Interest, Prepayment] =... 
mbspassthrough(OriginalBalance, GrossRate, OriginalTerm,... 
TermRemaining, PrepaySpeed)
Balance = 357×1
104 ×

    9.9866
    9.9715
    9.9548
    9.9363
    9.9161
    9.8942
    9.8707
    9.8454
    9.8185
    9.7900
      ⋮

Payment = 357×1

  743.9671
  743.4693
  742.8468
  742.0999
  741.2285
  740.2329
  739.1132
  737.8699
  736.5034
  735.0139
      ⋮

Principal = 357×1

   66.8837
   67.2915
   67.6904
   68.0802
   68.4607
   68.8317
   69.1929
   69.5442
   69.8854
   70.2163
      ⋮

Interest = 357×1

  677.0833
  676.1777
  675.1564
  674.0196
  672.7678
  671.4012
  669.9203
  668.3257
  666.6179
  664.7976
      ⋮

Prepayment = 357×1

   66.8676
   83.5494
  100.2000
  116.8108
  133.3731
  149.8785
  166.3183
  182.6840
  198.9672
  215.1593
      ⋮

Input Arguments

collapse all

Original balance value in dollars (balance at the beginning of each TermRemaining), specified as an NMBS-by-1 vector.

Data Types: double

Gross coupon rate (including fees), specified as an NMBS-by-1 vector of decimal values.

Data Types: double

Term of the mortgage in months, specified as an NMBS-by-1 vector.

Data Types: double

(Optional) Number of full months between settlement and maturity, specified as an NMBS-by-1 vector. For this argument, "full months" means not including fractional first term (if there is one).

Data Types: double

(Optional) Speed relative to PSA standard, specified as an NMBS-by-1 vector. The PSA standard is 100.

Note

Set the PrepaySpeed to [] if you input a customized PrepayMatrix.

Data Types: double

(Optional) Customized prepayment vector, specified as a NaN-padded matrix of size max(TermRemaining)-by-NMBS. Each column corresponds to each mortgage-backed security, and each row corresponds to each month after settlement.

Note

Use PrepayMatrix only when PrepaySpeed is unspecified.

Data Types: double

Output Arguments

collapse all

Principal balance at end of month, returned as a TermRemaining-by-1 vectors of end-of-month values.

Total monthly payment, returned as a TermRemaining-by-1 vectors of end-of-month values.

Principal portion of the payment, returned as a TermRemaining-by-1 vectors of end-of-month values.

Interest portion of the payment, returned as a TermRemaining-by-1 vectors of end-of-month values.

Unscheduled principal payment, returned as a TermRemaining-by-1 vectors of end-of-month values.

Introduced before R2006a