Main Content

cmosched

Generate principal balance schedule for planned amortization class (PAC) or targeted amortization class (TAC) bond

Description

[BalanceSchedule,InitialBalance] = cmosched(Principal,Coupon,OriginalTerm,TermRemaining,PrepaySpeed) generates a principal balance schedule for planned amortization class (PAC) bonds using two bands of Public Securities Association Prepayment Model (PSA) speeds or targeted amortization class (TAC) bonds using a single PSA speed.

example

[BalanceSchedule,InitialBalance] = cmosched(___,TranchePrincipal) adds an optional argument for TranchePrincipal.

example

Examples

collapse all

Define the mortgage pool under consideration and generate a principal balance schedule for planned amortization class (PAC) bonds using two bands of PSA speeds.

Principal = 128687000;
GrossRate = 0.0648;
OriginalTerm = 360;
TermRemaining = 325;
PrepaySpeed = [300 525];
PacPrincipal = 100250000;

[BalanceSchedule, InitialBalance] ...
= cmosched(Principal, GrossRate, OriginalTerm, TermRemaining, ...
PrepaySpeed, PacPrincipal)
BalanceSchedule = 1×325
107 ×

    9.7996    9.5780    9.3602    9.1461    8.9357    8.7289    8.5257    8.3259    8.1296    7.9366    7.7469    7.5605    7.3773    7.1972    7.0202    6.8463    6.6754    6.5073    6.3422    6.1799    6.0204    5.8637    5.7096    5.5582    5.4094    5.2632    5.1194    4.9782    4.8394    4.7030    4.5689    4.4372    4.3077    4.1804    4.0554    3.9325    3.8118    3.6931    3.5765    3.4619    3.3494    3.2406    3.1353    3.0334    2.9348    2.8394    2.7470    2.6576    2.5711    2.4873

InitialBalance = 
100250000

Input Arguments

collapse all

Principal of the underlying mortgage pool, specified as a scalar numeric value.

Data Types: double

Coupon rate of the underlying mortgage pool, specified as a scalar decimal value.

Data Types: double

Original term in months of the underlying mortgage pool, specified as a scalar numeric value.

Data Types: double

Terms remaining in months of the underlying mortgage pool, specified as a scalar numeric value.

Data Types: double

PSA speed is specified as follows:

  • For planned amortization class (PAC) bonds, PSA speed is specified as a 1-by-2 matrix, where the first element is the lower band and the second element is the upper band.

  • For targeted amortization class (TAC) bonds, the PSA speed is specified as a scalar numeric value

Data Types: double

(Optional) Principal of the scheduled tranche, specified as a scalar numeric value. If TranchePrincipal is unspecified or empty [], the principal of the scheduled tranche is assumed to be the sum of the payment schedule calculated from the PSA prepayment speeds.

Data Types: double

Output Arguments

collapse all

Number of terms remaining, returned as a matrix of size 1-by-NUMTERMS, where NUMTERMS is the number of terms remaining. Each column contains the scheduled principal balance for the time period corresponding to the column number.

initial principal balance of the scheduled tranche, returned as a scalar numeric value.

More About

collapse all

Planned Amortization Class (PAC) Bond

PAC bonds are a type of CMO bond and are designed to largely eliminate prepayment risk for investors.

They do this by transferring essentially all prepayment risk to other bonds in the CMO that are called support bonds.

Targeted Amortization Class (TAC) Bond

TAC bonds are analogous to PAC bonds, but are structured differently.

TAC bonds offer one-sided protection, shielding investors from high prepayment rates up to a specified PSA and do not protect against low prepayment rates.

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