Basket Default Swaps

Overview

A basket default swap is similar to a single entity default swap except that the underlying is a basket of entities rather than one single entity.  There are several types of basket default swaps.  The popular ones are first-to-default, nth-to-default, n-out-of-m-to-default and all-to-default swaps.  With a single entity, a credit event is usually a default of the entity (see the Credit Default Swaps FINCAD Math Reference document for details).  With a first-to-default swap, a credit event occurs the first time any of the entities defaults.  Such a swap will provide default protection against losses related to this first default.  A similar definition holds for an nth-to-default swap. An n-out-of-m-to-default swap protects the buyer against losses related to the first n defaults of the m-entity basket.  Similarly, an all-to-default swap protects against losses resulting from credit events of any of the entities in the basket.

For a first-to-default default swap, whenever an entity in the reference basket defaults, the buyer stops paying the swap’s premium and receives from the seller the difference of the principal amount of the defaulted entity and the recovered value.  If the swap’s counterparty defaults, premium payments will stop and both the buyer and the seller walk away from the contract.  For an nth-to-default swap whenever the nth default occurs in the reference basket, the buyer stops paying the premium and receives the difference of the principal amount of the latest (nth) defaulted entity and the recovered value.  Note that the premium does not stop until the nth default as long as the counterparty does not default, even if there are already defaults in the basket.  For an n-out-of-m-to-default swap the seller pays the difference of the principal amount and the recovered value for each of the first n defaults and the buyer stops paying the premium after the nth default occurs.  For an all-to-default swap the buyer continues paying the premium as long as there are undefaulted entities in the basket and the counterparty does not default, and receives from the seller any lost principal amount of the basket.

FINCAD provides functions for valuing basket default swaps with correlated or independent defaults.  These functions can also handle counterparty default risk.  One basic assumption is that no two entities can default at exactly the same time.  This is equivalent to saying that the credit index correlation matrix (see below) of the reference entities must be positive definite, or in other words, perfect correlation is not allowed.

Formulas & Technical Details

If first-to-default probabilities are known, then the default probability of a basket of entities is simply the sum of the first-to-default probabilities of the individual entities in the basket.  From this one can easily calculate the fair value of the premium payments of a basket default swap:  the value of the swap’s payoff is the sum of the payoffs of all the individual entities.  The value of the payoff of each entity in the basket can be calculated as for a single entity swap, with its default probability being that the entity defaults before any other entity, including the counterparty, defaults.

For an nth-to-default swap similar arguments also hold.  For the premium calculation the probability curve used to calculate the premium must be the probability curve that either exactly n entities default or the counterparty defaults.  For the payoff valuation, if the protection is only for the nth entity in the basket only the payoff value of the nth defaulted entity needs to be calculated.  On the other hand, if the protection is for the first n defaults, the payoff of the swap is the sum of the payoffs of the n defaulted entities.

The valuation of a basket default swap then comes down to the calculation of relevant default probabilities.  If defaults of the reference entities are independent, a closed-form formula for such probabilities can be derived.  If defaults of the reference entities are not independent, then the calculation of first-to-default or nth-to-default probabilities are more difficult.  Generally, closed-form formulae are not available and Monte Carlo simulation is used.  For the calculation of first-to-default, nth-to-default and other related probabilities see the Default Probability Curves and Default Correlations FINCAD Math Reference document.

Calculation of Risk Statistics

DVOX

1.                   DVOX on all credit spread curves of the entities in the reference pool

This statistic is an output of a fair value calculation function, e.g., aaCDS_bskt.  It is defined as the change in the fair value per  basis point shift in all the par CDS spread curves of the entities in the reference pool. In more detail, let  be the fair value of a CDS.  For every entity in the reference pool, add  basis points to its default curve (if it is a default probability curve, derive a par spread curve first) and build a new default curve.  Then combine these default curves together to form a basket default curve and at last use this basket default curve as an input to revalue the CDS.  Let  be the new fair value.  The DVOX is then calculated as follows:

2.                   DVOX on a single reference entity

This statistic is calculated in functions, e.g., aaCDS_bskt_risk, that calculate risk statistics exclusively.  It is defined similarly as above, but only the default curve of the specified entity is shifted  basis point.

Rho of recovery rate

1.                   Rho of recovery rate of the whole reference pool

This statistic is calculated in a fair value calculation function.  It is the change in the fair value of a CDS per 1% change in the recovery rate.  In more detail, let  be the fair value of the CDS when the entity’s recovery rate is . Then:

If the recovery rates of the reference entities differ, the recovery  in the above formula should be replaced with a recovery rate vector and to bump it we simply add 0.01 to every component of the vector.

2.                   Rho of recovery rate of a single reference entity

This statistic is calculated in functions that calculate risk statistics only.  It is defined similarly as above, but only the recovery rate of the specified entity is bumped 1%.

Rho of correlation

1.                   Rho of correlation on the whole correlation matrix

This statistic is an output of functions that take in a correlation matrix and calculate fair values.  It is the change in the fair value of a CDS per 1% change in the correlation.  In more detail, let  be the fair value of the CDS with correlation matrix .  Then:

where  is the correlation matrix getting from  by shifting all correlations up with 0.01.

2.                   The rho of correlation on an entity pair

This statistic is calculated in functions that calculate risk statistics only.  It is defined similarly as above, but only the correlation of the specified entity pair is shifted 0.01.

Theta

The theta of a CDS is the change in the fair value of the CDS per one day increase of the valuation date.  Let  be the fair value of the CDS.  Then:

BPV

The BPV (basis point value) of a risk free discount factor curve is the change in the fair value of a CDS 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.

*       Note. The above risk statistics for a binary CDS can be defined similarly, just by replacing CDS with binary CDS in the above definitions.

 

FINCAD Functions

aaCDS_bskt(d_v, contra_d, rank, protect, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc,d_ rul, pr_fix, ref_type, ref_bskt, corrs, m_corr, p_off, dp_type, dp_bskt, intrp_tb, hl, dfstd, intrp, pos, calc, stat)

Calculates the fair value, payoff and premium values and other statistics of a basket credit default swap.  The defaults of the reference entities can be independent or correlated.  Also the default estimation data can be par CDS spread curves or default probability curves.

 

aaCDS_bskt_is(d_v, contra_d, rank, protect, princ_pr, freq_pr, pr_acc_type, acc,d_ rul, pr_fix, ref_type, ref_bskt, corrs, m_corr, p_off, cds_p, dp_type, dp_bskt, intrp_tb, hl, dfstd, intrp, pos, calc, stat)

Calculates the implied spread of a basket credit default swap given a price.

 

aaCDS_bskt_if(d_v, contra_d, cds_sprd, rank, protect, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc,d_ rul, pr_fix, ref_type, ref_bskt, corrs, m_corr, p_off, dp_type, dp_bskt, intrp_tb, hl, dfstd, intrp, pos, calc, stat)

Calculates the implied upfront percentage payment of a basket credit default swap given a par CDS spread.

 

aaCDS_bskt_bin(d_v, contra_d, rank, protect_type, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, prem_fix_tbl, corrs, m_corr, p_off, cash_rate, dp_type, dp_bskt, intrp_tb, hl, dfstd, intrp, pos, calc, stat)

Calculates the fair value, payoff and premium values and other statistics of a binary basket credit default swap.  The defaults of the reference entities can be independent or correlated.  Also the default estimation data can be par CDS spread curves or default probability curves.

 

aaCDS_bskt_risk(d_v, contra_d, rank, protect, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, pr_fix, ref_type, ref_bskt, corrs, m_corr, p_off, dp_type, dp_bskt, intrp_tb, hl, dfstd, intrp, pos, calc, out_type, asset_list)

Calculates the credit spread, recovery rate and correlation sensitivities of an nth-to-default or n-out-of-m-to-default basket credit default swap.

 

aaCDS_bskt_bin_risk(d_v, contra_d, rank, protect_type, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, prem_fix_tbl, corrs, m_corr, p_off, cash_rate, dp_type, dp_bskt, intrp_tb, hl, dfstd, intrp, pos, calc, out_type, asset_list)

Calculates the credit spread, recovery rate and correlation sensitivities of a first-to-default binary basket credit default swap.

 

aaCDS2_bskt_prem_cf(d_v, contra_d, rank, protect, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, pr_fix, recs, corrs, m_corr, dp_type, dp_bskt, intrp_tb, hl, dfstd, intrp, pos, calc, table_type)

Calculates the expected premium cash flows of a basket credit default swap.

 

*       To value basket default swaps on baskets with independent defaults, simply set the correlation matrix corrs to be a single-element array with a value of 0.

 

aaCredit_DSwap_bskt_fs_sep_ind(d_v, contra_d, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, prem_fix_tbl, cpn_bskt_tbl, loan_pbskt, acc_fs, payoff_type, prob_bskt, intrp_prob, recov_tbl, hl, df_crv_std, intrp, position, calc_type, stat))

Calculates the fair value and other statistics of a first-to-default swap on a basket of free-style bonds (having separated coupon and principal structures)) with independent defaults.

 

aaCredit_DSwap_bskt_fs_sep_MC(d_v, contra_d, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, prem_fix_tbl, cpn_bskt_tbl, loan_pbskt, acc_fs, corr_mat_ent4, meth_corr, payoff_type, prob_bskt, intrp_prob, recov_tbl, hl, df_crv_std, intrp, position, calc_type, mc_trial, stat)

Calculates by Monte Carlo simulation the fair value and other statistics of a first-to-default swap on a basket of free-style bonds (with separated coupon and principal structures) with correlated defaults.

 

aaCredit_DSwap_bskt_fs_sep_rnk_ind(d_v, contra_d, rank, bskt_protect_type, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, prem_fix_tbl, cpn_bskt_tbl, loan_pbskt, acc_fs, payoff_type, prob_bskt, intrp_prob, recov_tbl, hl, df_crv_std, intrp, position, calc_type, stat)

Calculates the fair value and other statistics of an nth-to-default or n-out-of-m-defaults default swap on a basket of free-style bonds (with separated coupon and principal structures) with independent defaults.

 

aaCredit_DSwap_bskt_fs_sep_rnk_MC(d_v, contra_d, rank, bskt_protect_type, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, prem_fix_tbl, cpn_bskt_tbl, loan_pbskt, acc_fs, corr_mat_ent4, meth_corr, payoff_type, prob_bskt, intrp_prob, recov_tbl, hl, df_crv, intrp, position, calc_type, mc_trial, stat)

Calculates by Monte Carlo simulation the fair value, payoff and premium values and other statistics of an nth-to-default or n-out-of-m-defaults swap on a basket of free-style bonds (with separated coupon and principal structures) with correlated defaults.

 

aaCredit_DSwap_bskt_fs_sep_all_MC(d_v, contra_d, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, prem_fix_tbl, cpn_bskt_tbl, loan_pbskt, acc_fs, corr_mat_ent4, meth_corr, payoff_type, prob_bskt, intrp_prob, recov_tbl, hl, df_crv_std, intrp, position, calc_type, mc_trial, stat)

Calculates by Monte Carlo simulation the fair value and other statistics of an all-to-default default swap on a basket of free-style bonds (with separated coupon and principal structures).

 

aaCredit_DSwap_bskt_ind_fs(d_v ,d_t, acc_time, prem_tbl, prem_fix_tbl, probordensity, prob_crv_bskt, loan_bskt_tbl, recover_tbl, yield_riskfree)

Calculates the fair value of a first-to-default swap with custom-structured premium payments on a basket of free-style bonds with independent defaults.

 

aaCredit_DSwap_bskt_fs_MC(d_v ,d_t, acc_time, princ_prem, cpn_prem, freq_prem, d_rul, probordensity, prob_crv_bskt, loan_bskt_tbl, recover_tbl, corr_mat_ent4, hl, yield_riskfree, num_rnd)

Calculates by Monte Carlo simulation the fair value of a first-to-default swap with custom-structured premium payments on a basket of free-style bonds with correlated defaults.

*       Note: For the last two functions there are corresponding functions that take in a discount factor curve instead of a yield.

 

Description of Inputs

aaCredit*

Input Argument

Description

d_v

Valuation date

contra_d

It is a 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, first coupon date and next to last coupon date for premium payments.  Only one entry, the maturity date, is required. If an entry is not available, it can be set to 0 or be ignored.

princ_pr

Notional principal amount

cpn_pr

Premium payment rate

freq_pr

Premium payment frequency - a switch

pr_acc_type

Type of premium accrued interest payments.  

1 = pay accrued interest of premium at default,

2 = pay no accrued interest of premium at default

acc

Accrual method of premium

d_rul

Business date convention for premium payment - a switch

prem_fix_tbl

Fixed premium table.  It is a two-column table:  (date, premium).  Premium paid prior to (not equal to) the value date or after (not equal to) the maturity date is ignored.  This table can hold any fixed premium payments additional to the premium coupons.

bond_cdsbskt

Bond data table.  An eleven column table (bond principal, recovery rate, bond maturity, other bond inputs coupon, frequency, other bond inputs).  See aaBond3 for input details.

bond_cdsbskt

Bond data table.  It can be a 10-. 11-, or 12-column table.  The first 9 columns are bond data and the others are recovery data.  If it has 10 columns, the last column has the recovery rate for both principal and coupon of a bond.  If it has 11 or 12 columns, the 10th and 11th columns have principal and coupon recovery rates.

payoff_type

Type of settlement time - a switch.  

1 = payment to the CDS buyer is made at the time of default,

2 = payment to the CDS buyer is made at the default swap's termination.

prob_bskt

A basket default probability curve of an m name basket and a counterparty.  It can be an 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 has the counterparty default probabilities.  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.

prob_crv_bskt

Similar to the description of prob_bskt, except that it may be a density curve for which density values must be nonnegative and the integration of a density curve cannot exceed 1.

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.

rate_recover

Expected recovery rate table.  It can be of 4 types:  

1.       a one-entry table which has the recovery rate for both principal and coupon.  

2.       a two-entry table, which has the recovery, rates for principal (the first one) and coupon respectively.  

3.       a three-column table which is a time-dependent recovery rate table for principal and coupon. The first column has time in years.

4.       a four-column table which is similar to a three-column table except that the entry in the first row of the fourth column holds the delay time for the recovery payment.

hl

A holiday list

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 one entry table of a yield value (annual, actual/365), or a two entry table of yield and compounding frequency or a three entry of yield, a compounding frequency and an accrual method.

intrp

Interpolation method

position

Trading position - a switch:

1 = pay premium,

2 = receive premium.

calc_type

Type of calculation method - a switch.  Generally, it has 4 values. They represent different integration methods for calculating values of premiums and payoffs.  There are four selections:

1 = simplified calculation method;

2 = extended trapezoidal,

3 = Simpson's rule,

4 = extended Simpson's rule.

In the functions aaCredit_DS and aaCredit_DS_SPV01, only the method 1 is implemented.  For all other functions that have this parameter all the four methods are available.  See more details at the last section of this document.

corr_mat_ent4

An N by N credit index correlation matrix.  A correlation matrix must be symmetric and positive definite.  Only the entries in the upper triangle are used in calculation.

meth_corr

Method of handling credit correlation, a switch;

1 = use a credit index process,

2 = use a normal copula

mc_trial

Parameter table of Monte Carlo simulation.  It can have one or two or three entries.  The first entry is the number of random trials, the second is the number of equally-spaced time points to be added in each time period of the probability curve (default =1) and the third is the method of calculating default barriers (1 = pure Monte Carlo, 2 = hybrid of numerical and Monte Carlo methods, default =1).  For the number of random trials, if it is not an integer, the random number generator will always use a fixed seed.

stat

Statistics.  Any subset of {1,2,…,11}

cash_rate

Cash payment per one unit of notional principal

rank

The default rank, i.e., the number n in an nth-to-default swap.

cpn_bskt_tbl, loan_bskt_tbl

Free-style bond coupon basket table.  A five-column table (entity ID, effective date, terminating date, notional, rate).

loan_pbskt

Free-style bond fixed payment basket table.  A three-column table (entity ID, date, amount).

acc_fs

Accrual method(s) of a free-style bond.  If it has only one entry, both future coupon payments and accrued interests have the same accrual method; otherwise they are the first and second entries of the table, respectively.

recov_tbl, recover_tbl

A recovery rate table for a default swap on a basket of free-style bonds.  It can be a two-, or three- or four-column table.  The first column has IDs of the entities.  If it is a two column table, both the principal and the coupon have the same recovery rate (>=0 and <=1) in the second column.  Otherwise, the second column has the principal recovery rate and the third coupon recovery rate.  The fourth column can hold the recovery delay time (in years) after default.

acc_time

Time accrual method, used in the functions with custom-structured premium payments only

yield_riskfree

Annualized risk-free yield

num_rnd

Number of random trials.  If it is a decimal number, a fixed seed is used; otherwise a random seed is used.

aaCDS*

Input Argument

Description

d_v

Valuation date

contra_d

The array contra_d is a table of default swap date(s).  It can have 2 to 7entries.  The first four entries hold in sequence the terminating date, effective date, odd first coupon date and next-to-terminating coupon date for premium payments.  The last three entries hold switch values in sequence the effective date adjustment, terminating date adjustment and date generation method for premium payments.  Only the terminating date and effective date are required.  The third entry and fourth entry will default to 0 and the last three entries will default to 1 (adjust effective date, adjust terminating date, backward date generation).  Note that for most default swaps in the market, the effective date and terminating date are not adjusted and the premium cash flow dates are IMM dates.  For this case, simply set both the effective date and terminating date adjustment methods (the 5th and 6th entries in the table) to 2 (no adjustment) and the date generation method (the 7th entry in the table) to 3 (IMM date generation method). 

rank

Default rank, i.e., the number n in an nth-to-default swap.  The two switches Default Rank and Basket Default Type together handle the two types of basket CDSs: nth-to-default CDSs and n-out-of-m default CDSs.

·         For a first-to-default CDS set Default Rank = 1 and Basket Default Type = 1.

·         For an nth-to-default CDS, set Default Rank = n and Basket Default Type = 1.

·         For an n-out-of-m default CDS set Default Rank = n and Basket Default Type = 2, where m is the number of entities in the basket.

·         For an all-to-default CDS, set Default Rank = the number of entities in the basket and Basket Default Type = 2.

protect

Basket protection type

princ_pr

Premium notional principal

cpn_pr

Premium coupon rate

freq_pr

Premium payment frequency

pr_acc_type

Type of premium accrued interest payment – a switch:

1 = pay accrued interest upon default,

2 = pay no accrued interest upon default

acc

Accrual method

d_rul

Business day convention

pr_fix

An upfront fee and fixed premium table.  It can be a single-element array or a two-column table.  If it is a single element array, it is the upfront fee (the upfront payment per one unit of notional).  If it is a two column table, it can store an upfront fee and fixed premium payments.  If the element in the first row and first column, pr_fix(1,1), <= 1000, it is an upfront fee.  Otherwise, the first row has a fixed premium payment: (date, premium amount).  All other rows always have fixed premiums.  Note that an upfront fee must be >=0 and <=1 and premium payment dates must be increasing.

ref_type

Type of references – a switch:

1 = name (notional),

2 = bond (a level coupon bond)

ref_bskt

Reference basket table.  If the reference type ref_type =1, it is a two-column table (notional, recovery rate) as shown in the following examples.  If the reference type ref_type =2, it has the details of a bond.  It can be a 10- or 11-entry table.  The first 10 entries are (principal, maturity, dated date, first coupon date, next-to-last coupon date, coupon, frequency, accrual method, business day convention, recovery rate).  See aaBond3 for their definitions.  If it has 10 entries only, the last entry has the recovery rate for both principal and coupon of the bond.  If it has 11 entries, the 10th and 11th entries have principal and coupon recovery rates respectively.

recs

Recovery rate table.  It is an array of a recovery rates. It is used only if the input default curve is a par CDS spread curve (dp_type=1).

corrs

A correlation matrix can be a single element or a full correlation matrix.  For the first case, each pair of the entities in the basket has the same credit correlation and the correlation between the entities and the counterparty is also the same.  If the correlation of a reference credit and the counterparty is different from the correlation between the reference entities, the correlation matrix can be a two-entry array with its first and second entries storing these two correlations, respectively.

Corrs (binary CDS)

A correlation matrix can be a single element or a full correlation matrix.  For the first case, there should be a number on the second column that indicates the number of entities.  Also If the correlation of a reference credit and the counterparty is different from the correlation between the reference credits, it can be put in the third column.

m_corr

Method of handling credit correlation – a switch:

1 = normal credit index process,

2 = normal copula

p_off

Payoff type – a switch:

1 = pay at default,

2 = pay at maturity

cash_rate

payoff rate (cash payment per one unit of notional principal)

dp_type

Default curve type – a switch:

1 = par CDS spread curve,

2 = default probability curve

dp_bskt

A default curve, either a CDS spread or a default probability curve, can be time-based (values in the first column >0 and <1000) or date-based (values in the first column >=1000). The first one or two columns have time or date points.  If it is a default probability curve or a time-based CDS spread curve, the first column has time (in years) or dates.  If it is a date-based CDS spread curve, the first two columns have the effective and terminating dates of the CDS spreads.  The next m +1 columns hold CDS spreads or default probabilities, where m is the number of reference entities.  The last column has the default data of the counterparty.  If a credit reference data table exists, the columns of the CDS spreads or default probabilities must be in the same order as the reference credits in the reference data table.  Times and dates (the terminating dates for a CDS spread curve) must be increasing.  For a time-based curve, the time-accrual method (day-count convention) can be stored in the third entry of the table intrp_tb (see note 429).  Probabilities must be nonnegative, <=1 and  nondecreasing.  CDS spreads must be nonnegative.  For a date-based default probability curve, the probabilities in the first row must be 0 and the first date must be the 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.

intrp_tb

A default curve parameter table.  The array intrp_tb can have one to six entries.  The first entry has the default probability curve interpolation method.  The second entry has the default probability curve bootstrapping method (see switch sw_1040 in aaCredit_DfltProb_DSSprd2).  It is used only if the default curve type is "par CDS spread curve" (dp_type =1).  If this entry is missing and dp_type=1, the bootstrapping method will be set to method 1 (assuming constant default density).  The third entry stores the time accrual (day counting) method if the default curve is time-based.  If this entry is missing and the default curve is time-based, the time accrual method will be set to 30/360.  If the default curve is not time based, this entry will be ignored.  The fourth to sixth entries store the effective and terminating date adjustment methods and the date generation method of a CDS curve, respectively.  These entries are used only when dp_type = 1.  Their default values are 1.

hl

holiday list

dfstd

Risk free discount factor curve.  The discount factor curve may be input as a 2-column, multi-row table (col 1 = date, col 2 = discount factor), or as a single cell containing a rate.  If input as a single rate, there are three format choices:

1.       a rate (1 row, 1 column); or

2.       a rate and a rate quotation basis (1 row, 2 columns); or

3.       a rate, a rate quotation basis, and an accrual method (1 row, 3 columns).

If the basis or accrual are not provided, they are assumed to be annual, actual/365.  A 2-column flat-rate discount factor curve is constructed internally using the rate, basis, and accrual method. The last date in the discount factor curve >= last "date" in the default curve and the terminating date of the swap.

intrp

Interpolation method

pos

trade position – a switch:

1 = buy protection,

2 = sell protection

calc

Calculation parameter(s).  The table calc can have up to five entries.  The first entry is the number of Monte Carlo random trials, the second is the number of equally-spaced time points to be used in each time period of the probability curve (default =1), the third is the method of calculating default barriers (1 = pure Monte Carlo, 2 = hybrid of numerical and Monte Carlo methods, default =1 ), the fourth is the calculation method used in CDS valuation (see switch  sw_624 in the function aaCredit_DS), and the fifth is the number of basis points used in DVOX calculation.  Only the first entry is required.  The default values of the other four entries are (1,1,1,1).  The number of random trials must be>=1.  If it is not an integer, the random number generator will always use a fixed seed.  The limit for the number of random trials is 2,000,000 trials.  In function aaCDS2_bskt_prem_cf, only the first four entries are needed.

stat

Statistic

out_type

output type – a switch:

1 = delta on single entity,

2 = DVOX on single entity,

3 = rho of recovery rates,

4 = rho of correlations

asset_list

Entity list.  It can be any subset of {1,2, …, number of entities}

cds_p

Price of a basket credit default swap, used only in aaCDS_bskt_is.

cds_sprd

the par spread of a basket credit default swap, used only in aaCDS_bskt_if

 

*       Note:  In most functions of aaCDS_bskt_*, the table, pr_fix, is taken as an optional input generally that combines both upfront fee and fixed premium payments except for aaCDS_bskt_if.  Since this function calculates the implied upfront percentage payment as output, the table pr_fix would only contain the fixed premium payments.  See its function reference for more details.

 

Description of Outputs

Output Statistics

Description

1

fair value:  fair value of a default swap (payoff – premium)

2

payoff:  fair value of the insurance (i.e. loss due to default)

3

premium:  fair value of premium payments

4

accrued interest of premium

5

fair value minus accrued interest

6

par spread:  premium rate that makes the default swap have a fair value - accrued interest a value of  0.

7

BPV on risk-free curve:  change of the fair value of a default swap 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 coupons of the premium payments up to the maturity of the default swap

12

DVOX of par CDS spread curve:  change of the fair value of a default swap per X basis points up shift of the par CDS spread curve

13

rho of recovery rates:  change of fair value of a default swap per 1% up shift of all recovery rates

For functions with independent entities have one more statistic:

Output Statistics

Description

 

14

theta:  the change in fair value per one day increase of valuation date

For functions with correlations have two more statistics:

Output Statistics

Description

 

14

rho of correlation:  the change in fair value per 1% up shift of all correlations.

15

theta:  the change in fair value per one day increase of valuation date.

For function aaCDS_bskt_is, its output is the implied spread given a basket CDS price. It is the premium rate that values the fair value of a basket CDS minus its accrued interest of premium (the fifth output statistic of aaCDS_bskt) to the given price.

For function aaCDS_bskt_if, its output is the implied upfront percentage payment given a basket CDS spread.  It is a rate that captures the difference between the prevailing market spread to the given CDS spread.

For the cash flow function aaCDS2_bskt_prem_cf, there are five types of output tables.

Output Statistics

Description

1

a 5-column no-default cash flow table (date, interest, fixed premium, accrued interest)

2

a 4-column expected cash flow table (date, expected interest, expected fixed premium, total)

3

a 4-column present value (PV) cash flow table (date, PV of interest, PV of fixed premium, total PV)

4

a 5-column interest table (date, no-default interest, accrued interest, expected interest, PV of interest)

5

a 13-column extended cash flow table (date, no-default interest, no-default fixed premium, total no-default cash flow, accrued interest, expected interest, expected fixed premium, total expected premium, PV of interest, PV of fixed premium, total PV, risk-free discount factor, default probability).

Sensitivity functions (aaCDS_bskt_risk) calculate delta, DVOX, rho of recovery rate and rho of correlation of basket CDS related to specific reference entities.

Examples

Examples are given for a default swap on a basket of names and a default swap on a user-defined loan structure with irregular premium payments.

Example 1: First-to-Default swap on a basket of names with correlated defaults

Suppose a fund manager has bought a default swap from a bank to protect against possible losses from the credit exposure of three names, Name1, Name2 and Name3.  The three names have principal notional amounts of 1,000,000, 1,300,000 and 1,200,000. The default swap started on Dec. 1, 2005 and matures Dec. 20, 2010. It obliges the fund manager to pay a quarterly premium of 5% on a principal of 1,500,000. In return, in the event one of the three names defaults, the bank will pay the fund manager the difference between the principal notional amount of the name and whatever is recovered. Suppose the expected recovery rates are 40%, 50% and 30%, respectively. The data of the names and their recovery rates are assembled in the following table:

ref_bskt: reference table

notional amount

recovery rate

1000000

0.4

1300000

0.5

1200000

0.3

Suppose the forecasted default probabilities of the three names and the bank are given by:

dfstd: default curve

term (in years)

Name 1

Name 2

Name 3

Bank

1

0.022032

0.0317

0.0423

0.008

2

0.046242

0.0655

0.0715

0.015

3

0.07266

0.1022

0.1288

0.039

4

0.101233

0.142

0.1677

0.075

5

0.131885

0.1752

0.2566

0.095

Suppose that the correlation matrix between three names and the bank is:

corrs: correlation matrix

 

Name 1

Name 2

Name 3

Bank

Name 1

1

0.5

0.7

0.4

Name 2

0.5

1

0.3

0.5

Name 3

0.7

0.3

1

0.2

Bank

0.4

0.5

0.2

1

Further, suppose that the swap’s day count basis is Act/360 and calendar dates are used as business day convention.  Today’s date is Dec. 1, 2005.  The spot discount factor curve is given as in the following:

dfstd: discount factor curve

Date

Discount Factor

1-Dec-2005

1

1-Jun-2006

0.971285862

1-Dec-2006

0.943396226

1-Dec-2007

0.88999644

1-Dec-2008

0.839619283

1-Dec-2010

0.747258173

1-Dec-2015

0.558394777

1-Dec-2020

0.417265061

aaCDS_bskt

Argument

Description

Example Data

Switch

d_v

value (settlement) date

1-Dec-2005

 

contra_d

CDS contract dates

see below

 

rank

default rank

1

 

protect

basket protection type

1

the nth default only

princ_pr

Premium notional principal

1500000

 

cpn_pr

Premium coupon rate

5%

 

freq_pr

Premium payment frequency

3

quarterly

pr_acc_type

type of premium accrued interest payment

1

pay accrued interest upon default

acc

accrual method

1

actual/365 (fixed)

d_rul

business day convention

1

no date adjustment

pr_fix

fixed premium payment table

see below

 

ref_type

type of references

1

name (notional, recovery)

ref_bskt

reference basket table

see above

 

corrs

credit index correlation matrix

see above

 

m_corr

method of handling credit correlation

2

normal copula

p_off

payoff type

1

pay at default

dp_type

default curve type

2

default probability curve

dp_bskt

Basket default curve

see above

 

intrp_tb

Default curve parameter table

see below

 

hl

holiday list

0

 

dfstd

discount factor curve - risk free

see above

 

intrp

interpolation method

1

linear

pos

trade position

1

buy protection

calc

calculation parameter(s)

see below

 

stat

Statistic

{1,2,…15}

 

where:

contra_d: CDS contract dates

Terminating date

Effective date

First coupon date

Next to last coupon date

Effective date adjustment

Terminating date adjustment

Date generation method

20-Dec-10

1-Dec-05

0

0

2

2

3

 

 

 

 

switch: do not adjust effective date

switch: do not adjust terminating date

switch: IMM

intrp_tb: default curve parameter table

Interpolation of default probability curve

bootstrapping method

accrual method of time-based default curve

1

1

4

calc: calculation parameters

number of random trials

number of time steps

default barrier calculation method

CDS calculation method

basis points (bump size for DVOX)

5000.5

1

1

1

10

Using function aaCDS_bskt the fund manager calculates the fair value and other statistics as follows:

Results

Statistics

Description

Value

1

fair value

-35758.1

2

value of payoff

227793.1

3

value of premium

-263551

4

accrued interest of premium

-0

5

fair value minus accrued interest

-35758.1

6

par spread

0.043216

7

basis point value (per 1bp shift of risk-free curve)

2.001792

8

number of days that premium accrues

0

9

next coupon date

38706

10

previous coupon date

38687

11

number of remaining cash flows

21

12

DVOX of par CDS spreads (the fair value change when all the credit spread curves shift up X bp uniformly)

7408.131

13

rho of recovery rates (the fair value change when all the recovery rates shift up 1% uniformly)

-3736.1

14

rho of correlation matrix (fair value change when all correlations shift up 1% uniformly)

-601.14

15

theta

-213.809

To calculate the cash flows of the premiums call function aaCDS2_bskt_prem_cf to get the following:

Cash flow table

Date

No-default interest

Accrued interest

Expected interest

Present value

20-Dec-2005

-3904.109589

-0

-3895.675643

-3883.997849

20-Dec-2005

-3904.109589

-0

-3895.675643

-3884

20-Mar-2006

-18493.15068

-0

-18224.01201

-17910.6

20-Jun-2006

-18904.10959

-0

-18237.80447

-17661.3

20-Sep-2006

-18904.10959

-0

-17842.32014

-17028.2

20-Dec-2006

-18698.63014

-0

-17267.8878

-16242.5

20-Mar-2007

-18493.15068

-0

-16746.15087

-15531.2

20-Jun-2007

-18904.10959

-0

-16810.05217

-15364.2

20-Sep-2007

-18904.10959

-0

-16498.42957

-14857.3

20-Dec-2007

-18698.63014

-0

-15998.55052

-14196.8

20-Mar-2008

-18698.63014

-0

-15612.68179

-13658.8

20-Jun-2008

-18904.10959

-0

-15338.11273

-13224.4

20-Sep-2008

-18904.10959

-0

-14889.53784

-12649.1

20-Dec-2008

-18698.63014

-0

-14294.94469

-11967.9

20-Mar-2009

-18493.15068

-0

-13754.62789

-11359

20-Jun-2009

-18904.10959

-0

-13699.2644

-11153.8

20-Sep-2009

-18904.10959

-0

-13334.27525

-10701.4

20-Dec-2009

-18698.63014

-0

-12822.39351

-10143

20-Mar-2010

-18493.15068

-0

-12285.52186

-9578.38

20-Jun-2010

-18904.10959

-0

-12121.15969

-9309.15

20-Sep-2010

-18904.10959

-0

-11678.97962

-8833.6

20-Dec-2010

-18698.63014

-0

-11131.89998

-8296.53

It is easy to verify that the sum of the last column of the above table is exactly the same as the premium value (the third statistic) calculated above.

Example 2: First-to-Default swap on a basket of names with independent defaults

One could instead assume that the three entities and the bank are in totally different sectors of the industry and their default correlations are negligible.  In this case, set the correlation matrix to a single element array with a value of zero, and use aaCDS_bskt to get:

Results

Statistics

Description

Value

1

fair value

34810.94

2

value of payoff

282500.6

3

value of premium

-247689.7

4

accrued interest of premium

-0

5

fair value minus accrued interest

34810.94

6

par spread

0.057027

7

basis point value (per 1bp shift of risk-free curve)

-16.20372

8

number of days that premium accrues

0

9

next coupon date

38706

10

previous coupon date

38687

11

number of remaining cash flows

21

12

DVOX of par CDS spreads (the fair value change when all the credit spread curves shift up X bp uniformly)

9730.683

13

rho of recovery rates (the fair value change when all the recovery rates shift up 1% uniformly)

-4624.101

14

rho of correlation matrix (fair value change when all correlations shift up 1% uniformly)

-8967.411

15

theta

-251.9514

Example 3: Implied spread given the price of a basket default swap

Suppose for the basket CDS in Example 1 the fund manager wants to market the CDS that would give him a value of -15000 and wants to find out the implied spread on this price.  For this purpose he can simply call function aaCDS_bskt_is.  The result will be 0.046062.  As a simple check, if one uses the calculated fair value minus accrued interest -35758.1 in Example 1 as a price input in the function call to aaCDS_bskt_is, one will get an implied spread of 5%, which is exactly the input premium rate.

Example 4: First-to-Default swap on a basket of loans and receivables that pays a lump sum of premium

Suppose in Example 1 the default swap is purchased to protect possible losses from the default of loans and receivables of a technology company, an insurance company and an energy company that have the same default and recovery profile as in example 1.  The details of the loans and receivables are given in the following tables:

cpn_bskt: coupon table

company ID

effective date

maturity

notional

rate

1

1-Jun-2005

1-Jun-2006

500000

0.1

1

1-Jun-2006

1-Dec-2006

500000

0.12

2

1-May-2005

1-Oct-2006

1000000

0.08

2

1-Oct-2006

1-Oct-2007

700000

0.09

2

1-Oct-2007

1-Apr-2008

500000

0.1

3

1-Dec-2005

1-Dec-2006

300000

0.08

loan_bskt: fixed payment table

company ID

date

amount

1

1-Dec-2006

500000

2

1-Oct-2006

300000

2

1-Oct-2007

200000

2

1-Apr-2008

500000

3

8-Jul-2009

300000

Take the date counting basis to be 30/360 for coupon and accrued interest payments.  Their recovery rates are listed in the following table:

recov_tbl: recovery rate table

company ID

principal recovery rate

coupon recovery rate

1

0.4

0

2

0.5

0

3

0.3

0

The premium will be paid in a lump sum of 50,000 on Dec. 25, 2005.

Since the businesses of the borrowers and the bank are closely related, their default correlation cannot be ignored.  The stocks of the companies involved are publicly traded.  The instant equity correlation matrix of the stock prices can be used as the correlation matrix of the asset correlations of the companies and the bank.  This correlation matrix is then:

corr_mat: credit index correlation matrix

 

company 1

company 2

company 3

Bank

company 1

1

0.5

0.7

0.4

company 2

0.5

1

0.3

0.5

company 3

0.7

0.3

1

0.2

Bank

0.4

0.5

0.2

1

aaCredit_Dswap_bskt_fs_sep_MC

Argument

Description

Example Data

Switch

d_v

value (settlement) date

1-Dec-2005

 

contra_d

CDS contract dates

see above

 

princ_pr

premium notional principal

1500000

 

cpn_pr

premium coupon rate

5.000%

 

freq_pr

premium payment frequency

3

quarterly

pr_acc_type

type of premium accrued interest payment

1

pay accrued interest upon default

acc

accrual method

4

30/360

d_rul

business day convention

1

no date adjustment

prem_fix

fixed premium payment table

see below

 

cpn_bskt

coupon table of basket

see above

 

loan_bskt

principal table of basket

see above

 

acc_fs

accrual method(s) of bond coupon

4

30/360

corr_mat

credit index correlation matrix

see above

 

meth_corr

method of handling credit correlation

2

normal copula

payoff_type

payoff type

1

pay at default

prob_bskt

default probability curve

see above

 

intrp_prob

interpolation method of probability curve

1

linear

recov_tbl

recovery rate table

see above

 

hl

holiday list

0

 

df_crv_std

discount factor curve - risk free

see above

 

intrp

interpolation method

1

linear

position

trade position

1

buy protection

calc_type

calculation type

1

simplified calculation method

mc_trial

Monte Carlo simulation parameter(s)

50000.5

 

stat

statistic

{1,2,…15}

 

Where the fixed premium payment table is given in the following:

pr_fix: fixed premium payment table

date

premium amount

25-Dec-2005

50000

Calling the function aaCredit_Dswap_bskt_fs_sep_MC, the fund manager gets the following:

Results

Statistics

Description

Value

1

fair value

-275217.3779

2

value of payoff

49355.00523

3

value of premium

-324572.3832

4

accrued interest of premium

-0

5

fair value minus accrued interest

-275217.3779

6

par spread

-3.3433E-05

7

basis point value (per 1bp shift of risk-free curve)

55.01484288

8

number of days that premium accrues

0

9

next coupon date

38706

10

previous coupon date

38687

11

number of remaining cash flows

21

12

DV01 of par CDS spreads (the fair value change when all the credit spread curves shift up 1 bp uniformly)

383.0616723

13

rho of recovery rates (the fair value change when all the recovery rates shift up 1% uniformly)

-838.6327945

14

rho of correlation matrix (fair value change when all correlations shift up 1% uniformly)

-421.6382893

15

theta

-199.2776118

References

[1]          Francis, J. C., Frost, J. A. and Whittaker, J. G., (1999), The Handbook of Credit Derivatives, Toronto, McGraw-Hill.

[2]          Hull, J. and White, A., (Spring 2001), ‘Valuing credit default swaps II: modeling default correlations’, The Journal of Derivatives, 8, 12-21.

[3]          Li, D., (1999), ‘The valuation of the ith-to-default basket credit derivatives’, preprint.

 

 

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.