I currently have a local volatility model that uses the standard Black Scholes assumptions.

When calculating the volatility surface, what causes the difference between the call volatility surface, and the put surface?

  • 1
    $\begingroup$ Recall that options on shares of stocks are usually American style, where put-call parity does not hold, so neither the equality in volatility. $\endgroup$
    – FKaria
    Commented Feb 5, 2012 at 2:11
  • $\begingroup$ This question would merit to be rephrased: if you compute the volatility surface implied by the local vol model that you have calibrated, then the Put and Call surfaces will be identical. Now if you ignore the local volatility aspect of the question, yes the market quotes different prices for put and calls, and the put-call parity only holds within a spread. $\endgroup$
    – jherek
    Commented Oct 21, 2019 at 13:30

3 Answers 3


The reason for put and call volatilities to appear different is that the implied vol has been calculated using different drift parameters than those implied by the market.

Let's take everything in the model as given except the interest rate $r$ and the volatility $\sigma$. For European options we have the Black-Scholes formula for put and call values $V_{P,C}$

$$ V_{P,C}=BS_{P,C}(r,\sigma) $$

Now, although it is common practice to run this equation backwards to "imply" the volatility $\sigma$

$$ \sigma_{\text{Imp}} = BS^{-1}_{\sigma}(r,V) $$

we can see that from a mathematical point of view we could imply $r$ instead

$$ r_{\text{Imp}} = BS^{-1}_{r}(\sigma,V). $$

Obviously, using a different $r$ affect options prices and therefore implied volatilities.

Consider now the consequences of receiving prices from someone using the Black-Scholes model. For concreteness I will take $T=1, K=S=100$ and no carry cost. Let's say you think $r=1\%$. I give you put and call prices of $7.95$ and $11.80$. You will get a put vol of $21.3\%$ and a call vol of $28.6\%$. Seem familiar?

That's because I actually generated those prices using $r=4\%$. If you had used the same drift parameter $r$ as I had employed, you would have computed both volatilities to be $25\%$.

Generally, risk-free interest rates are not too hard to pin down, but we have other effects on drift where the parameters are not so obvious. This includes dividends, borrow costs and funding costs. Each of these terms is typically treated as a deterministic "carry cost" but even in the simple case of European options it is not necessarily clear what values should be used for them.

So to your answer your question, the difference between put and call volatility surfaces is a symptom of your drift parameters failing to match those of the market.

  • $\begingroup$ Interesting. Is it possible / feasible to use put-call parity as a constraint when calibrating your model to market data? $\endgroup$
    – Olaf
    Commented Jan 29, 2015 at 21:59
  • 1
    $\begingroup$ You can throw it into the objective function, but typically the errors are within the bid-offer spread. When they are not, that generally implies that you should be using a better borrow rate, which can be calibrated either as part of the overall vol surface fit, or in a separate pre-calibration stage that only looks at parity. Also worth noting is that, usually one calibrates (almost) exclusively to the out-of-the-money options. $\endgroup$
    – Brian B
    Commented Jan 30, 2015 at 19:23
  • $\begingroup$ It is interesting to point this out, but it's only a very rough representation of what may be going on there. $\endgroup$
    – jherek
    Commented Oct 21, 2019 at 13:31

The market will quote Call and Put options prices within a bid-ask spread. In order to imply the volatility, one may choose to use the bid, the ask, or the mid. Although the mid is a better idea in general, there is no right choice. The point is that there is always a spread in the implied volatility.

Now, the Put-Call parity only holds within the a spread. And thus, the call and put implied volatility surfaces are only "equal" within a spread. The more out-of-the-money, the larger will be the spread in practice.

What are the causes for the spread? liquidity, transaction costs, risk of default.

You will note that all of the above is independent of any local volatility model. The Dupire LV model assumes a continuum of arbitrage-free option prices across strikes and expiries, which is not something the market quotes directly. You must use some intermediate model for it (a parameterization, typically). Within the LV model, the implied vol surfaces for puts and calls will match exactly as mentioned by @AlexeyKalmykov, but won't match exactly the market vols (as there is no exact market implied vol anyway).


Implied volatility is the same for European call and European put options (it can be seen from Put-Call parity). If you use non-parametric local volatility model and fit it to implied volatility surface, then you should get exact fit. Therefore, local volatility surface should be the same for call and put options.

  • $\begingroup$ The put-call parity says that the implied volatility of a put and call at the same strike and time is the same, but in the market thats not true. And I was wondering why and what causes the put surface to be so different from the call surface. $\endgroup$
    – Jeffrey
    Commented Feb 4, 2012 at 23:00
  • $\begingroup$ @Jeffrey Yes, it holds only for put and call with the same strike and time to maturity. What do you mean by "but in the market thats not true"? Do you mean that you observe different implied volatility for put and call with the same strike and time to maturity? $\endgroup$ Commented Feb 4, 2012 at 23:10
  • $\begingroup$ Yes thats exactly what I mean. For example, deep in the money puts have a super high implied volatility is this because there is no volume on them so the price of the option is manipulated? $\endgroup$
    – Jeffrey
    Commented Feb 4, 2012 at 23:54
  • 1
    $\begingroup$ @Jeffrey Yes, as far as there is no volume, the price is not representative. You shouldn't use ITM option prices for calibration of your local volatility model. $\endgroup$ Commented Feb 5, 2012 at 10:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.