STRASMORE/EXPLORE 2,170 QUERIES

The spread by session: regular-hours median and time-weighted average (bps)

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-07-26, from NVDA: NVIDIA's Full June 2026, Tick by Tick.

as of series 21×5read in context →
The spread by session: regular-hours median and time-weighted average (bps) — 21 rows by 5 columns, computed from US exchange, SIP and OPRA data.
sessionmed_spread_centsmed_spread_bpsquote_updatesinvalid_dropped
2026-06-0131.3424653991436
2026-06-0231.312281523655
2026-06-0320.9321333001298
2026-06-0420.932511478707
2026-06-0520.974147331445
2026-06-0820.972232572409
2026-06-0931.455021029452
2026-06-1031.453428787353
2026-06-1131.46378128916953
2026-06-1231.452538803318
2026-06-1520.951932126358
2026-06-1620.962673619253
2026-06-1720.972430971302
2026-06-1820.961990982677
2026-06-2220.9524637521851
2026-06-2320.992240334202
2026-06-2421.012180333717
2026-06-2521.032427607635
2026-06-2621.042458712852
2026-06-2921.031779717323
2026-06-3021.0117835402208
Rows × columns
21 × 5
Period covered
to
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 spread by session: regular-hours median and time-weighted average (bps), derived from the stored result.
ColumnTypeRangeNotes
session date 2026-06-01 to 2026-06-30
med_spread_cents number 2 to 3
med_spread_bps number 0.93 to 1.46
quote_updates number 1,779,717 to 5,021,029
invalid_dropped number 202 to 16,953

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
SELECT
    session,
    round(quantileDeterministicIf(0.5)(toFloat64(ask_price) - toFloat64(bid_price), toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price) * 100, 1) AS med_spread_cents,
    round(quantileDeterministicIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price), 2) AS med_spread_bps,
    count() AS quote_updates,
    countIf(NOT (bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price)) AS invalid_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'NVDA'
  AND sip_timestamp >= toDateTime64('2026-06-01 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-07-01 00:00:00', 9)
  AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session
ORDER BY session

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 analysisNVDA: NVIDIA's Full June 2026, Tick by Tick
The 21 sessions: regular-hours close, close-over-close change, full-day volume series 21×5 Options session by session: contracts, the call/put split, and the put/call ratio series 21×7 FINRA off-exchange short volume by session: marked-short share and reported volume series 20×4 Where the contracts landed: call and put volume by strike bucket table 19×5 The whole US tape ranked by June 2026 regular-hours dollar volume ranking 12×4 The trailing six months, recomputed live: turnover, shares, and month return ranking 6×4 See all 2,170 queries →