STRASMORE/EXPLORE 2,170 QUERIES 22Y EQUITIES · 12Y OPTIONS

2,170 answered market questions

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

Options Volume vs. Open Interest, Explained
Volume accumulates live: July 6, 2026 in half-hour buckets (ET), with a running totalseries · 2026-08-12 · 14×3Preview: a 14-point series, ending higher. Top 10 underlying roots by contracts traded, July 6, 2026table · 2026-08-12 · 10×5 One day of the US options tape: Monday, July 6, 2026scalar · 2026-08-12 · 1×860.6 July 6, 2026 volume by time to expiration: the tape is short-dated, the listed universe is nottable · 2026-08-12 · 5×5 Ten sessions of one long-dated contract: the SPY $620 put expiring 2026-12-18series · 2026-08-12 · 10×3Preview: a 10-point series, roughly flat. The ten busiest option contracts of July 6, 2026table · 2026-08-12 · 10×5
What Is Max Pain in Options? The Real Math
SPY contracts traded by strike, July 17 2026 expiryranking · 2026-07-31 · 22×3Preview: 16 ranked values, smallest first. Minimising strike vs settlement close: SPY monthly expirations, Feb to Jul 2026table · 2026-07-31 · 6×5 The six lowest-payout candidate strikes, SPY July 17 2026 expiryranking · 2026-07-31 · 6×2Preview: 6 ranked values, smallest first. Total payout to option holders at each candidate settlement price, SPY July 17 2026table · 2026-07-31 · 36×2
Volume accumulates live: July 6, 2026 in half-hour buckets (ET), with a running total

Volume accumulates live: July 6, 2026 in half-hour buckets (ET), with a running total

most recentas of series 14×3read in context →
Volume accumulates live: July 6, 2026 in half-hour buckets (ET), with a running total — 14 rows by 3 columns, computed from US exchange, SIP and OPRA data.
et_timecontracts_mrunning_total_m
09:308.538.5
10:006.3914.9
10:305.2820.2
11:005.0725.3
11:304.3429.6
12:003.9733.6
12:303.6337.2
13:003.4940.7
13:30444.7
14:003.5548.3
14:303.4451.7
15:003.5955.3
15:304.8660.1
16:000.4960.6
the exact SQL behind every number
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(sum(volume) / 1e6, 2) AS contracts_m,
    round(sum(sum(volume)) OVER (ORDER BY formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i')) / 1e6, 1) AS running_total_m
FROM global_markets.options_minute_aggs
WHERE window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'
GROUP BY et_time
ORDER BY et_time
$