3D implied-volatility surface — strike × DTE × IV. Reads put skew, call skew, contango / backwardation at a glance.
Full strike × DTE IV grid. Drag to orbit.
X axis = strike (left = downside puts, right = upside calls). Y axis = days-to-expiry (front-month at near edge, back-month at far edge). Vertical = implied vol. The whole surface is one render — every expiry, every strike.
Click-drag the canvas to rotate the camera. Scroll-wheel zooms. Find the angle that shows the skew slope variation across DTE — short-dated smile shape is often very different from long-dated.
Short-dated puts spiking above long-dated puts = event risk concentrated near-term. Smooth, gentle slope = no specific event priced; structural skew only.
Hover any point on the surface to see its exact coordinates. Use it to check specific strikes you're considering trading without flipping back to the 2D skew slice.
“The vol surface arranges implied volatility across strikes and expiries as a colour coded grid.”
The full implied-volatility landscape for an underlying, rendered in 3D. Strike runs along the x-axis, days-to-expiry along the z-axis, and IV (in percent) is the height. The shape of the resulting mesh encodes nearly everything a vol trader needs to know about the chain at a glance:
Status bar shows the headline number: ATM 30D=29.8% (or whatever the closest-to-30-day at-the-money IV reads), plus the visible IV range across all rendered cells.
add surface, add volsurface, add vol3d.SPY SURFACE, NVDA SURFACE.Built server-side from the live options chain snapshot. Three filters compound to keep the surface clean:
The grid is then winsorized to the 5th–95th percentile of valid cells before render. So even if a stubborn outlier survives the filters, it's clamped to the boundary instead of stretching the height scale and squashing the actually-interesting 15–40% range into a flat sheet.
DTE buckets along the term-structure axis: 7 / 14 / 30 / 60 / 90 / 180 / 365 days. The build picks the actual expiries closest to each target, so the term axis represents real market cells, not interpolated ghosts.
Cached server-side at 30 s — vol surfaces don't move tick-by-tick; chain-wide IV recalculation is the bottleneck, not the panel poll cadence.
strike · DTE · IV for the cell under the cursor.