{"slug":"why-vix-options-dont-track-the-vix","qid":"curve_slope","label":"The near-to-far implied volatility gap across liquid names","post_title":"Why VIX Options Don't Track the VIX","post_url":"/blog/why-vix-options-dont-track-the-vix#q-curve_slope","columns":["symbol","front_iv_pct","back_iv_pct","curve_spread_pts"],"rows":[{"symbol":"NVDA","front_iv_pct":39.11,"back_iv_pct":43.41,"curve_spread_pts":4.3},{"symbol":"SPY","front_iv_pct":14.43,"back_iv_pct":17.47,"curve_spread_pts":3.04},{"symbol":"QQQ","front_iv_pct":23.6,"back_iv_pct":25.75,"curve_spread_pts":2.15},{"symbol":"AAPL","front_iv_pct":27.49,"back_iv_pct":27.43,"curve_spread_pts":-0.06},{"symbol":"MSFT","front_iv_pct":35.47,"back_iv_pct":34.92,"curve_spread_pts":-0.55},{"symbol":"KO","front_iv_pct":21.08,"back_iv_pct":20.16,"curve_spread_pts":-0.93}],"shape":"ranking","sql":"SELECT\n    underlying_symbol                                                             AS symbol,\n    round(avgIf(implied_volatility, days_to_expiry BETWEEN 7 AND 30) * 100, 2)    AS front_iv_pct,\n    round(avgIf(implied_volatility, days_to_expiry BETWEEN 150 AND 300) * 100, 2) AS back_iv_pct,\n    round((avgIf(implied_volatility, days_to_expiry BETWEEN 150 AND 300)\n         - avgIf(implied_volatility, days_to_expiry BETWEEN 7 AND 30)) * 100, 2)  AS curve_spread_pts\nFROM global_markets.options_greeks\nWHERE underlying_symbol IN ('SPY', 'QQQ', 'AAPL', 'MSFT', 'NVDA', 'KO')\n  AND iv_converged = 1\n  AND volume > 0\n  AND (days_to_expiry BETWEEN 7 AND 30 OR days_to_expiry BETWEEN 150 AND 300)\n  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05\n  AND date >= today() - 90\nGROUP BY underlying_symbol\nHAVING countIf(days_to_expiry BETWEEN 7 AND 30) > 0\n   AND countIf(days_to_expiry BETWEEN 150 AND 300) > 0\nORDER BY curve_spread_pts DESC","computed_at":"2026-08-22T04:37:27.211470+00:00","elapsed":0.671448976}