Why VIX Options Don't Track the VIX
SPY near-the-money implied volatility by distance to expirationranking ·
2026-08-22 · 6×3
How far the long tenor travels on days the front end jumpsranking ·
2026-08-22 · 5×4
Near-dated versus long-dated SPY implied volatility, session by sessionseries ·
2026-08-22 · 81×3
The near-to-far implied volatility gap across liquid namesranking ·
2026-08-22 · 6×4
SPY near-the-money implied volatility by distance to expiration
SPY near-the-money implied volatility by distance to expiration
| dte_band | iv_pct | contract_count |
|---|---|---|
| up to 1 week | 18.06 | 42251 |
| 1 to 3 weeks | 14.51 | 47164 |
| 3 to 6 weeks | 14.97 | 37078 |
| 6 weeks to 3 months | 15.46 | 25859 |
| 3 to 6 months | 16.67 | 17769 |
| over 6 months | 18.68 | 17210 |
the exact SQL behind every number
SELECT
multiIf(days_to_expiry <= 7, 'up to 1 week',
days_to_expiry <= 21, '1 to 3 weeks',
days_to_expiry <= 45, '3 to 6 weeks',
days_to_expiry <= 90, '6 weeks to 3 months',
days_to_expiry <= 180, '3 to 6 months',
'over 6 months') AS dte_band,
round(avg(implied_volatility) * 100, 2) AS iv_pct,
count() AS contract_count
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 1 AND 730
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
AND date >= today() - 120
GROUP BY dte_band
ORDER BY min(days_to_expiry)
More from this analysisWhy VIX Options Don't Track the VIX
The near-to-far implied volatility gap across liquid names
ranking 6×4
→
How far the long tenor travels on days the front end jumps
ranking 5×4
→
Near-dated versus long-dated SPY implied volatility, session by session
series 81×3
→
SPY near-the-money implied volatility by days to expiry
ranking 8×2
→
See all 2,170 queries →