NVDA's May 2023 Earnings: The AI Gap
May 25, 2023: NVIDIA's guidance shocked Wall Street after the close and the stock opened 26% higher — the overnight gap that started the AI supercycle trade.
On the evening of May 24, 2023, NVIDIA guided its next quarter's revenue about fifty percent above Wall Street's consensus — the data-center number that made "AI capex" the market's organizing story. The stock's response happened almost entirely where most investors couldn't trade it: overnight. This page replays the gap that opened the AI supercycle era, from the stored minute tape. Every number is a stored query; expand any panel for the SQL.
The gap, receipted
The exact SQL behind every number
WITH
(
SELECT argMaxIf(toFloat64(close), window_start,
(toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'NVDA'
AND window_start >= toDateTime('2023-05-24 00:00:00') AND window_start < toDateTime('2023-05-25 04:00:00')
) AS rth_close_524,
(
SELECT argMax(toFloat64(close), window_start)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'NVDA'
AND window_start >= toDateTime('2023-05-24 00:00:00') AND window_start < toDateTime('2023-05-25 04:00:00')
) AS last_extended_524
SELECT
round(rth_close_524, 2) AS may24_official_close,
round(last_extended_524, 2) AS may24_last_extended_print,
round((last_extended_524 / rth_close_524 - 1) * 100, 1) AS after_hours_move_pct,
round(toFloat64(argMinIf(open, window_start,
(toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS may25_rth_open,
round((toFloat64(argMinIf(open, window_start,
(toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / rth_close_524 - 1) * 100, 1) AS overnight_gap_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'NVDA'
AND window_start >= toDateTime('2023-05-25 04:00:00') AND window_start < toDateTime('2023-05-25 23:59:00')The official May 24 close: $305.41. Within hours, the after-hours tape had already carried the stock to $380.6 — a +24.6% extended-session move on the guidance. The next morning's regular open printed $385.23: an overnight gap of +26.1%, roughly two hundred billion dollars of market value created between one closing bell and the next opening one. It remains the canonical modern example of why stocks gap: the information landed while the main market was closed, and the extended sessions repriced it before most holders could act.
The day after the gap
The exact SQL behind every number
WITH
(
SELECT argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'NVDA'
AND window_start >= toDateTime('2023-05-24 00:00:00') AND window_start < toDateTime('2023-05-25 04:00:00')
) AS prior_rth_close
SELECT
round(prior_rth_close, 2) AS prior_close,
round(toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS rth_open,
round((toFloat64(argMinIf(open, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / prior_rth_close - 1) * 100, 1) AS gap_pct,
round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_low,
formatDateTime(toTimeZone(argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 'America/New_York'), '%H:%i') AS low_et,
round(maxIf(toFloat64(high), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS rth_high,
round(toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)), 2) AS rth_close,
round((toFloat64(argMaxIf(close, window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)) / prior_rth_close - 1) * 100, 1) AS day_change_pct,
round((minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / prior_rth_close - 1) * 100, 1) AS low_vs_prior_pct,
round(toFloat64(sum(volume)) / 1e6, 1) AS day_shares_m,
countIf((toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS rth_minute_bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'NVDA'
AND window_start >= toDateTime('2023-05-25 04:00:00') AND window_start < toDateTime('2023-05-25 23:59:00')Here is the counter-intuitive receipt: after a +26.1% gap, the regular session itself went essentially nowhere — an open of $385.23, a low of $366.35 minutes in, and a close of $379.79, within a couple percent of where it opened, on a colossal 151.4 million shares. The day's return belonged entirely to whoever held through the night. Buyers at the open effectively paid the full repriced level — and sellers at the open captured it. The gap was the event; the session was the settlement.
The sessions around it
The exact SQL behind every number
SELECT
toString(et_date) AS session,
close_usd,
round(if(prev_close = 0, NULL, (close_usd / prev_close - 1) * 100), 1) AS change_pct,
shares_m
FROM (
SELECT et_date, close_usd, shares_m,
lagInFrame(close_usd) OVER (ORDER BY et_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
FROM (
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS close_usd,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'NVDA'
AND window_start >= toDateTime('2023-05-23 00:00:00') AND window_start < toDateTime('2023-05-26 23:59:00')
GROUP BY et_date
)
)
WHERE et_date >= toDate('2023-05-24') AND et_date <= toDate('2023-05-26')
ORDER BY et_dateThe guidance day itself (May 24) had closed slightly down — the market's last pre-AI-boom price. Then +24.4% on the gap day and another +2.5% the day after, as the repricing extended to the whole semiconductor complex. Within weeks NVDA crossed the trillion-dollar line; within two years the AI-capex trade this evening ignited had become the market's dominant theme — the same complex whose 2026 whipsaws fill our modern NVDA coverage.
What this day teaches
Earnings gaps are the purest form of the overnight problem: the reaction window belongs to the extended session's thin, fast tape, and the regular session mostly ratifies it. The receipt worth remembering from this one — the biggest single-name repricing of its era added almost nothing between its open and close. If your plan for events is "react at the regular open," this tape prices exactly what that plan is worth.
The episode also rewrote what an earnings print could be. Guidance surprises of a few percent move stocks; this was a guidance surprise of roughly fifty percent on the revenue line of a company already among the world's largest — a category error in the consensus rather than a beat, and the market treated it as new information about an entire economy's capital-spending direction rather than one company's quarter. That is why the complex moved with it, and why the date is remembered as the AI trade's starting gun rather than as an NVDA story alone.
NVDA AI-boom FAQ
How much did NVDA gap up after May 2023 earnings?
The regular session opened +26.1% above the prior official close — $305.41 to $385.23 — after the after-hours tape had already moved +24.6% on the guidance.
What did NVIDIA announce on May 24, 2023?
Quarterly results after the close, with next-quarter revenue guidance far above consensus on data-center demand — the disclosure that made AI infrastructure spending the market's central story.
Did the stock keep the gap?
Yes — the gap-day session closed near its open (holding the entire overnight gain), the next day added more, and the stock crossed a trillion dollars of market value within weeks. The prices above are as-traded in 2023, before NVDA's 2024 ten-for-one split.
Every panel above is a stored, versioned query over the historical tape — expand the SQL to see each measurement. Want to feel this day instead of reading it? It is one of the playable scenarios in the Strasmore Labs trading simulator.