{"slug":"what-is-a-stock-split","qid":"notable_splits","label":"Notable US stock splits since 2020: ratio, how the action was recorded, and the next 21 sessions vs SPY","post_title":"What Is a Stock Split? Ratios and Mechanics","post_url":"/blog/what-is-a-stock-split#q-notable_splits","columns":["ticker","executed_on","ratio","recorded_as","stock_21_sessions_pct","spy_21_sessions_pct"],"rows":[{"ticker":"NFLX","executed_on":"2025-11-17","ratio":"10-for-1","recorded_as":"forward split","stock_21_sessions_pct":-14.1,"spy_21_sessions_pct":0.8},{"ticker":"ORLY","executed_on":"2025-06-10","ratio":"15-for-1","recorded_as":"stock dividend","stock_21_sessions_pct":-0.2,"spy_21_sessions_pct":3.4},{"ticker":"LRCX","executed_on":"2024-10-03","ratio":"10-for-1","recorded_as":"forward split","stock_21_sessions_pct":-7.8,"spy_21_sessions_pct":0.6},{"ticker":"SMCI","executed_on":"2024-10-01","ratio":"10-for-1","recorded_as":"forward split","stock_21_sessions_pct":-18.5,"spy_21_sessions_pct":2},{"ticker":"DECK","executed_on":"2024-09-17","ratio":"6-for-1","recorded_as":"forward split","stock_21_sessions_pct":3.9,"spy_21_sessions_pct":3.4},{"ticker":"AVGO","executed_on":"2024-07-15","ratio":"10-for-1","recorded_as":"forward split","stock_21_sessions_pct":-8.8,"spy_21_sessions_pct":-3.5},{"ticker":"CMG","executed_on":"2024-06-26","ratio":"50-for-1","recorded_as":"forward split","stock_21_sessions_pct":-24.3,"spy_21_sessions_pct":-0.2},{"ticker":"NVDA","executed_on":"2024-06-10","ratio":"10-for-1","recorded_as":"forward split","stock_21_sessions_pct":4.8,"spy_21_sessions_pct":3.9},{"ticker":"WMT","executed_on":"2024-02-26","ratio":"3-for-1","recorded_as":"forward split","stock_21_sessions_pct":1.6,"spy_21_sessions_pct":2.5},{"ticker":"TSLA","executed_on":"2022-08-25","ratio":"3-for-1","recorded_as":"stock dividend","stock_21_sessions_pct":-6.8,"spy_21_sessions_pct":-13.2},{"ticker":"GOOGL","executed_on":"2022-07-18","ratio":"20-for-1","recorded_as":"stock dividend","stock_21_sessions_pct":11.7,"spy_21_sessions_pct":12.5},{"ticker":"AMZN","executed_on":"2022-06-06","ratio":"20-for-1","recorded_as":"forward split","stock_21_sessions_pct":-6.8,"spy_21_sessions_pct":-5.5},{"ticker":"NVDA","executed_on":"2021-07-20","ratio":"4-for-1","recorded_as":"stock dividend","stock_21_sessions_pct":2.3,"spy_21_sessions_pct":1.9},{"ticker":"AAPL","executed_on":"2020-08-31","ratio":"4-for-1","recorded_as":"forward split","stock_21_sessions_pct":-10.3,"spy_21_sessions_pct":-4.1},{"ticker":"TSLA","executed_on":"2020-08-31","ratio":"5-for-1","recorded_as":"stock dividend","stock_21_sessions_pct":-13.9,"spy_21_sessions_pct":-4.1}],"shape":"table","sql":"SELECT ticker, executed_on, ratio, recorded_as, stock_21_sessions_pct, spy_21_sessions_pct\nFROM (\n    WITH events AS (\n        SELECT ticker, execution_date,\n               concat(toString(toInt32(split_to)), '-for-', toString(toInt32(split_from))) AS ratio,\n               if(adjustment_type = 'stock_dividend', 'stock dividend', 'forward split') AS recorded_as\n        FROM global_markets.stocks_splits\n        WHERE ticker IN ('AAPL', 'TSLA', 'GOOGL', 'AMZN', 'NVDA', 'WMT', 'CMG', 'AVGO', 'SMCI', 'LRCX', 'DECK', 'ORLY', 'NFLX')\n          AND execution_date >= '2020-01-01' AND execution_date <= '2026-06-30'\n          AND split_to > split_from\n    ),\n    daily AS (\n        SELECT ticker,\n               toDate(toTimeZone(window_start, 'America/New_York')) AS d,\n               argMaxIf(toFloat64(close), window_start,\n                        (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS close_rth\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker IN (SELECT ticker FROM events UNION ALL SELECT 'SPY')\n          AND window_start >= '2020-08-01 00:00:00' AND window_start < '2026-01-15 00:00:00'\n        GROUP BY ticker, d\n        HAVING close_rth > 0\n    ),\n    series AS (\n        SELECT ticker, arraySort(x -> x.1, groupArray((d, close_rth))) AS dc\n        FROM daily\n        GROUP BY ticker\n    ),\n    spy AS (\n        SELECT dc AS spy_dc FROM series WHERE ticker = 'SPY'\n    )\n    SELECT e.ticker AS ticker,\n           toString(e.execution_date) AS executed_on,\n           e.ratio AS ratio,\n           e.recorded_as AS recorded_as,\n           arrayFirstIndex(x -> x.1 >= e.execution_date, s.dc) AS idx,\n           arrayFirstIndex(x -> x.1 >= e.execution_date, spy_dc) AS sidx,\n           round((s.dc[idx + 21].2 / s.dc[idx].2 - 1) * 100, 1) AS stock_21_sessions_pct,\n           round((spy_dc[sidx + 21].2 / spy_dc[sidx].2 - 1) * 100, 1) AS spy_21_sessions_pct,\n           e.execution_date AS ed\n    FROM events e\n    JOIN series s ON s.ticker = e.ticker\n    CROSS JOIN spy\n    ORDER BY ed DESC, ticker ASC\n)","computed_at":"2026-07-26T06:21:52.419967+00:00","elapsed":40.919014507}