STRASMORE/EXPLORE 3,256 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,256 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

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×3Preview: a 13-point series, ending lower. 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×3Preview: a 16-point series, ending lower.
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×3Preview: 6 ranked values, largest first. Average minute range through the session, five liquid namesseries · 2026-10-04 · 26×3Preview: a 16-point series, ending lower. How far eight stocks move in a five minute window, trailing yearranking · 2026-10-04 · 8×4Preview: 8 ranked values, largest first. What a 5 percent band is worth in dollars, by price levelranking · 2026-10-04 · 8×4Preview: 8 ranked values, largest first.
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×6Preview: a 16-point series, ending lower. The four Level 1 halt sessions of March 2020series · 2026-10-04 · 4×8Preview: a 4-point series, ending lower. How the three lines move with each SPY closeseries · 2026-10-04 · 15×5Preview: a 15-point series, ending higher.
COVID Crash 2020: Four Halts, Peak to Trough
10-year and 3-month Treasury yields through the crash, daily closesseries · 2026-09-28 · 31×3Preview: a 16-point series, ending lower. SPY options: puts vs calls traded, March 2–13, 2020 (millions of contracts)series · 2026-09-28 · 10×4Preview: a 10-point series, roughly flat. March 9 and full-crash moves: cruise, airline, energy, bank, tech, staples vs SPYranking · 2026-09-28 · 7×3Preview: 7 ranked values, smallest first. SPY by half-hour: March 9, 2020 regular session, closing cross print in the final half hourseries · 2026-09-28 · 13×4Preview: a 13-point series, ending higher. 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×4Preview: a 4-point series, ending higher.
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

most recentas of series 13×3read in context →
Typical and tail one-minute moves in the S&P 500 ETF, by half hour of the session — 13 rows by 3 columns, computed from US exchange, SIP and OPRA data.
et_timemedian_minute_move_pctp99_minute_move_pct
09:300.0250.171
10:000.0220.158
10:300.0190.138
11:000.0160.123
11:300.0150.113
12:000.0140.116
12:300.0140.114
13:000.0140.102
13:300.0130.121
14:000.0130.114
14:300.0130.113
15:000.0130.114
15:300.0170.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
$