{"slug":"why-vix-options-dont-track-the-vix","qid":"move_dampening","label":"How far the long tenor travels on days the front end jumps","post_title":"Why VIX Options Don't Track the VIX","post_url":"/blog/why-vix-options-dont-track-the-vix#q-move_dampening","columns":["front_move_band","front_change_pts","back_change_pts","session_count"],"rows":[{"front_move_band":"front fell","front_change_pts":-1.3,"back_change_pts":-0.33,"session_count":255},{"front_move_band":"front up 0 to 1","front_change_pts":0.45,"back_change_pts":0.1,"session_count":142},{"front_move_band":"front up 1 to 2","front_change_pts":1.4,"back_change_pts":0.41,"session_count":52},{"front_move_band":"front up 2 to 4","front_change_pts":2.58,"back_change_pts":0.75,"session_count":35},{"front_move_band":"front up 4 or more","front_change_pts":7.31,"back_change_pts":1.69,"session_count":14}],"shape":"ranking","sql":"SELECT\n    multiIf(front_change <  0, 'front fell',\n            front_change <  1, 'front up 0 to 1',\n            front_change <  2, 'front up 1 to 2',\n            front_change <  4, 'front up 2 to 4',\n                               'front up 4 or more') AS front_move_band,\n    round(avg(front_change), 2)                      AS front_change_pts,\n    round(avg(back_change), 2)                       AS back_change_pts,\n    count()                                          AS session_count\nFROM\n(\n    SELECT\n        (front_iv - prev_front) * 100 AS front_change,\n        (back_iv  - prev_back)  * 100 AS back_change\n    FROM\n    (\n        SELECT\n            date,\n            front_iv,\n            back_iv,\n            lagInFrame(front_iv) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_front,\n            lagInFrame(back_iv)  OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_back\n        FROM\n        (\n            SELECT\n                date,\n                avgIf(implied_volatility, days_to_expiry BETWEEN 7 AND 30)    AS front_iv,\n                avgIf(implied_volatility, days_to_expiry BETWEEN 150 AND 300) AS back_iv\n            FROM global_markets.options_greeks\n            WHERE underlying_symbol = 'SPY'\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() - 730\n            GROUP BY date\n            HAVING countIf(days_to_expiry BETWEEN 7 AND 30) > 0\n               AND countIf(days_to_expiry BETWEEN 150 AND 300) > 0\n        )\n    )\n    WHERE prev_front > 0 AND prev_back > 0\n)\nGROUP BY front_move_band\nORDER BY avg(front_change)","computed_at":"2026-08-22T04:37:26.433540+00:00","elapsed":1.799369724}