AI Daily Market Research Reports: What Breaks
SPY: average overnight repricing vs average regular-session move, monthlyseries ·
2026-08-01 · 24×3
What the next session did: 36 large caps bucketed by the prior day's move, Aug 2024 to Jul 2026table ·
2026-08-01 · 5×5
When headlines actually land: article counts by ET clock hour, July 2026ranking ·
2026-08-01 · 24×4
Headline coverage by size of daily move: 36 large caps, May to July 2026ranking ·
2026-08-01 · 5×4
Daily turnover in the top ten movers: fixed 36 name large-cap list, July 2026series ·
2026-08-01 · 21×3
SPY: average overnight repricing vs average regular-session move, monthly
SPY: average overnight repricing vs average regular-session move, monthly
| month | overnight_move_pct | session_move_pct |
|---|---|---|
| 2024-08 | 0.618 | 0.634 |
| 2024-09 | 0.334 | 0.443 |
| 2024-10 | 0.301 | 0.423 |
| 2024-11 | 0.326 | 0.368 |
| 2024-12 | 0.316 | 0.53 |
| 2025-01 | 0.546 | 0.536 |
| 2025-02 | 0.318 | 0.667 |
| 2025-03 | 0.57 | 0.876 |
| 2025-04 | 1.305 | 1.898 |
| 2025-05 | 0.7 | 0.415 |
| 2025-06 | 0.32 | 0.414 |
| 2025-07 | 0.226 | 0.325 |
| 2025-08 | 0.255 | 0.442 |
| 2025-09 | 0.263 | 0.304 |
| 2025-10 | 0.382 | 0.512 |
| 2025-11 | 0.476 | 0.686 |
| 2025-12 | 0.237 | 0.384 |
| 2026-01 | 0.336 | 0.324 |
| 2026-02 | 0.313 | 0.672 |
| 2026-03 | 0.724 | 0.725 |
| 2026-04 | 0.45 | 0.466 |
| 2026-05 | 0.316 | 0.338 |
| 2026-06 | 0.513 | 0.619 |
| 2026-07 | 0.42 | 0.371 |
the exact SQL behind every number
WITH bars AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(open, window_start) AS session_open,
argMax(close, window_start) AS session_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2024-08-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
linked AS (
SELECT d,
session_open,
session_close,
lagInFrame(session_close) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
FROM bars
)
SELECT formatDateTime(toStartOfMonth(d), '%Y-%m') AS month,
round(avg(abs(session_open / prior_close - 1)) * 100, 3) AS overnight_move_pct,
round(avg(abs(session_close / session_open - 1)) * 100, 3) AS session_move_pct
FROM linked
WHERE prior_close > 0
GROUP BY month
ORDER BY month ASC
More from this analysisAI Daily Market Research Reports: What Breaks
Daily turnover in the top ten movers: fixed 36 name large-cap list, July 2026
series 21×3
→
When headlines actually land: article counts by ET clock hour, July 2026
ranking 24×4
→
What the next session did: 36 large caps bucketed by the prior day's move, Aug 2024 to Jul 2026
table 5×5
→
Headline coverage by size of daily move: 36 large caps, May to July 2026
ranking 5×4
→
See all 2,170 queries →