Futures Price Limits and Price Banding
Typical and tail one-minute moves in the S&P 500 ETF, by half hour of the sessionseries ·
2026-10-09 · 13×3
Between-session gaps on four equity index ETFs, 2015 to datetable ·
2026-10-09 · 4×5
Share of S&P 500 ETF sessions opening 1% or 2% from the prior close, by yeartable ·
2026-10-09 · 12×5
S&P 500 ETF path on August 5, 2024, measured against the prior closeseries ·
2026-10-09 · 39×3
Why Stocks Halt: Limit Up-Limit Down Bands
Where listed symbols sit by price, and which band rule governs each zoneranking ·
2026-10-04 · 6×3
Average minute range through the session, five liquid namesseries ·
2026-10-04 · 26×3
How far eight stocks move in a five minute window, trailing yearranking ·
2026-10-04 · 8×4
What a 5 percent band is worth in dollars, by price levelranking ·
2026-10-04 · 8×4
Market-Wide Circuit Breakers Explained
SPY-equivalent circuit breaker levels for the next sessiontable ·
2026-10-04 · 3×7
March 2020 session by session: open, low and close versus the prior closeseries ·
2026-10-04 · 22×6
The four Level 1 halt sessions of March 2020series ·
2026-10-04 · 4×8
How the three lines move with each SPY closeseries ·
2026-10-04 · 15×5
COVID Crash 2020: Four Halts, Peak to Trough
10-year and 3-month Treasury yields through the crash, daily closesseries ·
2026-09-28 · 31×3
SPY options: puts vs calls traded, March 2–13, 2020 (millions of contracts)series ·
2026-09-28 · 10×4
March 9 and full-crash moves: cruise, airline, energy, bank, tech, staples vs SPYranking ·
2026-09-28 · 7×3
SPY by half-hour: March 9, 2020 regular session, closing cross print in the final half hourseries ·
2026-09-28 · 13×4
SPY on March 9, 2020: the circuit-breaker session, receiptedscalar ·
2026-09-28 · 1×11297.42
The COVID crash, peak to trough to recovery: SPY daily closes, one rowscalar ·
2026-09-28 · 1×11338.31
The four circuit-breaker sessions of March 2020: SPY close, change, volumeseries ·
2026-09-28 · 4×4
Typical and tail one-minute moves in the S&P 500 ETF, by half hour of the session
Typical and tail one-minute moves in the S&P 500 ETF, by half hour of the session
| et_time | median_minute_move_pct | p99_minute_move_pct |
|---|---|---|
| 09:30 | 0.025 | 0.171 |
| 10:00 | 0.022 | 0.158 |
| 10:30 | 0.019 | 0.138 |
| 11:00 | 0.016 | 0.123 |
| 11:30 | 0.015 | 0.113 |
| 12:00 | 0.014 | 0.116 |
| 12:30 | 0.014 | 0.114 |
| 13:00 | 0.014 | 0.102 |
| 13:30 | 0.013 | 0.121 |
| 14:00 | 0.013 | 0.114 |
| 14:30 | 0.013 | 0.113 |
| 15:00 | 0.013 | 0.114 |
| 15:30 | 0.017 | 0.137 |
the exact SQL behind every number
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(100 * quantileDeterministic(0.5)(abs(toFloat64(close) / toFloat64(open) - 1),
toUInt64(toUnixTimestamp(window_start))), 3) AS median_minute_move_pct,
round(100 * quantileDeterministic(0.99)(abs(toFloat64(close) / toFloat64(open) - 1),
toUInt64(toUnixTimestamp(window_start))), 3) AS p99_minute_move_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2024-01-01 00:00:00'
AND window_start < '2026-10-01 00:00:00'
AND volume > 0
AND open > 0
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 et_time
ORDER BY et_time ASC
More from this analysisFutures Price Limits and Price Banding
S&P 500 ETF path on August 5, 2024, measured against the prior close
series 39×3
→
Share of S&P 500 ETF sessions opening 1% or 2% from the prior close, by year
table 12×5
→
Between-session gaps on four equity index ETFs, 2015 to date
table 4×5
→
SPY typical and largest daily move, month by month since 2019
series 91×4
→
See all 3,256 queries →