GLD Implied Volatility, Explained
Average implied volatility by delta bucket, trailing twelve monthsranking ·
2026-09-23 · 5×3
25 delta call minus put implied volatility, in volatility pointsseries ·
2026-09-23 · 60×5
Percentile range of daily ATM implied volatility, five year windowranking ·
2026-09-23 · 5×3
Monthly at-the-money 30 day implied volatility: GLD vs SPYseries ·
2026-09-23 · 60×4
Average implied volatility by delta bucket, trailing twelve months
Average implied volatility by delta bucket, trailing twelve months
| delta_bucket | gld_iv_pct | spy_iv_pct |
|---|---|---|
| 10 delta put | 27.31 | 23.17 |
| 25 delta put | 25.96 | 18.86 |
| at the money | 25.09 | 14.98 |
| 25 delta call | 25.73 | 12.7 |
| 10 delta call | 27.67 | 11.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
More from this analysisGLD Implied Volatility, Explained
Percentile range of daily ATM implied volatility, five year window
ranking 5×3
→
25 delta call minus put implied volatility, in volatility points
series 60×5
→
Monthly at-the-money 30 day implied volatility: GLD vs SPY
series 60×4
→
Downside wing cells: SPY put IV dispersion by contract volume, June 2026
ranking 6×4
→
See all 3,293 queries →