Implied volatility: what it is and how to calculate it
Implied volatility is the volatility that, plugged into the Black-Scholes formula, gives an option’s market price. It is the market’s estimate of how much the stock will move between now and expiry, expressed as an annualised standard deviation of returns.
Historical volatility looks backwards at how much a stock did move. Implied volatility looks forwards: it is read from what people are paying for options today. Traders quote options in implied volatility rather than in price, because it lets them compare options with different strikes and expiries on one scale.
What an implied volatility number means
An implied volatility of 20% says the market prices the stock as if its annual returns had a standard deviation of 20%. Because volatility scales with the square root of time, that is about 20% ÷ √252 ≈ 1.26% a trading day, or 20% ÷ √12 ≈ 5.8% a month. Under the model’s normal assumption, the stock has roughly a two-in-three chance of ending the year within one standard deviation of where it started.
The best-known implied volatility is the Cboe Volatility Index (VIX), which measures the 30-day volatility implied by S&P 500 index options. It tends to jump when markets fall, which is why it is called the fear gauge.
How to calculate implied volatility
There is no formula that gives implied volatility directly, so it is found numerically: guess a volatility, price the option with Black-Scholes, compare with the market price, and adjust. It always has exactly one answer, because a call’s price rises steadily with volatility:
Newton’s method finds the crossing fast. Each step moves the guess by the pricing error divided by vega, the slope of the curve. For a one-year at-the-money call trading at 12.00 it takes three steps:
from math import exp, log, sqrt
from statistics import NormalDist
nd = NormalDist()
N, n = nd.cdf, nd.pdf
def bs_call(S, K, T, r, sigma):
d1 = (log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * sqrt(T))
d2 = d1 - sigma * sqrt(T)
return S * N(d1) - K * exp(-r * T) * N(d2)
def implied_vol(price, S, K, T, r, guess=0.3, tol=1e-8):
"""Newton's method: step sigma by (model - market) / vega until they agree."""
sigma = guess
for i in range(50):
d1 = (log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * sqrt(T))
vega = S * n(d1) * sqrt(T)
diff = bs_call(S, K, T, r, sigma) - price
print(f"step {i}: sigma = {sigma:.6f}, model - market = {diff: .6f}")
if abs(diff) < tol:
return sigma
sigma -= diff / vega
raise RuntimeError("did not converge")
iv = implied_vol(price=12.00, S=100, K=100, T=1, r=0.05)
print(f"implied volatility = {iv:.4%}")step 0: sigma = 0.300000, model - market = 2.231255 step 1: sigma = 0.241195, model - market = 0.002953 step 2: sigma = 0.241117, model - market = 0.000000 step 3: sigma = 0.241117, model - market = -0.000000 implied volatility = 24.1117%
So a price of 12.00 implies a volatility of 24.11%, above the 20% that gives the model price of 10.45. Newton’s method can overshoot for options far from the money, where vega is tiny, so production code falls back to bisection there. The Black-Scholes calculator on this site uses bisection and solves for calls or puts.
The volatility smile and skew
If Black-Scholes were exactly right, every option on the same stock and expiry would have the same implied volatility. In real markets they do not. Plot implied volatility against strike and you usually get a smile or, for stock indices, a skew: low strikes carry higher implied volatility than high ones.
The skew exists because traders pay extra for protection against crashes, and because real returns have fatter tails than the normal distribution the model assumes. It is the clearest evidence of the model’s limits, and models such as local volatility and stochastic volatility (Heston, SABR) were built to reproduce it.
How traders use implied volatility
- Comparing options. A 2.00 option and a 9.00 option can be equally expensive; their implied volatilities say which is richer.
- Trading volatility. Buying an option and delta hedging it profits if the stock then moves more than its implied volatility said.
- Gauging events. Implied volatility rises before earnings and falls right after, as the uncertainty resolves.
- Simulating prices. It is the σ fed into geometric Brownian motion when pricing other options on the same stock.
Learn this on your phone, one short lesson at a time
QF-Learn turns topics like this into five-minute lessons with quizzes, finance games and certificates. It is free, and it is coming to Android and iOS. Leave your email and you will be first to get it.