Mingze Gao

Estimate Merton Distance-to-Default

| 4 min read

Merton (1974) Distance to Default (DD) model is useful in forecasting defaults. This post documents a few ways to empirically estimate Merton DD (and default probability) as in Bharath and Shumway (2008 RFS).

The Merton Model

The total value of a firm follows geometric Brownian motion,

dV=μVdt+σVVdW\begin{equation} dV = \mu Vdt+\sigma_V VdW \end{equation}


Assuming the firm has one discount bond maturing in TT periods, the equity of the firm can be viewed as a call option on the underlying value of the firm with a strike price equal to the face value of the firm's debt and a time-to-maturity of TT.

The equity value of the firm is hence a function of the firm's value (Black-Scholes-Merton model):

E=VN(d1)erTFN(d2)\begin{equation} E=V\mathcal{N}(d_1)-e^{-rT}F\mathcal{N}(d_2) \end{equation}



d1=ln(V/F)+(r+0.5σV2)TσVT\begin{equation} d_1 = \frac{\ln(V/F)+(r+0.5\sigma_V^2)T}{\sigma_V \sqrt{T}} \end{equation}

with d2=d1σVTd_2 = d_1-\sigma_V \sqrt{T}.

Moreover, the volatility of the firm's equity is related to the volatility of the firm's value, which follows from Ito's lemma,

σE=(VE)EVσV\begin{equation} \sigma_E = \left(\frac{V}{E}\right)\frac{\partial E}{\partial V}\sigma_V \end{equation}

In the Black-Scholes-Merton model, EV=N(d1)\frac{\partial E}{\partial V}=\mathcal{N}(d_1), so that

σE=(VE)N(d1)σV\begin{equation} \sigma_E = \left(\frac{V}{E}\right)\mathcal{N}(d_1)\sigma_V \end{equation}

We observe from the market:

We then infer and solve for:

Once we have VV and σV\sigma_V, the distance to default (DD) can be calculated as

DD=ln(V/F)+(μ0.5σV2)TσVT\begin{equation} DD=\frac{\ln(V/F)+ (\mu-0.5\sigma_V^2)T}{\sigma_V\sqrt{T}} \end{equation}


The implied probability of default, or expected default frequency (EDF, registered trademark of Moody's KMV), is

πMerton=N(DD)\begin{equation} \pi_{Merton} = \mathcal{N}\left(-DD\right) \end{equation}


An iterative approach

To estimate πMerton\pi_{Merton}, an iterative procedure can be applied instead of solving equations (2) and (5) simultaneously (see Crosbie and Bohn (2003), Vassalou and Xing (2004), Bharath and Shumway (2008), etc.).

  1. Set the initial value of σV=σE[E/(E+F)]\sigma_V=\sigma_E[E/(E+F)].
  2. Use this value of σV\sigma_V and equation (2) to infer the market value of firm's assets every day for the previous year.
  3. Calculate the implied log return on assets each day, based on which generate new estimates of σV\sigma_V and μ\mu.
  4. Repeat steps 2 to 3 until σV\sigma_V converges, i.e., the absolute difference in adjacent estimates is less than 10310^{-3}.
  5. Use σV\sigma_V and μ\mu in equations (6) and (7) to calculate πMerton\pi_{Merton}.

A naïve approach

A naïve approach by Bharath and Shumway (2008) that does not solve equations (2) and (5) is constructed as below.

  1. Approximate the market value of debt with the face value of debt, so that D=FD=F.
  2. Approximate the volatility of debt as σD=0.05+0.25σE\sigma_D=0.05+0.25\sigma_E, where 0.05 represents term structure volatility and 25% of equity volatility is included to allow for volatility associated with default risk.
  3. Approximate the total volatility as σV=EE+DσE+DE+DσD\sigma_V = \frac{E}{E+D} \sigma_E + \frac{D}{E+D} \sigma_D
  4. Approximate the return on firm's assets with the firm's stock return over the previous year rit1r_{it-1}.

The naïve distance to default is then

naı¨ve DD=ln[(E+F)/F]+(rit10.5σV2)TσVT\begin{equation} \text{naïve } DD=\frac{\ln[(E+F)/F]+ (r_{it-1}-0.5\sigma_V^2)T}{\sigma_V\sqrt{T}} \end{equation}

and the naïve default probability is

πnaı¨ve=N(naı¨ve DD)\begin{equation} \pi_{\text{naïve}} = \mathcal{N}(-\text{naïve } DD) \end{equation}


The naïve method is too simple and skipped for now.

Here I discuss the iterative approach.

Original SAS code in Bharath and Shumway (2008 RFS)

The original code is enclosed in the SSRN version of Bharath and Shumway (2008), and was available on Shumway's website.

However, there are two issues in this version of code:

  1. The initial value of σV\sigma_V is not set to σE[E/(E+F)]\sigma_E[E/(E+F)] as described in the paper.
  2. It does not use the past year's data but the past month.
    • At line 36, cdt=100*year(date)+month(date) accidentally restricts the "past year" daily stock returns to the "past month" later. Note that at line 42-43 it merges by permno and cdt, where cdt refers to a certain year-month. We can pause the program after this data step to confirm that indeed there is only a month of data for each permno.
    • A correction is to change line 36 to cdt=100*&yyy.+&mmm.;.

Other issues are minor and harmless.

A copy of this version can be found here on GitHub.

My code

Based on the original SAS code in Bharath and Shumway (2008), I made some edits and below is a fully self-contained SAS code that executes smoothly. Note that I've corrected the above issues.