The most recent session on the tape: bar count, same-day SPY options prints, and the last half-day observed
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-08-25, from Is the Stock Market Open Today?.
most recent session
2026-08-24
weekday
Monday
regular minute bars
211
spy option prints thousands
1,140
last early close
2026-08-24
early close bars
211
- Rows × columns
- 1 × 6
- Period covered
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
most_recent_session |
date | 2026-08-24 | |
weekday |
date | Monday | |
regular_minute_bars |
number | every row is 211 | |
spy_option_prints_thousands |
number | every row is 1,140 | |
last_early_close |
date | 2026-08-24 | |
early_close_bars |
number | every row is 211 | US dollars |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
the exact SQL behind every number
WITH rth AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 450
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
last_sess AS (
SELECT max(d) AS last_d
FROM rth
WHERE bars >= 120 AND d < toDate(toTimeZone(now(), 'America/New_York'))
),
opt AS (
SELECT round(count() / 1e3, 0) AS spy_option_prints_thousands
FROM global_markets.options_trades
WHERE ticker >= 'O:SPY2' AND ticker < 'O:SPY3'
AND sip_timestamp >= toDateTime((SELECT last_d FROM last_sess), 'America/New_York')
AND sip_timestamp < toDateTime((SELECT last_d FROM last_sess) + 1, 'America/New_York')
),
last_early AS (
SELECT toString(max(d)) AS last_early_close_date,
argMax(bars, d) AS its_bars
FROM rth WHERE bars BETWEEN 120 AND 330
)
SELECT toString((SELECT last_d FROM last_sess)) AS most_recent_session,
formatDateTime((SELECT last_d FROM last_sess), '%W') AS weekday,
(SELECT bars FROM rth WHERE d = (SELECT last_d FROM last_sess)) AS regular_minute_bars,
(SELECT spy_option_prints_thousands FROM opt) AS spy_option_prints_thousands,
(SELECT last_early_close_date FROM last_early) AS last_early_close,
(SELECT its_bars FROM last_early) AS early_close_bars
Run your own version of this
The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.
More from this analysisIs the Stock Market Open Today?
Market status computed at this page's refresh: weekday check, holiday check, and the ET clock
scalar 1×7
→
Every upcoming NYSE closure and early close on the calendar feed, with a countdown
series 12×6
→
SPY across recent weekends and holiday weekends: Friday's close vs. the reopening print
series 11×6
→
Unscheduled closures on the tape: zero regular-session bars on an ordinary weekday
series 5×4
→
This calendar year's closures: already passed (counted from the tape) plus still ahead (from the calendar)
table 2×5
→
Weekdays in the trailing year when stocks traded but no Treasury yield printed
table 2×2
→
See all 2,170 queries →