STRASMORE/EXPLORE 2,170 QUERIES 22Y EQUITIES · 12Y OPTIONS

2,170 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

How Big Is the OPRA Options Quote Feed?
One session, two tapes: every options NBBO update vs. every stock NBBO updatescalar · 2026-08-22 · 1×96.07 SPY's 2026-expiry option chain: one root's share of the quote firehosescalar · 2026-08-22 · 1×13164 The five busiest SPY option contracts of the session, symbol unpackedseries · 2026-08-22 · 5×7Preview: a 5-point series, roughly flat.
One session, two tapes: every options NBBO update vs. every stock NBBO update

One session, two tapes: every options NBBO update vs. every stock NBBO update

most recentas of scalar 1×9read in context →
session date
2026-08-17
option quote updates bn
6.07
stock quote updates m
340
stock symbols quoted
13,087
option to stock ratio
17.8
option trades m
10.5
option contracts traded k
350
quote updates per trade
580
avg updates per second k
250
the exact SQL behind every number
WITH (
    SELECT max(toDate(toTimeZone(window_start, 'America/New_York')))
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime(today() - 10)
      AND window_start < toDateTime(today() - 4)
) AS session_day,
(
    SELECT (count(), uniqExact(ticker))
    FROM global_markets.cache_stocks_quotes
    WHERE sip_timestamp >= toDateTime(session_day)
      AND sip_timestamp < toDateTime(session_day + 1)
) AS stock_tape,
(
    SELECT (count(), uniqExact(ticker))
    FROM global_markets.options_trades
    WHERE sip_timestamp >= toDateTime(session_day)
      AND sip_timestamp < toDateTime(session_day + 1)
) AS option_trades_t,
(
    SELECT toUInt32(max(sip_timestamp)) - toUInt32(min(sip_timestamp))
    FROM global_markets.cache_options_quotes
    WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
      AND sip_timestamp >= toDateTime(session_day)
      AND sip_timestamp < toDateTime(session_day + 1)
) AS spy_span_seconds
SELECT
    toString(session_day) AS session_date,
    round(count() / 1e9, 2) AS option_quote_updates_bn,
    round(stock_tape.1 / 1e6, 0) AS stock_quote_updates_m,
    stock_tape.2 AS stock_symbols_quoted,
    round(count() / stock_tape.1, 1) AS option_to_stock_ratio,
    round(option_trades_t.1 / 1e6, 1) AS option_trades_m,
    round(option_trades_t.2 / 1e3, 0) AS option_contracts_traded_k,
    round(count() / option_trades_t.1, 0) AS quote_updates_per_trade,
    round(count() / spy_span_seconds / 1e3, 0) AS avg_updates_per_second_k
FROM global_markets.cache_options_quotes
WHERE sip_timestamp >= toDateTime(session_day)
  AND sip_timestamp < toDateTime(session_day + 1)
$