STRASMORE/EXPLORE 3,256 QUERIES

Expirations on the SPY option board: every listed expiry over 30 days, 16 July 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-08-03, from DAX Daily Options: How Eurex 0DTE Works.

as of series 13×4read in context →
Expirations on the SPY option board: every listed expiry over 30 days, 16 July 2026 — 13 rows by 4 columns, computed from US exchange, SIP and OPRA data.
expiration_dateexpiry_labelcontracts_listedtraded_millions
2026-07-17Fri Jul 172652.25
2026-07-20Mon Jul 201460.38
2026-07-21Tue Jul 211330.18
2026-07-22Wed Jul 221300.15
2026-07-23Thu Jul 231780.12
2026-07-24Fri Jul 242290.29
2026-07-27Mon Jul 271260.04
2026-07-28Tue Jul 281250.02
2026-07-29Wed Jul 291240.01
2026-07-30Thu Jul 30350.01
2026-07-31Fri Jul 313010.21
2026-08-07Fri Aug 72170.09
2026-08-14Fri Aug 141930.05
Rows × columns
13 × 4
Period covered
to
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 Expirations on the SPY option board: every listed expiry over 30 days, 16 July 2026, derived from the stored result.
ColumnTypeRangeNotes
expiration_date date 2026-07-17 to 2026-08-14
expiry_label text 13 distinct values (Fri Aug 14, Fri Aug 7, Fri Jul 17…)
contracts_listed number 35 to 301 count
traded_millions number 0.01 to 2.25

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 expiration_date,
       formatDateTime(expiration_date, '%a %b %e') AS expiry_label,
       count() AS contracts_listed,
       round(sum(volume) / 1e6, 2) AS traded_millions
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
  AND date = toDate('2026-07-16')
  AND expiration_date >= toDate('2026-07-16')
  AND expiration_date <= toDate('2026-08-14')
GROUP BY expiration_date
ORDER BY expiration_date
⌘/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 analysisDAX Daily Options: How Eurex 0DTE Works
Same-day expiries as a share of SPY option volume: every session, July 2026 series 21×4 → Distinct expirations listed for the rest of July 2026: eight US names ranking 8×3 → Median implied volatility by days to expiry: near-the-money SPY contracts, 16 July 2026 ranking 5×4 → Where the Eurex close lands in the US day: FEZ volume share by half hour (ET), trailing two months series 32×3 → SPY's front two weeks of expiries, as of the latest session series 10×4 → One US options symbol, taken apart: busiest SPY contracts on 17 June 2026 table 8×6 → See all 3,256 queries →