STRASMORE/EXPLORE 2,170 QUERIES

Notable US stock splits since 2020: ratio, how the action was recorded, and the next 21 sessions vs SPY

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-07-26, from What Is a Stock Split? Ratios and Mechanics.

as of table 15×6read in context →
Notable US stock splits since 2020: ratio, how the action was recorded, and the next 21 sessions vs SPY — 15 rows by 6 columns, computed from US exchange, SIP and OPRA data.
tickerexecuted_onratiorecorded_asstock_21_sessions_pctspy_21_sessions_pct
NFLX2025-11-1710-for-1forward split-14.10.8
ORLY2025-06-1015-for-1stock dividend-0.23.4
LRCX2024-10-0310-for-1forward split-7.80.6
SMCI2024-10-0110-for-1forward split-18.52
DECK2024-09-176-for-1forward split3.93.4
AVGO2024-07-1510-for-1forward split-8.8-3.5
CMG2024-06-2650-for-1forward split-24.3-0.2
NVDA2024-06-1010-for-1forward split4.83.9
WMT2024-02-263-for-1forward split1.62.5
TSLA2022-08-253-for-1stock dividend-6.8-13.2
GOOGL2022-07-1820-for-1stock dividend11.712.5
AMZN2022-06-0620-for-1forward split-6.8-5.5
NVDA2021-07-204-for-1stock dividend2.31.9
AAPL2020-08-314-for-1forward split-10.3-4.1
TSLA2020-08-315-for-1stock dividend-13.9-4.1
Rows × columns
15 × 6
Period covered
to
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for Notable US stock splits since 2020: ratio, how the action was recorded, and the next 21 sessions vs SPY, derived from the stored result.
ColumnTypeRangeNotes
ticker text 13 distinct values (AAPL, AMZN, AVGO…)
executed_on date 2020-08-31 to 2025-11-17
ratio text 8 distinct values (10-for-1, 15-for-1, 20-for-1…)
recorded_as text 2 distinct values (forward split, stock dividend)
stock_21_sessions_pct number -24.3 to 11.7 percent
spy_21_sessions_pct number -13.2 to 12.5 percent

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

the exact SQL behind every number
SELECT ticker, executed_on, ratio, recorded_as, stock_21_sessions_pct, spy_21_sessions_pct
FROM (
    WITH events AS (
        SELECT ticker, execution_date,
               concat(toString(toInt32(split_to)), '-for-', toString(toInt32(split_from))) AS ratio,
               if(adjustment_type = 'stock_dividend', 'stock dividend', 'forward split') AS recorded_as
        FROM global_markets.stocks_splits
        WHERE ticker IN ('AAPL', 'TSLA', 'GOOGL', 'AMZN', 'NVDA', 'WMT', 'CMG', 'AVGO', 'SMCI', 'LRCX', 'DECK', 'ORLY', 'NFLX')
          AND execution_date >= '2020-01-01' AND execution_date <= '2026-06-30'
          AND split_to > split_from
    ),
    daily AS (
        SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMaxIf(toFloat64(close), window_start,
                        (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) AS close_rth
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN (SELECT ticker FROM events UNION ALL SELECT 'SPY')
          AND window_start >= '2020-08-01 00:00:00' AND window_start < '2026-01-15 00:00:00'
        GROUP BY ticker, d
        HAVING close_rth > 0
    ),
    series AS (
        SELECT ticker, arraySort(x -> x.1, groupArray((d, close_rth))) AS dc
        FROM daily
        GROUP BY ticker
    ),
    spy AS (
        SELECT dc AS spy_dc FROM series WHERE ticker = 'SPY'
    )
    SELECT e.ticker AS ticker,
           toString(e.execution_date) AS executed_on,
           e.ratio AS ratio,
           e.recorded_as AS recorded_as,
           arrayFirstIndex(x -> x.1 >= e.execution_date, s.dc) AS idx,
           arrayFirstIndex(x -> x.1 >= e.execution_date, spy_dc) AS sidx,
           round((s.dc[idx + 21].2 / s.dc[idx].2 - 1) * 100, 1) AS stock_21_sessions_pct,
           round((spy_dc[sidx + 21].2 / spy_dc[sidx].2 - 1) * 100, 1) AS spy_21_sessions_pct,
           e.execution_date AS ed
    FROM events e
    JOIN series s ON s.ticker = e.ticker
    CROSS JOIN spy
    ORDER BY ed DESC, ticker ASC
)

Run your own version of this

The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.

More from this analysisWhat Is a Stock Split? Ratios and Mechanics
Forward vs reverse splits per year, all US-listed securities, 2016 through June 2026 ranking 11×3 Most common forward split ratios, July 2025 through June 2026: whole-number ratios, all US-listed securities ranking 6×2 NVDA around its 10-for-1 split: regular-session open and close, last pre-split day vs first post-split day series 2×3 NVDA trading volume, 20 sessions before vs 20 sessions from its 10-for-1 split (June 10, 2024) ranking 2×4 After the split: median forward returns for 2025's whole-number forward splits vs SPY over the same sessions scalar 1×5 A decade of splits, 2016-2025: forward vs reverse totals and the annual score scalar 1×4 See all 2,170 queries →