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

Planned Amortization Class (PAC) Tranches

In a PAC CMO, there is a main tranche, known as the schedule tranche, and a support tranche.

The main purpose of a schedule tranche is to give investors in the PAC tranche a more certain cash flow.

Targeted Amortization Class (TAC) Tranches

TACs are like PACs, but principal payment is specified for only one prepayment rate.

If prepayment rates are higher or lower, then the principal payment to TAC holders are higher or lower accordingly.

Schedule and Support Tranche

The main purpose of a PAC tranche is to give investors in the PAC tranche a more certain cash flow.

The PAC tranche receives priority for receiving payments of principal and interest that gives investors in the PAC tranche a steadier income. If prepayments differ from what was expected, then the support tranche gets the variable portion of the payments. While income to the support tranche is more variable, it is also higher yielding. Estimates of the yield, average life, and lockout periods of the PAC tranche is more certain.

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