How to Find a Stock's Earnings Date
Spacing between each name's eight biggest overnight moves, July 2024 to June 2026table ·
2026-08-03 · 7×5
Where fiscal quarters actually end: statement periods by calendar month, July 2023 to June 2026ranking ·
2026-08-03 · 12×3
NVDA: the ten largest overnight moves, July 2024 to June 2026ranking ·
2026-08-03 · 10×3
Spacing between each name's eight biggest overnight moves, July 2024 to June 2026
Spacing between each name's eight biggest overnight moves, July 2024 to June 2026
| ticker | median_days_between | closest_pair_days | widest_pair_days | median_move_pct |
|---|---|---|---|---|
| WMT | 93 | 38 | 188 | 3.91 |
| MSFT | 89 | 3 | 93 | 5.6 |
| COST | 69 | 1 | 214 | 2.6 |
| JNJ | 69 | 2 | 189 | 2.27 |
| KO | 51 | 4 | 197 | 3.04 |
| AAPL | 10 | 3 | 179 | 5.11 |
| NVDA | 8 | 1 | 175 | 6.49 |
the exact SQL behind every number
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session,
argMin(close, window_start) AS first_price,
argMax(close, window_start) AS last_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'WMT', 'COST', 'KO', 'JNJ')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2024-07-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, session
),
overnight AS (
SELECT ticker,
session,
first_price,
lagInFrame(last_price) OVER (PARTITION BY ticker ORDER BY session
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_close
FROM daily
),
moves AS (
SELECT ticker,
session,
abs(toFloat64(first_price) / toFloat64(prior_close) - 1) * 100 AS abs_gap_pct
FROM overnight
WHERE toFloat64(prior_close) > 0
AND abs(toFloat64(first_price) / toFloat64(prior_close) - 1) < 0.3
),
biggest AS (
SELECT ticker,
session,
abs_gap_pct,
row_number() OVER (PARTITION BY ticker ORDER BY abs_gap_pct DESC) AS rk
FROM moves
),
spacing AS (
SELECT ticker,
session,
abs_gap_pct,
dateDiff('day',
lagInFrame(session) OVER (PARTITION BY ticker ORDER BY session
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW),
session) AS days_between
FROM biggest
WHERE rk <= 8
)
SELECT ticker,
round(quantileDeterministic(0.5)(toFloat64(days_between), cityHash64(session)), 0) AS median_days_between,
min(days_between) AS closest_pair_days,
max(days_between) AS widest_pair_days,
round(quantileDeterministic(0.5)(abs_gap_pct, cityHash64(session)), 2) AS median_move_pct
FROM spacing
WHERE days_between BETWEEN 1 AND 400
GROUP BY ticker
ORDER BY median_days_between DESC
More from this analysisHow to Find a Stock's Earnings Date
Where fiscal quarters actually end: statement periods by calendar month, July 2023 to June 2026
ranking 12×3
→
NVDA: the ten largest overnight moves, July 2024 to June 2026
ranking 10×3
→
Weekly average daily volume: Reddit's first year of trading, March 2024 to March 2025
series 53×2
→
Form 8-K disclosures mentioning a lockup, by month
series 17×4
→
See all 2,170 queries →