STRASMORE/EXPLORE 2,595 QUERIES

US stock splits by year, sorted by size of the distribution

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-09-20, from Due Bills and Stock Splits: Ex-Date Timing.

as of ranking 10×4read in context →
US stock splits by year, sorted by size of the distribution — 10 rows by 4 columns, computed from US exchange, SIP and OPRA data.
yearlarge_distributionssmall_forward_splitsreverse_splits
2016198219724
2017232158690
2018204319517
2019102288604
2020128230673
2021186223483
2022146218620
2023177185830
2024270182866
20252391851036
Rows × columns
10 × 4
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 US stock splits by year, sorted by size of the distribution, derived from the stored result.
ColumnTypeRangeNotes
year text 10 distinct values (2016, 2017, 2018…)
large_distributions number 102 to 270
small_forward_splits number 158 to 319
reverse_splits number 483 to 1,036

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.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

SELECT
    toString(toYear(execution_date))          AS year,
    countIf(ratio >= 1.25)                    AS large_distributions,
    countIf(ratio > 1 AND ratio < 1.25)       AS small_forward_splits,
    countIf(ratio < 1)                        AS reverse_splits
FROM
(
    SELECT
        ticker,
        execution_date,
        max(toFloat64(split_to) / greatest(toFloat64(split_from), 1.0)) AS ratio
    FROM global_markets.stocks_splits
    WHERE execution_date >= '2016-01-01'
      AND execution_date <  toStartOfYear(today())
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker, execution_date
)
GROUP BY year
ORDER BY year
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysisDue Bills and Stock Splits: Ex-Date Timing
Recent household-name splits: shares from one share ranking 15×4 → Days between pay date and ex-date, cash distributions that went ex late ranking 12×3 → NVDA across its June 2024 split: stored close and one pre-split share series 10×5 → The T+1 cutover, week by week: share of dividends with ex-date = record date, April–July 2024 ranking 18×3 → Time value left in deep in-the-money SPY calls, against the dividend at stake ranking 15×4 → Ex-date vs. record date by year: share identical, and the median gap in calendar days ranking 12×4 → See all 2,595 queries →