{"slug":"am-vs-pm-settled-options","qid":"overnight_gap","label":"Every monthly expiration since January 2024: the overnight gap, then the session that followed","post_title":"AM vs PM Settled Index Options Explained","post_url":"/blog/am-vs-pm-settled-options#q-overnight_gap","columns":["expiration_date","expiry_label","overnight_gap_pct","friday_session_pct"],"rows":[{"expiration_date":"2024-01-19","expiry_label":"Jan 19, 2024","overnight_gap_pct":0.25,"friday_session_pct":1},{"expiration_date":"2024-02-16","expiry_label":"Feb 16, 2024","overnight_gap_pct":-0.05,"friday_session_pct":-0.44},{"expiration_date":"2024-03-15","expiry_label":"Mar 15, 2024","overnight_gap_pct":-0.92,"friday_session_pct":-0.09},{"expiration_date":"2024-04-19","expiry_label":"Apr 19, 2024","overnight_gap_pct":-0.01,"friday_session_pct":-0.87},{"expiration_date":"2024-05-17","expiry_label":"May 17, 2024","overnight_gap_pct":0.03,"friday_session_pct":0.12},{"expiration_date":"2024-06-21","expiry_label":"Jun 21, 2024","overnight_gap_pct":-0.47,"friday_session_pct":-0.05},{"expiration_date":"2024-07-19","expiry_label":"Jul 19, 2024","overnight_gap_pct":-0.04,"friday_session_pct":-0.63},{"expiration_date":"2024-08-16","expiry_label":"Aug 16, 2024","overnight_gap_pct":-0.3,"friday_session_pct":0.51},{"expiration_date":"2024-09-20","expiry_label":"Sep 20, 2024","overnight_gap_pct":-0.54,"friday_session_pct":0.05},{"expiration_date":"2024-10-18","expiry_label":"Oct 18, 2024","overnight_gap_pct":0.31,"friday_session_pct":0.09},{"expiration_date":"2024-11-15","expiry_label":"Nov 15, 2024","overnight_gap_pct":-0.62,"friday_session_pct":-0.68},{"expiration_date":"2024-12-20","expiry_label":"Dec 20, 2024","overnight_gap_pct":-0.74,"friday_session_pct":1.56},{"expiration_date":"2025-01-17","expiry_label":"Jan 17, 2025","overnight_gap_pct":0.89,"friday_session_pct":0.1},{"expiration_date":"2025-02-21","expiry_label":"Feb 21, 2025","overnight_gap_pct":-0.04,"friday_session_pct":-1.67},{"expiration_date":"2025-03-21","expiry_label":"Mar 21, 2025","overnight_gap_pct":-1.13,"friday_session_pct":0.88},{"expiration_date":"2025-05-16","expiry_label":"May 16, 2025","overnight_gap_pct":0.14,"friday_session_pct":0.51},{"expiration_date":"2025-06-20","expiry_label":"Jun 20, 2025","overnight_gap_pct":0.15,"friday_session_pct":-0.69},{"expiration_date":"2025-07-18","expiry_label":"Jul 18, 2025","overnight_gap_pct":0.21,"friday_session_pct":-0.27},{"expiration_date":"2025-08-15","expiry_label":"Aug 15, 2025","overnight_gap_pct":0.16,"friday_session_pct":-0.39},{"expiration_date":"2025-09-19","expiry_label":"Sep 19, 2025","overnight_gap_pct":0.01,"friday_session_pct":0.2},{"expiration_date":"2025-10-17","expiry_label":"Oct 17, 2025","overnight_gap_pct":-0.17,"friday_session_pct":0.73},{"expiration_date":"2025-11-21","expiry_label":"Nov 21, 2025","overnight_gap_pct":0.39,"friday_session_pct":0.61},{"expiration_date":"2025-12-19","expiry_label":"Dec 19, 2025","overnight_gap_pct":0.02,"friday_session_pct":0.59},{"expiration_date":"2026-01-16","expiry_label":"Jan 16, 2026","overnight_gap_pct":0.21,"friday_session_pct":-0.3},{"expiration_date":"2026-02-20","expiry_label":"Feb 20, 2026","overnight_gap_pct":-0.32,"friday_session_pct":1.03},{"expiration_date":"2026-03-20","expiry_label":"Mar 20, 2026","overnight_gap_pct":-0.49,"friday_session_pct":-1.21},{"expiration_date":"2026-04-17","expiry_label":"Apr 17, 2026","overnight_gap_pct":0.65,"friday_session_pct":0.55},{"expiration_date":"2026-05-15","expiry_label":"May 15, 2026","overnight_gap_pct":-0.85,"friday_session_pct":-0.36},{"expiration_date":"2026-07-17","expiry_label":"Jul 17, 2026","overnight_gap_pct":-1.16,"friday_session_pct":0.15}],"shape":"series","sql":"WITH sessions AS (\n    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,\n           toFloat64(argMin(open, window_start)) AS first_print,\n           toFloat64(argMax(close, window_start)) AS last_print\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2023-12-01') AND toDate('2026-07-31')\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY session_date\n),\nsequenced AS (\n    SELECT session_date,\n           first_print,\n           last_print,\n           any(last_print) OVER (ORDER BY session_date ASC\n                                 ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close\n    FROM sessions\n)\nSELECT session_date AS expiration_date,\n       formatDateTime(session_date, '%b %e, %Y') AS expiry_label,\n       round((first_print / prior_close - 1) * 100, 2) AS overnight_gap_pct,\n       round((last_print / first_print - 1) * 100, 2) AS friday_session_pct\nFROM sequenced\nWHERE prior_close > 0\n  AND session_date >= toDate('2024-01-01')\n  AND toDayOfWeek(session_date) = 5\n  AND toDayOfMonth(session_date) BETWEEN 15 AND 21\nORDER BY expiration_date","computed_at":"2026-08-03T07:28:38.966528+00:00","elapsed":0.003813396}