Default Probability Curves and Default Correlations

Overview

In credit derivative valuation and credit risk management, one of the fundamentally important issues is the estimation of default probabilities and correlations.  For this, generally speaking, there are two ways: using historical default data or using mathematical models.  Historical default data has played an important role in the estimation of default probabilities.  However, because default events are rare, there is very limited default data available.  Moreover, historical data reflects the historical default pattern only and it may not be a proper indicator of the future.  This makes the estimation of default probabilities from historical data difficult and inexact.  To use this same data to estimate default correlations is even more difficult and more inexact.  The market trend now is towards more and more to the use of mathematical models that don’t rely on historical default data.  Roughly speaking, there are two types of modeling approaches for defaults, the structural approach and the reduced form approach.  The structural approach is based on a firm’s asset and liability structure.  The reduced form approach is based on a firm’s debt trading data, such as bond prices and, in particular, spreads of credit default swaps.  Essentially the reduced form approach models the market view of the strength of a firm while the structural approach tries to predict a firm’s fundamentals.  In recent years, the reduced form approach has gained a lot of popularity due to the rapid development of the credit default swap market.

The following four methods are the most popular estimation methods of default probabilities:

1.       Rating transition matrix
There are dozens of rating agencies that provide yearly rating migration and default data for corporations and governments.  From this data a rating transition matrix can be constructed.  Such a matrix gives transition probabilities for a corporation migrating, in one year, from one rating level to another.  Of particular interest is the transition probability to default status.

2.       Asset price implied default probabilities (Merton’s structural model)
A firm’s value changes over time.  When the value of a firm’s assets is higher than its liabilities, it can always sell its assets to cover its liabilities.  However, if a firm’s asset value drops to a certain level, for example, to a level below the value of its liabilities, it cannot generate enough cash to pay its liabilities.  As a consequence, liabilities like the payment of bond coupons, will default.  Thus a firm’s default probability can be forecast if one is able to model a firm’s asset value.  Merton introduced this idea in his seminal work on corporate debt valuation.  His model for a corporation’s total value is the well-known Black-Scholes model, a geometric Brownian motion.

3.       Bond yield spreads implied default probabilities  
Corporate bonds offer higher yields than benchmark bonds, such as US treasury bonds.  The higher the default probabilities, the wider its bond yield spreads are, compared to the benchmark.  Hence, if a corporation issues bonds, its bond yield spreads are a good data source for estimating implied default probabilities of the firm.  If a corporation does not issue bonds, one may still be able to use bond data from another entity that has a similar risk profile and a similar structure.

4.       Credit default swap spreads implied default probabilities  
Given a default probability curve, a par default swap curve can be calculated.  Reversing this process, one can construct a default probability curve from given par default swap rates.  Such a method is often called bootstrapping.

The four methods have their advantages and disadvantages.  Using bond yield spread to imply default probabilities is good in that it reflects a timely, market view of a firm’s financial strength.  It is not so good because many firms do not issue bonds and many corporate bonds are thinly traded and, therefore, not quoted on a timely basis.  Ratings data is good because it is available for a large number of firms and organizations.  However this data is historical and may lag present market conditions.  Merton’s model is good because it attempts to model the fundamentals of a company.  It can also give a timely estimation of a firm’s default scenario.  The potential downside is that the model requires several parameters and the key inputs of a firm’s asset value and asset volatility are not easy to obtain.  The bootstrap algorithm is good because par default swap spreads reflect directly the market view on the default profile of a bond issuer; it is not so good because par default spreads do not exist at all for some bond issuers.  Here one may face the chicken and egg problem: in order to get par default spreads default probabilities must be known, and vise versa in order to derive default probabilities, par default swap spreads must be known.  For the last few years the credit default swap market has been developing rapidly, more and more credit default swap data becomes available and the bootstrapping method is getting more and more popular.

FINCAD provides functions for forecasting default probabilities using any of the above four methods and also provides functions for calculating first-to-default probabilities, kth-to-default probabilities, all-to-default probabilities, interpolating/extrapolating a default probability curve and for calculating default correlations.  For the modeling of default correlations, see the section “Correlated defaults”.

In addition to the above fundamental methods in building default probability curves, it is also interesting and practically useful in establishing the relationship between a default probability curves and a risky discount factor curve.  FINCAD provides several functions handling these relationships.

 

Formulas & Technical Details

Deriving default probabilities from bond yield spreads or bond prices

Suppose a company issued three bonds, bond 1, 2 and 3, with maturities  and principal of $1. Suppose today’s quoted prices for the bonds are , and , respectively.  Let  be the risk neutral probability of default of the company at time .  Let , be the price of a risk-free bond with the same maturity and coupon rate as those of bond . We assume that the bonds can only default at maturities .   Let  be the loss of the  bond at time  Then:

where

is the forward price of bond j at time  

 is the discount factor at time  and

 is the expected recovery rate of bond .  

Then, assuming that recovery rates and interest rates are independent, we have:

Solve the above equation inductively to get:

.

The above can easily be extended to the case that default can happen at any time.  See Hull and White [1] for details.

Deriving default probabilities from ratings transition matrix

Let  be a one year rating transition matrix with rating grades  and default state , where  is the percentage that the firms of rating  will migrate to rating  in one year.  Note that  for all  and . Let .  Then  is the matrix of transition probabilities and  is the frequency that a company with rating  defaulted in one year.  It is easy to check that for any integer the matrix , the product of the matrix  multiplied by itself  times, is also a transition probability matrix.  Suppose that a firm’s rating follows a time homogeneous Markov process model with the transition probability matrix.  Then it is easy to check that  is the default probability that a firm with rating  will migrate to rating  in  years.  Given default probabilities in years  one can approximate default probabilities at any other time points.

Deriving default probabilities using Merton’s structural model

Suppose  is the asset value of a firm with the face value of liabilities . Under Merton’s model  is a geometric Brownian motion process and the firm defaults when the company’s asset value goes below . We can call FINCAD functions aaDigital_AON and aaBarrier_eu to calculate the risk neutral probabilities of default for checking default only at a given time horizon or checking default for all times up to a given time point.

Deriving default probabilities from par default swap spreads - bootstrapping

This is the inverse of calculating par default swap spreads from a given default probability curve.  Suppose par default swap spreads are given for credit default swaps with maturities.  For the first period, assuming the default probability curve has a constant density  in this period and using the formula (see the Credit Default Swaps FINCAD Math Reference document) for calculating the fair value of a credit default swap we can obtain.  Thus the default probability curve in the first time period is determined.  Then assuming also the density of the probability curve in the second period  is also a constant , using the calculated density  in the first period and the formula for calculating the fair value of the second credit default swap and the given par default swap rate of the second default swap we can calculate .  Thus the default probability curve in the second period is determined.  Iteratively, we can obtain the third and all other periods.

Calculating first-to-default, nth-to-default and all-to-default probabilities

If the default times of the names of a basket are independent, first-to-default, nth-to-default, all-to-default probabilities can be calculated through multiplication and integration of the default probability curves of the basket. However, if the default times are not independent, no simple formulas are available for these types of probabilities. Monte Carlo simulation is generally used instead. To generate default scenarios we need a model for default times. The most popular models are the Brownian motion credit index process and the normal copula.

Case 1:  Independent defaults

As an example, we consider the second–to-default probability of a 4-name basket. Let:

 be the default time of name  and  its distribution, , where name 4 is the name of the counterparty.  Then:

 

Prob(name 1 defaults second in the basket before time  and before the counterparty defaults)

= Prob(+ Prob(

=

The formula for -to-default probability before the counterparty defaults in a general basket can be derived similarly.  However, complexity increases as the number of names increases.

The above method can also apply to derive the formula of all-to-default probability before the counterparty defaults.  This is clearly much simpler than the -to-default case.

 

Case 2:  Correlated defaults

Model credit correlation using a normal credit index process

A credit index process is an unobservable (hidden) random process that serves as a measure for the credit status of a credit entity.  The idea originates from Merton’s seminal work on modeling corporate defaults.  According to Merton the asset value of a company drives the default event of the company. If the asset value goes below a certain barrier, for example, the face value of the liabilities of the company, the company will default.  Here the company’s asset value process serves the role of a credit index.  From this model default probabilities can be derived and the default correlation can also be implied from asset correlation.

One of the shortcomings of Merton’s model is that it cannot make use of the default probabilities implied from market data, such as bond prices.  To overcome this problem Hull and White used a Brownian motion process as an index process and used bond price implied probabilities to derive default barriers, i.e., default thresholds for the credit index.  Given default barriers and credit index correlations one can derive default correlations and value default swaps on multiple assets with correlated defaults.  Note that under the Black-Scholes model such a credit index correlation is equivalent to an asset return correlation.  Hence if the companies in consideration have publicly traded equities, the equity correlations can be used as their credit index correlations.

Theoretically given credit index correlations and default barriers one can calculate default correlations as well as joint default distributions.  However, if correlations cannot be ignored, there is no simple way to calculate multidimensional joint default distributions and Monte Carlo simulation has to be used.

With a credit index process we can determine the default scenario by checking if this credit index falls below a certain level, called a default barrier. Such a default barrier can be determined by any given default probability.  In more detail, suppose  is the standard Brownian motion and the probability that a firm will default in  years is .  Then the default barrier that the firm will default in  years can be determined by solving for x in the equation:

For a basket of reference entities if default barriers and credit index correlations are known, Monte Carlo simulation can be used to determine joint default probabilities of the entities.  In more detail, one can first generate the paths of the credit index process, i.e., paths of a correlated standard multidimensional Brownian motion.  By checking, starting from smallest time point, the given time points one by one, to see if the path of an entity is below the given default barriers, we can determine if the firm will default and also find out the ordering of the default times of the names in the basket.  Thus we can calculate the first-to-default, nth-to-default before counterparty default and all-to-default before counterparty default probability curves.

Credit index processes are intuitive and easy to understand, but it suffers from low efficiency in terms of CPU time.  Because default can happen at any time, one would expect to check default at a sufficiently large number of time points for the purpose of good accuracy.  However, the increasing of time points will rapidly increase the CPU time.  When the basket is large, long CPU time may become a serious issue.

Model credit correlation using a normal copula

Copulas are becoming more popular in credit correlation modeling.  The most commonly used copula is the normal copula. A normal copula is simply a function of a multi-dimensional normal distribution:

,

where

 is an m-dimensional copula,

is the distribution function of an k-dimensional normal random vector with a mean vector of (0,…,0) and a standard deviation vector of (1,…,1),

 is the correlation matrix, and

 is the inverse of the one-dimensional standard normal distribution.

Let  and  be the default time and its distribution of name . To consider the default correlation of the basket (i.e., the correlations of the default times), we assume that the joint distribution of the default times is:

,

where the correlation matrix of the m-dimensional distribution underlying the normal copula is the asset (equity) correlation matrix of the basket.

The right hand side of the above formula has a closed form and looks quite appealing. Unfortunately, its calculation involves integration over a multi-dimensional space. Numerical methods for the calculation of such an integration are not sufficiently fast.  Hence again Monte Carlo simulation has to be used.

Here are the steps in using the copula method to calculate the probability that name  is the th-to-default before time  and before the counterparty defaults. Suppose the basket has  names and name  is the counterparty .

1.  Generate an m-dimensional random vector  from the distribution ;

2.  Calculate ;

3.  Sort  in increasing order. Denote the sorted vector as ;

4.  Check if  and  and .

5.  Count the number of times that the above is true and then calculate the probability required.

Calculating default correlation

Suppose that the joint default probability of company A and B is  and the default probabilities of Company A and B are  and , respectively.  Then the default correlation of Company A and B is defined as:

To calculate a default correlation the key is then to calculate the joint default probability.  For this one can use the asset correlation and either a credit index process or a normal copula discussed above.

Hazard rate (default intensity ) curves

The hazard rate or failure rate is a term that is commonly used in reliability theory, actuarial theory and statistics.  Sometimes it is also called a failure rate. In credit analysis it is often known as a default intensity.  The hazard rate of a firm at a time point  is defined as the instantaneous probability of default given that the firm has not defaulted prior to time . The relationship between a default probability and a hazard rate can be derived easily.  Following the definition, for small time period :

where denotes the default time of the firm andare the default probability and density at time  respectively.  It follows that:

Hence the relationship between a hazard rate curve and a default probability curve is:

 

FINCAD Functions

aaCredit_DfltProb_bond2(d_v , bond_tbl, sprdorprice, df_crv_std, intrp, hl, time_points, intrp_prob, calc_type):

Given a risk-free curve (or risk-free yields), and either yield spreads or prices for a list of bonds issued by one company, forecasts default probabilities at given time horizons.

 

*       Note that reasonable implied default probabilities depend on reasonable bond yield spreads (or bond prices) and reasonable recovery rates.  Unreasonable inputs can result in meaningless outputs, such as negative probability values.  A rule of thumb is that higher default probabilities are a result of higher expected loss.  For example, if recovery rates are constant, bond yield spreads must increase as time to maturity increases.

 

aaCredit_DfltProb_rating (trans_matrix, time_points, intrp): 

Given a one-year ratings transition matrix, forecasts default probabilities at any given time horizons.

 

aaCredit_DfltProb_Merton(asset_val, vlt, debt,cost_hldg, rate_ann, default_type, term): 

Given the asset value and the asset volatility of a company, forecasts default probabilities of the company at a given time horizon.

 

aaCredit_DfltProb_DSSprd3(d_v, cds_spread_tbl, acc, d_rul, adj_eff, adj_term, dGen_method, dfstd, intrp, time_points, intrp_prob, hl, method_boot, calc_type, error_treat, output_type):

Bootstraps a default probability curve from a par credit default spread curve. Various bootstrapping and date generation methods are allowed. Upfront premium fees are also incorporated.

Note that this function allows two bootstrapping methods.

1.       assuming constant default density between two consecutive CDS maturities of the given CDS spread curve;

2.       assuming constant hazard rate between two consecutive CDS maturities.

It also allows three date generation methods: backward, forward and IMM (for details on these methods, see the table Description of Input Parameters below).  To bootstrap a default probability curve with another less commonly used method, the method by interpolating the par CDS swap curve, use the following function:

 

aaCredit_DfltProb_DSSprd2(d_v, cds_sprd_tbl, acc, d_rul, df_crv_std, intrp, time_points, intrp_prob, hl, method_boot, calc_type, error_treat, output_type).

However, this function can only handle one date generation method: the backward method. Moreover, it cannot handle upfront fees.

 

aaCredit_DfltProb_DSSprd_std(d_v, cds_sprd_tbl, acc, d_rul, df_crv_std, intrp, time_points, intrp_prob, hl, method_boot, mat_type, calc_type, error_treat, output_type):

Derives a default probability curve from a par CDS spread curve using various bootstrapping methods.  Both standard and IMM maturities are allowed.  Upfront premium fees are also incorporated.

 

This is a simplified version of function aaCredit_DfltProb_DSSprd3.

 

aaCredit_ConvertDfltPtoDF(prob_crv, rate_recover, acc_time, freq_prem, d_rul, df_crv_std, intrp, min_years, hl, calc_type):

Builds a risky discount factor curve from a default probability curve and a risk-free discount factor curve.

 

aaCredit_ConvertDFtoDfltP(df_crv_risk, rate_recover, acc_time, freq_prem, d_rul, df_crv_std, intrp, hl, time_points, intrp_prob, calc_type):

Builds a default probability curve from a risky discount factor curve and a risk-free discount factor curve.

 

*       Note : A risky discount factor curve derived from a default probability curve is a simplified measure of the default profile of a name.  Hence results derived by the use of such a risky discount factor curve can, theoretically, be less accurate than that obtained through the direct use of the original default probability curve.

 

aaCredit_DfltProbFirst_ind2(prob_bskt, intrp_prob, table_type):  

Given default probability curves for a basket of names, assuming independent defaults, derives first-to-default probability curves for each name and for the basket.

 

aaCredit_DfltProb_first_MC2(prob_bskt, intrp_prob, corr_mat_ent3, num_rnd, table_type):  

Given default probability curves for a basket of names and a credit index correlation matrix, derives first-to-default probability curves for each name.

 

aaCredit_dfltProbRnk_ind(prob_bskt, intrp, rank, prob_type):

Given default probabilities of a basket of names and a counterparty, assuming independent defaults, calculates Kth-to-default-before-counterparty-default probabilities of each name and the basket.

 

aaCredit_DfltProbRnk_MC(prob_bskt, intrp, corr_mat_ent4, meth_corr, rank, mc_trial, prob_type):

Given default probability curves for a basket of names and a credit index/asset correlation matrix, derives first-to-default probability curves for each name and the basket.

 

aaCredit_dfltProbAll_MC(prob_bskt, intrp_prob, corr_mat_ent4, meth_corr, mc_trial, table_type):

Given default probabilities and credit index/asset correlation of a basket of names and a counterparty, calculates nth-to-default-before-counterparty-default probabilities of each name and the basket

 

aaCredit_DfltBarrier_MC2(prob_crv, num_rnd, calc_prob):

Given a default probability curve, calculates default barriers of a credit index process using Monte Carlo simulation or a combination of a numerical method and Monte Carlo simulation.

 

aaCredit_DfltCorr_MC(probordensity, prob_crv_ent2, corr, num_rnd):

Given default probabilities and credit index correlation of two credit names, calculates default correlation by Monte Carlo simulation.

 

aaCredit_Interp_DfltProb(probordensity, prob_crv, time_points):

Interpolates and/or extrapolates a default probability/density curve.

 

aaCredit_Interp_DfltProb2(prob_crv, time_points, intrp_prob, return_type):

Interpolates and/or extrapolates a basket default probability curve.

 

aaCredit_convert_hazard(prob_crv_ent3, hazardorprob, intrp_prob, output_type):

Converts a hazard rate curve to a default probability curve or vice versa.

 

Description of Inputs

Input Argument

Description

d_v

Valuation date

bond3_tbl

A table of bonds with 15 columns: yield spread or price, recovery rate, bond maturity date and other bond information (see aaBond3 for details.)

sprdorprice

A switch:

1 = yield spread,

2 = bond price.

If it has the value of 1, the first column of the bond table has the yield spreads of the bonds, otherwise, it has bond prices.

yield_riskfree

Risk free yield to maturity.

hl

Holiday list

df_crv_std, dfstd

Risk-free discounting factor curve

intrp

Interpolation method

trans_matrix

A rating transition matrix. The entries are in percentages. The sum of each row must be equal to 100. For the bottom row, which corresponds to the default state, the entries must all be 0 except for the diagonal entry, which must be 100.

time_points

Time horizons at which default probabilities are to be forecasted. In the functions aaCredit_DfltProb_DSSprd and aaCredit_ConvertDFtoDfltP, it can be a single entry array of the value 0.  For this case the time points will be calculated from the input default swap maturities or from the dates of the risk-free discount factor curve.

asset_val

Total asset value of a company

vlt

Volatility of the total asset

debt

Face value of a company's liabilities

cost_hldg

Pay out rate of a company - annual/365

rate_ann

Risk free rate - annual/365

default_type

A switch:

1 = default is checked only at the given time horizon (term),
2 = default is checked at any time point up to the given time horizon (term)

term

Time horizon to forecast default probability

probordensity

Probability or density - a switch

prob_crv_ent3

Projected probability curve. It has N +1 columns.  The first column has time (in years).  The time must be in increasing order and positive.  If probordensity =1, the other columns are the default probabilities of N reference entities up to the given time; otherwise, they are the density values of a probability curves at the time period between the given time and the previous time point in the curve.  A probability curve must be non-decreasing and not exceeding 1.  A density curve must be non-negative and its integral over the time periods of the curve must not exceed 1.

corr_mat_ent3

An N by N credit index correlation matrix with N the number of reference entities

prob_crv_ent2

A 3-column probability curve

prob_crv

A 2-column probability curve

corr

Credit index correlation

num_rnd

Number of random trials

table_type

Output table type.  It is used in aaCredit_DfltFirst_ind and aaCredit_DfltFirst_MC.  If table_type =1, the output is a first-to-default probability curve table for all reference entities; if table_type =2, the output is a first-to-default density curve table; otherwise, it is the default probability and density curve table for the basket of reference entities.

spread_tbl

Used in aaCredit_DfltProb_DSSprd.  Par credit default spread table.  It is a five-column table: (effective date of a default swap, terminating date, par spread, type of accrued interest payment, recovery rate).  The terminating date must be in increasing order.  The type of accrued interest payment takes two values:

1 = pay accrued interest of premium upon default,

2 = pay no accrued interest of premium up on default.

freq_prem

Premium payment frequency

acc

Accrual method

d_rul

Business date convention

intrp_prob

Interpolation method of a probability curve:

1 = linear,

2 = exponential

rate_recover

A one-entry table of a recovery rate.

acc_time

Time accrual method

min_years

Minimum length (number of years) of the curve.  It is used only when it is longer than the length of the risk-free curve.

calc_type

Calculation method.  It is not used in this release.

df_crv_risk

A risky discount factor curve.  It is equivalent to a risky swap rate curve.

adj_eff

CDS effective date adjustment, a switch (1 = adjust effective date, 2 = do not adjust effective date). It is used in aaCredit_DfltProb_DSSprd3 only.

adj_term

CDS terminating date adjustment, a switch (1 = adjust terminating date, 2 = do not adjust terminating date). It is used in aaCredit_DfltProb_DSSprd3 only.

dGen_method

CDS date generation method, a switch (1 = backward generation from the maturity date, 2 = forward generation from the effective date, 3 = IMM dates). An IMM date is the 20th of a month. For example, if the coupon frequency is quarterly, the IMM dates are March 20th, June 20th, September 20th and December 20th. When the IMM method is selected, the maturity date of a CDS will be moved to the next IMM date internally in the function. Note also that IMM dates are generated backward from the maturity date. This switch is used in aaCredit_DfltProb_DSSprd3 only.

spred_tbl

Used in aaCredit_DfltProb_DSSprd2. , it is a eight-column table:  (effective date of a default swap, terminating date, frequency, par spread, type of accrued interest payment, payoff type, recovery rate, use this point).  The terminating date must be in increasing order.  The type of accrued interest payment takes two values:

1 = pay accrued interest of premium upon default,

2 = pay no accrued interest of premium up on default.  

cds_sprd_tbl

Used in aaCredit_DfltProb_DSSprd3 and aaCredit_DfltProb_DSSprd_std.  Par credit default spread table.  For aaCredit_DfltProb_DSSprd3, A CDS spread curve can be time-based (values in the first column >0 and <1000) or date-based (values in the first column >=1000). If it is time-based, the first column has CDS times to maturity (in years). If it is date-based, it can have one (first) column CDS (terminating) dates or two (first two) column CDS (effective, terminating) dates. Times and terminating dates must be increasing and CDS spreads must be nonnegative. If the table has two columns of dates, the effective date must be prior to the terminating date,  the effective date of the first row must be prior to the valuation date d_v and that of the ith row must be prior to  the terminating date of the (i-1)th row. The remaining columns (see the CDS spread table definition) are the same for all the three types of CDS spread tables. The last column, which is optional, has upfront fees (as a % of notional). 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 aaCredit_DfltProb_DSSprd_std, it is a six-column table:  (maturity date of a default swap, frequency, par spread, type of accrued interest payment, recovery rate, upfront payment).  These columns follow the same restrictions and conventions mentioned above.

method_boot

The method of bootstrapping a default probability curve from a par credit default spread curve, a switch:

1 = assuming a constant default density within two consecutive time points of the credit spread curve;

2 = assuming a constant hazard rate within two consecutive time points of the credit spread curve;

3 = interpolating the input credit spread curve to obtain credit spreads on all coupon payment time points.  

For aaCredit_DfltProb_DSSprd3 and aaCredit_DfltProb_DSSprd_std, only the first two methods are available.

error_treat

The error handling method for inconsistent input credit spread curve, a switch:

1 = build a probability curve with part of the credit spreads;

2 = output an error.  

Some input credit spread curves have consistent problems such that it is impossible to build a default probability curve that will value the given CDS', approximately, to the given spreads.  For example, the input data may result in negative default probabilities.  However, oftentimes, part of the input data is good and can be used to build a good but short default probability curve.  By extrapolating such a short curve one can always build a default probability curve that can cover the given time periods in the input data table.  If a user does not want such an extrapolated curve, he or she can use the switch value 2 that will lead to an output of an error symbol.

output_type

In the functions aaCredit_DfltProb_DSSprd2 and aaCredit_DfltProb_DSSprd_std, it is the output type of a default probability curve, a switch.  In this release, only one type, a time-based default probability curve, is implemented.  In the function aaCredit_convert_hazard, it is the type of the output.  It is a switch with two values:

1 = a hazard rate curve;

2 = a default probability curve.

mat_type

CDS date generation method, a switch (1 = backward generation, 2 = IMM date generation). It is used in aaCredit_DfltProb_DSSprd_std only.

Hazardorprob

Type of an input curve (used in the function) aaCredit_convert_hazard) a switch:

1 = a hazard rate curve;

2 = a default probability curve.  

The input table can be a hazard curve or a default probability curve for a single name or multiple names.

 

Description of Outputs

All functions mentioned above, except for the functions aaCredit_DfltBarrier_MC2, aaCredit_DfltCorr_MC, aaCredit_ConvertDfltPtoDF, aaCredit_convert_hazard, and aaCredit_Interp_DfltProb and aaCredit_Interp_DfltProb2, outputs either a single-entity default probability curve or a basket default probability curve.  A single-entity default probability curve is a two-column array (time in years, default probability).  A basket default probability curve is a multi-column array (time in years, default probability of entity i, i=1, 2, …, N).  All output default probability curves are time-based and hence each is associated with a day-counting rule, also called a time-accrual method in the FINCAD math library.  The following table displays the type of a default probability curve and its time-accrual method for each of the output default probability curves.

Function

type (1 = single, N = basket)

day counting rule

aaCredit_DfltProb_bond2

1

30/360

aaCredit_DfltProb_rating

1

30/360

aaCredit_DfltProb_Merton

1

act/365

aaCredit_DfltProb_DSSprd3

1

acc (the input CDS accrual method)

aaCredit_DfltProb_DSSprd2

1

acc (the input CDS accrual method)

aaCredit_DfltProb_DSSprd_std

1

acc (the input CDS accrual method)

aaCredit_DfltProbFirst_ind2

1

the same as the one of the input curve

aaCredit_DfltProb_first_MC2

1

the same as the one of the input curve

aaCredit_dfltProbRnk_ind

1

the same as the one of the input curve

aaCredit_DfltProbRnk_MC

1

the same as the one of the input curve

aaCredit_dfltProbAll_MC

1

the same as the one of the input curve

aaCredit_Interp_DfltProb2

1

the same as the one of the input curve

 

*       Remark 1: The day-counting rule is always part of an output default probability curve. When such a default probability curve is used as an input of a credit derivative valuation function, e.g., aaCDS, and if its time-accrual method is not 30/360, the time-accrual method must also be used as an input of the function.  In the newly added credit derivatives functions in the FINCAD XL version 9, the time-accrual method should be put in the third entry of a default probability curve interpolation/curve building array intrp_tb.  For the other credit derivatives functions it should be put at the upper right corner of a default probability curve.

 

*       Remark 2: The functions aaCredit_DfltProb_DSSprd3, aaCredit_DfltProb_DSSprd2 and aaCredit_DfltProb_DSSprd_std build default probability curves from a credit default swap spread curve.  If one wants to use an output default probability curve as an input to revalue the input credit default swaps and check if the calculated credit default swap spreads match the original spreads, the input time points array time_points must be a single-entry array with a value of  0 and the time-accrual method of the default probability curve must be set as the input credit default swap accrual method which is used to build the default probability curve.

 

*       Remark 3: In aaCredit_DfltProb_DSSprd2 when the bootstrapping method is set to 3 (interpolate CDS spread curve) and if the time points array is a single-entry array with a value of 0, the time points of the output default probability curve is determined by all of the coupon payment dates of the credit default swaps in the input credit default swap spread array.  Generally, the output default probability curve has more rows than the input default spread curve.

 

aaCredit_DfltBarrier_MC2

This function calculates the default barriers of a standard credit index process at multiple time points.  Its output is a two-column array (time in years, default barrier).  The results are used in the calculation of nth-to-default default probabilities, when the reference credits in a basket are correlated and when the so-called multi-step credit index model (Hull and White) is used to model credit correlation.

aaCredit_DfltCorr_MC

This function outputs a three-column table (time in years, the probability that both reference credits default, default correlation).  Note that both the joint default probabilities and the default correlation are time-dependent.

aaCredit_ConvertDfltPtoD

The output is a two-column discount factor curve.

aaCredit_convert_hazard

The output is either a basket default probability curve if the input curve is a basket hazard rate curve, or a basket hazard rate curve if the input curve is a basket default probability curve.  In both cases the day counting rule is the same as the one in the input curve.

aaCredit_Interp_DfltProb

It outputs a three column table (time in years, default probability, default density).  The day counting rule is the same as the one in the input curve.

 

Examples


Example 1:  Forecast default probabilities from bond yield spreads

Suppose a company has issued four bonds with coupon rates of 7%, 8%, 9%, and 10%, respectively. All coupons are paid semiannually.  The yield spreads of the four bonds over equivalent default free bond yields are 2%, 2.3%, 2.5% and 3% respectively.  The expected principal recovery rates are 30%, 30%, 25% and 25%, respectively.  Their maturities along with these data are assembled in the following table.

Bond Data Table (see aaBond3)

yield spread

maturity date

odd dates

coupon

redemption

frequency

other bond data

recovery of principal

recovery of coupon

0.02

1-Jun-2004

0

0

0

0.07

100

2

14

1

1

0

1

1

0.3

0

0.023

1-Jun-2006

0

0

0

0.08

100

2

14

1

1

0

1

1

0.3

0

0.025

1-Jun-2007

0

0

0

0.09

100

2

14

1

1

0

1

1

0.25

0

0.03

1-Jun-2009

0

0

0

0.1

100

2

14

1

1

0

1

1

0.25

0

 


Suppose today’s date is Dec. 3, 2003 and the spot default-free discount factor curve is given as follows:

Discount Factor Curve

date

discount factor

3-Dec-2003

1

11-Dec-2003

0.999708

1-Jan-2004

0.998922

2-Mar-2004

0.996662

2-Jun-2004

0.993272

2-Sep-2004

0.989830

2-Nov-2004

0.987323

3-Jun-2005

0.974558

5-Dec-2005

0.963094

5-Jun-2006

0.945682

4-Jun-2007

0.908333

4-Dec-2007

0.888415

2-Jun-2008

0.866904

3-Dec-2008

0.845571

4-Dec-2009

0.802191

7-Dec-2010

0.758813

5-Dec-2011

0.717608

3-Dec-2012

0.676827

Call aaCredit_DfltProb_bond2 to get the following results:

aaCredit_DfltProb_bond2

Argument

Description

Example Data

Switch

d_v

value date

3-Dec-2003

 

sprdorprice

yield spread or price

1

yield spread

bond_tbl

bond table

see above

 

df_crv_std

discount factor curve

see above

 

intrp

interpolation method

1

linear

hl

holiday list

0

 

time_points

time points (in years) at which default probabilities are forecasted

0

 

intrp_prob

interpolation method of probability curve

1

linear

calc_type

calculation type

4

extended Simpson’s rule

Results:  Output Default Probability Curve

time in years

probability

0.494

0.0137167

2.494

0.076079242

3.494

0.106209986

5.494

0.195797337

 

Example 2:  Forecast default probabilities using a rating transition matrix

Suppose the one-year ratings transition matrix provided by a rating agency is as follows:

 

AAA

AA

A

BBB

BB

B

CCC

D

AAA

90.775

8.33

0.68

0.12

0.05

0.02

0.015

0.01

AA

0.8

90.186

8.12

0.64

0.15

0.07

0.02

0.014

A

0.1

2.1

90.49

5.67

1.22

0.39

0.02

0.01

BBB

0.05

0.42

5.88

85.23

5.66

2.35

0.26

0.15

BB

0.05

0.17

0.78

8.11

77.91

8.34

2.66

1.98

B

0.02

0.16

0.56

2.11

5.67

80.62

6.54

4.32

CCC

0.08

0.15

0.34

1.22

2.13

5.78

70.08

20.22

D

0

0

0

0

0

0

0

100

Assume that under the risk-neutral probability a company’s credit status follows a homogeneous Markov process.  Suppose we want to forecast default probabilities at time points (in years) 0.5, 1, 2, 5 and 10. Call function aaCredit_DfltProb_rating to get:

time in years

AAA

AA

A

BBB

BB

B

CCC

0.5

0.00005

0.00007

0.00005

0.0008

0.0099

0.0216

0.1011

1

0.0001

0.00014

0.0001

0.0015

0.0198

0.0432

0.2022

2

0.000254

0.000385

0.000729

0.0054

0.04433

0.092407

0.346839

5

0.001116

0.002259

0.007126

0.0306

0.129951

0.239012

0.586197

10

0.004959

0.012102

0.034661

0.1

0.266592

0.42058

0.730447

If a company is BBB rated then its forecasted default probabilities are given in the 5th column of the output table.  For example the probability of a BBB company defaulting at any time within the next 2 years is 0.54%.  We should note that the ratings data is input per 100, where 5 represents 5% while the output is the actual probability number where .05 represents 5%.

 

Example 3:  Build a default probability curve from a par default swap rate curve

Suppose par default swap spreads of a list of default swaps are given as follows:

CDS spread table

maturity date

frequency

par spread

type of accrued premium payment

payoff type

recovery rate

upfront payment

1-Jun-2007

3

7.000%

1

1

30.000%

0

1-Dec-2007

3

7.000%

1

1

30.000%

0

1-Dec-2008

3

8.000%

1

1

30.000%

0

1-Dec-2009

3

8.000%

1

1

30.000%

0

1-Dec-2012

3

9.000%

1

1

35.000%

0

1-Dec-2014

3

9.000%

1

1

35.000%

0

1-Dec-2016

3

10.000%

1

1

35.000%

0

Note that in the table the fourth and fifth columns store the values of the switches sw_609 and sw_503, respectively. The value 1 in the fourth column means that the all the CDSs in the CDS curve pays accrued interests of premium upon default of the reference assets and that in the fifth column means that the compensation for default losses is paid at the default times.

Suppose the day counting method is Actual/360 and there is no date adjustment.  Today’s date is Dec. 1, 2006.  The default-free discount factor curve is given as follows.

Default-free discount factor curve

date

discount factor

1-Dec-2006

1

1-Dec-2007

0.98

1-Dec-2008

0.9

1-Dec-2009

0.86

1-Dec-2010

0.818

1-Dec-2020

0.35

Calling the function aaCredit_DfltProb_DSSprd3 with the above data we can bootstrap a default probability curve. The following are the results based on the assumption that the default density between any two consecutive CDS maturities is a constant.

aaCredit_DfltProb_DSSprd3

Argument

Description

Example Data

Switch

d_v

value date

1-Dec-06

 

spread_tbl

default swap table

see above

yield spread

acc

accrual method

2

30/360 (ISDA)

d_rul

business day convention

1

no adjustment

adj_eff

effective date adjustment

2

do not adjust effective date

adj_term

maturity date adjustment

2

do not adjust maturity date

dGen_method

date generation method

3

IMM

dfstd

discount factor curve

see below

 

intrp

interpolation method

1

linear

time_pts

time points (in years) at which default probabilities are forecasted

0

 

intrp_prob

interpolation method of probability curve

1

linear

hl

holiday list

0

 

method_boot

bootstrapping method

1

assume constant density

calc_type

calculation type

1

use simplified calculation method

error_treat

method for handling inconsistent credit spreads

2

output an error

output_type

type of default probability curve

1

time-based probability curve

Results:  Output Default Probability Curve

time in years

default probability

0.558333333

0.054319472

1.066666667

0.101202419

2.083333333

0.214532397

3.097222222

0.300596513

6.141666667

0.607900125

8.169444444

0.704710674

10.2

0.882989519

In the above calculation holidays are ignored since there is no date adjustment.  Moreover, a one-entry table with a value of 0 is used as a time points table.  With this input the output default probability curve has time points determined from the given default swap maturities.  If one needs to output a default probability curve with given time points, one can replace the input parameter with a table of time points.

Example 4:  Calculate first-to-default probabilities

Suppose the default probabilities of thee companies, A, B and C are given as in the following table:

Default Probability Curve

time in years

A

B

C

1

0.022032

0.0317

0.035

2

0.046242

0.0655

0.075

3

0.07266

0.1022

0.121

4

0.101233

0.142

0.153

5

0.131885

0.1752

0.205

and suppose that the default events of the three companies are independent.  Call the function aaCredit_DfltProb_first_ind2 with this input table, using linear interpolation for default probability curves, to get the following table of first-to-default probabilities for the three companies:

aaCredit_DfltProbFirst_ind2

Argument

Description

Example Data

Switch

prob_bskt

default probability curve

see above

 

intrp_prob

interpolation method of probability curve

1

linear

table_type

output table type

1

probability of defaulting first for each entity

Results: Output Table Type = 1

time in years

A

B

C

1

0.021305

0.0308

0.0341

2

0.043075

0.0617

0.0708

3

0.064909

0.0928

0.1105

4

0.08656

0.1242

0.1361

5

0.107739

0.1482

0.1748

To determine the probabilities that the basket defaults (i.e., any one of the companies defaults), call the function again with table_type = 2 or simply add the probabilities in each row.  The results are given in the following table:

Results: Output Table Type = 2

time in years

probability

1

0.086177

2

0.17556

3

0.268175

4

0.346843

5

0.430763

 

Example 5:  Calculate second-to-default-before-counterparty-default probabilities

Suppose the default probability curves of three companies A, B, and C and a counterparty are given in the following table:

Default Probability Curves

time in years

A

B

C

counterparty

1

0.022032

0.0317

0.035

0.008

2

0.046242

0.0655

0.075

0.013

3

0.07266

0.1022

0.121

0.019

4

0.101233

0.142

0.153

0.03

5

0.131885

0.1752

0.205

0.05

and the credit index processes of the three companies and the counterparty have the following correlation matrix:

Credit Correlation Matrix

1

0.5

0.7

0.2

0.5

1

0.3

0.25

0.7

0.3

1

0.3

0.2

0.25

0.3

1

 

Call the function aaCredit_dfltProbRnk_MC with default rank = 2, using the copula method (corr_method =2) to handle credit correlation, the exponential method for interpolating probability curves, and using a random trial number of 50,000.5, to get the following second-to-default-before-counterparty-default probability curves of the three companies:

aaCredit_dfltProbRnk_MC

Argument

Description

Example Data

Switch

prob_bskt

default probability curve

see above

 

intrp

interpolation method

2

exponential

corr_matrix

credit index correlation matrix

see above

 

meth_corr

method of handling credit correlation

2

normal copula

rank

default rank

2

 

mc_trial

Monte Carlo simulation parameter(s)

50000.5

 

prob_type

output table type

1

nth-to-default probability of each entity

Results: Output Table Type = 1

time in years

A

B

C

counterparty

1

0.00622

0.00248

0.0043

0.00768

2

0.01588

0.00746

0.01106

0.01234

3

0.0278

0.01316

0.02062

0.0179

4

0.04086

0.02116

0.0283

0.0266

5

0.05374

0.02784

0.04148

0.04232

The values in the last column are the default probabilities that the counterparty defaults before the last second-to-default of the basket.

To determine the second-to-default probabilities that the basket, i.e., any one of the companies defaults second before the counterparty defaults, call the function again with table_type = 2 or simply add the probabilities of the first three probability values in each row (much faster).  The results are given in the following table:

Results: Output Table Type = 2

time in years

probability

1

0.013

2

0.0344

3

0.06158

4

0.09032

5

0.12306

 

Example 6:  Calculate all- or last-to-default-before-counterparty-default probabilities

Suppose the default probability curves of companies A, B and C and a counterparty and their credit index correlation matrix are given as in example 5.  Call aaCredit_dfltProbAll_MC to calculate the probabilities that all the three companies default before the counterparty defaults.

aaCredit_dfltProbAll_MC

Argument

Description

Example Data

Switch

prob_bskt

default probability curves

see example 5

 

intrp_prob

interpolation method of probability curve

2

exponential

corr_matrix

credit index correlation matrix

see example 5

 

meth_corr

method of handling credit correlation

2

 

mc_trial

Monte Carlo simulation parameter(s)

50000.5

 

table_type

table type

2

 

Results: Output Table Type = 2

time in years

probability

1

0.00184

2

0.00614

3

0.01422

4

0.02334

5

0.03486

Set table_type =3 in the input arguments to get the probability curve that every company defaults before the counterparty defaults or the counterparty defaults before one of the companies defaults.  The results are:

Results: Output Table Type = 3

time in years

probability

1

0.00968

2

0.01902

3

0.03328

4

0.05266

5

0.08338

 

*       Note:  For table_type =2, one can get the same results by calling the function aaCredit_dfltProbRnk_MC and setting the default rank = 3.

 

References

[1]          Hull J. and White, A., (Fall 2000), ‘Valuing Credit Default Swaps I, No Counterparty Default Risk’, The Journal of Derivatives, 8 (1) , p. 29-40.

[2]          Jarrow R., Lando, D. and Turnbull, S., (1997), ‘A Markov model for the term structure of credit risk spreads’, The Review of Financial Studies 10, p. 481- 523.

[3]          Luo, L., (2005), ‘Bootstrapping default probability curves’, Journal of Credit Risk 1 (4), p. 169 – 179.

[4]          J. P. Morgan, (1997), ‘CreditMetrics – Technical Report’.

 

 

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.