split_history
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-18, from stock-split-candidates.
| ticker | executed | executed_on | ratio | pre_split_close | implied_post_split_price |
|---|---|---|---|---|---|
| BKNG | 2026-04-06 | April 6, 2026 | 25-for-1 | 4194.31 | 167.77 |
| CMG | 2024-06-26 | June 26, 2024 | 50-for-1 | 3283.04 | 65.66 |
| AMZN | 2022-06-06 | June 6, 2022 | 20-for-1 | 2447 | 122.35 |
| KLAC | 2026-06-12 | June 12, 2026 | 10-for-1 | 2411.64 | 241.16 |
| GOOG | 2022-07-18 | July 18, 2022 | 20-for-1 | 2255.34 | 112.77 |
| GOOGL | 2022-07-18 | July 18, 2022 | 20-for-1 | 2235.55 | 111.78 |
| TSLA | 2020-08-31 | August 31, 2020 | 5-for-1 | 2213.4 | 442.68 |
| AVGO | 2024-07-15 | July 15, 2024 | 10-for-1 | 1700.67 | 170.07 |
| TPL | 2024-03-27 | March 27, 2024 | 3-for-1 | 1679.18 | 559.73 |
| ORLY | 2025-06-10 | June 10, 2025 | 15-for-1 | 1348.1 | 89.87 |
| MSTR | 2024-08-08 | August 8, 2024 | 10-for-1 | 1246.85 | 124.68 |
| NVDA | 2024-06-10 | June 10, 2024 | 10-for-1 | 1208.88 | 120.89 |
| NFLX | 2025-11-17 | November 17, 2025 | 10-for-1 | 1112.17 | 111.22 |
| ISRG | 2021-10-05 | October 5, 2021 | 3-for-1 | 970.5 | 323.5 |
| TPL | 2025-12-23 | December 23, 2025 | 3-for-1 | 908.4 | 302.8 |
| TSLA | 2022-08-25 | August 25, 2022 | 3-for-1 | 891.29 | 297.1 |
- Rows × columns
- 16 × 6
- Period covered
- to
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
ticker |
text | 14 distinct values (AMZN, AVGO, BKNG…) | |
executed |
date | 2020-08-31 to 2026-06-12 | |
executed_on |
text | 15 distinct values | |
ratio |
text | 7 distinct values (10-for-1, 15-for-1, 20-for-1…) | |
pre_split_close |
number | 891.29 to 4,194.31 | US dollars |
implied_post_split_price |
number | 65.66 to 559.73 | US dollars |
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
WITH
big_caps AS
(
SELECT
ticker,
argMax(market_cap, date) AS market_cap
FROM global_markets.stocks_ratios
WHERE date >= today() - 45
GROUP BY ticker
HAVING toFloat64(market_cap) >= 20e9
),
on_file AS
(
SELECT
ticker,
execution_date,
any(split_from) AS from_shares,
any(split_to) AS to_shares
FROM global_markets.stocks_splits
WHERE execution_date <= today()
AND ticker NOT IN ('SPCX')
AND ticker IN (SELECT ticker FROM big_caps)
GROUP BY ticker, execution_date
),
splits AS
(
SELECT
a.ticker AS ticker,
a.execution_date AS execution_date,
a.from_shares AS from_shares,
a.to_shares AS to_shares,
arrayProduct(groupArray(toFloat64(b.to_shares) / toFloat64(b.from_shares))) AS to_raw
FROM on_file AS a
INNER JOIN on_file AS b ON b.ticker = a.ticker
WHERE b.execution_date >= a.execution_date
AND a.execution_date >= '2020-01-01'
AND a.to_shares > a.from_shares
GROUP BY a.ticker, a.execution_date, a.from_shares, a.to_shares
)
SELECT
s.ticker AS ticker,
toString(s.execution_date) AS executed,
concat(monthName(s.execution_date), ' ', toString(toDayOfMonth(s.execution_date)), ', ', toString(toYear(s.execution_date))) AS executed_on,
concat(toString(toFloat64(s.to_shares)), '-for-', toString(toFloat64(s.from_shares))) AS ratio,
round(toFloat64(argMax(d.close, d.date)) * s.to_raw, 2) AS pre_split_close,
round(toFloat64(argMax(d.close, d.date)) * s.to_raw * toFloat64(s.from_shares) / toFloat64(s.to_shares), 2) AS implied_post_split_price
FROM
(
SELECT ticker, date, close
FROM global_markets.stocks_daily_aggs
WHERE date >= '2019-12-01'
AND ticker IN (SELECT ticker FROM splits)
) AS d
INNER JOIN splits AS s ON s.ticker = d.ticker
WHERE d.date < s.execution_date
AND d.date >= s.execution_date - 7
GROUP BY s.ticker, s.execution_date, s.to_shares, s.from_shares, s.to_raw
HAVING pre_split_close >= 300
ORDER BY pre_split_close DESC
LIMIT 16
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.