Volatility surface charts
Three charts of one symbol's fitted volatility surface, the whole tenor and delta grid, one delta across tenors, and one tenor across deltas.
What it answers
Three charts show one symbol's volatility surface: implied volatility fitted to the previous session's option quotes, on a grid of 8 tenors (7 to 365 days) by 16 deltas.
- Vol Surface 2D/3D shows where on the grid options are priced high or low, and where quotes depart from the fit.
- Vol Smile shows how the market prices out-of-the-money options against at-the-money options at one tenor.
- Term Structure shows whether longer options are priced above or below shorter ones at one delta.
How to read it
- 1The 2D and 3D choice switches the grid between a flat heatmap and a surface that you rotate by dragging.
- 2The header contains the metric dropdown, which selects the number shown in the grid.
- 3Each cell is one tenor and one delta, shortest tenor at the bottom. Hover a cell to see its tenor, delta and full value.
- 4The Vol Smile header. Its menu contains Tenor and Layers.
- 5The line is implied volatility at each delta for one tenor, in percent. The ATM marker is on the 50-delta call, in the centre of the line.
- 6The Term Structure header. Its menu contains Delta.
- 7The line is implied volatility at one delta for each tenor, in percent. A rising line means longer options are priced higher.
Delta order
The heatmap columns and the Vol Smile line use strike order. They run from the 5-delta put on the left to the 50-delta put, then from the 50-delta call to the 5-delta call on the right. The low-strike wing is on the left, the money is in the centre, and the high-strike wing is on the right.
Metrics
The metric dropdown has six choices:
- IV: the fitted implied volatility. Its 0.50-delta cells give the at-the-money implied volatility (ATM IV).
- Skew: the 25-delta skew for each tenor, put minus call. Every cell in a row has the same value.
- VRP: fitted implied volatility divided by historical volatility over the window nearest the tenor, minus 1. The volatility risk premium (VRP) on the volatility premium charts uses 30-day figures and is a different measure.
- Anomaly: the quote anomaly z-score. A positive value means quotes in the cell are above the fit; a negative value means below it.
- CalArb: calendar arbitrage, in basis points.
- BflyArb: butterfly arbitrage, in basis points.
Arbitrage checks
The calendar check uses raw market implied volatility before the fit. CalArb can show a violation in a cell where the fitted surface has none. Its hint is:
Calendar arbitrage in raw quotes: how far total variance falls from one expiry to the next at the same moneyness, in bp. 0 means none found; a cell with no quote to compare shows no data.
The butterfly check uses the fitted grid. Its hint is:
Butterfly arbitrage on the fitted grid: twice the excess of IV at a delta over the average of its two delta neighbours (the sum of its excess over each), when the smile is not convex, in bp. 0 means convex, the neighbours cross the put and call boundary, or the delta is the first or last of its tenor. The first and last delta of each tenor are never checked.
A value above 0 in either check marks quotes or a fit to inspect.
Colour scale
IV, Skew and VRP colour the grid on one scale from the lowest cell to the highest. Anomaly uses a scale centred on zero, with steps at -2, -1, 1 and 2, and a legend below the heatmap labels the steps. A value beyond 2 in size counts as an anomaly.
Blank cells and zeros
A blank heatmap cell has no value. The 3D surface leaves a gap where a cell has no value. It never fills the gap from neighbouring cells or with 0. The 3D view also draws every cell that has a value as a point, so a cell surrounded by gaps still shows. When no cell has a value, the chart shows "No metric data for symbol." in place of the grid.
For Skew, VRP, Anomaly and CalArb, a cell with no input is blank. A 0 in those metrics is a computed result. BflyArb has no such flag. Its 0 means a convex smile, neighbours on both sides of the put and call boundary, or the first or last delta of a tenor.
The data updates once a day before the open, so every point has the previous trading day's date. When the latest fit fails a check, each chart displays a surface quality status badge (Degraded, Blocked or Caution). The chart is still drawn.
When the newest fit failed or did not run, the widget draws the last good surface. The badge then reads Stale with that surface's date, for example Stale 2026-10-28. The badge replaces the quality status badge. Hover or focus it to read the reason: the checks the newer fit failed, the error message, or the words "No reason was recorded". See surface stale flag.
Controls
Every choice redraws from the surface already loaded, except the metric. A metric choice loads that metric's grid.
- The 2D and 3D choice and the metric dropdown are in the Vol Surface 2D/3D header.
- In a narrow window both move into the widget menu, and the header shows the current choices.
- The 3D surface loads its drawing library on first use.
- If the library fails to load, the chart shows the 2D heatmap with a notice.
- Click a heatmap cell to switch Vol Smile to its tenor and Term Structure to the nearest delta choice.
- The 3D surface does not respond to clicks.
- Tenor (Vol Smile menu): select 7d, 14d, 30d, 60d, 90d, 120d, 180d or 365d.
- Each tenor choice draws one row of the surface. A click on a 120d cell sets Vol Smile to 120d.
- Layers (Vol Smile menu): add Skew, Anom or both.
- Skew: draws the tenor's 25-delta skew as a dashed line on a right-hand axis.
- Anom: marks each delta whose quote anomaly z-score is beyond plus or minus 2.
- Any active layer adds a footer with ATM IV at 30 days and 25-delta skew.
- The footer also shows the term-structure slope and anomaly count.
- Delta (Term Structure menu): select 10P, 25P, ATM, 25C or 10C.
- Term Structure draws the surface column nearest the delta. ATM draws the 50-delta call.
Use the header search to select the symbol. On Vol Smile and Term Structure, COMPARE draws up to three symbols on one axis. Layers have no effect in COMPARE. Symbols on one axis share one scale.
| Control | What it does |
|---|---|
| vol-surface-3d | |
| mode | 2D heatmap or 3D surface |
| metric | Metric, which number fills the grid |
| Vol Smile | |
| tenor | Tenor, which row of the grid draws |
| layers | Layers, skew line and anomaly markers |
| Term Structure | |
| delta | Delta, which column of the grid draws |