{"slug":"how-monthly-returns-are-measured","qid":"extended_close","label":"SPY on June 30, 2026: official-close vs the final extended-hours print","post_title":"How Monthly Stock Returns Are Measured","post_url":"/blog/how-monthly-returns-are-measured#q-extended_close","columns":["regular_session_close","last_extended_print","after_hours_drift_pct"],"rows":[{"regular_session_close":746.32,"last_extended_print":746.3,"after_hours_drift_pct":-0.003}],"shape":"scalar","sql":"SELECT round(argMaxIf(toFloat64(close), window_start, rth), 2) AS regular_session_close,\n       round(argMax(toFloat64(close), window_start), 2) AS last_extended_print,\n       round(100 * (argMax(toFloat64(close), window_start) - argMaxIf(toFloat64(close), window_start, rth))\n             / argMaxIf(toFloat64(close), window_start, rth), 3) AS after_hours_drift_pct\nFROM (\n    SELECT window_start, close,\n           toTimeZone(window_start, 'America/New_York') >= toDateTime('2026-06-30 09:30:00', 'America/New_York')\n           AND toTimeZone(window_start, 'America/New_York') < toDateTime('2026-06-30 16:00:00', 'America/New_York') AS rth\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= '2026-06-30 04:00:00'\n      AND window_start < '2026-07-01 08:00:00'\n)","computed_at":"2026-07-26T05:37:28.373895+00:00","elapsed":0.035407479}