STRASMORE/EXPLORE 2,358 QUERIES

candidates

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.

as of table 15×8read in context →
candidates — 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
AZO2853.10$46B0nonenoneSeptember 18, 2026
FCNCA2120.740$24B0nonenoneSeptember 18, 2026
MELI1824.40$93B0nonenoneSeptember 18, 2026
MKL1784.360$22B0nonenoneSeptember 18, 2026
SNDK1620.280$236B0nonenoneSeptember 18, 2026
FIX15850$55B0nonenoneSeptember 18, 2026
MTD1410.440$28B0nonenoneSeptember 18, 2026
GWW1262.460$59B0nonenoneSeptember 18, 2026
MPWR1175.880$57B0nonenoneSeptember 18, 2026
LLY1151.50$1027B0nonenoneSeptember 18, 2026
TDG1077.730$59B0nonenoneSeptember 18, 2026
BLK1052.020$163B0nonenoneSeptember 18, 2026
EQIX1028.310$101B0nonenoneSeptember 18, 2026
URI1001.480$62B0nonenoneSeptember 18, 2026
MU984.120$1104B32000-05-022-for-1September 18, 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 candidates, derived from the stored result.
ColumnTypeRangeNotes
ticker text 15 distinct values (AZO, BLK, EQIX…)
share_price number 984.12 to 2,853.1 US dollars
price_before_last_split number every row is 0 US dollars
market_value text 14 distinct values ($101B, $1027B, $1104B…)
forward_splits_on_record text 2 distinct values (0, 3)
last_forward_split text 2 distinct values (2000-05-02, none)
last_split_ratio text 2 distinct values (2-for-1, none)
as_of text 1 distinct value (September 18, 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.

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 15

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 analysisstock-split-candidates
split_history table 16×6 stubborn table 12×5 aapl_splits table 3×5 aapl_trace series 84×4 The 2s10s spread, every print of the half table 124×2 The 2s10s spread, every print of the half table 124×2 See all 2,358 queries →