Skip to content
All library documents

Why Black–Scholes Can Fail for In-the-Money American Put Implied Volatility

Article Quant Q&A · Author: 10uss

Summary

The document describes difficulty recovering implied volatility for in-the-money American put options using Black–Scholes formulas. The dataset contains American-style options, while the calculation assumes European exercise; it also uses discrete dividends and a risk-free rate. The author reports that calls and out-of-the-money puts are generally solvable, whereas many in-the-money puts produce large pricing discrepancies. The example concerns a large option dataset and includes matched call observations for comparison.

Several possible workarounds are raised: infer volatility from out-of-the-money options, use calls under restrictive assumptions, or change the rate input. The author notes important weaknesses in these approaches, including call-put volatility differences, the American versus European exercise distinction, and the effect of negative rates. No definitive diagnosis or solution is provided. The main methodological lesson is that a failed inversion may reflect model mismatch, input assumptions, or numerical sensitivity when intrinsic value dominates the option price; a European Black–Scholes inversion is not automatically suitable for American puts with discrete dividends. The discussion supplies a problem report, not a controlled analysis establishing which issue dominates.

Key ideas

  • The reported implied-volatility failures are concentrated in in-the-money American puts priced with a Black–Scholes framework.
  • American exercise and discrete dividend treatment can create a mismatch with the European-style pricing assumption.
  • Using out-of-the-money puts or calls as proxies requires assumptions about call-put volatility and exercise features.
  • Changing the risk-free rate may improve fit but does not by itself establish that the input is appropriate.
  • The document offers no tested resolution and flags numerical sensitivity when intrinsic value dominates price.

Tags

Full text
# What are the main problems for calculating the implied volatility of in the money American put options?


# What are the main problems for calculating the implied volatility of in the money American put options?












As stated in the question I have a problem with calculating the implied volatility for in the money put options I have a data set of 2.6 million American style plain-vanilla call and put options. For these options I need to calculate the implied volatility (already wrote a Python script). For call options and out-of-the-money put options, I am able to determine almost 100% of the implied volatilities. However, it does a really bad job for calculating in the money put options (see also the graph below).

For calculating the implied volatility I use the Black-Scholes formulas for plain-vanilla put and call options. My data set only contains American options (instead of the European assumption of BSM) and is downloaded from the Euronext website and freely available (https://www.euronext.com/nl/reports-statistics/derivatives/daily-statistics).

Furthermore, I make use of discrete dividends instead of continuous dividends. Main reasons for this is, that dividends aren't continuous and I need to price barrier options, which are very sensitive for ex-dividend dates. I also discount the expected dividends (ex-dividend) between t and maturity against Eonia rate (same rate as the risk-free for the BSM).

Also this data set contains options from 1-1-2017 until now (negative Eonia rate). Below you see a print-out of the first 10 put options for which I am not able to calculate the implied volatility. The error column is the difference between the quoted price (Quoted_Put) and BSM price (P_BSM). I also added the IV and the quoted price for the call counterpart (same underlying, strike, maturity and quoted date).

My question is pretty simple does some one has an academic or practical suggestion how I can solve this problem? Or maybe someone see a pattern which needs more attention? It surprises me that I do not have a problem with calculating the implied volatility of other options, only in the money put options does give problems.

I checked the formulas twice in Excel and Python (similar results) but maybe did I make a wrong assumption? Or maybe someone encountered a similar problem and can tell me how he or she solved it? If you have any further questions, I am happy to provide extra information, graphs and spreadsheets.

A couple of non-preferable solutions which crossed my mind:

I could use only the out of the money options (in this case I could easily drop most of the errors), for which I need to assume that the implied volatility is the same for the call and the put (well known this is not true and also visible in the spreadsheet). This is not a very strong argument (main argument is that is solves my problem). This solution is also suggested by a contributor on another question (Implied Volatility Calculation for Deep In The Money Calls, Numerical Issues). But it is not really clear why this is rational/academic feasible to do (@Mark Joshi stated: the intrinsic value of the in the money tends to swamp the numerics)

I also could use only call options with the same assumptions as the before mentioned "solution". In an interest rate positive environment an American call and an European call are equal to each other. However, the Eonia is already negative since 2014.

A different risk-free rate (i.e.) Euribor 3M also improves the results but I heard en read that in practice traders use the Eonia rate. So, also not a very strong solution. Furthermore, the Euribor is also negative.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.