Synthetic collateralized debt obligations (CDOs) are
credit derivatives that are “synthesized” through credit derivatives, such as credit
default swaps (CDSs), on a pool of reference entities. Such reference entities can be bonds, loans or
simply names of companies or countries. Most
synthetic CDOs in the market do not have a so-called cash flow waterfall
structure. They can be customized so
that the payment structure of a tranche doesn’t depend on the payment
structures of other tranches. Such CDOs are
thus sometimes called single tranche CDOs. Single tranche CDOs have been developing
rapidly for the last few years and are the most popular synthetic CDOs
currently in the market.
A common
structure of CDOs involves slicing the credit risk of the reference pool into a
few different risk levels. The level
with a higher credit risk supports the levels with lower credit risks. The risk range of two adjacent risk levels is
called a tranche. The lower bound of the
risk level of a tranche is often referred to as an attachment point and the
upper bound a detachment point. For
example, a 5-10% tranche has an attachment point of 5% and a detachment point
of 10%. When the accumulated loss of the
reference pool is no more than 5% of the total initial notional of the pool,
the tranche will not be affected.
However, when the loss has exceeded 5%, any further loss will be
deducted from the tranche’s notional until the detachment point, 10%, is reached.
The most commonly
used credit derivatives in synthetic CDOs are credit default swaps (CDSs on CDO
tranches) and tranche-linked notes (CDO notes). They can be viewed as extensions of the
corresponding single entity credit default swaps and credit-linked notes (for
details on single entity CDSs and credit linked notes see the Credit Default Swaps and Credit-linked Notes and
Rating Sensitive Notes FINCAD Math Reference documents). Like
a single-entity CDS, a CDS on a CDO tranche has a payoff leg and a premium leg.
The buyer of a CDS on a tranche will be
compensated by the seller for any loss to the tranche and in return he/she pays
periodic premium to the seller. In the
case of a CDO note the buyer of a CDO note pays upfront a certain amount,
called the note’s principal, and receives periodic coupon payments and its
principal at maturity if the tranche that the note is linked to doesn’t suffer a
loss. However, when the accumulated loss
of the reference entities eats into the tranche, the note’s principal will be
reduced by the lost amount and thus the future coupon and principal payment
will be reduced. The main differences
between a CDO credit derivative and a single-entity credit derivative are twofold:
(1) a CDO derivative has a variable notional whereas a single entity credit
derivative has a constant notional; (2) a CDO derivative has a protection layer
(except for an equity tranche derivative) whereas a single-entity derivative
does not.
A popular CDO
derivative is the so-called first-loss CDS (FLCDS). An FLCDS is a CDS on the
equity tranche of a CDO. Whenever a loss
occurs in the reference pool, the buyer of an FLCDS will be compensated, up to
a predetermined maximum amount, and at the same time the premium notional will
be reduced by the lost amount until the notional reaches 0. It will be interesting to compare an FLCDS
with another popular basket CDS, the first-to-default CDS (for details on
basket CDSs see the Basket Default Swaps FINCAD Math Reference document). In
a first-to-default CDS, whenever a reference entity defaults, the buyer of the
CDS will be compensated the full loss of the defaulted entity and the seller
stops receive premium payments. Here the
number of defaults is fixed, but the maximum compensation to the CDS buyer is
unknown beforehand, while in an FLCDS, the number of defaults is, in general,
unknown beforehand but the maximum compensation, the notional of the equity
tranche, is known beforehand.
It should be to
be pointed out that an FLCDS is a CDS on the loss of a portfolio of entities up
to a certain threshold level. It doesn’t
have to be associated with a formal CDO structure, although an FLCDS can always
be viewed as a CDS on the equity tranche of a CDO, i.e., a CDO that has only
one tranche, the equity tranche.
An important
class of CDSs on CDO tranches is the so-called standardized tranche CDSs, or
simply standardized tranches. For a
standardized tranche CDS the reference asset pool is a basket of names, and
each name has the same amount of notional and the same recovery rate.
FINCAD provides both
Suppose a reference pool has assets,
with notional amounts
, respectively. The
total notional amount is:
.
Suppose the loss layer is given by its lower and
upper bounds and
, in dollar values. Let
be the cumulative loss
of the jth credit event. Then:
where
, and
and
are respectively the
notional and the recovery rate of the asset that has the
jth credit event.
Then for a given loss layer ( its compensation amount at the credit event
is
where
.
If a credit name corresponds to several assets,
the losses of all the assets of the credit name must be added together when the
name defaults.
1. Valuation
The essential part of
For the method of generating default times using
credit index processes or copula functions, see the Default
Probability Curves and Default Correlations FINCAD
Math Reference document.
2. Sensitivity
- DV01 and Delta
The DV01 of a CDO credit derivative with respect
to a credit reference entity is defined as the fair value change of the derivative
per one basis point up-shift of the par CDS spread curve of the corresponding
reference entity. Since the credit risk
of a reference entity is usually expressed with a default probability curve,
the par credit default swap spread curve can be derived from the default
probability curve. By adding one basis
point at each point of this par CDS spread curve one gets an up-shifted par CDS
spread curve. Then an up-shifted default
probability curve can be build with the up-shifted par CDS spread curve.
The delta of a credit derivative with respect to a
credit reference asset is defined as:
Delta = - DV01 of the derivative / DV01 (reference CDS at
par),
where “DV01 of a reference CDS at par” is defined as
the change in the value of the CDS (on the given entity) that has the premium
coupon of the entity’s par CDS spread, per one basis point up-shift of the
entity’s par CDS spread curve.
3.
This statistic is calculated in functions that
calculate risk statistics only. It is
defined as the change in the fair value of a CDO derivative per 1% change in
the recovery rate of a given reference entity. In more detail, let be the fair value of the derivative when the recovery rate of
the entity is
. Then:
4. BPV
(basis point value)
The BPV of a risk free discount factor curve is the
change in the fair value of a CDO derivative when the risk-free discount factor
curve is shifted up one basis point. To
shift up a discount factor curve simply add one basis point to every point of
the corresponding spot rate curve of the discount factor curve.
aaCredit_DS_Firstloss(d_v,
contra_d, tranche_type, tranche, protect_rate, cpn_tbl, notion_adj, freq_tbl, bond_bskt,
bond_his, corr_mat, meth_corr, prob_bskt, Intrp_prob, hl, df_crv_std, intrp, position,
MC_para, stat):
Calculates fair value and risk statistics of a credit
default swap on a CDO tranche.
aaCredit_DS_FirstLoss_delta(d_v,
contra_d, tranche_type, tranche, protect_rate, cpn_tbl, notion_adj, freq_tbl, bond_bskt,
bond_his, corr_mat, meth_corr, prob_bskt, intrp_prob, hl, df_crv_std, intrp, position,
MC_para, output_type, asset_list):
Calculates sensitivity of the fair value of a credit
default swap on a CDO tranche to the credit spread of each entity in the
reference pool.
aaCredit_Dpremium_FirstLoss_cf(d_v,
contra_d, tranche_type, tranche, protect_rate, cpn_tbl, notion_adj, freq_tbl, bond_bskt,
bond_his, corr_mat, meth_corr, prob_bskt, intrp_prob, hl, df_crv_std, intrp, position,
MC_para, table_type):
Calculates the premium cash flows of a default swap on a
CDO tranche.
aaCredit_DS_tranche_std(d_v,
contra_d, tr_notion_ini, num_credit, tranche, cpn_pr, freq_tbl, prem_fix, loss_cum,
loss_type, rate_recover, corr_mat, meth_corr, prob_bskt, intrp_prob, hl, df_crv_std,
intrp, position, MC_para, stat):
Calculates fair value and risk statistics of a credit default
swap on a standardized tranche.
aaCredit_DS_tranche_std_delta(d_v,
contra_d, tr_notion_ini, tranche, cpn_pr, freq_tbl, prem_fix, loss_cum, loss_type,
rate_recover, num_credit, corr_mat, meth_corr, prob_bskt, intrp_prob, hl, df_crv_std,
ntrp, position, MC_para, output_type, asset_list):
Calculates sensitivity of the fair value of a credit
default swap on a standardized tranche to the credit spread of each entity in
the reference pool.
aaCredit_Dpremium_tranche_std_cf(d_v,
contra_d, tr_notion_ini, tranche, cpn_pr, freq_tbl, prem_fix, loss_cum, loss_type,
rate_recover, num_credit, corr_mat, meth_corr, prob_bskt, intrp_prob, hl, df_crv_std,
intrp, position, MC_para, table_type):
Calculates the premium cash flows of a credit default swap
on a standardized tranche.
aaCDO_tranche(d_v,
contra_d, tranche_type, tranche, loss_absorb, cpn_tbl, notion_adj, cpn_freq_tbl,
bond_bskt, bond_his, fix_cum, corr_mat, meth_corr, prob_bskt, intrp_prob, hl, df_crv_std,
intrp, position, MC_para, stat):
Calculates fair value and risk statistics of a CDO note.
aaCDO_tranche_cf(d_v,
contra_d, tranche_type, tranche, loss_absorb, cpn_tbl, notion_adj, cpn_freq_tbl,
bond_bskt, bond_his, fix_cum, corr_mat, meth_corr, prob_bskt, intrp_prob, hl, df_crv_std,
intrp, position, MC_para, table_type):
Calculates the cash flows of a CDO note.
aaCDO_tranche_delta(d_v,
contra_d, tranche_type, tranche, loss_absorb, cpn_tbl, notion_adj, cpn_freq_tbl,
bond_bskt, bond_his, fix_cum, corr_mat, meth_corr, prob_bskt, intrp_prob, hl, df_crv_std,
intrp, position, MC_para, output_type, asset_list):
Calculates sensitivity of the fair value of a CDO note to
the credit spread of each entity in the reference pool.
aaCDO_tranche_par(d_v,
contra_d, price, tranche_type, tranche, loss_absorb, cpn_tbl, notion_adj, cpn_freq_tbl,
bond_bskt, bond_his, fix_cum, corr_mat, meth_corr, prob_bskt, intrp_prob, hl, df_crv_std,
intrp, MC_para):
Calculates for a given price, the implied coupon rate of a
CDO note.
The following table gives the parameter descriptions of
the functions that value credit default swaps on CDO tranches, i.e., all the above
functions except the last four:
Input Argument |
Description |
d_v |
Valuation date |
contra_d |
Table of default swap date(s). It can be a 1-, 2-, 3-, or 4-entry table. The 4 entries hold in sequence the maturity
date, effective date, odd first coupon date and next-to-maturity coupon date
for premium payments. Only the
maturity is required. The default
value of an entry is 0. |
tranche_type |
Type of a tranche (or loss layer) definition. A switch: 1 = proportional (to the initial pool principal), 2 = actual dollar amount. These two types are mutually convertible. For example, when
a proportional tranche boundary value is converted to actual dollar amount, the
initial tranche notional is multiplied by the boundary value. |
tranche |
Tranche (loss layer) table. It is a two-entry array (lower bound, upper
bound). |
protect_rate |
A scaling factor for a tranche protection. A protection buyer will receive [protect_rate]
x [lost amount of the tranche]. When
protect_rate<1, the credit default swap protects only a portion of the
tranche loss. |
cpn_tbl |
Premium coupon and fixed payment table. A 4-column table (date, notional, coupon
rate, fixed premium payment). The date
must be ascending. At a given date the
data in the row of the table that has the closest future date is used in the
premium calculation. If there is no
future date, the closest prior will be used. |
notion_adj |
Premium notional adjustment type; a switch 1 = notional is adjusted for matured bonds, 2 = no adjustment for matured bonds |
freq_tbl |
A four-entry table (premium frequency, type of premium
accrued interest, accrual method, business day convention). Each entry is from a switch. |
bond_bskt |
A bond basket table. It can be of two types. 1.
A 13- or 14- or 15-column table. Only 13 columns are required. See function aaBond3_p
for the details of the entries from column 3 to column 12. The 14th column contains the
coupon recovery rate. Its default
value is the principal recovery rate. The
15th column stores the reference price of the bond. Its default value is 100 (per 100 par). The first column, the bond ID, must be
ascending integers. It is an
identifier of a credit reference name. 2. A
5- or 6-column table (ID, default status, principal, maturity, recovery rate,
[optional] reference price). Bonds
that are perfectly correlated and have the same default profile can be
grouped with the same ID. The number of IDs plus one must be the same as the
number of rows of the correlation matrix. |
bond_his |
A three-entry historical bond data table: cumulative loss,
the total of initial principals and the total of matured bond principals. If an entry is empty or 0, it will be
calculated from the bond basket table where it is used. The total initial principal is the sum of
the principals of the defaulted bonds, the matured principals, and the
principals of the active bonds. |
corr_mat |
The correlation matrix of the reference entities and the
counterparty (note that in the standard tranche functions there is no
counterparty). It can be a full
correlation matrix or a single entry array. If it is a single entry array, it is assumed
that each pair of the entities has the same correlation. For a full correlation matrix only the
values in the upper triangle will be used. Note that a correlation matrix must be
non-negative definite. |
meth_corr |
Method of handling credit correlation; a switch: 1 = use a credit index process, 2 = use a normal copula |
prob_bskt |
A basket default probability curve of an m-name basket and
a counterparty. It can be a m+1 or m+2
column table. The first column can be
time in years (>=0 and <1000), or dates (>=1000) and the (i+1)th
column (i=1, ..., m) the default probabilities of the ith entity. The (m+1)th column contains the
counterparty default probabilities if there is a counterparty. Time and date must be increasing, and
probability must be non-decreasing and between 0 and 1. If the first column is time in years, the
time accrual method (default = 30/360) can be put in the first row of the
(m+2)th column. For a
date-based curve, the probabilities in the first row must be 0, and the first
date must be equal to a valuation date if there is one. Excel users may pass term strings to
represent time intervals. Term strings
must be in the format kB, kD, kW, kM, or kY where k is an integer and B, D, W,
M and Y stands for market day, calendar day, week, month and year
respectively, e.g., 3M = 3 months. For
the standardized tranche functions there is no counterparty. |
intrp_prob |
Interpolation method of a probability curve; a switch: 1 = linear, 2 = exponential. For both interpolation methods, if the default probability
curve is not long enough, the exponential extrapolation method is always used
to extend the curve. |
hl |
|
df_crv_std |
Risk-free discounting factor curve or a risk-free yield. If it is a risk-free yield table, it can be
a 1-entry table of a yield value (annual, actual/365), or a 2-entry table of
yield and compounding frequency, or a 3-entry table of yield, compounding
frequency and accrual method. |
intrp |
Interpolation method |
position |
Trading position - a switch: 1 = buy protection, 2 = sell protection. |
MC_para |
|
output_type |
Used in the delta calculation functions. It gives three types of outputs; 1) delta, 2)
DV01 of credit spread, 3) rho of recovery rate. See Description of Outputs for their
definitions. |
asset_list |
Used in the delta calculation functions. It can be any subset of the integers (1, 2,…,
number of bonds in the table bond_bskt). |
table_type |
Used in the cash flow functions. A premium cash flow table type switch. See the function reference page and section
Description of Outputs for more details. |
tr_notion_ini |
Initial notional of a standardized tranche. This is the notional of a tranche before a
loss incurs. |
prem_cpn |
Premium rate |
loss_cum |
Accumulated loss up to the valuation date. |
loss_type |
Type of the accumulated loss data - a switch: 1 = dollar amount, 2 = number of credit events |
num_credit |
The total number of credits in a reference credit pool for
standardized tranches. |
rate_recover |
Recovery rate of all the credits in the credit pool. Used in the standardized tranche functions
only. |
stat |
Statistic list. In
the function aaCredit_DS_FirstLoss
it can be any subset of {1, 2,.., 14}. In the function aaCredit_DS_tranche_std
it can be any subset of {1, 2, …, 17} |
The following table gives the parameter descriptions
of the CDO note functions:
aaCDO_tranche
aaCDO_tranche_cf
aaCDO_tranche_delta
aaCDO_tranche_par
For parameters that are not shown in the table, their
descriptions are the same as those given in the above table.
Input Argument |
Description |
loss_absorb |
A scaling factor for tranche loss absorption. The buyer of the tranche will get a
reduction on his principal by the amount of loss_absorb × lost amount of the
tranche. When loss_absorb<1, the
buyer will only absorb a portion of the total loss of the tranche |
cpn_tbl |
Coupon and fixed payment table. A 4-column table (date, notional, coupon
rate, fixed payment). The date must be
ascending. At a given date the data in
the closest future date will used. If
there is no future date, the closest prior will be used. |
notion_adj |
Notional adjustment type, a switch with one value (1 =
notional is adjusted for fixed payments but not for matured bonds). |
freq_tbl |
A four-entry table coupon frequency, type of accrued
interest, accrual method, business day convention). Each entry is from a switch. |
fix_cum |
Accumulated fixed payments up to the valuation date, inclusive. |
stat |
Stat list. It can
be any subset of {1, 2, .., 13}. |
aaCredit_DS_FirstLoss
aaCredit_DS_tranche_std
The function aaCredit_DS_FirstLoss
has fourteen outputs and the function aaCredit_DS_tranche_std
has three extra outputs:
Output Statistics |
Description |
1 |
Fair value of a CDS on a tranche |
2 |
Present value of the payoff (default) leg. |
3 |
Present value of the premium leg. |
4 |
Premium accrued interest |
5 |
Fair value minus premium accrued interest |
6 |
Par premium coupon rate. This is the premium rate that makes a CDS on
a tranche have a fair value minus accrued interest equal to 0. |
7 |
Basis point value on risk-free curve: change of the fair
value of CDS on a tranche per one basis up shift of the risk-free discount
factor curve |
8 |
Number of days that premium accrues |
9 |
Next premium payment date |
10 |
Previous premium payment date |
11 |
Remaining coupons: number of remaining premium coupons
until maturity |
12 |
Total outstanding bond principal |
13 |
Accumulated loss |
14 |
Outstanding premium leg notional |
15 |
Minimum number of defaults needed for the tranche to incur
any loss |
16 |
Minimum number of defaults needed for the tranche to loose
all its notional |
17 |
Remaining number of defaults needed for the tranche to
loose all its notional |
aaCredit_Dpremium_FirstLoss_cf
Credit_Dpremium_tranche_std_cf
These functions output premium cash flows tables.
There are five types of output tables:
Table Type |
Label |
Description |
1 |
No-default cash flows |
A five column table of premium cash flows (date, interest,
fixed premium payment, total, accrued interest) given that no default occurs |
2 |
Expected cash flows |
A four-column expected cash flow table (date, expected
interest, expected fixed payment, total) |
3 |
PV of cash flows |
A four-column present value cash flow table (date, present
value of interest, present value of fixed premium payment, total) |
4 |
Interests |
a five-column of premium interest table (date, interest
given no default, expected interest, present value of interest, accrued
interest) |
5 |
Extended cash flow table |
A thirteen-column cash flow table (effective date, terminating
date, interest given no default, fixed payment given no default, total cash
flow given no default, accrued interest, expected interest, expected fixed
payment, total expected cash flow, present value of interest, present value
of fixed payment, total present value of cash flow, discount factor) |
aaCDO_tranche
Output Statistics |
Description |
1 |
Fair value of a tranche |
2 |
Accrued interest |
3 |
Fair value plus accrued interest |
4 |
Value of interest |
5 |
Value of fixed payment |
6 |
BPV on risk-free curve |
7 |
Number of days that interest accrues |
8 |
Next coupon payment date |
9 |
Previous coupon payment date |
10 |
Remaining coupons: number of remaining interest payments |
11 |
Total outstanding notional of the pool |
12 |
Accumulated loss of the pool |
13 |
Outstanding principal of the tranche |
aaCDO_tranche_cf
Table Type |
Label |
Description |
1 |
No-default cash flow table |
A five column no-default cash flow table (date, interest,
principal, total, accrued interest) - cash flows given that there is no
default. |
2 |
Expected cash flow table |
A four-column expected cash flow table (date, expected
interest, expected principal, total) |
3 |
PV of cash flow table |
A four-column present value cash flow table (date, present
value of interest, present value of principal, total) |
4 |
Interest payment table |
A five-column interest table (date, interest given no
default, expected interest, present value of interest, accrued interest) |
5 |
Extended cash flow table |
A thirteen-column cash flow table (effective date, terminating
date, interest given no default, principal given no default, total cash flow
given no default, accrued interest, expected interest, expected principal, total expected cash flow,
present value of interest, present value of principal, total present value of
cash flow, discount factor) |
aaCDO_tranche_par
Output |
Description |
Implied coupon rate |
The coupon rate that values the CDO note to a given price. |
aaCredit_DS_FirstLoss_delta
aaCredit_DS_tranche_std_delta
aaCDO_tranche_delta
These
functions output three types of risk statistics: delta, DV01 or credit spread
and rho of recovery rate. See the
section Formulas & Technical Details for their definitions.
Remark: The
Delta and DV01 of a credit spread are often not
sensitive to the change of a single entity’s credit spread. Hence a large
number of random trials (e.g., 50,000) is recommended for their calculation.
Context examples are given for a first-loss credit default
swap, a credit default swap on a standard tranche and a CDO note.
Bank A holds a portfolio of risky bonds. To improve its capital efficiency and also
reduce concentration risk, it decides to market the bonds. However, market conditions and liquidity
issues would put the bank in an unfavorable and difficult position if it
directly sells these bonds. Instead, the
bank restructures the portfolio by forming several tranches with different risk
levels.
All the tranches are ranked BBB and above except for the
equity tranche, the one with the highest risk level, which is not rated. This way the bank finds it is easy to find
buyers for the rated tranches. To completely
eliminate the credit risk of the bond portfolio the bank bought a 5-year
first-loss credit default swap. The
equity piece has 5% of the total portfolio principal, 21,300,000. The bank pays a 12% premium coupon quarterly
on an initial notional of 1,000,000. If
any of the bonds default within 5 years, the bank will be compensated by the
counterparty for losses up to 5% of the total bond principal. The FINCAD functions given above can be used
to calculate the fair price.
Here are the details of the first loss CDS. The bond portfolio has 10 bonds given as
follows:
table_bskt:
Reference Bond Pool
ID |
Dflt Status |
Principal |
Maturity |
Odd Days |
Cpn |
Redempt |
Freq |
Accrual Method |
Day Count |
Principal Recovery |
Coupon Recovery |
||
1 |
0 |
1000000 |
1-Nov-2012 |
0 |
0 |
0 |
0.1 |
100 |
2 |
14 |
1 |
0.4 |
0 |
2 |
0 |
2000000 |
1-Dec-2015 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.3 |
0 |
3 |
0 |
1500000 |
1-Dec-2012 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.4 |
0 |
4 |
0 |
3000000 |
1-Nov-2015 |
0 |
0 |
0 |
0.1 |
100 |
2 |
14 |
1 |
0.4 |
0 |
5 |
0 |
2000000 |
1-Dec-2014 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.3 |
0 |
6 |
0 |
4000000 |
1-Jun-2003 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.4 |
0 |
7 |
0 |
3000000 |
1-Mar-2010 |
0 |
0 |
0 |
0.1 |
100 |
2 |
14 |
1 |
0.3 |
0 |
8 |
0 |
2000000 |
1-Dec-2014 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.3 |
0 |
9 |
0 |
1000000 |
1-Apr-2007 |
0 |
0 |
0 |
0.17 |
100 |
2 |
14 |
1 |
0.4 |
0 |
10 |
0 |
1800000 |
1-Dec-2012 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.4 |
0 |
All of the bond issuers are from the same industry sector.
The credit index correlation of each
pair of issuers is around 0.4. It is
reasonable to assume that all the correlations are equal to this number. The default probability curves of the bond
issuers and the CDS counterparty are given as:
table_prob: Default
Probability Curve
|
Issuer |
||||||||||
Years |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Counter-party |
1 |
0.05 |
0.043 |
0.036 |
0.036 |
0.026 |
0.024 |
0.015 |
0.025 |
0.017 |
0.019 |
0.005 |
2 |
0.1 |
0.096 |
0.087 |
0.093 |
0.08 |
0.078 |
0.066 |
0.078 |
0.073 |
0.076 |
0.01 |
3 |
0.15 |
0.146 |
0.145 |
0.146 |
0.13 |
0.134 |
0.119 |
0.132 |
0.128 |
0.135 |
0.015 |
4 |
0.2 |
0.206 |
0.204 |
0.199 |
0.189 |
0.189 |
0.176 |
0.187 |
0.185 |
0.185 |
0.02 |
5 |
0.25 |
0.26 |
0.256 |
0.254 |
0.24 |
0.245 |
0.229 |
0.243 |
0.244 |
0.237 |
0.025 |
10 |
0.5 |
0.502 |
0.505 |
0.505 |
0.513 |
0.521 |
0.525 |
0.534 |
0.54 |
0.545 |
0.03 |
The CDS matures on Dec 1, 2010. Today’s date is Dec 1, 2005 and the current
risk-free discount factor curve is:
table_df: Risk-free
Discount Factor Curve
Date |
Discount Factor |
|
1 |
1-Dec-2006 |
0.99 |
1-Dec-2007 |
0.9 |
1-Dec-2008 |
0.86 |
1-Dec-2009 |
0.818 |
1-Dec-2015 |
0.57 |
Use an accrual method of act/360. Call the FINCAD function aaCredit_DS_FirstLoss
with a 10000.5 random trials to get the following results:
aaCredit_DS_FirstLoss
Argument |
Description |
Example Data |
Switch |
d_v |
value (settlement) date |
1-Dec-2005 |
|
contra_d |
CDS contract dates |
table_dates |
|
tranche_type |
type of tranche definition |
1 |
tranche boundaries are proportional to the total notional |
tranche |
tranche boundaries |
table_tranche |
|
protect_rate |
portion of protection |
1 |
|
cpn_tbl |
coupon and fixed payment table |
|
|
notion_adj |
type of notional adjustment |
1 |
notional is adjusted for matured bonds |
freq_tbl |
premium frequency and accrual |
table_freq |
|
bond_bskt |
bond basket table |
above |
|
bond_his |
bond historical statistics |
table_his |
|
corr_mat |
credit index correlation matrix |
0.4 |
|
meth_corr |
method of handling credit correlation |
2 |
normal copula |
prob_bskt |
default probability curve |
table_prob |
|
intrp_prob |
interpolation method of probability curve |
1 |
linear |
hl |
holiday list |
0 |
|
df_crv_std |
discount factor curve – risk free |
table_df |
|
intrp |
interpolation method |
1 |
linear |
position |
trade position |
1 |
buy protection |
MC_para |
parameters for |
10000.5 |
|
stat |
stat list |
1, 14 |
|
Results
Output Statistics |
Description |
Value |
1 |
fair value |
331154.8 |
2 |
value of payoff |
643082.9 |
3 |
value of premium |
-311928 |
4 |
premium accrued interest |
-0 |
5 |
fair value minus accrued interest |
331154.8 |
6 |
par premium coupon rate. |
0.247397 |
7 |
BPV on risk-free curve |
-71.3173 |
8 |
number of days that premium accrues |
0 |
9 |
next premium payment date |
1-Mar-2006 |
10 |
previous premium payment date |
1-Dec-2005 |
11 |
number of remaining coupons |
20 |
12 |
total outstanding bond principal |
17300000 |
13 |
cumulative loss |
0 |
14 |
outstanding premium leg notional |
1000000 |
The input tables in the input parameter list are
given as follows:
table_dates - contract dates table
Maturity Date |
Effective Date |
1-Dec-2010 |
1-Dec-2005 |
table_tranche - tranche definition
Lower Bound |
Upper Bound |
0 |
0.05 |
table_cpn – premium coupon and fixed payment table
Date |
Notional |
Coupon |
Fixed Payments |
|
1000000 |
0.12 |
0 |
table_freq - premium frequency and other inputs
Frequency |
Premium Accrual Type |
Accrual Method |
Business Day Convention |
3 |
1 |
2 |
1 |
table_his - historical statistics
Accumulated Loss |
Total Initial Principal |
Total Matured Bond Principal |
0 |
0 |
0 |
To get the premium cash flows, call the function aaCredit_Dpremium_FirstLoss_cf
with a table type = 4 to get the following results:
Results
Date |
Cash Flow Given No Default |
Expected Cash Flow |
Present Value |
Accrued Interest |
1-Mar-2006 |
-30000 |
-28642.5 |
-28571.87466 |
-0 |
1-Jun-2006 |
-30666.66667 |
-27884.89333 |
-27745.85085 |
-0 |
1-Sep-2006 |
-30666.66667 |
-26704.53333 |
-26504.06643 |
-0 |
1-Dec-2006 |
-30333.33333 |
-25349.87 |
-25096.3713 |
-0 |
1-Mar-2007 |
-30000 |
-23391 |
-22638.00205 |
-0 |
1-Jun-2007 |
-30666.66667 |
-21327.34498 |
-20156.9704 |
-0 |
1-Sep-2007 |
-30666.66667 |
-20053.37678 |
-18498.00391 |
-0 |
1-Dec-2007 |
-30333.33333 |
-18609.44304 |
-16748.49873 |
-0 |
1-Mar-2008 |
-30333.33333 |
-17523.26618 |
-15596.66446 |
-0 |
1-Jun-2008 |
-30666.66667 |
-16658.09014 |
-14659.11932 |
-0 |
1-Sep-2008 |
-30666.66667 |
-15714.11687 |
-13670.42298 |
-0 |
1-Dec-2008 |
-30333.33333 |
-14717.25626 |
-12656.84038 |
-0 |
1-Mar-2009 |
-30000 |
-13679.89155 |
-11623.03553 |
-0 |
1-Jun-2009 |
-30666.66667 |
-13213.80739 |
-11087.14464 |
-0 |
1-Sep-2009 |
-30666.66667 |
-12444.27562 |
-10309.72436 |
-0 |
1-Dec-2009 |
-30333.33333 |
-11524.8723 |
-9427.345542 |
-0 |
1-Mar-2010 |
-30000 |
-9083.04507 |
-7337.400714 |
-0 |
1-Jun-2010 |
-30666.66667 |
-8764.858717 |
-6989.09274 |
-0 |
1-Sep-2010 |
-30666.66667 |
-8304.628357 |
-6535.625016 |
-0 |
1-Dec-2010 |
-30333.33333 |
-7823.054961 |
-6076.053602 |
-0 |
To calculate the sensitivities, e.g., deltas of
bond 1 and bond 2 call the function aaCredit_FirstLoss_delta
with the asset_list = {1, 2) and a random trial number of 50,000.5 to get the
following results:
Results
Bond List |
Delta |
1 |
-0.294987271 |
2 |
-0.203419397 |
An investor bought a credit default swap one year ago on a
10-15% standardized credit tranche, i.e., a tranche with an attachment point
10% and a detachment point 15%. The
tranche has a notional of 1,500,000. The
credit pool has 15 credits and none has defaulted so far. The maturity date of the swap is Dec 1, 2010
and the premium coupon is 12%, paid quarterly. The default probability curves of the credits
are given as follows:
table_prob: Default
Probability Curve
|
Issuer |
||||||||||||||
Years |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
1 |
0.05 |
0.043 |
0.036 |
0.036 |
0.03 |
0.024 |
0.015 |
0.025 |
0.017 |
0.019 |
0.02 |
0.036 |
0.057 |
0.02 |
0.027 |
2 |
0.1 |
0.096 |
0.087 |
0.093 |
0.08 |
0.078 |
0.066 |
0.078 |
0.073 |
0.076 |
0.08 |
0.096 |
0.132 |
0.097 |
0.154 |
3 |
0.15 |
0.146 |
0.145 |
0.146 |
0.13 |
0.134 |
0.119 |
0.132 |
0.128 |
0.135 |
0.15 |
0.177 |
0.225 |
0.175 |
0.208 |
4 |
0.2 |
0.206 |
0.204 |
0.199 |
0.19 |
0.189 |
0.176 |
0.187 |
0.185 |
0.185 |
0.195 |
0.222 |
0.273 |
0.232 |
0.277 |
5 |
0.25 |
0.26 |
0.256 |
0.254 |
0.24 |
0.245 |
0.229 |
0.243 |
0.244 |
0.237 |
0.237 |
0.324 |
0.386 |
0.278 |
0.331 |
10 |
0.5 |
0.502 |
0.505 |
0.505 |
0.51 |
0.521 |
0.525 |
0.534 |
0.54 |
0.545 |
0.565 |
0.435 |
0.482 |
0.367 |
0.436 |
The credit correlation of each pair of credits
can be modeled approximately with an identical correlation value of 0.4. Today’s date is Dec 1, 2005. The current discount factor is as given in
Example 1. Suppose the accrual method is
act/360 and there is no date adjustment.
Call function aaCredit_DS_tranche_std to get the following
results.
aaCredit_DS_tranche_std
Argument |
Description |
Example Data |
Switch |
d_v |
value (settlement) date |
1-Dec-2005 |
|
contra_d |
CDS contract dates |
table_dates |
|
tr_notion_ini |
initial notional of the tranche |
1,500,000 |
|
tranche |
tranche boundaries |
table_tranche |
|
prem_cpn |
premium coupon rate |
0.12 |
|
freq_tbl |
premium frequency and accrual |
table_freq |
|
prem_fix_tbl |
fixed premium payment table |
1 |
|
loss_cum |
accumulated loss |
0 |
|
loss_type |
type of loss data |
1 |
total of lost notionals of the pool |
num_credit |
number of credits of the pool |
15 |
|
rate_recover |
recovery rate |
0.3 |
|
corr_mat |
credit index correlation matrix |
0.4 |
|
meth_corr |
method of handling credit correlation |
2 |
normal copula |
prob_bskt |
default probability curve |
table_prob |
|
intrp_prob |
interpolation method of probability curve |
1 |
linear |
hl |
holiday list |
0 |
|
df_crv_std |
discount factor curve – risk free |
table_df |
|
intrp |
interpolation method |
1 |
linear |
position |
trade position |
1 |
buy protection |
MC_para |
parameters for |
10000.5 |
|
stat |
stat list |
1…17 |
|
Results
Output Statistics |
Description |
Value |
1 |
fair value |
110421.6133 |
2 |
value of payoff |
715244.2857 |
3 |
value of premium |
-604822.6724 |
4 |
premium accrued interest |
-0 |
5 |
fair value minus accrued interest |
110421.6133 |
6 |
par premium coupon rate. |
0.141908229 |
7 |
BPV on risk-free curve |
-58.73229261 |
8 |
number of days that premium accrues |
0 |
9 |
next premium payment date |
1-Mar-2006 |
10 |
previous premium payment date |
1-Dec-2005 |
11 |
number of remaining coupons |
20 |
12 |
total outstanding bond principal |
30000000 |
13 |
accumulated pool loss |
0 |
14 |
outstanding premium leg notional |
1500000 |
15 |
minimum defaults needed for tranche loss |
2.142857143 |
16 |
minimum defaults needed for full tranche loss |
3.214285714 |
17 |
remaining defaults needed for full tranche loss |
3.214285714 |
The input tables in the input parameter list are
given as follows:
table_dates - contract dates table
Maturity Date |
Effective Date |
1-Dec-2010 |
1-Dec/2004 |
table_tranche – tranche definition
Lower Bound |
Upper Bound |
0.1 |
0.15 |
table_freq - premium frequency and other inputs
Frequency |
Premium Accrual Type |
Accrual Method |
Business Day Convention |
3 |
1 |
2 |
1 |
An investor bought a note that is linked to the 10-15%
bond CDO tranche. The note has a
principal of 1,000,000 and matures on Dec 1, 2010. The reference bond pool has 10 bonds with an initial
total notional of 20,000,000. Before the
accumulated loss of the bond pool reaches 10% of the total initial notional of
the pool, the investor will receive 12% semiannual coupon payments. When the accumulated loss breaches 10%, the
tranche’s principal will be reduced by the lost amount that exceeds 10% until
the tranche’s notional principal is totally wiped out or the CDO matures. At maturity the principal, whatever is left, will
be paid to the investor. The details of
reference bond pool are given in the following table:
table_bskt:
reference bond pool
ID |
Dflt Status |
Principal |
Maturity |
Odd Dates |
Cpn |
Redempt |
Freq |
Accrual Method |
Day Count |
Princ Recov |
Coup Recov |
||
1 |
0 |
1000000 |
1-Nov-2012 |
0 |
0 |
0 |
0.10 |
100 |
2 |
14 |
1 |
0.4 |
0.4 |
2 |
0 |
2000000 |
1-Dec-2015 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.3 |
0.3 |
3 |
0 |
1400000 |
1-Dec-2012 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.4 |
0.4 |
4 |
0 |
3000000 |
1-Nov-2015 |
0 |
0 |
0 |
0.10 |
100 |
2 |
14 |
1 |
0.4 |
0.4 |
5 |
0 |
2000000 |
1-Dec-2014 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.3 |
0.3 |
6 |
0 |
3000000 |
1-Jun-2013 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.4 |
0.4 |
7 |
0 |
3000000 |
1-Mar-2010 |
0 |
0 |
0 |
0.10 |
100 |
2 |
14 |
1 |
0.3 |
0.3 |
8 |
0 |
2000000 |
1-Dec-2014 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.3 |
0.3 |
9 |
0 |
1000000 |
1-Apr-2007 |
0 |
0 |
0 |
0.17 |
100 |
2 |
14 |
1 |
0.4 |
0.4 |
10 |
0 |
1600000 |
1-Dec-2012 |
0 |
0 |
0 |
0.15 |
100 |
2 |
14 |
1 |
0.4 |
0.4 |
All of the bond issuers are from the same industry sector.
The credit index correlation of each
pair of issuers is around 0.4. It is
reasonable to assume that all the correlations are equal to this number. The default probability curves of the bond
issuers and the tranche seller (counterparty) are given in the following table:
table_prob: default
probability curve
|
Issuer |
||||||||||
Years |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Counter-party |
1 |
0.05 |
0.043 |
0.036 |
0.036 |
0.026 |
0.024 |
0.015 |
0.025 |
0.017 |
0.019 |
0.005 |
2 |
0.10 |
0.096 |
0.087 |
0.093 |
0.08 |
0.078 |
0.066 |
0.078 |
0.073 |
0.076 |
0.01 |
3 |
0.15 |
0.146 |
0.145 |
0.146 |
0.13 |
0.134 |
0.119 |
0.132 |
0.128 |
0.135 |
0.015 |
4 |
0.20 |
0.206 |
0.204 |
0.199 |
0.189 |
0.189 |
0.176 |
0.187 |
0.185 |
0.185 |
0.02 |
5 |
0.25 |
0.26 |
0.256 |
0.254 |
0.24 |
0.245 |
0.229 |
0.243 |
0.244 |
0.237 |
0.025 |
10 |
0.50 |
0.502 |
0.505 |
0.505 |
0.513 |
0.521 |
0.525 |
0.534 |
0.54 |
0.545 |
0.03 |
Today’s date is Dec 1, 2005. The current
risk-free discount factor curve is:
table_df: risk-free
discount factor curve
grid date |
discount factor |
|
1 |
|
0.99 |
|
0.9 |
|
0.86 |
|
0.818 |
|
0.57 |
The time accrual method of the contract is
actual/360.
Call FINCAD function aaCDO_tranche to
get the following results:
aaCDO_tranche
Argument |
Description |
Example Data |
Switch |
d_v |
value (settlement) date |
1-Dec-2005 |
|
contra_d |
CDS contract dates |
table_dates |
|
tranche_type |
type of tranche definition |
1 |
tranche boundaries are proportional to the total notional |
tranche |
tranche boundaries |
table_tranche |
|
loss_absorb |
portion of loss absorption in the tranche |
1 |
|
cpn_tbl |
coupon and fixed payment table |
table_cpn |
|
notion_adj |
notional adjustment |
1 |
adjusted for fixed payments but not for matured bonds |
freq_tbl |
coupon and frequency table |
table_freq |
|
bond_bskt |
bond basket table |
above |
|
bond_his |
bond historical statistics |
table_his |
|
fix_cum |
accumulated fixed payments |
0 |
|
corr_mat |
credit index correlation matrix |
0.4 |
|
meth_corr |
method of handling credit correlation |
2 |
normal copula |
prob_bskt |
default probability curve |
table_prob |
|
intrp_prob |
interpolation method of probability curve |
1 |
linear |
hl |
holiday list |
0 |
|
df_crv_std |
discount factor curve – risk free |
table_df |
|
intrp |
interpolation method |
1 |
linear |
position |
trade position |
1 |
long |
MC_para |
parameters for |
10000.5 |
|
stat |
stat list |
1…13 |
|
Results
Output Statistics |
Description |
Value |
1 |
Fair value of the tranche |
851909.1181 |
2 |
accrued interest |
0 |
3 |
Fair value plus accrued interest |
851909.1181 |
4 |
value of interest |
420205.5521 |
5 |
value of fixed payment |
431703.566 |
6 |
BPV on risk-free curve |
-287.78798 |
7 |
number of days that interest accrues |
0 |
8 |
next coupon payment date |
1-Jun-2006 |
9 |
previous coupon payment date |
1-Dec-2005 |
10 |
remaining coupons |
10 |
11 |
total outstanding bond principal |
20000000 |
12 |
accumulated loss |
0 |
13 |
outstanding principal of the tranche |
1000000 |
where the input data tables in the input list are:
table_dates:
contract dates table
Maturity Date |
Effective Date |
1-Dec-2010 |
1-Dec-2005 |
table_tranche:
tranche definition
Lower Bound |
Upper Bound |
0.1 |
0.15 |
table_cpn: coupon
and fixed payment table
Date |
Notional |
Coupon |
Fixed Payments |
|
1000000 |
0.12 |
1000000 |
Note that the principal payment must be put in
table_cpn as a fixed payment at maturity.
table_freq:
frequency and other related inputs
Frequency |
Coupon Accrual Type |
Accrual Method |
Business Day Convention |
2 |
1 |
2 |
1 |
table_his:
historical statistics
Accumulated Loss |
Total Initial Principal |
Total Matured Bond Principal |
0 |
0 |
0 |
To calculate the present values of cash flows, call the
FINCAD function aaCDO_tranche_cf with table_type = 3 in order
to get the following outputs:
Date |
Present Value of Interest |
Present Value of Principal |
Total |
1-Jun-2006 |
59284.61167 |
0 |
59284.6117 |
1-Dec-2006 |
57866.66425 |
0 |
57866.6642 |
1-Jun-2007 |
51866.56652 |
0 |
51866.5665 |
1-Dec-2007 |
46705.95541 |
0 |
46705.9554 |
1-Jun-2008 |
42939.92033 |
0 |
42939.9203 |
1-Dec-2008 |
39079.23766 |
0 |
39079.2377 |
1-Jun-2009 |
35222.1071 |
0 |
35222.1071 |
1-Dec-2009 |
31935.31879 |
0 |
31935.3188 |
1-Jun-2010 |
28971.25288 |
0 |
28971.2529 |
1-Dec-2010 |
26333.91752 |
431703.566 |
458037.483 |
To get the coupon rate for a tranche priced at par, call
the FINCAD function aaCDO_tranche_par with the following inputs:
aaCDO_tranche_par
Argument |
Description |
Example Data |
Switch |
d_v |
value (settlement) date |
1-Dec-2005 |
|
contra_d |
CDS contract dates |
table_dates |
|
price |
price |
1000000 |
|
tranche_type |
type of tranche definition |
1 |
tranche boundaries are proportional to the total notional |
tranche |
tranche boundaries |
table_tranche |
|
loss_absorb |
portion of loss absorption in the tranche |
1 |
|
cpn_tbl |
notional and fixed payment table |
table_notion |
|
notion_adj |
notional adjustment |
1 |
adjusted for fixed payments but not for matured bonds |
freq_tbl |
coupon and frequency table |
table_freq |
|
bond_bskt |
bond basket table |
above |
|
bond_his |
bond historical statistics |
table_his |
|
fix_cum |
accumulated fixed payments |
0 |
|
corr_mat |
credit index correlation matrix |
0.4 |
|
meth_corr |
method of handling credit correlation |
2 |
normal copula |
prob_bskt |
default probability curve |
table_prob |
|
intrp_prob |
interpolation method of probability curve |
1 |
linear |
hl |
holiday list |
0 |
|
df_crv_std |
discount factor curve – risk free |
table_df |
|
intrp |
interpolation method |
1 |
linear |
MC_para |
parameters for |
50000.5 |
|
stat |
stat list |
1 |
|
where the notional principal table is given as
follows:
table_notion: notional
and fixed payment table
Date |
Notional |
Fixed Payments |
|
1000000 |
1000000 |
Results
Output Statistics |
Description |
Value |
1 |
par coupon rate |
0.162290983 |
To find out the sensitivity of the fair value to a subset
of entities in the pool, e.g., entity 1 and 2 in the list, call the FINCAD
function aaCDO_tranche_delta
with a random trial number of 50, 000.5 to get the following results:
Results
Delta of Credit Spread |
Entity Number |
0.013166827 |
1 |
0.096210315 |
2 |
All functions explained in the Synthetic
CDOs Valuation Using Quasi-Analytic Methods FINCAD Math
Reference document and functions listed below:
[1]
Fabozzi, F. and L. Goodman, (2001), Investing in Collateralized Debt Obligations,
[2]
Merrill Lynch, (June 2004) ‘Standardized
Tranches’, Credit Derivatives Research.
[3]
Schonbucher, P. J., (2003) Credit Derivatives Pricing Models, Models, Pricing and Implementation,
Wiley Finance.
Disclaimer
With respect
to this document, FinancialCAD Corporation (“FINCAD”) makes no warranty either
express or implied, including, but not limited to, any implied warranty of
merchantability or fitness for a particular purpose. In no event shall FINCAD
be liable to anyone for special, collateral, incidental, or consequential
damages in connection with or arising out of the use of this document or the
information contained in it. This document should not be relied on as a
substitute for your own independent research or the advice of your professional
financial, accounting or other advisors.
This
information is subject to change without notice. FINCAD assumes no
responsibility for any errors in this document or their consequences and
reserves the right to make changes to this document without notice.
Copyright
Copyright ©
FinancialCAD Corporation 2008. All rights reserved.