STRASMORE/EXPLORE 3,293 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,293 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

Where to Find Options Trade Data (OPRA Prints)
SPY option prints by exchange, May 15, 2025table · 2026-09-18 · 18×5 SPY option prints per half hour, May 15, 2025 (ET)series · 2026-09-18 · 14×5Preview: a 14-point series, ending higher. The ten largest single SPY option prints of May 15, 2025, one per contracttable · 2026-09-18 · 10×7 SPY implied volatility by strike, June 20, 2025 expiry, as of May 15, 2025table · 2026-09-18 · 29×4
SPY option prints by exchange, May 15, 2025

SPY option prints by exchange, May 15, 2025

most recentas of table 18×5read in context →
SPY option prints by exchange, May 15, 2025 — 18 rows by 5 columns, computed from US exchange, SIP and OPRA data.
venueexchange_idprint_countprints_labelshare_pct
exchange 5656161932161.93 thousand14.4
exchange 4848125094125.09 thousand11.1
exchange 46469935699.36 thousand8.8
exchange 57578928289.28 thousand7.9
exchange 51518834888.35 thousand7.8
exchange 47477468274.68 thousand6.6
exchange 45457072070.72 thousand6.3
exchange 52526240162.40 thousand5.5
exchange 44445977059.77 thousand5.3
exchange 62624710747.11 thousand4.2
exchange 60604583445.83 thousand4.1
exchange 53534318343.18 thousand3.8
exchange 64643545335.45 thousand3.2
exchange 69692887028.87 thousand2.6
exchange 66662777527.77 thousand2.5
exchange 67672467424.67 thousand2.2
exchange 63632399023.99 thousand2.1
exchange 59591700717.01 thousand1.5
the exact SQL behind every number
SELECT
    coalesce(nullIf(e.venue, ''), concat('exchange ', toString(t.exchange_id))) AS venue,
    toString(t.exchange_id)                                                     AS exchange_id,
    t.print_count                                                               AS print_count,
    formatReadableQuantity(t.print_count)                                       AS prints_label,
    round(100 * t.print_count / sum(t.print_count) OVER (), 1)                  AS share_pct
FROM
(
    SELECT
        toUInt32(exchange) AS exchange_id,
        count()            AS print_count
    FROM global_markets.options_trades
    WHERE underlying_symbol = 'SPY'
      AND sip_timestamp >= '2025-05-15 00:00:00'
      AND sip_timestamp <  '2025-05-16 00:00:00'
    GROUP BY exchange_id
) AS t
LEFT JOIN
(
    SELECT
        toUInt32(id) AS exchange_id,
        any(name)    AS venue
    FROM global_markets.stocks_exchanges
    WHERE asset_class = 'options'
    GROUP BY exchange_id
) AS e ON t.exchange_id = e.exchange_id
ORDER BY print_count DESC
$