Methodology
Everything the app shows comes from one identity plus careful numerics.
Breeden-Litzenberger (1978)
A European call struck at K pays off only above K, so the call price is
C(K) = e^(-rT) · ∫_K^∞ (S - K) · q(S) dS
Differentiating once gives the discounted survival probability, and differentiating again isolates the density itself:
∂C/∂K = -e^(-rT) · P(S_T > K) ∂²C/∂K² = e^(-rT) · q(K) ⇒ q(K) = e^(rT) · ∂²C/∂K²
So the curvature of the call price curve across strikes is the market-implied probability density of the terminal price. Nothing is forecast — it is extracted.
The first derivative also gives a free sanity check: the slope of the call curve equals minus the discounted probability of finishing above that strike, which is exactly what the cumulative chart plots.
Current fit: r = 4.30%, q = 1.30%, T = 0.058y, bandwidth h = 0.055.
1 · Clean the chain
Compute mids from bid/ask, drop zero or crossed quotes, drop prices below intrinsic value, and split calls from puts. Calls carry the density estimate.
2 · Smooth the smile
Solve implied vols, then fit them with Gaussian kernel regression in log-moneyness. Smoothing happens in vol space, where the surface is nearly quadratic.
3 · Refit call prices
Convert smoothed vols back into Black-Scholes call prices on a dense 401-point strike grid, producing a twice-differentiable call curve.
4 · Differentiate twice
Apply a central second difference, multiply by e^{rT}, clip residual negatives, then normalize so total probability equals 1.
5 · Read probabilities
Integrate the density for tail and range probabilities; invert the CDF for median and percentiles; integrate K·q(K) for the implied expected price.
Why smoothing is mandatory
A second difference divides noise by the square of the strike spacing. A one-cent rounding error on a $5 strike grid becomes a large curvature error, which shows up as a spiky density with negative regions — a violation of no-arbitrage, not a market signal.
Fitting vols, not prices, keeps the curve monotone and convex in the right places. Higher bandwidth means a stable but flatter density; lower bandwidth tracks each quote and reintroduces noise. Use the smile page to see this trade-off live.
Assumptions and caveats
- Black-Scholes is used only as a smooth quote-to-price map, not as a model of reality.
- European exercise; listed American early-exercise premium is ignored.
- Constant continuous risk-free rate and dividend yield over the horizon.
- Risk-neutral ≠ real-world: the density embeds a variance risk premium.
- The density is truncated at the lowest and highest quoted strike.
- Demo chains are deterministic synthetic data, reproducible on every load.
Educational research tool. Risk-neutral probabilities are derived from option prices and include a risk premium — they are not forecasts and this is not investment advice.