What's new

Inconsistency in Stulz's BSM Equity Formula


New Member
In the study notes for Stulz, the BSM equity price formula's D1 term is (ln(value of assets/face value) + (r + (variance of asset returns)/2) * T) / (std dev asset returns) * T^.5

However, in the attached spreadsheet, the BSM formula is closer to what we're used to seeing: (ln(value of assets/face value) / (std dev asset returns) * T^.5) + (1/2)*(std dev)*T

Also, the spreadsheet, cell E40 on the tab: "Stulz' Merton" has the variance being ADDED to the risk free rate in d1 (r + (variance of asset returns)/2) , but the study notes under "Calculate the probability of default under the Merton model" show this as being subtracted (r - (variance of asset returns)/2) .

Lastly, under the same heading in the notes, the above formula: (ln(value of assets/face value) / (std dev asset returns) * T^.5) + (1/2)*(std dev)*T is quoted as D2 but in fact seems to be the traditional D1 since we're not subtracting the standard deviation of returns * square root of T.

Why the inconsistencies?
Last edited:

David Harper CFA FRM

David Harper CFA FRM
Staff member
Hi @kchristo I don't think you attached a spreadsheet, but this perceived confusion is generally due to the fact that, because the normal is symmetrical, we can solve for PD = N(-DD) or N(DD) depending on "which side" of the normal return distribution we are using; recall that the prices are lognormal such that the c.c. return is normal and this merton model is really just standardizing the normal return distribution about an expected future firm asset value. In all likelihood, both/all of your numerical answers will get to the same result.

Please see https://www.bionicturtle.com/forum/threads/merton-model-a-summary-of-the-issues.5646/ including my follow-on response with respect to Stulz's alternative (but equivalent!) expression at https://www.bionicturtle.com/forum/threads/merton-model-a-summary-of-the-issues.5646/post-18846 which links to:
i EIA,

They are the same. As is sometimes the case, the only difference is notation or presentation. (although, given Hull's wide audience, several editions, I'd personally give Hull the benefit of the doubt: the odds of Hull being incorrect on a BSM type equation are extremely low, IMO. Whereas we find new issues with the Stulz text every year, no joke)

See http://www.bionicturtle.com/forum/threads/merton-formula.5517/#post-15553
Stulz d = ln(V/P(T)F)/[sigma*SQRT(T)] + 1/2*sigma*SQRT(T)
But P(T)F is just the discounted debt face value, the discounted strike price = K*exp(-rt), so:
Stulz d = ln[V/K*exp(-rT)]/[sigma*SQRT(T)] + 1/2*sigma*SQRT(T) =
Stulz d = ln[V/K*exp(-rT)]/[sigma*SQRT(T)] + (1/2*sigma^2*T)/[sigma*SQRT(T)] =
Stulz d = ln[V/K*exp(-rT)] + (1/2*sigma^2*T) /[sigma*SQRT(T)], since LN[V/K*exp(-rT)] = LN(V/K) *rT,
Stulz d = ln(V/K) + rT + (1/2*sigma^2*T) /[sigma*SQRT(T)] = ln(V/K) + T*[r + (1/2*sigma^2)] /[sigma*SQRT(T)] = d1
i.e., you should get the same answer

The most common mistake is here to use the expected asset return (drift), which will be higher than the risk-free rate (I just recorded video on this yesterday, T6.c) but the risk-free rate is used here to price the equity. And it may be the only advantage of Stulz's presentation: his Pt(T)*F is the present value of the face value of the debt, which should encourage the correct use of the risk-free rate (r), which is explicitly parsed in Hull's d1, per your first formula.

This contrast between d2 (and d1 by extension) in Merton to compute equity value versus N(-d2) to compute risk neutal PD is a marvelous illustration of Jorion's VaR Chapter 1 distinction, which feels abstract until you encounter it, between:
Derivatives valuation which discounts to the present value mean of a risk-neutral distribution and therefore uses the risk-free rate: as above, we are applying derivatives valuation to price equity as a call option on the firm's assets ... versus ....
Risk measurement which estimates a tail in the future actual (physical) distribution and therefore uses the actual expected return in d2 (aka, distance to default)
I hope that helps,
I hope that resolves, thanks!