The 390 Rule in Options: Professional Status
SPY option trades by size, Sep 10 2026ranking ·
2026-09-17 · 5×3
SPY option trades per half hour, Sep 10 2026series ·
2026-09-17 · 14×3
One session in half-hour buckets: SPY one-minute bars and share volume, Sep 10 2026series ·
2026-09-17 · 16×3
Share of option trades that were a single contract, six names, Sep 10 2026ranking ·
2026-09-17 · 6×4
SPY option trades by size, Sep 10 2026
SPY option trades by size, Sep 10 2026
| bucket | trade_count | share_of_trades_pct |
|---|---|---|
| 1 contract | 642437 | 47.8 |
| 2 to 5 contracts | 410232 | 30.5 |
| 6 to 10 contracts | 129068 | 9.6 |
| 11 to 50 contracts | 132413 | 9.9 |
| 51 or more contracts | 29028 | 2.2 |
the exact SQL behind every number
SELECT
bucket,
trade_count,
round(100 * trade_count / sum(trade_count) OVER (), 1) AS share_of_trades_pct
FROM
(
SELECT
multiIf(size = 1, 1, size <= 5, 2, size <= 10, 3, size <= 50, 4, 5) AS bucket_rank,
multiIf(bucket_rank = 1, '1 contract',
bucket_rank = 2, '2 to 5 contracts',
bucket_rank = 3, '6 to 10 contracts',
bucket_rank = 4, '11 to 50 contracts',
'51 or more contracts') AS bucket,
count() AS trade_count
FROM global_markets.options_trades
WHERE underlying_symbol = 'SPY'
AND sip_timestamp >= toDateTime('2026-09-10 13:30:00', 'UTC')
AND sip_timestamp < toDateTime('2026-09-10 20:30:00', 'UTC')
GROUP BY bucket_rank, bucket
)
ORDER BY bucket_rank
More from this analysisThe 390 Rule in Options: Professional Status
Share of option trades that were a single contract, six names, Sep 10 2026
ranking 6×4
→
One session in half-hour buckets: SPY one-minute bars and share volume, Sep 10 2026
series 16×3
→
SPY option trades per half hour, Sep 10 2026
series 14×3
→
Top 25 weekly-options underlyings by distinct contracts traded, with expiration weekdays
ranking 25×4
→
See all 3,171 queries →