fill_slices
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-26, from agentic-trading-bots-on-retail-brokerages.
| ticker | avg_trade_size | p95_trade_size | under_100_share_pct |
|---|---|---|---|
| NVDA | 52 | 157 | 86.7 |
| SPY | 39 | 125 | 89.4 |
| KO | 34 | 100 | 85.8 |
| AAPL | 33 | 100 | 93.1 |
| MSFT | 24 | 85 | 95.4 |
- Rows × columns
- 5 × 4
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
ticker |
text | 5 distinct values (AAPL, KO, MSFT…) | |
avg_trade_size |
number | 24 to 52 | |
p95_trade_size |
number | 85 to 157 | |
under_100_share_pct |
number | 85.8 to 95.4 | 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.
SELECT
ticker,
round(avg(toFloat64(size)), 0) AS avg_trade_size,
round(quantileDeterministic(0.95)(toFloat64(size), toUInt64(sequence_number)), 0) AS p95_trade_size,
round(100 * countIf(size < 100) / count(), 1) AS under_100_share_pct
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA', 'MSFT', 'KO')
AND sip_timestamp >= '2026-08-14 17:00:00'
AND sip_timestamp < '2026-08-14 18:00:00'
GROUP BY ticker
ORDER BY avg_trade_size DESC
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.