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

What Is the NBBO? National Best Bid and Offer
NBBO updates per session: four heavily traded names vs. two thin small capsseries · 2026-08-22 · 6×5Preview: a 6-point series, ending lower. Exchange stamp to SIP stamp: the consolidation step, in microsecondsranking · 2026-08-22 · 4×3Preview: 4 ranked values, smallest first. The smallest size the NBBO will show: six names across the price tiersranking · 2026-08-22 · 6×4Preview: 6 ranked values, smallest first. KO: ten consecutive NBBO updates from 1:30 p.m. ET on a recent sessionseries · 2026-08-22 · 10×7Preview: a 10-point series, roughly flat. GME, 2024-05-14: NBBO updates and trades per minute across a five-minute LULD pauseseries · 2026-08-22 · 15×3Preview: a 15-point series, roughly flat. AAPL: average NBBO updates per minute by half-hour bucket (ET, 4 a.m. to 8 p.m.)series · 2026-08-22 · 32×3Preview: a 16-point series, roughly flat.
What Is a Bid-Ask Spread? Real Costs
Typical quoted spread: six liquid names vs. two thin small caps, with the 100-share costranking · 2026-08-22 · 8×4Preview: 8 ranked values, smallest first. AAPL median quoted spread by 30-minute bucket (ET, extended hours included)series · 2026-08-22 · 32×2Preview: a 16-point series, ending lower. The same curve at four checkpoints: premarket, the open, midday, the closeseries · 2026-08-22 · 4×2Preview: a 4-point series, ending lower. AAPL: the last recorded NBBO quote in our data windowscalar · 2026-08-22 · 1×70.117
Locked and Crossed Markets, Explained With Data
Whole-tape census: locked, crossed, and one-sided records across every NBBO update of the sessionscalar · 2026-08-22 · 1×7406 The receipts: locked vs crossed totals, and the rate by session stretch (premarket, open, noon, close, ET)scalar · 2026-08-22 · 1×10246.9 The census by name: eight liquid tickers and two thin small caps, recent completed sessionstable · 2026-08-22 · 10×7 Locked-or-crossed records per 10,000 updates by 30-minute ET bucket, checked set, extended hours includedseries · 2026-08-22 · 32×3Preview: a 16-point series, roughly flat.
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.
Professional vs Non-Professional Market Data
US equity and options venues in the exchange reference listranking · 2026-08-08 · 6×3Preview: 6 ranked values, largest first. AAPL quote messages per 15 minutes, pinned session of Jun 16, 2026series · 2026-08-08 · 36×2Preview: a 16-point series, ending higher. Listed option contracts that traded on Jun 16, 2026, by underlyingranking · 2026-08-08 · 5×4Preview: 5 ranked values, largest first. Quote message rate by symbol, 10:00 to 11:00 a.m. ET on Jun 16, 2026ranking · 2026-08-08 · 5×3Preview: 5 ranked values, largest first.
Why Stock Quotes Are Delayed 15 Minutes
How often the last price changes, minute by minute (June 2026)ranking · 2026-08-06 · 6×3Preview: 6 ranked values, largest first. The 15 minute gap across six household tickers (June 2026)ranking · 2026-08-06 · 6×3Preview: 6 ranked values, largest first. How far SPY travels in 15 minutes, by hour of the session (June 2026)series · 2026-08-06 · 7×4Preview: a 7-point series, ending higher. Live price against a 15 minute delayed view, one SPY sessionseries · 2026-08-06 · 37×5Preview: a 16-point series, ending lower.
NBBO updates per session: four heavily traded names vs. two thin small caps

NBBO updates per session: four heavily traded names vs. two thin small caps

most recentas of series 6×5read in context →
NBBO updates per session: four heavily traded names vs. two thin small caps — 6 rows by 5 columns, computed from US exchange, SIP and OPRA data.
tickersessionsavg_updates_per_sessionavg_updates_per_session_mmultiple_of_quietest
SPY520572252.057866
NVDA515339051.534645
AAPL57974590.797336
KO53372450.337142
SENEA550830.0052
NATH523770.0021
the exact SQL behind every number
SELECT ticker,
       uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York'))) AS sessions,
       round(count() / uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York')))) AS avg_updates_per_session,
       round(count() / uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York'))) / 1e6, 3) AS avg_updates_per_session_m,
       round((count() / uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York')))) / min(count() / uniqExact(toDate(toTimeZone(sip_timestamp, 'America/New_York')))) OVER (), 0) AS multiple_of_quietest
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'NVDA', 'AAPL', 'KO', 'SENEA', 'NATH')
  AND sip_timestamp >= toDateTime(today() - 10)
  AND sip_timestamp < toDateTime(today() - 3)
  AND toDate(toTimeZone(sip_timestamp, 'America/New_York')) IN (
      SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date
      FROM global_markets.delayed_stocks_minute_aggs
      WHERE ticker = 'SPY'
        AND window_start >= toDateTime(today() - 10)
        AND window_start < toDateTime(today() - 3)
      GROUP BY session_date
      HAVING countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) = 390
  )
GROUP BY ticker
ORDER BY indexOf(['SPY', 'NVDA', 'AAPL', 'KO', 'SENEA', 'NATH'], ticker)
$