{"slug":"why-vix-options-dont-track-the-vix","qid":"term_structure","label":"SPY near-the-money implied volatility by distance to expiration","post_title":"Why VIX Options Don't Track the VIX","post_url":"/blog/why-vix-options-dont-track-the-vix#q-term_structure","columns":["dte_band","iv_pct","contract_count"],"rows":[{"dte_band":"up to 1 week","iv_pct":18.06,"contract_count":42251},{"dte_band":"1 to 3 weeks","iv_pct":14.51,"contract_count":47164},{"dte_band":"3 to 6 weeks","iv_pct":14.97,"contract_count":37078},{"dte_band":"6 weeks to 3 months","iv_pct":15.46,"contract_count":25859},{"dte_band":"3 to 6 months","iv_pct":16.67,"contract_count":17769},{"dte_band":"over 6 months","iv_pct":18.68,"contract_count":17210}],"shape":"ranking","sql":"SELECT\n    multiIf(days_to_expiry <=   7, 'up to 1 week',\n            days_to_expiry <=  21, '1 to 3 weeks',\n            days_to_expiry <=  45, '3 to 6 weeks',\n            days_to_expiry <=  90, '6 weeks to 3 months',\n            days_to_expiry <= 180, '3 to 6 months',\n                                   'over 6 months')          AS dte_band,\n    round(avg(implied_volatility) * 100, 2)                   AS iv_pct,\n    count()                                                   AS contract_count\nFROM global_markets.options_greeks\nWHERE underlying_symbol = 'SPY'\n  AND iv_converged = 1\n  AND volume > 0\n  AND days_to_expiry BETWEEN 1 AND 730\n  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05\n  AND date >= today() - 120\nGROUP BY dte_band\nORDER BY min(days_to_expiry)","computed_at":"2026-08-22T04:37:24.252231+00:00","elapsed":0.20727389}