delay_window
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-03, from market-data-licensing-for-app-developers.
| et_time | spy_range_pct | ko_range_pct |
|---|---|---|
| 09:30 | 0.372 | 0.958 |
| 09:45 | 0.332 | 0.523 |
| 10:00 | 0.31 | 0.504 |
| 10:15 | 0.279 | 0.38 |
| 10:30 | 0.254 | 0.402 |
| 10:45 | 0.291 | 0.346 |
| 11:00 | 0.228 | 0.33 |
| 11:15 | 0.241 | 0.249 |
| 11:30 | 0.217 | 0.291 |
| 11:45 | 0.221 | 0.253 |
| 12:00 | 0.2 | 0.206 |
| 12:15 | 0.17 | 0.245 |
| 12:30 | 0.195 | 0.223 |
| 12:45 | 0.163 | 0.23 |
| 13:00 | 0.187 | 0.225 |
| 13:15 | 0.212 | 0.192 |
| 13:30 | 0.192 | 0.214 |
| 13:45 | 0.173 | 0.178 |
| 14:00 | 0.196 | 0.208 |
| 14:15 | 0.165 | 0.215 |
| 14:30 | 0.17 | 0.205 |
| 14:45 | 0.173 | 0.18 |
| 15:00 | 0.182 | 0.235 |
| 15:15 | 0.189 | 0.232 |
| 15:30 | 0.176 | 0.296 |
| 15:45 | 0.349 | 0.415 |
- Rows × columns
- 26 × 3
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
et_time |
text | 26 distinct values (09:30, 09:45, 10:00…) | |
spy_range_pct |
number | 0.163 to 0.372 | percent |
ko_range_pct |
number | 0.178 to 0.958 | 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 buckets AS
(
SELECT
ticker,
toStartOfInterval(window_start, INTERVAL 15 MINUTE) AS bucket,
max(toFloat64(high)) AS hi,
min(toFloat64(low)) AS lo,
avg(toFloat64(close)) AS mid
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO')
AND window_start >= '2026-06-01 00:00:00'
AND window_start < '2026-07-01 00:00:00'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker, bucket
)
SELECT
formatDateTime(toTimeZone(bucket, 'America/New_York'), '%H:%i') AS et_time,
round(avgIf((hi - lo) / mid * 100, ticker = 'SPY'), 3) AS spy_range_pct,
round(avgIf((hi - lo) / mid * 100, ticker = 'KO'), 3) AS ko_range_pct
FROM buckets
GROUP BY et_time
HAVING countIf(ticker = 'SPY') > 0
AND countIf(ticker = 'KO') > 0
ORDER BY et_time
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.