STRASMORE/EXPLORE 2,549 QUERIES

odd_lots

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-24, from stock-splits-in-japan-trading-units.

as of ranking 5×3read in context →
odd_lots — 5 rows by 3 columns, computed from US exchange, SIP and OPRA data.
trade_bandtrade_countpct_of_trades
2 to 99 shares57763283.9
a single share651569.5
exactly 100 shares156802.3
101 to 999 shares285634.1
1,000 or more13350.2
Rows × columns
5 × 3
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 odd_lots, derived from the stored result.
ColumnTypeRangeNotes
trade_band text 5 distinct values
trade_count number 1,335 to 577,632 count
pct_of_trades number 0.2 to 83.9 percent

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 day_tape AS
(
    SELECT size
    FROM global_markets.stocks_trades
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= toDateTime('2026-09-15 00:00:00', 'UTC')
      AND sip_timestamp <  toDateTime('2026-09-16 00:00:00', 'UTC')
)
SELECT
    multiIf(size = 1,    'a single share',
            size < 100,  '2 to 99 shares',
            size = 100,  'exactly 100 shares',
            size < 1000, '101 to 999 shares',
                         '1,000 or more')                  AS trade_band,
    count()                                                 AS trade_count,
    round(100 * count() / (SELECT count() FROM day_tape), 1) AS pct_of_trades
FROM day_tape
GROUP BY trade_band
ORDER BY min(size)
⌘/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-splits-in-japan-trading-units
split_history ranking 11×3 → lot_cost ranking 6×4 → split_math table 12×5 → 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,549 queries →