How to make the volatility surface free of put-call parity arbitrage? If I bootstrapped the implied vol from a call price and plugged it into the BS model to have a put price, what if it violates the put-call parity?

It looks like I should adjust the implied volatility to make the put-call parity hold. But is it ok for the difference between the market price and the model price using our implied volatility?

I wonder how this situation is handled in practice, and if it violates the parity, how to arbitrage? An example would be much appreciated.

  • 1
    $\begingroup$ The BS model satisfies put-call parity. Hence if you find the implied vol from a call price $\sigma(K)$ and use it to price a put for the same strike, the parity will be satisfied. $\endgroup$
    – fes
    Jul 10, 2023 at 16:54
  • 3
    $\begingroup$ What market do you look at? Most vanilla equity options are American, meaning there is no put call parity. $\endgroup$
    – AKdemy
    Jul 11, 2023 at 21:53
  • $\begingroup$ Then how about for fixed income? Like for European swaption? $\endgroup$
    – Parting
    Jul 13, 2023 at 5:06

2 Answers 2


That's a great question. It seems on first glance a bit freakish that pricing models are automatically able to take care of such arbitrage possibilities.

There are 2 ways to understand this:

  1. Models aren't really original, they're equivalent to solving PDE's (Feynman Kac theorem). The content of the PDE is basically if you get the volatility of the hedging instrument correct (equal to its average realized vol), you will prevent arbitrage.

So if you price all instruments with the same estimate of volatility of the underlying asset, you have no chance of creating an arbitrage as all instruments are priced fairly.

P.S. Even if your vol estimate is wrong, but it is consistent across pricing calls and puts, you will prevent call put parity arbitrage (but there may be money to be made in gamma trading).

  1. You can also understand this as expectations are additive. So $E(Put)=E(K-C+S)$ simply because $Put=K-C+S$ (no wonder prices are expectations!). So as long as expectations are taken w.r.t the same density, the parity is automatically taken care of.

Put-Call parity is usefull for implied vola construction in the following way: You know from put-call parity that the vola of the call should equal the vola of the put. As you are trying to determine the vola surface, you need to adjust other parameters to make sure both volas are equal. There are two ways (or basically three) how you could accomplish that:

  • Adjust the implied dividend yield manually. Increasing the dividend yield impacts the price of a put differently from that of a call option. Thus, you can finetune the implied volas.
  • Adjust your tax factor div*(1-tax) to get your dividends right: Traders usually apply a tax factor to correct dividends if they are too much off those dividend estimates that you can see on Bloomberg or your own models. This seems ok as you don't get full dividends once its paid off.
  • In cases where your tax factor is higher than 50% you need to find other smart ways, Tax factors above 100% are also problematic: Here you can use the repo-rate to adjust your option prices accordingly. Sorry, i'm at work and don't have too much time - if you find some typos, please be so kind and edit my post, thank you Thomas

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.