{"slug":"why-do-stocks-gap-overnight","qid":"ticker_gaps","label":"Overnight gaps by ticker, H1 2026: average absolute gap and the single biggest gap","post_title":"Why Do Stocks Gap Up or Down Overnight?","post_url":"/blog/why-do-stocks-gap-overnight#q-ticker_gaps","columns":["ticker","sessions","avg_abs_gap_pct","biggest_gap_pct","biggest_gap_day"],"rows":[{"ticker":"SPY","sessions":123,"avg_abs_gap_pct":0.45,"biggest_gap_pct":2.6,"biggest_gap_day":"April 8, 2026"},{"ticker":"KO","sessions":123,"avg_abs_gap_pct":0.42,"biggest_gap_pct":5.41,"biggest_gap_day":"April 28, 2026"},{"ticker":"AAPL","sessions":123,"avg_abs_gap_pct":0.53,"biggest_gap_pct":2.82,"biggest_gap_day":"May 1, 2026"},{"ticker":"MSFT","sessions":123,"avg_abs_gap_pct":0.89,"biggest_gap_pct":-8.66,"biggest_gap_day":"January 29, 2026"},{"ticker":"NVDA","sessions":123,"avg_abs_gap_pct":0.99,"biggest_gap_pct":3.6,"biggest_gap_day":"April 8, 2026"},{"ticker":"TSLA","sessions":123,"avg_abs_gap_pct":1.05,"biggest_gap_pct":4.97,"biggest_gap_day":"April 8, 2026"}],"shape":"series","sql":"SELECT ticker,\n       count() AS sessions,\n       round(avg(abs(gap_pct)), 2) AS avg_abs_gap_pct,\n       round(argMax(gap_pct, (abs(gap_pct), day)), 2) AS biggest_gap_pct,\n       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\nFROM (\n    SELECT ticker, day, 100 * (rth_open - prior_close) / prior_close AS gap_pct\n    FROM (\n        SELECT ticker, day, rth_open,\n               lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY day) AS prior_close\n        FROM (\n            SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS day,\n                   argMinIf(toFloat64(open), window_start, rth) AS rth_open,\n                   argMaxIf(toFloat64(close), window_start, rth) AS rth_close\n            FROM (\n                SELECT ticker, window_start, open, close,\n                       toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')\n                       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\n                FROM global_markets.delayed_stocks_minute_aggs\n                WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'TSLA')\n                  AND window_start >= '2025-12-29 04:00:00'\n                  AND window_start < '2026-07-01 08:00:00'\n            )\n            GROUP BY ticker, day\n        )\n    )\n    WHERE day >= '2026-01-01' AND prior_close > 0 AND isFinite(prior_close)\n)\nGROUP BY ticker\nORDER BY indexOf(['SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'TSLA'], ticker)","computed_at":"2026-07-26T06:36:49.024015+00:00","elapsed":1.600216703}