{"slug":"is-the-stock-market-open-today","qid":"session_receipts","label":"The most recent session on the tape: bar count, same-day SPY options prints, and the last half-day observed","post_title":"Is the Stock Market Open Today?","post_url":"/blog/is-the-stock-market-open-today#q-session_receipts","columns":["most_recent_session","weekday","regular_minute_bars","spy_option_prints_thousands","last_early_close","early_close_bars"],"rows":[{"most_recent_session":"2026-08-24","weekday":"Monday","regular_minute_bars":211,"spy_option_prints_thousands":1140,"last_early_close":"2026-08-24","early_close_bars":211}],"shape":"scalar","sql":"WITH rth AS (\n    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= today() - 450\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY d\n),\nlast_sess AS (\n    SELECT max(d) AS last_d\n    FROM rth\n    WHERE bars >= 120 AND d < toDate(toTimeZone(now(), 'America/New_York'))\n),\nopt AS (\n    SELECT round(count() / 1e3, 0) AS spy_option_prints_thousands\n    FROM global_markets.options_trades\n    WHERE ticker >= 'O:SPY2' AND ticker < 'O:SPY3'\n      AND sip_timestamp >= toDateTime((SELECT last_d FROM last_sess), 'America/New_York')\n      AND sip_timestamp < toDateTime((SELECT last_d FROM last_sess) + 1, 'America/New_York')\n),\nlast_early AS (\n    SELECT toString(max(d)) AS last_early_close_date,\n           argMax(bars, d) AS its_bars\n    FROM rth WHERE bars BETWEEN 120 AND 330\n)\nSELECT toString((SELECT last_d FROM last_sess)) AS most_recent_session,\n       formatDateTime((SELECT last_d FROM last_sess), '%W') AS weekday,\n       (SELECT bars FROM rth WHERE d = (SELECT last_d FROM last_sess)) AS regular_minute_bars,\n       (SELECT spy_option_prints_thousands FROM opt) AS spy_option_prints_thousands,\n       (SELECT last_early_close_date FROM last_early) AS last_early_close,\n       (SELECT its_bars FROM last_early) AS early_close_bars","computed_at":"2026-08-25T13:00:04.160779+00:00","elapsed":1.5410412}