The Dupire Equation
The grid of option prices already knows what volatility has to be at every price level and every future date. Dupire's formula pulls it out with a single division: how fast a call gains value when you push its expiry further out, divided by how sharply prices bend across strikes.
Prerequisites: Local Volatility and Dupire's Formula, Breeden-Litzenberger Formula, Implied Volatility Surface
A desk quotes hundreds of options on the same index: dozens of strikes at each of a dozen expiries. Every one of them implies a different Black-Scholes volatility, which is embarrassing, because Black-Scholes assumes there is only one. You cannot price a barrier option or a note off "the" volatility when the market is telling you thirty different numbers. What you want is a single model that spits out every one of those quotes correctly and can then be pointed at a product nobody quotes. Dupire's result is that such a model exists, that it is unique, and that you do not have to search for it — you can read it straight off the price grid with arithmetic.
Ink in a glass of water
Put a drop of ink in still water and it spreads. If the water is warm in one corner and cold in another, the drop spreads fast where it is warm and slowly where it is cold. Now flip the problem round. You are shown time-lapse photographs of the ink and asked to infer the temperature at each point. You can do it: look at one spot, measure how quickly the ink concentration there is changing, compare it to how sharply the concentration is peaked there, and the ratio tells you the local diffusion speed. Fast spreading with a gentle peak means hot water. Slow spreading with a sharp peak means cold water.
The option surface is exactly this photograph. The "ink" is the market's probability distribution for where the index will finish. It starts as a spike at today's price and spreads as the expiry gets further away. The distribution at each expiry is not something you have to guess — it is already in the option prices, by Breeden-Litzenberger. So you have the time-lapse. Dupire's formula is the "infer the temperature" step, and the temperature is local volatility.
The forward equation
Write for the market price today of a call struck at expiring at . Note the unusual arguments: normally you fix the option and vary the spot, but here you fix today and walk around the grid of contracts. Set interest rates and dividends to zero so the arithmetic stays clean. Dupire's forward equation says
The pieces, one at a time. is the calendar slope: how many cents the call gains if you keep the strike fixed and push its expiry one year further out. is the strike curvature: how sharply call prices bend as you walk across strikes, which is what a butterfly spread costs. And is the unknown — the local volatility, meaning the volatility the model is instructed to use at the moment the index is sitting at level on date , and nowhere else.
In plain English: the rate at which a call gets more valuable with extra time equals half the local variance times the price level squared times the butterfly cost. It is the ink statement — spreading speed equals diffusivity times peakedness.
Rearranged, it is a recipe rather than an equation:
In plain English: to find the volatility the model must use at price level on date , divide the calendar slope by the butterfly curvature at that same point, and double it. Every quantity on the right is observable. Nothing is fitted.
Dupire turns calibration into division. Implied volatility is an average over all the paths that reach a strike; local volatility is the instantaneous number at one point on the grid. The forward equation is the machine that converts averages back into instantaneous values.
Worked example 1: a flat surface must give back a flat answer
The sanity check. If the market quotes the same 20 percent volatility at every strike and expiry, Dupire's formula had better return 20 percent everywhere. Take an index at 100, zero rates, and all options priced with Black-Scholes at 20 percent volatility. We will compute the local volatility at , .
- The calendar slope. The one-year, 100-strike call is worth 7.9656. The nine-month is worth 6.9013 and the fifteen-month is worth 8.9021. So the slope is per year.
- The strike curvature. From the same surface, the 90-strike one-year call is 13.5891 and the 110-strike is 4.2920. The 90 / 100 / 110 butterfly costs . Divide by the strike gap squared: .
- Divide. , so percent.
Twenty percent in, twenty-and-a-quarter percent out. The extra quarter point is not a flaw in Dupire — it is the coarse grid. Using exact derivatives instead of these wide finite differences gives and , and on the nose. Remember that quarter point: it is the whole practical problem with the formula.
Worked example 2: skew doubles on the way in
Now a real surface. One year out, with the index at 100, suppose the market quotes 22 percent at strike 95, 21 percent at 100, and 20 percent at 105 — a mild downside skew of 0.2 volatility points per 1 percent of strike.
Implied volatility at a strike is roughly the average of the local volatilities the index passes through on its way there. Going from 100 to 95 the index visits levels between the two, so to a first approximation
In plain English: the quoted volatility for a strike sits halfway between the local volatility here and the local volatility there. Turn it round to solve for the local values:
- At the money, percent, unchanged.
- At 95: percent.
- At 105: percent.
Check it back: and . Both quotes reproduced.
The implied curve runs 22 / 21 / 20. The local curve runs 23 / 21 / 19 — exactly twice as steep. An average is always gentler than the thing it averages, so unwinding the average has to steepen it. This is the "rule of two", and it is the single most useful fact about local volatility.
It also predicts behaviour. Local volatility is pinned to the index level, so if the index falls from 100 to 95, the model says instantaneous volatility becomes 23 percent — the at-the-money quote should jump 2 points for a 5 percent fall, twice the skew. Desks measure that response and get roughly 1.5 times the skew, not 2 (Skew Stickiness Ratio). Local volatility fits every price and still overreacts.
Drag the skew slider below. Every column you steepen makes the local volatilities behind it steepen twice as much, which is why a surface that looks tame can imply a violent local volatility function.
What this means in practice
Dupire is the calibration layer under most exotics pricing. A desk fits a smooth surface first — usually SVI per expiry — then applies the formula on a grid, then feeds the resulting to a PDE solver or Monte Carlo engine that prices the barrier, the cliquet or the note. Because the model reprices every vanilla exactly, the exotic's price is at least consistent with what the desk can trade.
The trouble is the division. The denominator is a butterfly price, which is small, and out in the wings it is very small; dividing a noisy numerator by a near-zero denominator produces local volatilities of 300 percent or negative variances. That is why nobody applies Dupire to raw quotes. You fit an arbitrage-free surface first, precisely so that the butterfly stays positive and the calendar slope stays positive everywhere (Arbitrage-Free Volatility Surfaces).
And even done perfectly, the "rule of two" problem remains: right prices, wrong dynamics. That gap is what local-stochastic volatility exists to close.
Local volatility is not a forecast of future volatility, and is not "what volatility will be if the index hits 80". It is a bookkeeping device: the number the model must use at that node so that today's vanilla prices come out right. The related slip is comparing local and implied volatility as if they were the same quantity in different units. They are not — one is instantaneous and one is an average, which is exactly why they differ by a factor of two in slope.
Practice
- A surface is quoted at a flat 25 percent. Without computing anything, what does Dupire's formula return at every node, and why?
- One-year implied volatilities are 24 percent at strike 90 and 20 percent at strike 100, with the index at 100. Estimate the local volatility at 90.
- The butterfly at a deep out-of-the-money strike costs 0.0004 and the calendar slope there is measured as 0.02 with an uncertainty of 0.01. What is the range of local volatilities implied, and what does that tell you about wing extrapolation?
Answers. (1) 25 percent everywhere — a flat surface is the Black-Scholes surface, and Dupire is exact for it. (2) percent. (3) ranges over , roughly 0.0062 to 0.0185, so volatility between about 8 and 14 percent — a factor-of-two uncertainty from one basis point of price noise. Wings must be parameterised, never differentiated.
Key terms
- Local volatility — the volatility the model uses at one price level on one date.
- Calendar slope — value gained per extra year of life, at a fixed strike.
- Strike curvature — the butterfly cost, and by Breeden-Litzenberger the risk-neutral density.
- Forward equation — an equation in strike and expiry rather than spot and time; it prices all contracts at once from one solve.
- Rule of two — near the money, local volatility skew is about twice implied volatility skew.
Related concepts
Practice in interviews
Further reading
- Dupire (1994), Pricing with a Smile
- Gatheral, The Volatility Surface (Ch. 1-2)
- Derman & Kani (1994), The Volatility Smile and Its Implied Tree