STRASMORE/EXPLORE 2,948 QUERIES

spread_by_clock

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-10-02, from do-nyse-and-nasdaq-have-public-apis.

as of series 61×3read in context →
spread_by_clock — 61 rows by 3 columns, computed from US exchange, SIP and OPRA data.
et_timemedian_spread_centsquote_count
04:0024817
04:1525365
04:3022182
04:4523160
05:002896
05:151689
05:3022189
05:451660
06:002074
06:1526341
06:303482
06:4519158
07:0019521
07:1520273
07:3018140
07:4512309
08:0017400
08:1513397
08:3011203
08:4526385
09:0014330
09:15272317
09:30658563
09:45439674
10:00440608
10:15430086
10:30430425
10:45433571
11:00334656
11:15322296
11:30322642
11:45324860
12:00322445
12:15221574
12:30319013
12:45218705
13:00216833
13:15215746
13:30216955
13:45216142
14:00217301
14:15217682
14:30218146
14:45218208
15:00215258
15:15218480
15:30221019
15:45258309
16:0014443
16:1515133
16:301190
16:45969
17:00953
17:151564
18:0011224
18:151967
18:3012225
18:4510193
19:001592
19:309165
19:4511101
Rows × columns
61 × 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_by_clock, derived from the stored result.
ColumnTypeRangeNotes
et_time text 61 distinct values (04:00, 04:15, 04:30…)
median_spread_cents number 2 to 34
quote_count number 53 to 58,563 count

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(bucket, '%H:%i') AS et_time,
    round(median_cents, 2)          AS median_spread_cents,
    quote_count
FROM
(
    SELECT
        toStartOfFifteenMinutes(toTimeZone(sip_timestamp, 'America/New_York')) AS bucket,
        quantileExact(0.5)(toFloat64(ask_price - bid_price) * 100) AS median_cents,
        count() AS quote_count
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= toDateTime('2026-09-15 04:00:00', 'UTC')
      AND sip_timestamp <  toDateTime('2026-09-16 04:00:00', 'UTC')
      AND bid_price > 0
      AND ask_price > bid_price
    GROUP BY bucket
    HAVING count() >= 50
    ORDER BY bucket
)
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 analysisdo-nyse-and-nasdaq-have-public-apis
venue_share ranking 12×3 → exchange_venues ranking 9×3 → quote_rate 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,948 queries →