STRASMORE/EXPLORE 2,830 QUERIES

spread_zoom

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-09-30, from mass-cancel-and-purge-ports.

as of series 60×3read in context →
spread_zoom — 60 rows by 3 columns, computed from US exchange, SIP and OPRA data.
et_timeavg_spread_bpsp90_spread_bps
09:306.5610.78
09:315.097.97
09:325.689.05
09:334.587.36
09:344.246.78
09:353.185.09
09:363.234.53
09:372.894.51
09:382.894.51
09:392.723.96
09:403.054.51
09:413.385.09
09:423.55.12
09:432.944.55
09:443.135.09
09:452.633.97
09:462.934.5
09:472.94.49
09:483.25.05
09:492.833.92
09:502.773.92
09:512.743.9
09:522.43.89
09:532.433.35
09:542.673.91
09:552.53.89
09:562.593.89
09:572.443.88
09:582.063.32
09:592.343.32
10:002.493.87
10:012.513.89
10:022.934.45
10:032.683.89
10:042.984.43
10:052.673.88
10:062.824.41
10:072.453.85
10:082.563.85
10:092.423.31
10:102.563.84
10:113.345.38
10:123.766.46
10:133.244.82
10:144.236.39
10:153.815.83
10:164.125.78
10:174.666.74
10:185.629.38
10:195.367.94
10:204.386.4
10:214.225.89
10:225.468.63
10:235.418.1
10:245.057.6
10:255.078.16
10:265.248.64
10:274.957.56
10:284.457.1
10:294.236.6
Rows × columns
60 × 3
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 spread_zoom, derived from the stored result.
ColumnTypeRangeNotes
et_time text 60 distinct values (09:30, 09:31, 09:32…)
avg_spread_bps number 2.06 to 6.56
p90_spread_bps number 3.31 to 10.78

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.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

SELECT
    formatDateTime(toStartOfMinute(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
    round(avg(spread_bps), 2)                                                               AS avg_spread_bps,
    round(quantileDeterministic(0.90)(spread_bps, toUInt64(sequence_number)), 2)            AS p90_spread_bps
FROM
(
    SELECT
        sip_timestamp,
        sequence_number,
        20000 * (toFloat64(ask_price) - toFloat64(bid_price))
              / (toFloat64(ask_price) + toFloat64(bid_price)) AS spread_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= '2025-04-07 13:30:00'
      AND sip_timestamp <  '2025-04-07 14:30:00'
      AND bid_price > 0
      AND ask_price > bid_price
)
GROUP BY et_time
ORDER BY et_time
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysismass-cancel-and-purge-ports
quote_traffic series 54×4 → price_travel series 54×3 → options_breadth ranking 5×2 → The 2s10s spread by month, full history series 604×5 → One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 → The 5s30s spread month by month, with both legs series 241×4 → See all 2,830 queries →