Volatility smile
Out-of-the-money quotes against the fitted SVI. Click any point for the contract.
Selected contract
Fit residuals
Fitted minus market, vol points.
Term structure
Click a point to select that tenor.
Pinned tenors
Use Pin in the tenor bar to overlay smiles and compare level and shape.
Implied volatility surface
Free-spin 3D. Hover to read a point, click to query it. The floor shows the same field as a heat-shadow with contours.
Query the surface
Strike and maturity in; volatility and Black-76 price out.
Skew surface
Local skew ∂IV/∂k over strike and maturity. Blue is steep put skew, pale is the smile's vertex, amber is the call-side upturn.
Skew across strikes
Selected tenor, pinned overlaid.
ATM skew term structure
Click to select.
Risk-neutral density check
Gatheral's g(k) must stay at or above zero (no butterfly arbitrage). Shaded band = observed strikes.
Calendar check
Total variance of every tenor. Curves must not cross downward as maturity grows.
g(k) heatmap
Red would mark negative density. None appears inside the observed region.
Minimum g per tenor
Click a bar to select. All bars above zero means no butterfly arbitrage.
SVI sandbox
Drag the five raw-SVI parameters of the selected tenor. Push b up or σ down and watch the density go negative: that is butterfly arbitrage.
w(k) = a + b·(ρ·(k−m) + √((k−m)² + σ²))
Smile
Density g(k)
Data quality
Why contracts were dropped. “not otm” is intentional: each strike keeps only its out-of-the-money leg.
Per-tenor fit audit
Click a row to select.
Cross-check against svi-py
Same cleaned quotes and forwards. Default = svi-py's out-of-the-box objective; tuned = its implied-vol objective with multi-start.