STRASMORE/EXPLORE 3,022 QUERIES

Monthly at-the-money IV: GDX, GDXJ and SPY over the past year

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-10-04, from Gold Miner Covered Call ETFs: Yield vs Upside.

as of series 13×5read in context →
Monthly at-the-money IV: GDX, GDXJ and SPY over the past year — 13 rows by 5 columns, computed from US exchange, SIP and OPRA data.
monthgdx_iv_pctgdxj_iv_pctspy_iv_pctgdx_spy_spread_pts
2025-1042.446.915.726.7
2025-1141.146.316.724.4
2025-1240.946.413.527.4
2026-014855.11434
2026-0251.557.916.435.1
2026-0354.360.22133.3
2026-0449.355.817.232.1
2026-0546.451.715.431
2026-0647.552.615.731.8
2026-074448.814.829.2
2026-0844.749.613.331.3
2026-0943.648.513.530.1
2026-1041.144.514.127
Rows × columns
13 × 5
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for Monthly at-the-money IV: GDX, GDXJ and SPY over the past year, derived from the stored result.
ColumnTypeRangeNotes
month text 13 distinct values (2025-10, 2025-11, 2025-12…)
gdx_iv_pct number 40.9 to 54.3 percent
gdxj_iv_pct number 44.5 to 60.2 percent
spy_iv_pct number 13.3 to 21 percent
gdx_spy_spread_pts number 24.4 to 35.1

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
    formatDateTime(toStartOfMonth(date), '%Y-%m')                                    AS month,
    round(avgIf(toFloat64(implied_volatility), underlying_symbol = 'GDX') * 100, 1)  AS gdx_iv_pct,
    round(avgIf(toFloat64(implied_volatility), underlying_symbol = 'GDXJ') * 100, 1) AS gdxj_iv_pct,
    round(avgIf(toFloat64(implied_volatility), underlying_symbol = 'SPY') * 100, 1)  AS spy_iv_pct,
    round((avgIf(toFloat64(implied_volatility), underlying_symbol = 'GDX')
         - avgIf(toFloat64(implied_volatility), underlying_symbol = 'SPY')) * 100, 1) AS gdx_spy_spread_pts
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('GDX', 'GDXJ', 'SPY')
  AND date >= '2025-10-01'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND toFloat64(underlying_close) > 0
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY month
HAVING countIf(underlying_symbol = 'GDX') > 0
   AND countIf(underlying_symbol = 'GDXJ') > 0
   AND countIf(underlying_symbol = 'SPY') > 0
ORDER BY month
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysisGold Miner Covered Call ETFs: Yield vs Upside
Monthly price move, 2026: GDX vs the covered call wrapper GDXY series 10×3 → 2026 price return, distributions and total return: miners, wrapper and bullion table 4×5 → At-the-money implied volatility: gold miners vs bullion vs the S&P 500 table 4×6 → Every distribution from the most frequent payer, with its annualized rate series 104×4 → Share price indexed to 100, three covered call ETFs, monthly series 59×4 → Cash distributions per share, month by month series 59×4 → See all 3,022 queries →