{"slug":"does-a-stock-go-up-after-a-split","qid":"famous","label":"The best-known recent stock splits: the six months before vs the three months after","post_title":"Does a Stock Go Up After a Split?","post_url":"/blog/does-a-stock-go-up-after-a-split#q-famous","columns":["ticker","ratio","ex_date","run_up_before_pct","after_3mo_pct","spy_3mo_pct"],"rows":[{"ticker":"NVDA","ratio":"10-for-1","ex_date":"2024-06-10","run_up_before_pct":165.6,"after_3mo_pct":-11.2,"spy_3mo_pct":2.5},{"ticker":"AAPL","ratio":"4-for-1","ex_date":"2020-08-31","run_up_before_pct":67,"after_3mo_pct":-7.6,"spy_3mo_pct":3.6},{"ticker":"AVGO","ratio":"10-for-1","ex_date":"2024-07-15","run_up_before_pct":57.4,"after_3mo_pct":5.8,"spy_3mo_pct":3.2},{"ticker":"TSLA","ratio":"3-for-1","ex_date":"2022-08-25","run_up_before_pct":16.7,"after_3mo_pct":-38.1,"spy_3mo_pct":-4.1},{"ticker":"NFLX","ratio":"10-for-1","ex_date":"2025-11-17","run_up_before_pct":-6.6,"after_3mo_pct":-30.2,"spy_3mo_pct":2.8},{"ticker":"GOOGL","ratio":"20-for-1","ex_date":"2022-07-18","run_up_before_pct":-21,"after_3mo_pct":-11.4,"spy_3mo_pct":-6.4},{"ticker":"AMZN","ratio":"20-for-1","ex_date":"2022-06-06","run_up_before_pct":-28.8,"after_3mo_pct":1,"spy_3mo_pct":-5.1}],"shape":"series","sql":"WITH\ncohort AS (\n    SELECT ticker, max(execution_date) AS ex,\n           argMax(concat(toString(split_to), '-for-', toString(split_from)), execution_date) AS ratio\n    FROM global_markets.stocks_splits\n    WHERE ticker IN ('NVDA', 'AVGO', 'NFLX', 'AMZN', 'GOOGL', 'AAPL', 'TSLA')\n      AND split_to >= 2 * split_from\n      AND adjustment_type IN ('forward_split', 'stock_dividend')\n      AND execution_date >= '2020-01-01' AND execution_date <= '2026-01-31'\n    GROUP BY ticker\n),\nbars AS (\n    SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,\n           toFloat64(argMax(close, window_start)) AS px\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE (ticker IN (SELECT ticker FROM cohort) OR ticker = 'SPY')\n      AND window_start >= '2019-06-01 00:00:00' AND window_start < '2026-07-14 00:00:00'\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY ticker, d\n),\nseries AS (\n    SELECT ticker,\n           arrayMap(x -> x.1, arraySort(x -> x.1, groupArray((d, px)))) AS days,\n           arrayMap(x -> x.2, arraySort(x -> x.1, groupArray((d, px)))) AS prices\n    FROM bars GROUP BY ticker\n),\nspy AS (SELECT days AS sd, prices AS sp FROM series WHERE ticker = 'SPY')\nSELECT c.ticker AS ticker,\n       c.ratio AS ratio,\n       toString(c.ex) AS ex_date,\n       round((s.prices[indexOf(s.days, c.ex) - 1] / s.prices[indexOf(s.days, c.ex) - 1 - 126] - 1) * 100, 1) AS run_up_before_pct,\n       round((s.prices[indexOf(s.days, c.ex) + 63] / s.prices[indexOf(s.days, c.ex)] - 1) * 100, 1) AS after_3mo_pct,\n       round((spy.sp[indexOf(spy.sd, c.ex) + 63] / spy.sp[indexOf(spy.sd, c.ex)] - 1) * 100, 1) AS spy_3mo_pct\nFROM cohort c INNER JOIN series s ON s.ticker = c.ticker CROSS JOIN spy\nWHERE indexOf(s.days, c.ex) > 130 AND length(s.prices) >= indexOf(s.days, c.ex) + 63\nORDER BY run_up_before_pct DESC","computed_at":"2026-07-15T11:02:35.741427+00:00","elapsed":0.006194637}