Ten sessions of one long-dated contract: the SPY $620 put expiring 2026-12-18
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-12, from Options Volume vs. Open Interest, Explained.
| session | contracts_traded | trades |
|---|---|---|
| 2026-06-22 | 15 | 7 |
| 2026-06-23 | 25 | 9 |
| 2026-06-24 | 26 | 10 |
| 2026-06-25 | 13 | 10 |
| 2026-06-26 | 21 | 11 |
| 2026-06-29 | 6 | 3 |
| 2026-06-30 | 9006 | 7 |
| 2026-07-01 | 9172 | 222 |
| 2026-07-02 | 10023 | 186 |
| 2026-07-06 | 20 | 7 |
- Rows × columns
- 10 × 3
- Period covered
- to
- 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 |
|---|---|---|---|
session |
date | 2026-06-22 to 2026-07-06 | |
contracts_traded |
number | 6 to 10,023 | count |
trades |
number | 3 to 222 | count |
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
toDate(toTimeZone(window_start, 'America/New_York')) AS session,
toUInt64(sum(volume)) AS contracts_traded,
toUInt64(sum(transactions)) AS trades
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-06-22 00:00:00' AND window_start < '2026-07-07 00:00:00'
AND ticker = 'O:SPY261218P00620000'
GROUP BY session
ORDER BY session
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.