STRASMORE/EXPLORE 3,293 QUERIES
Full options quote history: clean NBBO bid/ask snapshots for any US option contract at the interval you choose, by SQL API, $79 a month. See the options quotes plan

SPY option volume by days left to expiry, 17 June 2026

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-22, from Eurex Option Codes: ODAX, ODAP, OESX.

as of ranking 5×3read in context →
SPY option volume by days left to expiry, 17 June 2026 — 5 rows by 3 columns, computed from US exchange, SIP and OPRA data.
expiry_bucketcontracts_tradedshare_pct
1231080350.4
53793428.3
61284202.8
71063662.3
8 or more165834236.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 SPY option volume by days left to expiry, 17 June 2026, derived from the stored result.
ColumnTypeRangeNotes
expiry_bucket text 5 distinct values (1, 5, 6…)
contracts_traded number 106,366 to 2,310,803 count
share_pct number 2.3 to 50.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.

WITH spy AS
(
    SELECT
        days_to_expiry,
        volume
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date = '2026-06-17'
      AND volume > 0
      AND days_to_expiry >= 0
)
SELECT
    if(days_to_expiry >= 8, '8 or more', toString(days_to_expiry)) AS expiry_bucket,
    sum(volume)                                                    AS contracts_traded,
    round(100 * sum(volume) / (SELECT sum(volume) FROM spy), 1)    AS share_pct
FROM spy
GROUP BY expiry_bucket
ORDER BY min(days_to_expiry)
⌘/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 analysisEurex Option Codes: ODAX, ODAP, OESX
Distinct expirations traded per underlying, 17 June 2026 ranking 5×2 → What one US equity option contract covers, 17 June 2026 ranking 5×3 → One US options symbol, taken apart: busiest SPY contracts on 17 June 2026 table 8×6 → Distinct expirations listed for the rest of July 2026: eight US names ranking 8×3 → Share of SPY option volume by days to expiry, trailing six weeks ranking 5×2 → Median implied volatility by days to expiry: near-the-money SPY contracts, 16 July 2026 ranking 5×4 → See all 3,293 queries →