STRASMORE/EXPLORE 2,749 QUERIES

One hour of NBBO spreads, measured in mils (Jul 15, 2026)

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-09, from Maker-Taker Fees and Rebates Explained.

as of ranking 4×3read in context →
One hour of NBBO spreads, measured in mils (Jul 15, 2026) — 4 rows by 3 columns, computed from US exchange, SIP and OPRA data.
tickeravg_spread_milspct_at_one_cent
KO14758.2
SPY20923.2
AAPL5224.3
MSFT9282.5
Rows × columns
4 × 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 One hour of NBBO spreads, measured in mils (Jul 15, 2026), derived from the stored result.
ColumnTypeRangeNotes
ticker text 4 distinct values (AAPL, KO, MSFT…)
avg_spread_mils number 147 to 928
pct_at_one_cent number 2.5 to 58.2 percent

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.

WITH quotes AS
(
    SELECT
        ticker,
        round((toFloat64(ask_price) - toFloat64(bid_price)) * 10000) AS spread_mils
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('AAPL', 'KO', 'MSFT', 'SPY')
      AND sip_timestamp >= '2026-07-15 14:00:00'
      AND sip_timestamp <  '2026-07-15 15:00:00'
      AND bid_price > 0
      AND ask_price > bid_price
)
SELECT
    ticker,
    toUInt32(round(avg(spread_mils)))                    AS avg_spread_mils,
    round(100 * countIf(spread_mils = 100) / count(), 1) AS pct_at_one_cent
FROM quotes
GROUP BY ticker
ORDER BY avg_spread_mils
⌘/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 analysisMaker-Taker Fees and Rebates Explained
Where one liquid name's shares printed, by venue (Jul 15, 2026) ranking 12×3 → A 30 mil per share fee as basis points of notional, by price band (Jul 15, 2026) ranking 6×3 → Registered US stock exchanges and their participant codes table 18×5 → Where 30 minutes of AAPL prints landed, by venue ranking 12×3 → The smallest size the NBBO will show: six names across the price tiers ranking 6×4 → Share of prints by trade size: AAPL against KO ranking 5×4 → See all 2,749 queries →