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