{"slug":"local-volatility-vs-implied-volatility","qid":"iv_trace","label":"SPY at-the-money implied volatility and downside skew spread, week by week, 2026","post_title":"Local Volatility vs Implied Volatility","post_url":"/blog/local-volatility-vs-implied-volatility#q-iv_trace","columns":["week","week_label","atm_iv_pct","skew_spread_pts"],"rows":[{"week":"2026-01-05","week_label":"Jan 5","atm_iv_pct":12.71,"skew_spread_pts":6.48},{"week":"2026-01-12","week_label":"Jan 12","atm_iv_pct":13.28,"skew_spread_pts":6.35},{"week":"2026-01-19","week_label":"Jan 19","atm_iv_pct":14.57,"skew_spread_pts":6.76},{"week":"2026-01-26","week_label":"Jan 26","atm_iv_pct":14.03,"skew_spread_pts":6.98},{"week":"2026-02-02","week_label":"Feb 2","atm_iv_pct":16.04,"skew_spread_pts":6.53},{"week":"2026-02-09","week_label":"Feb 9","atm_iv_pct":15.99,"skew_spread_pts":7.06},{"week":"2026-02-16","week_label":"Feb 16","atm_iv_pct":16.59,"skew_spread_pts":6.66},{"week":"2026-02-23","week_label":"Feb 23","atm_iv_pct":16.25,"skew_spread_pts":7.22},{"week":"2026-03-02","week_label":"Mar 2","atm_iv_pct":18.9,"skew_spread_pts":7.57},{"week":"2026-03-09","week_label":"Mar 9","atm_iv_pct":21.29,"skew_spread_pts":7.03},{"week":"2026-03-16","week_label":"Mar 16","atm_iv_pct":20.73,"skew_spread_pts":5.91},{"week":"2026-03-23","week_label":"Mar 23","atm_iv_pct":23.46,"skew_spread_pts":6.16},{"week":"2026-03-30","week_label":"Mar 30","atm_iv_pct":21.98,"skew_spread_pts":5.55},{"week":"2026-04-06","week_label":"Apr 6","atm_iv_pct":17.78,"skew_spread_pts":7.23},{"week":"2026-04-13","week_label":"Apr 13","atm_iv_pct":15.07,"skew_spread_pts":5.46},{"week":"2026-04-20","week_label":"Apr 20","atm_iv_pct":16,"skew_spread_pts":5.92},{"week":"2026-04-27","week_label":"Apr 27","atm_iv_pct":15.15,"skew_spread_pts":6.12},{"week":"2026-05-04","week_label":"May 4","atm_iv_pct":14.98,"skew_spread_pts":5.75},{"week":"2026-05-11","week_label":"May 11","atm_iv_pct":15.44,"skew_spread_pts":5.99},{"week":"2026-05-18","week_label":"May 18","atm_iv_pct":14.95,"skew_spread_pts":5.96},{"week":"2026-05-25","week_label":"May 25","atm_iv_pct":13.63,"skew_spread_pts":5.23},{"week":"2026-06-01","week_label":"Jun 1","atm_iv_pct":14.22,"skew_spread_pts":6.06},{"week":"2026-06-08","week_label":"Jun 8","atm_iv_pct":16.88,"skew_spread_pts":5.99},{"week":"2026-06-15","week_label":"Jun 15","atm_iv_pct":14.16,"skew_spread_pts":6.47},{"week":"2026-06-22","week_label":"Jun 22","atm_iv_pct":16.31,"skew_spread_pts":6.21},{"week":"2026-06-29","week_label":"Jun 29","atm_iv_pct":14.06,"skew_spread_pts":6.09},{"week":"2026-07-06","week_label":"Jul 6","atm_iv_pct":13.54,"skew_spread_pts":5.94},{"week":"2026-07-13","week_label":"Jul 13","atm_iv_pct":14.31,"skew_spread_pts":6.59},{"week":"2026-07-20","week_label":"Jul 20","atm_iv_pct":15.12,"skew_spread_pts":6.63},{"week":"2026-07-27","week_label":"Jul 27","atm_iv_pct":14.95,"skew_spread_pts":6.24},{"week":"2026-08-03","week_label":"Aug 3","atm_iv_pct":13.17,"skew_spread_pts":5.65},{"week":"2026-08-10","week_label":"Aug 10","atm_iv_pct":12.63,"skew_spread_pts":6.12},{"week":"2026-08-17","week_label":"Aug 17","atm_iv_pct":12.86,"skew_spread_pts":6.65},{"week":"2026-08-24","week_label":"Aug 24","atm_iv_pct":12.4,"skew_spread_pts":6.37},{"week":"2026-08-31","week_label":"Aug 31","atm_iv_pct":12.25,"skew_spread_pts":5.31},{"week":"2026-09-07","week_label":"Sep 7","atm_iv_pct":13.39,"skew_spread_pts":6},{"week":"2026-09-14","week_label":"Sep 14","atm_iv_pct":13.32,"skew_spread_pts":5.99},{"week":"2026-09-21","week_label":"Sep 21","atm_iv_pct":12.66,"skew_spread_pts":5.96},{"week":"2026-09-28","week_label":"Sep 28","atm_iv_pct":13.55,"skew_spread_pts":6}],"shape":"series","sql":"SELECT\n    toString(week_start)                                 AS week,\n    formatDateTime(week_start, '%b %e')                  AS week_label,\n    round(avgIf(iv, abs(m) <= 0.01) * 100, 2)            AS atm_iv_pct,\n    round((avgIf(iv, m >= -0.08 AND m <= -0.05)\n           - avgIf(iv, abs(m) <= 0.01)) * 100, 2)        AS skew_spread_pts\nFROM\n(\n    SELECT\n        toMonday(date)                                            AS week_start,\n        toFloat64(implied_volatility)                             AS iv,\n        toFloat64(strike_price) / toFloat64(underlying_close) - 1  AS m\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'SPY'\n      AND date >= '2026-01-05'\n      AND date <  '2026-10-01'\n      AND iv_converged = 1\n      AND volume > 0\n      AND days_to_expiry BETWEEN 20 AND 45\n      AND underlying_close > 0\n      AND implied_volatility > 0\n)\nGROUP BY week_start\nHAVING countIf(abs(m) <= 0.01) >= 20\n   AND countIf(m >= -0.08 AND m <= -0.05) >= 20\nORDER BY week_start","computed_at":"2026-10-09T16:40:46.221862+00:00","elapsed":0.001635891}