STRASMORE/EXPLORE 2,173 QUERIES 22Y EQUITIES · 12Y OPTIONS

2,173 answered market questions

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

Why Do Stocks Gap Up or Down Overnight?
Overnight gaps by ticker, H1 2026: average absolute gap and the single biggest gapseries · 2026-07-26 · 6×5Preview: a 6-point series, ending higher. MSFT straddle prices at the close before the gap: Jan 28, 2026, Jan 30 expirytable · 2026-07-26 · 4×5 MSFT: how the January 29, 2026 gap formed, 30-minute premarket bucketsseries · 2026-07-26 · 11×8Preview: a 11-point series, ending higher. SPY, H1 2026: average absolute overnight gap vs average absolute intraday movescalar · 2026-07-26 · 1×4123 What crossed the wire during SPY's biggest overnight gap of H1 2026table · 2026-07-26 · 2×3 SPY overnight gaps by weekday: every session, January 2024 through June 2026series · 2026-07-26 · 5×4Preview: a 5-point series, ending lower. SPY's six biggest overnight gaps of H1 2026: and the same day's open-to-close moveseries · 2026-07-26 · 6×3Preview: a 6-point series, ending higher.
Overnight gaps by ticker, H1 2026: average absolute gap and the single biggest gap

Overnight gaps by ticker, H1 2026: average absolute gap and the single biggest gap

most recentas of series 6×5read in context →
Overnight gaps by ticker, H1 2026: average absolute gap and the single biggest gap — 6 rows by 5 columns, computed from US exchange, SIP and OPRA data.
tickersessionsavg_abs_gap_pctbiggest_gap_pctbiggest_gap_day
SPY1230.452.6April 8, 2026
KO1230.425.41April 28, 2026
AAPL1230.532.82May 1, 2026
MSFT1230.89-8.66January 29, 2026
NVDA1230.993.6April 8, 2026
TSLA1231.054.97April 8, 2026
the exact SQL behind every number
SELECT ticker,
       count() AS sessions,
       round(avg(abs(gap_pct)), 2) AS avg_abs_gap_pct,
       round(argMax(gap_pct, (abs(gap_pct), day)), 2) AS biggest_gap_pct,
       concat(monthName(argMax(day, (abs(gap_pct), day))), ' ', toString(toDayOfMonth(argMax(day, (abs(gap_pct), day)))), ', ', toString(toYear(argMax(day, (abs(gap_pct), day))))) AS biggest_gap_day
FROM (
    SELECT ticker, day, 100 * (rth_open - prior_close) / prior_close AS gap_pct
    FROM (
        SELECT ticker, day, rth_open,
               lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY day) AS prior_close
        FROM (
            SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS day,
                   argMinIf(toFloat64(open), window_start, rth) AS rth_open,
                   argMaxIf(toFloat64(close), window_start, rth) AS rth_close
            FROM (
                SELECT ticker, window_start, open, close,
                       toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                       AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
                FROM global_markets.delayed_stocks_minute_aggs
                WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'TSLA')
                  AND window_start >= '2025-12-29 04:00:00'
                  AND window_start < '2026-07-01 08:00:00'
            )
            GROUP BY ticker, day
        )
    )
    WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'TSLA'], ticker)
$