Skip to main content

Stochastic Local Vol from zero

1/5

Local vol gets the prices right but the dynamics wrong

Dupire's local volatility model does something remarkable: it perfectly calibrates to every vanilla option price in the market, simultaneously. Zero calibration error. The catch is what happens next.

Local vol assigns a unique volatility σ(S, t) to every spot level and every point in time. Given the observed surface of vanilla prices, there is exactly one local vol function that reproduces them all. The construction is deterministic -- no optimization, no residual error.

Dupire's local vol
dS = σloc(S, t) · S · dW
One Brownian motion. One SDE. The entire smile is encoded in the function σloc(S, t).

So what is wrong? The dynamics. Local vol predicts how the smile will evolve as spot moves, and it gets that prediction badly wrong.

When spot drops 5%, local vol says the smile should flatten on the left wing. The model reads a lower spot and indexes into a different slice of σloc, which happens to be flatter there. But in real markets, the opposite happens: a 5% sell-off makes the smile steepen because realized vol is rising and demand for downside protection is increasing.

Local vol is a perfect photograph of today's smile. But photographs don't move. When spot shifts, local vol predicts the new smile by looking up a different column in the same static table. The market, meanwhile, has repriced the entire table.

This matters for exotics. A barrier option depends on what the smile looks like when spot is near the barrier -- not just what it looks like today. If your model predicts the wrong future smile, it prices the barrier wrong and hedges it wrong.

Stochastic vol gets the dynamics right but the prices wrong

Heston, SABR, and their cousins treat volatility as a random variable with its own stochastic process. This produces realistic smile evolution: when spot drops, vol rises, and the smile steepens. But the fit to today's vanilla prices is approximate at best.

A model like Heston has five free parameters. Five numbers cannot simultaneously match hundreds of observed option prices across all strikes and expiries. The fit is always a compromise -- decent near ATM, progressively worse in the wings.

You could add more parameters (double Heston, Bates with jumps) but you never fully close the gap. There is always some calibration residual. For vanilla pricing and market-making, that residual is money left on the table.

Smile After −5% Spot Move: Three Predictions
Prices right, dynamics wrong
Dynamics right, prices wrong
Best of both worlds
Current smile
Predicted smile after spot move

The three panels above tell the story. After a 5% spot drop:

Local vol predicts the smile flattens -- wrong.

Stochastic vol predicts the smile steepens -- right, but notice it did not match today's smile perfectly to begin with.

SLV gets both: it starts from a perfect fit today and evolves realistically.

If you are quoting vanillas, local vol wins -- it prices them exactly. If you care about how your book behaves when spot moves, stochastic vol wins -- it predicts realistic Greeks. For exotic pricing, you need both. That is where SLV enters.

SLV combines both

Stochastic local vol runs two engines in parallel. The local vol component handles calibration. The stochastic component adds realistic dynamics. A mixing ratio α controls the blend.

SLV system
dS = σloc(S, t) · L(S, t) · S · dW
dL = ν · L · dW
First line: spot diffusion combines the local vol function σloc with a stochastic leverage L.
Second line: L follows its own diffusion, driven by vol-of-vol ν.
Special cases: when ν = 0, L is deterministic and you recover pure local vol. When σloc is constant, you recover pure stochastic vol. The mixing ratio α controls how much of the total variance comes from each component.

The intuition: σloc(S, t) is the Dupire function that already calibrates to the market. Multiplying by a stochastic L perturbs the dynamics without destroying calibration -- as long as L is calibrated so the perturbation averages out. That calibration of L is exactly what the leverage function does.

The mixing ratio α (often embedded in the vol-of-vol parameter) determines how much randomness goes into L versus staying in σloc. At one extreme (α = 0), all variance is explained by local vol and the smile dynamics are deterministic. At the other extreme (α = 1), local vol is flat and the stochastic process drives everything.

Mixing Ratio Explorer
α (mixing)0.50
α=0: pure local volα=1: pure stoch vol
Current smile
Predicted smile after −5% spot move

Drag the slider above. Watch the predicted future smile:

α = 0 (pure local vol): The future smile barely moves relative to today. The left wing flattens slightly. This is the local vol pathology.

α = 1 (pure stochastic vol): The future smile steepens dramatically. Vol jumps up across the board. This is realistic but may overcorrect.

α = 0.5 (balanced): A middle ground. The smile steepens but moderately. This is where most production calibrations land.

The leverage function

L(S, t) is the calibration glue. It is computed so that the expected local volatility -- averaging over all stochastic paths -- matches the market. When the mixing is balanced, L stays close to 1 everywhere. When one component dominates, L must work harder.

Formally, L(S, t) is defined by the condition:

Leverage function calibration
σloc(S, t)² = E[σloc(S, t)² · L(S, t)² | St = S]
The expected effective variance conditional on spot must equal the Dupire local variance. This pins down L at every (S, t) point.

In practice, L is computed numerically using either a forward PDE (Fokker-Planck) or a particle method (Monte Carlo with density estimation). The forward PDE propagates the joint density of (S, L) forward in time and extracts L at each grid point. The particle method simulates many paths, bins them by spot level, and solves for L within each bin.

The key insight: when α is near 0.5, L is close to 1 everywhere because both components share the load evenly. When α is near 0 or 1, L develops structure -- peaks in the wings, valleys near ATM -- because one component is doing almost all the work and L must compensate.

Leverage Function Heatmap
α (mixing)0.50
Balanced mixing (α ≈ 0.5): L stays near 1. Extreme mixing: L diverges to compensate.

The heatmap above shows L(S, t) across spot and time. Drag the mixing slider and watch:

Balanced (α ≈ 0.5): Uniform dark color. L is approximately 1 everywhere. Both components contribute equally. This is the ideal operating point.

Local-vol dominated (α ≈ 0): L develops warm (orange/red) spots in the wings. The stochastic component has little variance of its own, so L must do heavy lifting to match the market.

Stoch-vol dominated (α ≈ 1): L develops cool (blue) spots. The stochastic component overshoots in some regions and L must pull it back.

The exotic pricing standard

SLV is what major banks actually run for barriers, Asians, and cliquets. It is the production standard because it is the only model that simultaneously calibrates to vanillas and produces defensible exotic prices.

Barriers. A knock-out option dies when spot hits a barrier. Its value depends critically on what the smile looks like near the barrier level. Local vol gets the wrong smile there. Stochastic vol gets the right dynamics but the wrong starting prices. SLV gets both -- and the resulting barrier price can differ from local vol by several percent of notional.

Asians. An Asian option averages spot over a window. The averaging dampens the effect of smile dynamics, so the SLV vs local vol difference is smaller here. But it is still nonzero, and desks that trade large notionals care.

Cliquets. Forward-starting options that reset periodically. These are extremely sensitive to the forward smile -- what the smile will look like at each reset date. SLV's advantage is largest here because cliquets are essentially a bet on smile dynamics.

SLV is not free. The leverage function must be recomputed whenever the stochastic vol parameters change, which makes calibration an iterative process: fit stochastic vol parameters, compute L, check vanilla fit, adjust, repeat. This outer loop is computationally expensive and introduces model risk in the choice of α.

The choice of mixing ratio is itself a judgment call. Different α values produce different exotic prices while matching the same vanillas. Banks typically set α by calibrating to liquid exotic trades (barrier reversals in FX, for example) or by expert judgment about how much smile dynamics matters for their book.

Model risk. The mixing ratio is the single most important model risk parameter in production exotic pricing. Two desks using SLV with different α values will agree on every vanilla but disagree on barriers. This is not a bug -- it reflects genuine uncertainty about how the smile will evolve.

In crypto: SLV is less common because the exotic market is smaller and the vanilla surface itself is noisy. Most crypto desks use SVI or SSVI for surface fitting and local vol or direct simulation for path-dependent products. As the crypto options market matures, SLV will become more relevant.

Where to go next:

Local Volatility -- the Dupire model in detail

Heston Model -- the most common stochastic vol engine inside SLV

SABR Model -- stochastic vol without mean reversion, popular in rates

Vanna-Volga -- a simpler smile construction from three market quotes