STRASMORE/EXPLORE 3,293 QUERIES

spread_by_wat

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-16, from us-market-volume-by-hour-lagos-time.

as of series 16×4read in context →
spread_by_wat — 16 rows by 4 columns, computed from US exchange, SIP and OPRA data.
wat_timeet_timeavg_spread_centsavg_spread_bps
14:0009:006.240.85
14:3009:302.750.37
15:0010:002.610.35
15:3010:302.680.37
16:0011:002.920.4
16:3011:303.650.5
17:0012:003.210.44
17:3012:303.330.46
18:0013:002.890.4
18:3013:302.980.41
19:0014:002.850.39
19:3014:302.780.38
20:0015:002.390.33
20:3015:302.260.31
21:0016:006.70.92
21:3016:307.51.04
Rows × columns
16 × 4
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_wat, derived from the stored result.
ColumnTypeRangeNotes
wat_time text 16 distinct values (14:00, 14:30, 15:00…)
et_time text 16 distinct values (09:00, 09:30, 10:00…)
avg_spread_cents number 2.26 to 7.5
avg_spread_bps number 0.31 to 1.04

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(toTimeZone(toStartOfInterval(sip_timestamp, INTERVAL 30 MINUTE), 'Africa/Lagos'), '%H:%i')     AS wat_time,
    formatDateTime(toTimeZone(toStartOfInterval(sip_timestamp, INTERVAL 30 MINUTE), 'America/New_York'), '%H:%i') AS et_time,
    round(avg(toFloat64(ask_price - bid_price)) * 100, 2)                                                        AS avg_spread_cents,
    round(avg(toFloat64(ask_price - bid_price) / toFloat64(ask_price + bid_price) * 2) * 10000, 2)                AS avg_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
  AND sip_timestamp >= '2026-06-10 13:00:00'
  AND sip_timestamp <  '2026-06-10 21:00:00'
  AND bid_price > 0
  AND ask_price > bid_price
GROUP BY toStartOfInterval(sip_timestamp, INTERVAL 30 MINUTE)
ORDER BY toStartOfInterval(sip_timestamp, INTERVAL 30 MINUTE)
⌘/Ctrl + Enter

Use dis data for your AI assistant

E go open ready to query, with dis page data. Free, no account.