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

3,293 answered market questions

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

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
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.
Average implied volatility by delta bucket, trailing twelve months

Average implied volatility by delta bucket, trailing twelve months

most recentas of ranking 5×3read in context →
Average implied volatility by delta bucket, trailing twelve months — 5 rows by 3 columns, computed from US exchange, SIP and OPRA data.
delta_bucketgld_iv_pctspy_iv_pct
10 delta put27.3123.17
25 delta put25.9618.86
at the money25.0914.98
25 delta call25.7312.7
10 delta call27.6711.65
the exact SQL behind every number
WITH wings AS
(
    SELECT
        underlying_symbol AS sym,
        multiIf(
            delta BETWEEN -0.15 AND -0.05, 1,
            delta BETWEEN -0.32 AND -0.18, 2,
            delta BETWEEN  0.45 AND  0.55, 3,
            delta BETWEEN  0.18 AND  0.32, 4,
            delta BETWEEN  0.05 AND  0.15, 5,
            0)            AS ord,
        toFloat64(implied_volatility) * 100 AS iv_pct
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('GLD', 'SPY')
      AND date >= '2025-09-01'
      AND date <  '2026-09-01'
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 20 AND 45
)
SELECT
    ['10 delta put', '25 delta put', 'at the money', '25 delta call', '10 delta call'][ord] AS delta_bucket,
    round(avgIf(iv_pct, sym = 'GLD'), 2) AS gld_iv_pct,
    round(avgIf(iv_pct, sym = 'SPY'), 2) AS spy_iv_pct
FROM wings
WHERE ord > 0
GROUP BY ord
HAVING countIf(sym = 'GLD') > 0
   AND countIf(sym = 'SPY') > 0
ORDER BY ord
$