{"slug":"am-vs-pm-settled-options","qid":"same_strike_two_ways","label":"One at-the-money call settled two ways: the ten widest splits since January 2024","post_title":"AM vs PM Settled Index Options Explained","post_url":"/blog/am-vs-pm-settled-options#q-same_strike_two_ways","columns":["expiry_label","gap_abs_pct","am_settlement_usd","pm_settlement_usd","settlement_spread_usd"],"rows":[{"expiry_label":"Dec 20, 2024","gap_abs_pct":0.74,"am_settlement_usd":0,"pm_settlement_usd":4.87,"settlement_spread_usd":4.87},{"expiry_label":"Jan 19, 2024","gap_abs_pct":0.25,"am_settlement_usd":1.65,"pm_settlement_usd":6.42,"settlement_spread_usd":4.77},{"expiry_label":"Feb 20, 2026","gap_abs_pct":0.32,"am_settlement_usd":0,"pm_settlement_usd":4.36,"settlement_spread_usd":4.36},{"expiry_label":"Nov 21, 2025","gap_abs_pct":0.39,"am_settlement_usd":2.05,"pm_settlement_usd":6.06,"settlement_spread_usd":4.01},{"expiry_label":"Dec 19, 2025","gap_abs_pct":0.02,"am_settlement_usd":0.59,"pm_settlement_usd":4.59,"settlement_spread_usd":4},{"expiry_label":"Apr 17, 2026","gap_abs_pct":0.65,"am_settlement_usd":4.14,"pm_settlement_usd":8.04,"settlement_spread_usd":3.9},{"expiry_label":"Oct 17, 2025","gap_abs_pct":0.17,"am_settlement_usd":0,"pm_settlement_usd":3.32,"settlement_spread_usd":3.32},{"expiry_label":"May 16, 2025","gap_abs_pct":0.14,"am_settlement_usd":1.25,"pm_settlement_usd":4.29,"settlement_spread_usd":3.04},{"expiry_label":"Jan 16, 2026","gap_abs_pct":0.21,"am_settlement_usd":1.66,"pm_settlement_usd":0,"settlement_spread_usd":1.66},{"expiry_label":"Jun 20, 2025","gap_abs_pct":0.15,"am_settlement_usd":1.38,"pm_settlement_usd":0,"settlement_spread_usd":1.38}],"shape":"table","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),\nexpirations AS (\n    SELECT session_date,\n           first_print,\n           last_print,\n           round(prior_close, 0) AS strike,\n           abs(first_print / prior_close - 1) * 100 AS gap_abs_raw\n    FROM sequenced\n    WHERE 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\n)\nSELECT formatDateTime(session_date, '%b %e, %Y') AS expiry_label,\n       round(gap_abs_raw, 2) AS gap_abs_pct,\n       round(greatest(first_print - strike, 0), 2) AS am_settlement_usd,\n       round(greatest(last_print - strike, 0), 2) AS pm_settlement_usd,\n       round(abs(greatest(last_print - strike, 0) - greatest(first_print - strike, 0)), 2) AS settlement_spread_usd\nFROM expirations\nORDER BY settlement_spread_usd DESC\nLIMIT 10","computed_at":"2026-08-03T07:28:39.056356+00:00","elapsed":0.004465826}