Stock Split Candidates: Who Might Split Next?
Stock split candidates ranked by share price: the large caps above $500 paired with the price each split at last time, plus the names that never split.
Stock split candidates are the high-priced, large-cap stocks whose boards have every classic reason to split and have not done so. This page ranks them by share price, pairs each with its own split record (when it last split, and at what price), and shows the pattern in recent large-cap splits that makes a high price the first thing to check. Nothing here has been declared: announced, dated splits live in upcoming stock splits, and a name drops out of this ranking the moment it appears there.
Stock split candidates ranked by share price
A forward stock split multiplies a company's share count and divides its price by the same factor; the value of each holder's stake does not change, as what is a stock split walks through. Boards reach for it once the price has grown large, so the first screen is price. The table takes every US-listed stock with a market value of $20 billion or more and a latest close of at least $500, drops any name that already has a split on the calendar, and ranks the rest from the highest price down. Beside each price sits the company's own record: forward splits on file, the date and ratio of the latest one, and the close on the session before it took effect.
| ticker | share_price | price_before_last_split | market_value | forward_splits_on_record | last_forward_split | last_split_ratio | as_of |
|---|---|---|---|---|---|---|---|
| AZO | 2853.1 | 0 | $46B | 0 | none | none | September 18, 2026 |
| FCNCA | 2120.74 | 0 | $24B | 0 | none | none | September 18, 2026 |
| MELI | 1824.4 | 0 | $93B | 0 | none | none | September 18, 2026 |
| MKL | 1784.36 | 0 | $22B | 0 | none | none | September 18, 2026 |
| SNDK | 1620.28 | 0 | $236B | 0 | none | none | September 18, 2026 |
| FIX | 1585 | 0 | $55B | 0 | none | none | September 18, 2026 |
| MTD | 1410.44 | 0 | $28B | 0 | none | none | September 18, 2026 |
| GWW | 1262.46 | 0 | $59B | 0 | none | none | September 18, 2026 |
| MPWR | 1175.88 | 0 | $57B | 0 | none | none | September 18, 2026 |
| LLY | 1151.5 | 0 | $1027B | 0 | none | none | September 18, 2026 |
| TDG | 1077.73 | 0 | $59B | 0 | none | none | September 18, 2026 |
| BLK | 1052.02 | 0 | $163B | 0 | none | none | September 18, 2026 |
| EQIX | 1028.31 | 0 | $101B | 0 | none | none | September 18, 2026 |
| URI | 1001.48 | 0 | $62B | 0 | none | none | September 18, 2026 |
| MU | 984.12 | 0 | $1104B | 3 | 2000-05-02 | 2-for-1 | September 18, 2026 |
The exact SQL behind every number
WITH
latest_px AS
(
SELECT
ticker,
argMax(close, date) AS last_close,
max(date) AS px_date
FROM global_markets.stocks_daily_aggs
WHERE date >= today() - 10
AND ticker NOT IN ('SPCX')
GROUP BY ticker
HAVING last_close >= 500
AND last_close < 50000
),
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
),
announced AS
(
SELECT DISTINCT ticker
FROM global_markets.stocks_splits
WHERE execution_date > today()
),
cand AS
(
SELECT
p.ticker AS ticker,
p.last_close AS last_close,
p.px_date AS px_date,
m.market_cap AS market_cap
FROM latest_px AS p
INNER JOIN big_caps AS m ON m.ticker = p.ticker
WHERE p.ticker NOT IN (SELECT ticker FROM announced)
),
last_split AS
(
SELECT
ticker,
max(execution_date) AS last_split_date,
argMax(concat(toString(toFloat64(split_to)), '-for-', toString(toFloat64(split_from))), execution_date) AS last_split_ratio,
uniqExact(execution_date) AS forward_splits
FROM global_markets.stocks_splits
WHERE split_to > split_from
AND execution_date <= today()
AND ticker IN (SELECT ticker FROM cand)
GROUP BY ticker
),
pre_split AS
(
SELECT
d.ticker AS ticker,
argMax(d.close, d.date) AS pre_split_close
FROM
(
SELECT ticker, date, close
FROM global_markets.stocks_daily_aggs
WHERE ticker IN (SELECT ticker FROM last_split)
) AS d
INNER JOIN last_split AS s ON s.ticker = d.ticker
WHERE d.date < s.last_split_date
AND d.date >= s.last_split_date - 7
GROUP BY d.ticker
),
to_raw AS
(
SELECT
x.ticker AS ticker,
arrayProduct(groupArray(toFloat64(x.to_shares) / toFloat64(x.from_shares))) AS factor
FROM
(
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 IN (SELECT ticker FROM last_split)
GROUP BY ticker, execution_date
) AS x
INNER JOIN last_split AS ls ON ls.ticker = x.ticker
WHERE x.execution_date >= ls.last_split_date
GROUP BY x.ticker
)
SELECT
c.ticker AS ticker,
round(toFloat64(c.last_close), 2) AS share_price,
if(ps.pre_split_close > 0, round(toFloat64(ps.pre_split_close) * f.factor, 2), 0) AS price_before_last_split,
concat('$', toString(toUInt64(round(toFloat64(c.market_cap) / 1e9))), 'B') AS market_value,
toString(ifNull(s.forward_splits, 0)) AS forward_splits_on_record,
if(s.last_split_date > toDate('1971-01-01'), toString(s.last_split_date), 'none') AS last_forward_split,
if(s.last_split_ratio != '', s.last_split_ratio, 'none') AS last_split_ratio,
concat(monthName(c.px_date), ' ', toString(toDayOfMonth(c.px_date)), ', ', toString(toYear(c.px_date))) AS as_of
FROM cand AS c
LEFT JOIN last_split AS s ON s.ticker = c.ticker
LEFT JOIN pre_split AS ps ON ps.ticker = c.ticker
LEFT JOIN to_raw AS f ON f.ticker = c.ticker
ORDER BY c.last_close DESC
LIMIT 15As of September 18, 2026, 15 names make the cut. AZO tops the ranking at $2853.1 a share; MU closes it out at $984.12. Read the two price columns together. Where the price before the last split is filled in, the company has split before, and a share price that has climbed back toward that level is the most useful clue the table offers. A zero there means the name has never split (its record reads none) or its last split predates the daily price history on file. The ranking is reproducible: the SQL under the panel produces the same table on any day, with only the prices moving.
Why do companies split near the same price?
Four motives recur in split announcements, and each one concerns the price level rather than the business:
- Accessibility. A round lot is 100 shares, and a four-figure price puts a round lot beyond most individual accounts.
- Employee equity. Grants and option awards are denominated in whole shares, and a very high price makes small awards awkward to size.
- Index weighting. The Dow Jones Industrial Average weights members by share price, so a $1,000 stock carries ten times the pull of a $100 stock; the Dow divisor page has the arithmetic.
- Options. One listed contract covers 100 shares, so the cash behind a single contract scales with the price.
That is why a company that split once at a given level tends to look at the same level again when the price rebuilds: the constraint that prompted the board the first time is back. The panel below lists every forward split since 2020 by a company now worth $20 billion or more, keeps those where the stock closed at $300 or higher the session before, and shows the price each ratio reset the stock to.
| 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 |
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 16The largest pre-split price belongs to BKNG, which split 25-for-1 on April 6, 2026 from a prior close of $4194.31, a ratio that put the stock near $167.77. The list holds 16 splits, and the right-hand series is the point: whatever the starting price, the ratio is picked to land the stock far below it, typically in the double or low triple digits. The smallest entry, TSLA, went from $891.29 to about $297.1. A candidate in the first table is, in effect, a stock that has drifted back into the left-hand column of this one. Whether it rises afterwards is a separate question, tested with data in does a stock go up after a split.
Does a company split again at the same price? Apple's record
Apple is the cleanest test of the repeat-price idea, and its full record is in Apple's stock split history. The panel pairs each forward split on file that has daily prices around it with the close on the session before and the price the ratio implied afterwards.
| label | executed | ratio | pre_split_close | implied_post_split_price |
|---|---|---|---|---|
| February 28, 2005 | 2005-02-28 | 2-for-1 | 88.99 | 44.49 |
| June 9, 2014 | 2014-06-09 | 7-for-1 | 645.57 | 92.22 |
| August 31, 2020 | 2020-08-31 | 4-for-1 | 499.23 | 124.81 |
The exact SQL behind every number
WITH
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 ticker = 'AAPL'
AND execution_date <= today()
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.to_shares > a.from_shares
GROUP BY a.ticker, a.execution_date, a.from_shares, a.to_shares
)
SELECT
concat(monthName(s.execution_date), ' ', toString(toDayOfMonth(s.execution_date)), ', ', toString(toYear(s.execution_date))) AS label,
toString(s.execution_date) AS executed,
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 splits AS s
INNER JOIN
(
SELECT ticker, date, close
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'AAPL'
) AS d ON d.ticker = s.ticker
WHERE d.date < s.execution_date
AND d.date >= s.execution_date - 7
GROUP BY s.execution_date, s.to_shares, s.from_shares, s.to_raw
ORDER BY s.execution_dateThe two most recent are the ones that matter here. On June 9, 2014 Apple split 7-for-1 from a close of $645.57, landing near $92.22. On August 31, 2020 it split 4-for-1 from $499.23, landing near $124.81. Two splits, years apart, both with the stock somewhere between four and seven hundred dollars. The monthly trace between them shows the shape: in an ordinary month the highest and lowest close sit near each other, and in a split month they sit hundreds of dollars apart.
| month | period_label | highest_close | lowest_close |
|---|---|---|---|
| 2014-01-01 | Jan 2014 | 557.36 | 499.78 |
| 2014-02-01 | Feb 2014 | 545.99 | 501.53 |
| 2014-03-01 | Mar 2014 | 544.99 | 524.69 |
| 2014-04-01 | Apr 2014 | 594.09 | 517.96 |
| 2014-05-01 | May 2014 | 635.38 | 585.54 |
| 2014-06-01 | Jun 2014 | 647.35 | 90.28 |
| 2014-07-01 | Jul 2014 | 99.02 | 93.09 |
| 2014-08-01 | Aug 2014 | 102.5 | 94.48 |
| 2014-09-01 | Sep 2014 | 103.3 | 97.87 |
| 2014-10-01 | Oct 2014 | 108 | 96.26 |
| 2014-11-01 | Nov 2014 | 119 | 108.6 |
| 2014-12-01 | Dec 2014 | 115.93 | 106.75 |
| 2015-01-01 | Jan 2015 | 118.9 | 105.99 |
| 2015-02-01 | Feb 2015 | 133 | 118.63 |
| 2015-03-01 | Mar 2015 | 129.36 | 122.24 |
| 2015-04-01 | Apr 2015 | 132.65 | 124.25 |
| 2015-05-01 | May 2015 | 132.54 | 125.01 |
| 2015-06-01 | Jun 2015 | 130.54 | 124.53 |
| 2015-07-01 | Jul 2015 | 132.07 | 120.07 |
| 2015-08-01 | Aug 2015 | 119.72 | 103.12 |
The exact SQL behind every number
WITH
on_file AS
(
SELECT
execution_date,
any(split_from) AS from_shares,
any(split_to) AS to_shares
FROM global_markets.stocks_splits
WHERE ticker = 'AAPL'
AND execution_date <= today()
GROUP BY execution_date
),
restated AS
(
SELECT
d.date AS date,
any(toFloat64(d.close)) * arrayProduct(groupArray(if(s.execution_date > d.date, toFloat64(s.to_shares) / toFloat64(s.from_shares), 1.0))) AS raw_close
FROM
(
SELECT date, close
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'AAPL'
AND date >= '2014-01-01'
AND date < '2021-01-01'
) AS d
CROSS JOIN on_file AS s
GROUP BY d.date
)
SELECT
toString(toStartOfMonth(date)) AS month,
formatDateTime(toStartOfMonth(date), '%b %Y') AS period_label,
round(max(raw_close), 2) AS highest_close,
round(min(raw_close), 2) AS lowest_close
FROM restated
GROUP BY toStartOfMonth(date)
ORDER BY toStartOfMonth(date)The trace runs 84 months, Jan 2014 through Dec 2020, on closes restated to the share basis of their own day (the daily series is split-adjusted, so the SQL multiplies each close back by the ratios of the splits that came after it), which is what makes each split month a cliff. An adjusted chart erases the cliff; split-adjusted price history explains how. What the raw chart shows is the round trip: the price climbs from one split's landing zone back into the band the board acted on before, and the next split follows. That round trip is the idea behind this page.
Split-shaped but stubborn: high-priced stocks that never split
A high price is a reason to look, not a forecast. Some of the most expensive stocks have sat above $500 for years without a forward split on record, and their boards tend to say why: a high price keeps the holder base weighted toward long-term owners and discourages rapid trading. Berkshire Hathaway's Class A shares are the famous case, never split under Warren Buffett, with the lower-priced Class B created in 1996 for smaller investors instead. The panel counts, for every $20-billion-plus company with no forward split on record, the daily closes at $500 or more over the trailing five years, keeping names above $500 today with at least a year of such closes behind them.
| ticker | closes_above_500 | first_above_500_in_window | latest_close | highest_close |
|---|---|---|---|---|
| MKL | 1255 | September 20, 2021 | $1784.36 | $2191.9 |
| AZO | 1255 | September 20, 2021 | $2853.1 | $4354.54 |
| EQIX | 1255 | September 20, 2021 | $1028.31 | $1115.94 |
| MTD | 1255 | September 20, 2021 | $1410.44 | $1702.53 |
| TDG | 1255 | September 20, 2021 | $1077.73 | $1620.83 |
| BLK | 1255 | September 20, 2021 | $1052.02 | $1202.59 |
| MELI | 1255 | September 20, 2021 | $1824.4 | $2613.63 |
| FCNCA | 1255 | September 20, 2021 | $2120.74 | $2353.08 |
| BRK.A | 1254 | September 20, 2021 | $763935.95 | $809350 |
| REGN | 1249 | September 20, 2021 | $788.02 | $1201.76 |
| GWW | 1087 | December 7, 2021 | $1262.46 | $1402.03 |
| COST | 1041 | November 3, 2021 | $894.15 | $1094.32 |
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
),
ever_split AS
(
SELECT DISTINCT ticker
FROM global_markets.stocks_splits
WHERE split_to > split_from
)
SELECT
d.ticker AS ticker,
uniqExactIf(d.date, d.close >= 500) AS closes_above_500,
concat(monthName(minIf(d.date, d.close >= 500)), ' ', toString(toDayOfMonth(minIf(d.date, d.close >= 500))), ', ', toString(toYear(minIf(d.date, d.close >= 500)))) AS first_above_500_in_window,
concat('$', toString(round(toFloat64(argMax(d.close, d.date)), 2))) AS latest_close,
concat('$', toString(round(toFloat64(max(d.close)), 2))) AS highest_close
FROM global_markets.stocks_daily_aggs AS d
WHERE d.date >= today() - 1826
AND d.ticker IN (SELECT ticker FROM big_caps)
AND d.ticker NOT IN (SELECT ticker FROM ever_split)
AND d.ticker NOT IN ('SPCX')
GROUP BY d.ticker
HAVING argMax(d.close, d.date) >= 500
AND closes_above_500 >= 250
ORDER BY closes_above_500 DESC
LIMIT 12MKL leads with 1255 closes at $500 or better inside the window, the first of them on September 20, 2021, and it last closed at $1784.36 with no split in its record. The 12 names here are the reason to read the first table as a watchlist rather than a prediction: they pass every price test a screen can apply and have passed it for years without acting. A name that appears in both tables belongs in both. The ranking knows a board's share price, never its mind.
Has anyone on this list announced a split?
No, by construction. The candidates query drops any ticker with a split carrying a future effective date, so as of September 18, 2026 none of the 15 names above has a dated split pending. One gap: a split declared this week can take a session or two to reach the calendar, and a name stays here until it does. Once a board acts, the name moves to the upcoming splits calendar and, after the effective date, to recent stock splits. How often that happens across the whole market, year by year, is charted in how often stocks split.
How the ranking is built
- Universe: every ticker with a close in the last ten calendar days and a market value of $20 billion or more on its latest valuation row within 45 days.
- Price test: latest close between $500 and $50,000. The ceiling exists only to keep Berkshire Hathaway's Class A shares from flattening the chart.
- Exclusion: any ticker with a split of any kind carrying a future effective date is dropped.
- History: forward splits only; reverse splits are ignored. The price before the last split is the last close in the seven calendar days before the effective date; the daily series is split-adjusted, and the SQL multiplies that close back by the ratio of every split that came after it.
- Refresh: the ranking regenerates with the site. The Apple panels are pinned to fixed dates and never move.
FAQ
Which stocks are most likely to split next?
The best available screen is a high share price at a large company that has split before, with the price back near the level of its last split. The ranked table at the top of this page applies that screen and refreshes with the site. It is a watchlist, and no name on it has announced anything.
At what share price do companies split?
There is no rule. The large-cap splits since 2020 in the table above came from prior closes as high as $4194.31, with ratios chosen to land the post-split price in the double or low triple digits.
Do companies split at the same price every time?
Not exactly, but the same neighborhood is common. Apple's last two splits came with the stock between four and seven hundred dollars, years apart, since the constraint that prompted the first split returns when the price rebuilds.
Why do some expensive stocks never split?
Their boards prefer it. A high share price discourages rapid trading and keeps the holder base weighted toward long-term owners, and companies such as Berkshire Hathaway have said so for decades. A high price alone never guarantees a split.
Every panel on this page carries the exact SQL that built it. To rerun the ranking with a different price floor or size cutoff, open the query on the Strasmore terminal and change one number.