STRASMORE/EXPLORE 2,358 QUERIES

price_buckets

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 how-long-can-a-stock-trade-under-1-dollar.

as of ranking 5×4read in context →
price_buckets — 5 rows by 4 columns, computed from US exchange, SIP and OPRA data.
bucket_labelnamesshare_pctas_of
Under $0.1030.8Sep 18, 2026
$0.10 to $0.254713.2Sep 18, 2026
$0.25 to $0.508724.4Sep 18, 2026
$0.50 to $0.7510028.1Sep 18, 2026
$0.75 to $1.0011933.4Sep 18, 2026
Rows × columns
5 × 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 price_buckets, derived from the stored result.
ColumnTypeRangeNotes
bucket_label text 5 distinct values
names number 3 to 119
share_pct number 0.8 to 33.4 percent
as_of text 1 distinct value (Sep 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
SELECT
    bucket_label,
    countIf(px >= lo AND px < hi)                             AS names,
    round(100 * countIf(px >= lo AND px < hi) / count(), 1)   AS share_pct,
    any(session_label)                                        AS as_of
FROM
(
    SELECT
        ticker,
        argMax(toFloat64(close), _ingest_time)       AS px,
        any(formatDateTime(date, '%b %e, %Y'))       AS session_label
    FROM global_markets.stocks_daily_aggs
    WHERE date = (SELECT max(date) FROM global_markets.stocks_daily_aggs
                  WHERE ticker = 'SPY' AND date >= today() - 14)
      AND ifNull(otc, 0) = 0
      AND length(ticker) <= 4
      AND ticker NOT IN ('SPCX')
      AND volume > 0
      AND close > 0
    GROUP BY ticker
    HAVING px < 1
) AS latest
ARRAY JOIN
    [0.00, 0.10, 0.25, 0.50, 0.75]                                                             AS lo,
    [0.10, 0.25, 0.50, 0.75, 1.00]                                                             AS hi,
    ['Under $0.10', '$0.10 to $0.25', '$0.25 to $0.50', '$0.50 to $0.75', '$0.75 to $1.00']   AS bucket_label
GROUP BY lo, hi, bucket_label
ORDER BY lo

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 analysishow-long-can-a-stock-trade-under-1-dollar
streaks ranking 4×3 sub_dollar_trend series 105×3 reverse_splits_monthly series 12×3 Top 25 weekly-options underlyings by distinct contracts traded, with expiration weekdays ranking 25×4 Annualized volatility vs total return, 25 large caps, calmest to wildest (~2 years) ranking 25×3 SPY options median spread by expiration date, near-the-money strikes only ranking 25×4 See all 2,358 queries →