cmosched

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

Syntax

``[BalanceSchedule,InitialBalance] = cmosched(Principal,Coupon,OriginalTerm,TermRemaining,PrepaySpeed)``
``[BalanceSchedule,InitialBalance] = cmosched(___,TranchePrincipal)``

Description

example

````[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`.```

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.

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