Main Content

cmoschedcf

Generate cash flows for scheduled collateralized mortgage obligation (CMO) using PAC or TAC model

Description

[Balance,Principal,Interest] = cmoschedcf(PrincipalPayments,TranchePrincipalsTrancheCoupons,BalanceSchedule) generates cash flows for a scheduled CMO, such as the planned amortization class (PAC) or targeted amortization class (TAC), given the underlying mortgage pool payments (or payments from another CMO tranche). The output Balances, Principal, and Interest from this function can be used as input into cmoseqcf to further divide the PAC, TAC, or support dividing a tranche into sequential tranches.

example

Examples

collapse all

Define the mortgage pool under consideration for CMO structuring using mbscfamounts or mbspassthrough. Calculate the underlying mortgage cash flow, define the PAC schedule and CMO tranches, and calculate the cash flows for each tranche.

MortgagePrincipal = 1000000; % underlying mortgage
Coupon = 0.12;
Terms = 6; % months

[PrincipalBalance, MonthlyPayments, SchedPrincipalPayments, ...
InterestPayments, Prepayments] = ...
mbspassthrough(MortgagePrincipal, Coupon, Terms, Terms, 0, []);
PrincipalPayments = SchedPrincipalPayments.' + Prepayments.'
PrincipalPayments = 1×6
105 ×

    1.6255    1.6417    1.6582    1.6747    1.6915    1.7084

Calculate the PAC schedule for CMO using cmosched.

PrepaySpeed = [100 300];
[BalanceSchedule, InitialBalance] ...
= cmosched(MortgagePrincipal, Coupon, Terms, Terms, PrepaySpeed, [])
BalanceSchedule = 1×6
105 ×

    8.3617    6.7180    5.0581    3.3828    1.6955         0

InitialBalance = 
9.9886e+05

Define CMO tranches.

TranchePrincipals = ...
[InitialBalance; MortgagePrincipal-InitialBalance];
TrancheCoupons = [0.12; 0.12];

Calculate cash flows for each tranche.

[Balance, Principal, Interest] = ...
cmoschedcf(PrincipalPayments, TranchePrincipals, ...
TrancheCoupons, BalanceSchedule)
Balance = 2×6
105 ×

    8.3631    6.7213    5.0632    3.3885    1.6970         0
    0.0114    0.0114    0.0114    0.0114    0.0114    0.0000

Principal = 2×6
105 ×

    1.6255    1.6417    1.6582    1.6747    1.6915    1.6970
         0         0         0         0         0    0.0114

Interest = 2×6
103 ×

    9.9886    8.3631    6.7213    5.0632    3.3885    1.6970
    0.0114    0.0114    0.0114    0.0114    0.0114    0.0114

Input Arguments

collapse all

Number of terms remaining for underlying principal payments, specified as a matrix of size 1-by-NUMTERMS, where NUMTERMS is the number of terms remaining. Each column contains the underlying principal payment for the time period corresponding to the row number. Calculate underlying principal payments using mbscfamounts or mbspassthrough. The underlying principal payments can also be outputs from other CMO cash flow functions.

Data Types: double

Initial principal for the scheduled and the support tranche, specified as a matrix of size 2-by-1.

Data Types: double

Coupons for the schedule tranche and the support tranche, specified as a matrix of size 2-by-1 of coupon values. The weighted average coupon for the CMO should not exceed the coupon of the underlying mortgage.

Data Types: double

Number of terms remaining for targeted balance, specified as a matrix of size 1-by-NUMTERMS, where NUMTERMS is the number of terms remaining. Each element represents the targeted balance schedule for the time period corresponding to that column.

Data Types: double

Output Arguments

collapse all

Number of terms remaining and principal balances, returned as a matrix of size 2-by-NUMTERMS, where NUMTERMS is the number of terms remaining. The first row is the principal balances of the scheduled tranche, and the second row is the principal balances of the support tranche at the time period corresponding to the column.

Number of terms remaining and principal payments, returned as a matrix of size 2-by-NUMTERMS, where NUMTERMS is the number of terms remaining. The first row is the principal payments of the scheduled tranche, and the second row is the principal payments of the support tranche at the time period corresponding to the column.

Number of terms remaining and interest payments, returned as a matrix of size 2-by-NUMTERMS, where NUMTERMS is the number of terms remaining. The first row is the interest payments of the schedule tranche, and the second row is the interest payments of the support tranche at the time period corresponding to the column.

More About

collapse all

References

[1] Hayre, Lakhbir, ed. Salomon Smith Barney Guide to Mortgage-Backed and Asset-Backed Securities. John Wiley and Sons, New York, 2001.

[2] Lyuu, Yuh-Dah. Financial Engineering and Computation. Cambridge University Press, 2004.

Version History

Introduced in R2012a