{"slug":"spx-options-vs-es-futures-options","qid":"index_moves","label":"index_moves","post_title":"spx-options-vs-es-futures-options","post_url":"/blog/spx-options-vs-es-futures-options#q-index_moves","columns":["month","month_label","avg_abs_move_pct","largest_move_pct","big_move_count","session_count"],"rows":[{"month":"2025-09-01","month_label":"Sep 2025","avg_abs_move_pct":0.41,"largest_move_pct":0.84,"big_move_count":0,"session_count":21},{"month":"2025-10-01","month_label":"Oct 2025","avg_abs_move_pct":0.61,"largest_move_pct":2.7,"big_move_count":5,"session_count":23},{"month":"2025-11-01","month_label":"Nov 2025","avg_abs_move_pct":0.78,"largest_move_pct":1.66,"big_move_count":6,"session_count":19},{"month":"2025-12-01","month_label":"Dec 2025","avg_abs_move_pct":0.42,"largest_move_pct":1.1,"big_move_count":2,"session_count":22},{"month":"2026-01-01","month_label":"Jan 2026","avg_abs_move_pct":0.44,"largest_move_pct":2.04,"big_move_count":2,"session_count":20},{"month":"2026-02-01","month_label":"Feb 2026","avg_abs_move_pct":0.67,"largest_move_pct":1.92,"big_move_count":4,"session_count":19},{"month":"2026-03-01","month_label":"Mar 2026","avg_abs_move_pct":0.91,"largest_move_pct":2.91,"big_move_count":9,"session_count":22},{"month":"2026-04-01","month_label":"Apr 2026","avg_abs_move_pct":0.65,"largest_move_pct":2.55,"big_move_count":4,"session_count":21},{"month":"2026-05-01","month_label":"May 2026","avg_abs_move_pct":0.54,"largest_move_pct":1.39,"big_move_count":3,"session_count":20},{"month":"2026-06-01","month_label":"Jun 2026","avg_abs_move_pct":0.85,"largest_move_pct":2.58,"big_move_count":7,"session_count":21},{"month":"2026-07-01","month_label":"Jul 2026","avg_abs_move_pct":0.59,"largest_move_pct":1.68,"big_move_count":3,"session_count":22},{"month":"2026-08-01","month_label":"Aug 2026","avg_abs_move_pct":0.48,"largest_move_pct":1.8,"big_move_count":2,"session_count":21},{"month":"2026-09-01","month_label":"Sep 2026","avg_abs_move_pct":0.59,"largest_move_pct":1.13,"big_move_count":2,"session_count":13}],"shape":"series","sql":"SELECT\n    toString(toStartOfMonth(session))                   AS month,\n    formatDateTime(toStartOfMonth(session), '%b %Y')    AS month_label,\n    round(avg(abs_move_pct), 2)                         AS avg_abs_move_pct,\n    round(max(abs_move_pct), 2)                         AS largest_move_pct,\n    countIf(abs_move_pct >= 1)                          AS big_move_count,\n    count()                                             AS session_count\nFROM\n(\n    SELECT\n        session,\n        abs(close_px / lagInFrame(close_px) OVER (ORDER BY session ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) - 1) * 100 AS abs_move_pct\n    FROM\n    (\n        SELECT\n            date                   AS session,\n            toFloat64(any(close))  AS close_px\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker = 'SPY'\n          AND date >= toStartOfMonth(today() - 365) - 10\n        GROUP BY date\n    )\n)\nWHERE session >= toStartOfMonth(today() - 365)\nGROUP BY month, month_label\nORDER BY month","computed_at":"2026-09-20T15:01:54.929937+00:00","elapsed":0.290511268}