Risk-Neutral Density · Advanced
Free to readBreeden–Litzenberger, Step by Step
The mathematical pipeline from raw option quotes to a smooth, arbitrage-free probability density — fit the smile first, differentiate second.
The core identity is due to Breeden and Litzenberger (1978): the risk-neutral density at strike K equals the second derivative of the call-price function with respect to K, discounted at the risk-free rate. In symbols:
f(K) = erT · ∂²C/∂K²
Elegant in theory. The problem is that differentiating raw market quotes twice amplifies noise catastrophically — two points of implied vol that differ by even a fraction of a tick produce a second derivative that is meaningless. The pipeline below describes how the tool solves that.
Step 1 — gather and clean the smile
The tool collects all listed strike–implied-vol pairs for the chosen expiration across the full strike range. Quotes with zero open interest or bid–ask spreads too wide to trust are filtered. What remains is a discrete set of (K, σ_imp) points that sample the implied-volatility smile — the empirical fact that out-of-the-money options carry more implied vol than at-the-money options.
Step 2 — fit a smooth smile model
This is the heart of the pipeline. A parametric or spline-based model is fitted to the cleaned (K, σ_imp) points, producing a smooth, continuous function σ_imp(K) that interpolates between strikes and can be evaluated at any K. The fit enforces no-arbitrage constraints: the resulting call-price curve must be non-negative, monotonically decreasing in K, and convex — any violation would imply a free-money arbitrage. A well-specified smile model also extrapolates the wings without letting implied vol collapse to zero or diverge to infinity, since both would produce nonsensical densities at the tails.
Raw quoted implied vols (amber dots) are noisy and discrete. The fitted smile (blue line) passes through them smoothly while enforcing no-arbitrage convexity across the full strike range. The fit also extrapolates sensibly into the wings where listed strikes thin out.
Step 3 — convert smile to call prices
With σ_imp(K) in hand as a smooth function, the tool prices a synthetic call at every K using the Black–Scholes formula — now as a pure converter from vol to price, not as a model assumption about the world. This produces a smooth, continuous call-price function C(K) with well-defined derivatives.
Step 4 — differentiate twice
The Breeden–Litzenberger formula is applied numerically: take the second derivative of C(K) with respect to K across a fine grid of strikes. Because C(K) is now smooth (from Step 2), the second derivative is stable and meaningful. Multiply by erT — the single daily risk-free rate the tool uses, sourced from the Treasury yield curve for the matching tenor — and the result is the risk-neutral density f(K) at each strike.
Step 5 — normalize and mark
The resulting density is normalized so the total area integrates to 1 (or arbitrarily close — small residuals from wing truncation are a known and documented caveat). Spot, the forward price, and the ±1σ implied range are computed and overlaid. The CDF is the running integral of the density from the left wing to each K.
The extreme tails of the density are the most sensitive to the smile extrapolation model. A smile that flattens too quickly in the wings underweights tail probability; one that steepens too sharply overweights it. The tool's wing extrapolation is constrained to be arbitrage-free, but users should treat the far-tail probabilities as model-dependent estimates rather than precise market readings.
The methodology is free. To run the full pipeline on live option quotes: ETFs with ETF Analytics, single names with ETF + Equities, density data export with Everything.
See plans →Educational content from Nations Indexes. The Breeden–Litzenberger identity (1978) is standard; implementation choices — smile model, wing extrapolation, risk-free rate — are described in the tool's methodology note. Tail probabilities are model-sensitive. Nothing here is investment advice.