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

3,256 answered market questions

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

Which Options Expire on Each Weekday
SPY expiration dates per weekday, by month, since October 2021series · 2026-10-04 · 60×6Preview: a 16-point series, ending lower. Expiration dates reached, by weekday, trailing yearseries · 2026-10-04 · 5×5Preview: a 5-point series, ending higher. Option classes grouped by how many weekdays they expired on, trailing quarterranking · 2026-10-04 · 4×2Preview: 4 ranked values, largest first.
Equity vs Index Put/Call Ratio: What's High?
The total is a call-volume-weighted blend of the two bucketsranking · 2026-10-04 · 11×4Preview: 11 ranked values, largest first. The same equity ratio, computed with and without ETF optionsseries · 2026-10-04 · 22×4Preview: a 16-point series, roughly flat. Single-stock bucket vs ETF bucket, session by sessionseries · 2026-10-04 · 33×6Preview: a 16-point series, roughly flat. Put/call volume ratio by underlying, trailing 60 sessionstable · 2026-10-04 · 12×5
GLD Implied Volatility, Explained
Average implied volatility by delta bucket, trailing twelve monthsranking · 2026-09-23 · 5×3Preview: 5 ranked values, smallest first. 25 delta call minus put implied volatility, in volatility pointsseries · 2026-09-23 · 60×5Preview: a 16-point series, ending lower. Percentile range of daily ATM implied volatility, five year windowranking · 2026-09-23 · 5×3Preview: 5 ranked values, smallest first. Monthly at-the-money 30 day implied volatility: GLD vs SPYseries · 2026-09-23 · 60×4Preview: a 16-point series, roughly flat.
SPY expiration dates per weekday, by month, since October 2021

SPY expiration dates per weekday, by month, since October 2021

most recentas of series 60×6read in context →
SPY expiration dates per weekday, by month, since October 2021 — 60 rows by 6 columns, computed from US exchange, SIP and OPRA data.
monthmondaystuesdayswednesdaysthursdaysfridays
2021-1040404
2021-1150404
2021-1240514
2022-0141404
2022-0231404
2022-0340514
2022-0440414
2022-0541404
2022-0631514
2022-0731405
2022-0850504
2022-0931405
2022-1050404
2022-1143514
2022-1234455
2023-0135444
2023-0234444
2023-0344555
2023-0444443
2023-0545544
2023-0634455
2023-0753444
2023-0845554
2023-0934445
2023-1055444
2023-1144544
2023-1234445
2024-0135544
2024-0234454
2024-0344444
2024-0455444
2024-0534555
2024-0644344
2024-0755534
2024-0844455
2024-0944444
2024-1045554
2024-1144435
2024-1255344
2025-0134455
2025-0234444
2025-0354444
2025-0445543
2025-0534455
2025-0654434
2025-0745553
2025-0844445
2025-0945444
2025-1044555
2025-1144434
2025-1255534
2026-0134445
2026-0234444
2026-0355444
2026-0444553
2026-0534445
2026-0655443
2026-0744554
2026-0854444
2026-0935544
the exact SQL behind every number
SELECT
    formatDateTime(toStartOfMonth(expiration_date), '%Y-%m')            AS month,
    countDistinctIf(expiration_date, toDayOfWeek(expiration_date) = 1) AS mondays,
    countDistinctIf(expiration_date, toDayOfWeek(expiration_date) = 2) AS tuesdays,
    countDistinctIf(expiration_date, toDayOfWeek(expiration_date) = 3) AS wednesdays,
    countDistinctIf(expiration_date, toDayOfWeek(expiration_date) = 4) AS thursdays,
    countDistinctIf(expiration_date, toDayOfWeek(expiration_date) = 5) AS fridays
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
  AND date >= '2021-10-01'
  AND date < today()
  AND expiration_date >= '2021-10-01'
  AND expiration_date < toStartOfMonth(today())
  AND volume > 0
GROUP BY month
ORDER BY month
$