{"slug":"what-is-the-vix","qid":"implied_vs_realized","label":"Implied daily move against the realized daily move: SPY, month by month","post_title":"What Is the VIX? What It Really Measures","post_url":"/blog/what-is-the-vix#q-implied_vs_realized","columns":["month","month_label","implied_daily_move_pct","realized_daily_move_pct","gap_pct","sessions"],"rows":[{"month":"2025-07-01","month_label":"July 2025","implied_daily_move_pct":0.84,"realized_daily_move_pct":0.33,"gap_pct":0.51,"sessions":22},{"month":"2025-08-01","month_label":"August 2025","implied_daily_move_pct":0.78,"realized_daily_move_pct":0.57,"gap_pct":0.22,"sessions":21},{"month":"2025-09-01","month_label":"September 2025","implied_daily_move_pct":0.79,"realized_daily_move_pct":0.41,"gap_pct":0.38,"sessions":21},{"month":"2025-10-01","month_label":"October 2025","implied_daily_move_pct":0.92,"realized_daily_move_pct":0.61,"gap_pct":0.31,"sessions":23},{"month":"2025-11-01","month_label":"November 2025","implied_daily_move_pct":1.02,"realized_daily_move_pct":0.78,"gap_pct":0.25,"sessions":19},{"month":"2025-12-01","month_label":"December 2025","implied_daily_move_pct":0.8,"realized_daily_move_pct":0.42,"gap_pct":0.38,"sessions":22},{"month":"2026-01-01","month_label":"January 2026","implied_daily_move_pct":0.83,"realized_daily_move_pct":0.44,"gap_pct":0.39,"sessions":20},{"month":"2026-02-01","month_label":"February 2026","implied_daily_move_pct":0.99,"realized_daily_move_pct":0.67,"gap_pct":0.32,"sessions":19},{"month":"2026-03-01","month_label":"March 2026","implied_daily_move_pct":1.33,"realized_daily_move_pct":0.91,"gap_pct":0.42,"sessions":22},{"month":"2026-04-01","month_label":"April 2026","implied_daily_move_pct":1.08,"realized_daily_move_pct":0.65,"gap_pct":0.43,"sessions":21},{"month":"2026-05-01","month_label":"May 2026","implied_daily_move_pct":0.91,"realized_daily_move_pct":0.54,"gap_pct":0.38,"sessions":20},{"month":"2026-06-01","month_label":"June 2026","implied_daily_move_pct":0.95,"realized_daily_move_pct":0.85,"gap_pct":0.1,"sessions":21},{"month":"2026-07-01","month_label":"July 2026","implied_daily_move_pct":0.89,"realized_daily_move_pct":0.59,"gap_pct":0.3,"sessions":22}],"shape":"series","sql":"WITH iv AS (\n    SELECT toStartOfMonth(date) AS month,\n           avg(implied_volatility) * 100 AS iv_pct\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'SPY'\n      AND date >= toDate('2025-07-01')\n      AND date < toDate('2026-08-01')\n      AND abs(delta) BETWEEN 0.45 AND 0.55\n      AND days_to_expiry BETWEEN 23 AND 37\n      AND iv_converged\n      AND implied_volatility BETWEEN 0.02 AND 3\n    GROUP BY month\n),\npx AS (\n    SELECT date, toFloat64(close) AS c\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'SPY'\n      AND date >= toDate('2025-06-01')\n      AND date < toDate('2026-08-01')\n),\nmoves AS (\n    SELECT toStartOfMonth(date) AS month,\n           abs(c / any(c) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) - 1) * 100 AS abs_move_pct\n    FROM px\n),\nrealized AS (\n    SELECT month,\n           avg(abs_move_pct) AS avg_abs_move_pct,\n           count() AS sessions\n    FROM moves\n    WHERE month >= toDate('2025-07-01')\n    GROUP BY month\n)\nSELECT iv.month AS month,\n       formatDateTimeInJodaSyntax(iv.month, 'MMMM yyyy') AS month_label,\n       round(iv.iv_pct / 16, 2) AS implied_daily_move_pct,\n       round(realized.avg_abs_move_pct, 2) AS realized_daily_move_pct,\n       round(iv.iv_pct / 16 - realized.avg_abs_move_pct, 2) AS gap_pct,\n       realized.sessions AS sessions\nFROM iv\nINNER JOIN realized ON iv.month = realized.month\nORDER BY month","computed_at":"2026-08-14T14:35:09.801411+00:00","elapsed":0.004027529}