{"slug":"index-rebalance-day-closing-auction","qid":"late_drift","label":"late_drift","post_title":"index-rebalance-day-closing-auction","post_url":"/blog/index-rebalance-day-closing-auction#q-late_drift","columns":["label","event_drift_bps","typical_drift_bps"],"rows":[{"label":"AAPL S&P quarterly Dec-2025","event_drift_bps":110.6,"typical_drift_bps":15.2},{"label":"KO S&P quarterly Dec-2025","event_drift_bps":37.7,"typical_drift_bps":6.2},{"label":"MSFT Russell recon Jun-2025","event_drift_bps":37.4,"typical_drift_bps":8.1},{"label":"KO Russell recon Jun-2026","event_drift_bps":33.4,"typical_drift_bps":8.1},{"label":"MSFT Russell recon Jun-2026","event_drift_bps":33.3,"typical_drift_bps":18.8},{"label":"MSFT S&P quarterly Mar-2026","event_drift_bps":24,"typical_drift_bps":8.4},{"label":"AAPL Russell recon Jun-2025","event_drift_bps":21.4,"typical_drift_bps":9.5},{"label":"AAPL S&P quarterly Mar-2026","event_drift_bps":16.2,"typical_drift_bps":17.9},{"label":"KO S&P quarterly Mar-2026","event_drift_bps":14.7,"typical_drift_bps":6.8},{"label":"AAPL Russell recon Jun-2026","event_drift_bps":6,"typical_drift_bps":17.2},{"label":"KO Russell recon Jun-2025","event_drift_bps":5.7,"typical_drift_bps":10.9},{"label":"MSFT S&P quarterly Dec-2025","event_drift_bps":3.9,"typical_drift_bps":15}],"shape":"ranking","sql":"WITH marks AS\n(\n    SELECT\n        ticker,\n        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,\n        anyIf(toFloat64(close),\n              toHour(toTimeZone(window_start, 'America/New_York')) = 15\n              AND toMinute(toTimeZone(window_start, 'America/New_York')) = 50) AS px_350,\n        anyIf(toFloat64(close),\n              toHour(toTimeZone(window_start, 'America/New_York')) = 16\n              AND toMinute(toTimeZone(window_start, 'America/New_York')) = 0)  AS px_close\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('AAPL', 'MSFT', 'KO')\n      AND window_start >= '2025-05-01'\n      AND window_start <  '2026-06-29'\n      AND toHour(toTimeZone(window_start, 'America/New_York')) IN (15, 16)\n    GROUP BY ticker, session_date\n    HAVING px_350 > 0\n       AND px_close > 0\n),\ndrift AS\n(\n    SELECT\n        ticker,\n        session_date,\n        round(10000 * abs(px_close / px_350 - 1), 1)                  AS drift_bps,\n        row_number() OVER (PARTITION BY ticker ORDER BY session_date) AS n\n    FROM marks\n),\nevents AS\n(\n    SELECT\n        ticker,\n        drift_bps,\n        n,\n        multiIf(session_date = '2025-06-27', 'Russell recon Jun-2025',\n                session_date = '2025-12-19', 'S&P quarterly Dec-2025',\n                session_date = '2026-03-20', 'S&P quarterly Mar-2026',\n                                             'Russell recon Jun-2026') AS event\n    FROM drift\n    WHERE session_date IN ('2025-06-27', '2025-12-19', '2026-03-20', '2026-06-26')\n)\nSELECT\n    concat(e.ticker, ' ', e.event)                         AS label,\n    e.drift_bps                                            AS event_drift_bps,\n    round(quantileDeterministic(0.5)(b.drift_bps, b.n), 1) AS typical_drift_bps\nFROM events AS e\nINNER JOIN drift AS b ON b.ticker = e.ticker\nWHERE b.n >= e.n - 20\n  AND b.n <= e.n - 1\nGROUP BY e.ticker, e.event, e.drift_bps\nORDER BY event_drift_bps DESC","computed_at":"2026-10-01T15:14:39.998170+00:00","elapsed":0.006304264}