Local VolatilityDupire FormulaImplied Vol SurfaceForward Kolmogorov EquationSmile Dynamics

Dupire Local Volatility

Module 3 of 628 min readLevel: Hard

Setup

Market Context

The Black-Scholes model prices every option with a single constant volatility parameter. Once a volatility smile is observed — and on every liquid equity and index market it is — Black-Scholes becomes a quotation tool, not a pricing model. If you want to price a contract that depends on the whole distribution of STS_T (a barrier option, a cliquet, a variance swap), you need a model that is consistent with every quoted vanilla price simultaneously.

Dupire (1994) and Derman-Kani (1994) independently discovered that there is a unique diffusion model consistent with a complete, arbitrage-free implied vol surface. The instantaneous volatility in that model is a deterministic function of spot and time: σloc(S,t)\sigma_{loc}(S, t). This is the local volatility model. It is the theoretical foundation for all subsequent smile models and the baseline against which stochastic vol, rough vol, and jump models are compared.

INSIGHT

Financial insight. Local vol is not a model of how volatility evolves. It is an existence theorem: given market prices, a unique Markovian diffusion model is consistent with them. On an equity desk, local vol surfaces are calibrated daily and used to price and risk-manage barrier options, digitals, and cliquets. Its failure modes — in particular its unrealistic forward smile dynamics — motivate the entire zoo of stochastic vol models.

Assumptions

  • The underlying StS_t follows a continuous Itô diffusion with no jumps. Jump models require a different framework (Andersen-Andreasen, or Carr-Madan with a Lévy CF).
  • Interest rate rr and continuous dividend yield qq are deterministic functions of time tt only. Extensions to stochastic rates exist but require coupling the rate and equity dynamics.
  • A complete, smooth, arbitrage-free implied vol surface σimpl(K,T)\sigma_{impl}(K, T) is given. This means: (a) no calendar spread arbitrage — total variance w(K,T)=σimpl2(K,T)Tw(K,T) = \sigma_{impl}^2(K,T) \cdot T is non-decreasing in TT for fixed KK; (b) no butterfly arbitrage — the risk-neutral density qRN(K,T)0q_{RN}(K,T) \geq 0 for all (K,T)(K,T), where qRNq_{RN} is the second derivative of C(K,T)C(K,T) with respect to KK (Breeden-Litzenberger).
  • Options are European and continuously priced — the formula relies on a liquid surface. In practice, the surface must be interpolated; the interpolation must preserve no-arbitrage conditions.
  • We work under the risk-neutral measure Q\mathbb{Q} with numeraire erte^{rt}.

Theory

1. The Model SDE and the Forward Kolmogorov Equation

Under Q\mathbb{Q}, assume StS_t satisfies:

dSt=(rq)Stdt+σloc(St,t)StdWtQdS_t = (r - q)\, S_t\, dt + \sigma_{loc}(S_t, t)\, S_t\, dW_t^{\mathbb{Q}}

where σloc(S,t)>0\sigma_{loc}(S, t) > 0 is a deterministic function to be determined from market data. This is the most general scalar diffusion consistent with the no-arbitrage drift.

DEFINITION

Definition 3.1 (Transition Density). Let p(S,tS0,0)p(S, t \mid S_0, 0) be the risk-neutral transition density of StS_t. It satisfies the Fokker-Planck (forward Kolmogorov) equation:

pt=S[(rq)Sp]+122S2[σloc2(S,t)S2p]\frac{\partial p}{\partial t} = -\frac{\partial}{\partial S}\left[(r-q)S\, p\right] + \frac{1}{2}\frac{\partial^2}{\partial S^2}\left[\sigma_{loc}^2(S,t)\, S^2\, p\right]

with initial condition p(S,0S0,0)=δ(SS0)p(S, 0 \mid S_0, 0) = \delta(S - S_0).

The key insight is that the forward equation propagates the density forward in time — in the (S,t)(S, t) space of the terminal variable — rather than backward from the payoff.

2. The Breeden-Litzenberger Identity

Before deriving Dupire's formula, we need to connect option prices to the risk-neutral density. Let C(K,T)C(K, T) denote the undiscounted call price under Q\mathbb{Q}:

C(K,T)=erTEQ[(STK)+]=erTK(SK)p(S,T)dSC(K, T) = e^{-rT}\mathbb{E}^{\mathbb{Q}}\left[(S_T - K)^+\right] = e^{-rT}\int_K^\infty (S - K)\, p(S, T)\, dS

THEOREM

Theorem 3.1 (Breeden-Litzenberger, 1978). For a twice-differentiable call price function C(K,T)C(K, T):

2CK2(K,T)=erTp(K,T)\frac{\partial^2 C}{\partial K^2}(K, T) = e^{-rT}\, p(K, T)

where p(K,T)p(K, T) is the risk-neutral density of STS_T evaluated at KK.

Derivation. Differentiate C(K,T)=erTK(SK)p(S,T)dSC(K,T) = e^{-rT}\int_K^\infty (S-K)\,p(S,T)\,dS twice with respect to KK:

CK=erTKp(S,T)dS=erTQ(ST>K)\frac{\partial C}{\partial K} = -e^{-rT}\int_K^\infty p(S,T)\,dS = -e^{-rT}\,\mathbb{Q}(S_T > K)

2CK2=erTp(K,T)\frac{\partial^2 C}{\partial K^2} = e^{-rT}\,p(K, T) \quad \checkmark

This result is profound: the market prices of European calls across all strikes directly reveal the risk-neutral distribution of the underlying. It is the theoretical basis for model-free variance swap pricing and for the Dupire formula.

REMARK

Remark. The butterfly spread C(Kε,T)2C(K,T)+C(K+ε,T)ε2erTp(K,T)C(K-\varepsilon, T) - 2C(K,T) + C(K+\varepsilon, T) \approx \varepsilon^2 \cdot e^{-rT} p(K,T) gives the risk-neutral probability that ST[Kε,K+ε]S_T \in [K-\varepsilon, K+\varepsilon]. A negative butterfly price implies a negative risk-neutral density — a direct arbitrage. This is why butterfly arbitrage in the surface is a hard constraint.

3. Dupire's Formula

We now derive the central result. Apply the forward Kolmogorov equation to the call price.

Step 1. Differentiate C(K,T)=erTK(SK)p(S,TS0)dSC(K,T) = e^{-rT}\int_K^\infty (S-K)\,p(S,T\mid S_0)\,dS with respect to TT:

CT=rC(K,T)+erTK(SK)pTdS\frac{\partial C}{\partial T} = -r C(K,T) + e^{-rT}\int_K^\infty (S-K)\frac{\partial p}{\partial T}\,dS

Step 2. Substitute the forward Kolmogorov equation for p/T\partial p / \partial T:

erTK(SK)pTdS=erTK(SK)[S((rq)Sp)+122S2(σloc2S2p)]dSe^{-rT}\int_K^\infty (S-K)\,\frac{\partial p}{\partial T}\,dS = e^{-rT}\int_K^\infty (S-K)\left[-\frac{\partial}{\partial S}((r-q)Sp) + \frac{1}{2}\frac{\partial^2}{\partial S^2}(\sigma_{loc}^2 S^2 p)\right]dS

Step 3. Integrate by parts twice. Using the boundary conditions p0p \to 0 as SS \to \infty and p(K,T)0p(K,T) \geq 0:

  • First term: K(SK)(S[(rq)Sp])dS=(rq)KKpdS(rq)KSpdS\int_K^\infty (S-K)(-\partial_S[(r-q)Sp])\,dS = (r-q)K\int_K^\infty p\,dS - (r-q)\int_K^\infty Sp\,dS. Recognising the terms in CC and C/K\partial C/\partial K, this equals (rq)KC/K(rq)C-(r-q)K\,\partial C/\partial K - (r-q)C (up to the erTe^{rT} discounting).

  • Second term: K(SK)12SS(σloc2S2p)dS=12σloc2(K,T)K2p(K,T)\int_K^\infty (S-K)\frac{1}{2}\partial_{SS}(\sigma_{loc}^2 S^2 p)\,dS = \frac{1}{2}\sigma_{loc}^2(K,T)\,K^2\,p(K,T).

Step 4. Assemble and apply Breeden-Litzenberger to eliminate p(K,T)p(K,T):

CT=12σloc2(K,T)K22CK2(rq)KCKqC\frac{\partial C}{\partial T} = \frac{1}{2}\sigma_{loc}^2(K,T)\,K^2\frac{\partial^2 C}{\partial K^2} - (r-q)K\frac{\partial C}{\partial K} - qC

Solving for σloc2\sigma_{loc}^2:

THEOREM

Theorem 3.2 (Dupire, 1994). Given a smooth, arbitrage-free call price surface C(K,T)C(K,T), the unique local volatility consistent with those prices is:

σloc2(K,T)=CT+qC+(rq)KCK12K22CK2\sigma_{loc}^2(K, T) = \frac{\dfrac{\partial C}{\partial T} + qC + (r-q)K\dfrac{\partial C}{\partial K}}{\dfrac{1}{2}K^2\dfrac{\partial^2 C}{\partial K^2}}

The denominator is 12K2erTp(K,T)\frac{1}{2}K^2 e^{-rT} p(K,T) by Breeden-Litzenberger, which is positive whenever the surface is butterfly-arbitrage-free. The formula is only valid at points where p(K,T)>0p(K,T) > 0.

REMARK

Remark. Dupire's formula is exact — no approximation. Given the true call price surface (which encodes all risk-neutral information about STS_T), it recovers σloc\sigma_{loc} exactly. The approximations come in practice: the surface is interpolated from discrete quoted strikes and maturities, and the partial derivatives are computed numerically.

4. Reformulation in Implied Vol

It is numerically convenient to express Dupire's formula in terms of the implied vol surface σimpl(K,T)\sigma_{impl}(K, T) directly. Using C(K,T)=CBS(S0,K,r,q,σimpl(K,T),T)C(K,T) = C_{BS}(S_0, K, r, q, \sigma_{impl}(K,T), T) and applying the chain rule:

Define w(K,T)=σimpl2(K,T)Tw(K,T) = \sigma_{impl}^2(K,T) \cdot T (total implied variance) and y=ln(K/FT)y = \ln(K/F_T) (log-moneyness, FT=S0e(rq)TF_T = S_0 e^{(r-q)T}). Then:

THEOREM

Theorem 3.3 (Dupire in total variance, Gatheral 2006). In terms of total variance w=σimpl2Tw = \sigma_{impl}^2 T and log-moneyness y=ln(K/FT)y = \ln(K/F_T):

σloc2(K,T)=wT1ywwy+14 ⁣(141w+y2w2) ⁣(wy)2+122wy2\sigma_{loc}^2(K, T) = \frac{\dfrac{\partial w}{\partial T}}{1 - \dfrac{y}{w}\dfrac{\partial w}{\partial y} + \dfrac{1}{4}\!\left(-\dfrac{1}{4} - \dfrac{1}{w} + \dfrac{y^2}{w^2}\right)\!\left(\dfrac{\partial w}{\partial y}\right)^2 + \dfrac{1}{2}\dfrac{\partial^2 w}{\partial y^2}}

This form is numerically preferred: it works directly with the parameterised total variance surface (e.g., SVI) and avoids recomputing the BS formula and its derivatives repeatedly. At the ATM forward (y=0y = 0, w/y=0\partial w/\partial y = 0):

σloc2(FT,T)ATMwT+122wy2y=0\sigma_{loc}^2(F_T, T)\big|_{ATM} \approx \frac{\partial w}{\partial T} + \frac{1}{2}\frac{\partial^2 w}{\partial y^2}\Big|_{y=0}

5. Local Vol vs. Implied Vol: The Approximation

A fundamental practitioner result links local vol to the implied vol skew. For short maturities or small smiles, Berestycki, Busca, and Florent (2002) derived an asymptotic approximation:

THEOREM

Theorem 3.4 (BBF Approximation, Berestycki-Busca-Florent 2002). To leading order in log-moneyness y=ln(K/FT)y = \ln(K/F_T):

σimpl(K,T)σloc ⁣(S0K,T/2)\sigma_{impl}(K,T) \approx \sigma_{loc}\!\left(\sqrt{S_0 K},\, T/2\right)

That is, the implied vol of the (K,T)(K,T) option is approximately the local vol at the geometric mean of spot and strike, at half the maturity.

A more refined result (Gatheral's expansion) gives:

σimplyy=012σlocSS=F,t=T/2\frac{\partial \sigma_{impl}}{\partial y}\bigg|_{y=0} \approx \frac{1}{2}\frac{\partial \sigma_{loc}}{\partial S}\bigg|_{S=F,t=T/2}

The implied vol skew is half the local vol slope. This is the hallmark of local vol: to reproduce an implied vol skew of 3%-3\% per 10-delta, the local vol model needs a local vol slope of 6%-6\%. This double-slope property has direct consequences for the model's forward smile.

6. The Forward Smile Problem: Sticky Strike vs. Sticky Delta

The most important practical limitation of local vol — and the reason it is not the end of the story — is its forward smile dynamics.

DEFINITION

Definition 3.2 (Smile Dynamics). In sticky strike dynamics, the implied vol of an option with fixed strike KK does not change when spot moves. In sticky delta dynamics, the implied vol at a fixed delta moves with spot (the whole smile shifts with the forward).

Local vol predicts sticky strike dynamics in the short-dated limit: if spot moves from S0S_0 to S0+εS_0 + \varepsilon, the model implied vol at strike KK is determined by the local vol along the new path, which is approximately the same as before. Sticky delta behaviour (the market convention for index options) predicts that the smile moves with the forward — the 25-delta put keeps the same implied vol after a spot move.

WARNING

Warning: Cliquet mispricing. A cliquet pays the sum of periodically reset returns, e.g., i=1Nmax(Δi,0)\sum_{i=1}^N \max(\Delta_i, 0) where Δi=(STiSTi1)/STi1\Delta_i = (S_{T_i} - S_{T_{i-1}})/S_{T_{i-1}}. Pricing a cliquet requires the forward implied vol surface — the smile at time Ti1T_{i-1} for options maturing at TiT_i. Local vol generates excessively flat forward smiles because it has no stochastic vol dimension: σloc(S,t)\sigma_{loc}(S,t) is fixed at calibration. Stochastic vol models, by contrast, generate richer forward smile dynamics. Mispricing cliquets with local vol is a well-known P&L risk, particularly for long-dated structured products.


Validation

The companion notebook for this module performs the following verifications:

  1. Breeden-Litzenberger check: given a parameterised implied vol surface, compute 2C/K2\partial^2 C / \partial K^2 numerically and verify it equals the risk-neutral density reconstructed from the surface.

  2. Dupire formula round-trip: build a synthetic local vol surface σloc(K,T)\sigma_{loc}(K,T) from the implied vol surface via the Dupire formula, then re-price European options via Monte Carlo using that local vol, and verify prices match the original surface quotes.

  3. BBF approximation accuracy: compare the BBF approximation σimpl(K,T)σloc(S0K,T/2)\sigma_{impl}(K,T) \approx \sigma_{loc}(\sqrt{S_0 K}, T/2) against the true implied vol recovered from Monte Carlo under local vol dynamics.

  4. Half-skew relationship: numerically verify that the implied vol skew generated by a linear local vol model is approximately half the local vol slope.

PRACTICE

Before opening the notebook. Suppose the implied vol surface is given by σimpl(K,T)=0.200.10ln(K/FT)/T\sigma_{impl}(K,T) = 0.20 - 0.10\,\ln(K/F_T)/\sqrt{T}, with r=q=0r=q=0, S0=100S_0=100, T=1T=1.

(a) Compute C/T\partial C/\partial T and 2C/K2\partial^2 C/\partial K^2 at K=F=100K=F=100 using the Black-Scholes formula, and evaluate Dupire's formula to find σloc(100,1)\sigma_{loc}(100, 1).

(b) The BBF approximation says σimpl(K,T)σloc(S0K,T/2)\sigma_{impl}(K,T) \approx \sigma_{loc}(\sqrt{S_0 K}, T/2). For K=110K=110, T=1T=1: estimate σloc(100110,0.5)\sigma_{loc}(\sqrt{100 \cdot 110}, 0.5) from the given surface formula, and compare with σimpl(110,1)\sigma_{impl}(110, 1).


Limitations

WARNING

Numerical instability. Dupire's formula requires second-order numerical differentiation of the implied vol surface with respect to strike. Near the wings (far OTM strikes), implied vol data is sparse and noisy. The second derivative amplifies noise dramatically, producing negative or nonsensical local vol values. Robust implementation requires regularised interpolation (SVI, SABR, or kernel smoothing) before applying the formula.

WARNING

Flat forward smile. Local vol generates implied vol surfaces that are too flat for forward-starting products. The model's forward smile flattens with maturity at a rate inconsistent with market observations. This causes systematic mispricing of cliquets, ratchets, and any product sensitive to the joint distribution of returns at multiple dates.

WARNING

Surface completeness requirement. Dupire's formula is only defined where the surface is smooth and arbitrage-free. In practice, illiquid maturities and extreme strikes have wide bid-offer spreads, making the surface effectively incomplete. The calibrated local vol surface is only as reliable as the interpolation used to fill those gaps.

WARNING

No vol of vol. Local vol is a one-factor model — volatility is a deterministic function of spot. It cannot capture the mean-reverting stochastic component of volatility (the vol of vol) that drives the pricing of vol-sensitive products: variance swaps beyond the first order, VIX options, volatility corridors.

Appropriate use cases for local vol:

  • Pricing vanilla barrier options and digitals where the main sensitivity is to the distribution of STS_T at a single date.
  • Risk-managing single-maturity exotic books where the forward smile is not the dominant risk.
  • As the calibration layer in LSV (Local-Stochastic Vol) models, where the local vol component ensures vanilla calibration and the stochastic vol component provides vol dynamics.

Inappropriate use cases:

  • Cliquets, ratchets, and resetting products (forward smile-sensitive).
  • Variance swaps and volatility derivatives (vol of vol-sensitive).
  • Long-dated exotics where stochastic rate and vol dynamics matter.

Interview Angle

PRACTICE

L1 — Junior Quant / Quant Developer.

  1. "What does the Dupire formula give you, and what is its input?" Expected answer: given a complete, arbitrage-free implied vol surface, it returns the local vol σloc(K,T)\sigma_{loc}(K,T) such that the associated GBM model reprices all vanillas. Input is the call price surface C(K,T)C(K,T) and its partial derivatives in KK and TT.

  2. "State the Breeden-Litzenberger identity. What does it tell a trader?" Expected: 2C/K2=erTp(K,T)\partial^2 C/\partial K^2 = e^{-rT} p(K,T). The butterfly spread with infinitesimal wings prices the risk-neutral probability of the spot landing in that neighbourhood.

  3. "What is a butterfly arbitrage in the vol surface?" Expected: a region where the risk-neutral density is negative, i.e., 2C/K2<0\partial^2 C/\partial K^2 < 0. In market terms, a static arbitrage: buy the butterfly for free or at negative cost.

PRACTICE

L2 — Senior Quant / Structurer.

  1. "Derive Dupire's formula from first principles." Expected: forward Kolmogorov equation for the transition density; integrate against the call payoff (SK)+(S-K)^+; integrate by parts twice to isolate σloc\sigma_{loc}; apply Breeden-Litzenberger to replace the density with 2C/K2\partial^2 C/\partial K^2. Must be able to handle the boundary terms correctly.

  2. "Why does local vol misprice cliquets?" Expected: local vol has no stochastic vol component; the forward implied vol surface (what the model implies for options struck at a future date) is too flat — the skew collapses quickly. A cliquet's value depends critically on the forward vol and forward skew, which local vol systematically underestimates.

  3. "What is the half-skew result, and why does it matter in practice?" Expected: the ATM implied vol skew σimpl/y\partial \sigma_{impl}/\partial y is approximately half the local vol slope σloc/S\partial \sigma_{loc}/\partial S. In practice: if the desk quotes the 25d RR at 3%-3\%, the local vol surface must have slopes of 6%-6\% to reproduce it. Calibrations that ignore this will produce a surface that prices ATM options correctly but misprices the wings.

PRACTICE

L3 — Quant Researcher.

  1. "What is the connection between local vol and stochastic vol? How does the Gyöngy theorem relate to Dupire?" Expected: Gyöngy (1986) showed that any Itô process has a mimicking Markov diffusion with the same marginal distributions. The Dupire local vol is exactly the volatility function of that mimicking diffusion. It follows that any stochastic vol model has an associated local vol surface: σloc2(K,T)=E[σt2St=K]\sigma_{loc}^2(K,T) = \mathbb{E}[\sigma_t^2 \mid S_t = K]. This is the theoretical bridge between Dupire and Heston.

  2. "How is local vol used in an LSV (Local-Stochastic Vol) model, and why is the calibration non-trivial?" Expected: in an LSV model, dS=(rq)Sdt+σloc(S,t)ZtSdWdS = (r-q)S\,dt + \sigma_{loc}(S,t) \cdot Z_t \cdot S\,dW, where ZtZ_t is a stochastic vol factor. The leverage function σloc\sigma_{loc} is calibrated so that E[Zt2St=K]=1\mathbb{E}[Z_t^2 \mid S_t = K] = 1 for all (K,T)(K,T) — ensuring the vanilla surface is exactly reproduced. This requires solving a McKean-Vlasov PDE or using particle methods (e.g., Guyon-Henry-Labordère), which is computationally expensive and numerically subtle.

  3. "How does the particle method calibrate the LSV leverage function?" Expected: simulate NN particles (Sti,Zti)(S_t^i, Z_t^i); at each time step, estimate E[Zt2St=K]\mathbb{E}[Z_t^2 \mid S_t = K] using a kernel density estimator over the particles at level KK; set the leverage function so that the product σloc(K,t)E[Zt2St=K]\sigma_{loc}(K,t) \cdot \sqrt{\mathbb{E}[Z_t^2|S_t=K]} reproduces the Dupire local vol. The particle system converges as NN \to \infty, but the estimator has O(N1/2)O(N^{-1/2}) variance and the conditioning step introduces bias for finite NN.