STRASMORE/EXPLORE 2,170 QUERIES

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?.

as of scalar 1×6read in context →
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
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for The most recent session on the tape: bar count, same-day SPY options prints, and the last half-day observed, derived from the stored result.
ColumnTypeRangeNotes
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 →