STRASMORE/EXPLORE 3,293 QUERIES
Full options quote history: clean NBBO bid/ask snapshots for any US option contract at the interval you choose, by SQL API, $79 a month. See the options quotes plan

Stock split candidates: large caps above $500 a share, ranked by price

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-11-01, from Stock Split Candidates: Who Might Split Next?.

as of table 15×8read in context →
Stock split candidates: large caps above $500 a share, ranked by price — 15 rows by 8 columns, computed from US exchange, SIP and OPRA data.
tickershare_priceprice_before_last_splitmarket_valueforward_splits_on_recordlast_forward_splitlast_split_ratioas_of
AZO3169.820$51B0nonenoneOctober 30, 2026
FCNCA2352.640$26B0nonenoneOctober 30, 2026
MKL1869.820$23B0nonenoneOctober 30, 2026
MTD1674.810$34B0nonenoneOctober 30, 2026
MELI1624.530$82B0nonenoneOctober 30, 2026
LLY1417.540$1263B0nonenoneOctober 30, 2026
GWW1359.170$64B0nonenoneOctober 30, 2026
FIX1232.660$43B0nonenoneOctober 30, 2026
MPWR1211.630$59B0nonenoneOctober 30, 2026
URI1170.050$72B0nonenoneOctober 30, 2026
SNDK1150.890$166B0nonenoneOctober 30, 2026
BLK1147.540$177B0nonenoneOctober 30, 2026
TDG1146.810$63B0nonenoneOctober 30, 2026
EQIX1013.70$100B0nonenoneOctober 30, 2026
COST1012.280$449B0nonenoneOctober 30, 2026
Rows × columns
15 × 8
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 Stock split candidates: large caps above $500 a share, ranked by price, derived from the stored result.
ColumnTypeRangeNotes
ticker text 15 distinct values (AZO, BLK, COST…)
share_price number 1,012.28 to 3,169.82 US dollars
price_before_last_split number every row is 0 US dollars
market_value text 15 distinct values ($100B, $1263B, $166B…)
forward_splits_on_record text 1 distinct value (0)
last_forward_split text 1 distinct value (none)
last_split_ratio text 1 distinct value (none)
as_of text 1 distinct value (October 30, 2026)

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.

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 15
⌘/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 analysisStock Split Candidates: Who Might Split Next?
Large-cap forward splits since 2020: the close the session before, and the price the ratio implied after table 16×6 → Split-shaped but stubborn: large caps above $500 with no forward split on record table 12×5 → Apple forward splits: the close before each one and the price it landed at table 3×5 → Apple, monthly highest and lowest close, 2014 through 2020, restated to the share basis of each day series 84×4 → Apple's yearly price range, split-adjusted, 2012 through the current year ranking 15×4 → Apple's daily closes around the most recent split, split-adjusted series 10×4 → See all 3,293 queries →