mbscfamounts - Cash flow and time mapping for mortgage pool

Syntax

[CFlowAmounts, CFlowDates, TFactors, Factors] = 
mbscfamounts(Settle, Maturity, IssueDate, GrossRate, CouponRate, 
Delay, PrepaySpeed, PrepayMatrix)

Arguments

Settle

Settlement date. A serial date number or date string. Settle must be earlier than or equal to Maturity.

Maturity

Maturity date. A serial date number or date string.

IssueDate

Issue date. A serial date number or date string.

GrossRate

Gross coupon rate (including fees), in decimal.

CouponRate

Net coupon rate, in decimal. Default = GrossRate.

Delay

Delay in days.

PrepaySpeed

(Optional) Relation of the conditional payment rate (CPR) to the benchmark model. Default = 0. If you input a customized prepayment matrix, set PrepaySpeed to [].

PrepayMatrix

(Optional) Used only when PrepaySpeed is unspecified. Customized prepayment vector. 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.

All inputs (except PrepayMatrix) are number of mortgage-backed securities (NMBS)-by-1 vectors.

Description

[CFlowAmounts, CFLowDates, TFactors, Factors] = mbscfamounts(Settle, Maturity, IssueDate, GrossRate, CouponRate, Delay, PrepaySpeed, PrepayMatrix) computes cash flows between settle and maturity dates, the corresponding time factors in months from settle, and the mortgage factor (the fraction of loan principal outstanding).

CFlowAmounts is a vector of cash flows starting from Settle through end of the last month (Maturity).

CFlowDates indicates when cash flows occur, including at Settle. A negative number at Settle indicates accrued interest is due.

TFactors is a vector of times in months from Settle, corresponding to each cash flow.

Factors is a vector of mortgage factors (the fraction of the balance still outstanding at the end of each month).

Examples

Example 1. Given a mortgage with the following characteristics, compute the cash flow amounts and dates, the time factors, and the mortgage factors.

Settle      = datenum('17-April-2002');
Maturity    = datenum('1-Jan-2030');
IssueDate   = datenum('1-Jan-2000');
GrossRate   = 0.08125;
CouponRate  = 0.075;
Delay       = 14;
PrepaySpeed = 100;

[CFlowAmounts, CFLowDates, TFactors, Factors] = ... 
mbscfamounts(Settle, Maturity, IssueDate, GrossRate, ... 
CouponRate, Delay, PrepaySpeed) 

The result is contained in four 334-element row vectors.

Example 2. Given a portfolio of mortgage-backed securities, use mbscfamounts to compute the cash flows and other factors from the portfolio.

Settle   = datenum(['13-Jan-2000';'17-Apr-2002';'17-May-2002']);
Maturity    = datenum('1-Jan-2030');
IssueDate   = datenum('1-Jan-2000');
GrossRate   = 0.08125;
CouponRate  = [0.075; 0.07875; 0.0775];
Delay       = 14;
PrepaySpeed = 100;

[CFlowAmounts, CFlowDates, TFactors, Factors] = ... 
mbscfamounts(Settle, Maturity, IssueDate, GrossRate, ... 
CouponRate, Delay, PrepaySpeed)

Each output is a 3-by-361 element matrix padded with NaNs wherever elements are missing.

References

[1] PSA Uniform Practices, SF-4

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS