# 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.

## Version History

Introduced before R2006a