Volatility Smile Calculator
Calculator help
Hi! Ask me anything about using this calculator: what an input means, where to find a value, or why you got a result.
An AI assistant (Claude) that reads this page. It can make mistakes: check important numbers, and confirm design decisions with a licensed engineer.
Methodology, equations and example
If the Black-Scholes model were exactly right, every option on the same underlying and expiration would have the same implied volatility. In practice the implied volatility changes with the strike, and plotted against the strike it traces a curve called the volatility smile. For stock indexes the curve usually slopes down, with low strikes (out-of-the-money puts) reading higher volatilities than high strikes. That slope is the skew. It reflects the market paying more for protection against large falls than the lognormal distribution in Black-Scholes allows for.
This calculator solves the implied volatility of each strike in a chain with the same method as the implied volatility calculator, then fits a smooth curve through them.
Which option at each strike
At most strikes both a call and a put trade. In theory put-call parity makes their implied volatilities equal. In practice bid-ask spreads and early exercise make them differ, and the out-of-the-money option is the more reliable of the two. Its price is all time value, so a cent of error moves its volatility less. The calculator fits the put at strikes below the forward and the call at or above it, as the CBOE does for the VIX. When that price is missing, or lies outside the option's no-arbitrage bounds, it uses the other option. A strike with neither is left out of the fit and flagged.
The forward price
Strikes are measured against the forward price F, the price for delivery at expiration, not the spot price S. With a continuous dividend yield q:
F = S e^((r − q)T)
When the dividend yield is uncertain, the forward can be read from the chain instead. Put-call parity, C − P = e^(−rT)(F − K), gives
F = K + (C − P) e^(rT)
at any strike with both prices. The calculator uses the strike nearest S, and backs out the yield q = r − ln(F/S)/T that makes the model match.
The fitted smile
Each strike is placed by its log-moneyness k = ln(K/F), so k = 0 is at the money, negative k is below the forward and positive k above it. The calculator fits a quadratic by least squares, choosing a, b and c to minimize the sum of squared differences between the strikes' volatilities and
σ(k) = a + b k + c k²
- a is the at-the-money volatility, the fitted volatility at the forward.
- b is the skew, the slope dσ/dk at the money. A negative b means volatility rises as the strike falls.
- c sets the curvature. The second derivative is 2c, and a positive c bends both wings up into a smile.
The results also read the curve 10 % below and above the forward, at k = ln(0.9) and ln(1.1), which puts the skew in volatility points. The 25-delta call and put are the strikes where the call's delta is 0.25 and the put's is −0.25, each at its own fitted volatility. From them come the two quotes currency and index desks use: the risk reversal, σ(25Δ call) − σ(25Δ put), which measures the skew, and the butterfly, the average of the two minus the at-the-money volatility, which measures the curvature.
A quadratic is the simplest curve that captures level, slope and bend, and it fits a single expiration over a moderate range of strikes well. It can turn up too sharply far out in the wings, and it does not rule out arbitrage between strikes. Professional models such as SVI (stochastic volatility inspired) are built to avoid both. Read the fit error and the strike table to judge whether the quadratic is good enough for your chain.
Example
The example is an illustrative chain, not a market quote. Every price was made with the Black-Scholes formula at the volatility
σ(k) = 0.22 − 0.10k + 0.30k²
for a $100 stock with 91.25 days to expiration, a 4 % risk-free rate and a 1 % dividend yield, then rounded to the cent. The forward is $100 e^((0.04 − 0.01) × 0.25) = $100.75.
At the $90 strike, k = ln(90/100.75) = −0.1129, below the forward, so the put is used. The generating smile gives σ = 0.22 + 0.0113 + 0.0038 = 23.51 %, which prices the put at $0.99. Solving that rounded price back gives 23.47 %. The calculator does this at all eleven strikes and fits a = 21.98 %, b = −0.1009 and c = 0.3043, close to the 22 %, −0.10 and 0.30 that made the chain. The small differences come from rounding: the $0.07 put at $75 is accurate to only about 7 %, which is a tenth of a volatility point. The fit error is about 0.05 volatility points.
On the fitted curve, a strike 10 % below the forward reads 1.4 points above the at-the-money volatility and one 10 % above reads 0.7 points below it. The 25-delta risk reversal is −1.46 points and the butterfly is +0.13 points.