Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

GLD Implied Volatility, Explained

What is a normal GLD implied volatility? A five year ATM IV series for the gold ETF, its percentile range, and how its 25 delta skew differs from SPY.

GLD implied volatility is the price the options market puts on future movement in SPDR Gold Shares, the largest gold ETF, quoted as an annualized percentage rather than a dollar amount. It is forward looking: a realized volatility calculation measures what the fund already did, while implied volatility is solved out of live option prices and tells you what size of move those prices are paying for. Every figure on this page is computed from per contract option data for sessions between Sep 2021 and Aug 2026, with the identical calculation run on SPY alongside it.

What does GLD implied volatility measure?

Every listed GLD option trades at a price. Feed that price, the strike, the days left, and the fund's own price into an option pricing model, and one input is left unsolved: volatility. The number that makes the model agree with the traded price is that contract's implied volatility. A reading of 15% says the option is priced for GLD to move about 15% over a year, or roughly 0.94% in a single session (15 divided by the square root of 252 trading days).

One contract on its own is a noisy quote. The fix is to average a tight, comparable set of contracts each session. Everything here uses one definition of "the GLD IV": contracts with 20 to 45 days left to expiry, struck within 5% of where the fund closed that day, with a converged solve and at least one contract traded. What implied volatility measures walks through the pricing model itself. This page is about the levels GLD actually prints.

What is a normal GLD implied volatility level?

The first panel takes the monthly average of that at the money reading for both funds, one line each.

QueryMonthly at-the-money 30 day implied volatility: GLD vs SPY
60 rows (showing 20)
monthmonth_labelgld_atm_iv_pctspy_atm_iv_pct
2021-09-01Sep 202114.1915.08
2021-10-01Oct 202114.414.78
2021-11-01Nov 202114.8714.45
2021-12-01Dec 202114.1516.74
2022-01-01Jan 202213.9519.21
2022-02-01Feb 202215.2721.84
2022-03-01Mar 202221.6122.61
2022-04-01Apr 202216.6820.14
2022-05-01May 202217.0526.45
2022-06-01Jun 202215.8525.2
2022-07-01Jul 202217.1722.93
2022-08-01Aug 202215.0220.02
2022-09-01Sep 202216.8924.96
2022-10-01Oct 202218.2227.84
2022-11-01Nov 202215.8722.7
2022-12-01Dec 202214.5620.81
2023-01-01Jan 202315.2219.36
2023-02-01Feb 202314.4418.87
2023-03-01Mar 202316.7120.07
2023-04-01Apr 202316.5116.49
The exact SQL behind every number
SELECT
    toString(toStartOfMonth(date))                                                  AS month,
    formatDateTime(toStartOfMonth(date), '%b %Y')                                   AS month_label,
    round(avgIf(toFloat64(implied_volatility) * 100, underlying_symbol = 'GLD'), 2) AS gld_atm_iv_pct,
    round(avgIf(toFloat64(implied_volatility) * 100, underlying_symbol = 'SPY'), 2) AS spy_atm_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('GLD', 'SPY')
  AND date >= '2021-09-01'
  AND date <  '2026-09-01'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY month, month_label
HAVING countIf(underlying_symbol = 'GLD') > 0
   AND countIf(underlying_symbol = 'SPY') > 0
ORDER BY month
Run this yourself

The window holds 60 months. GLD opened it at 14.19% in Sep 2021, against 15.08% on SPY. By Aug 2026 the pair measured 23.61% and 13.34%. The ranking between the two is not fixed, which is the first useful lesson on the chart: a metal fund and a broad equity fund answer to different risks, and their volatility quotes travel on separate tracks. The equivalent series for the index side, with its own history and percentile table, sits in SPY implied volatility.

Where does a GLD IV reading sit in its own range?

A level only means something against its own history. Percentiles do that job: sort every session's reading in the window from low to high, then ask where a given number falls. The panel below cuts both funds at the same five points.

QueryPercentile range of daily ATM implied volatility, five year window
percentilegld_iv_pctspy_iv_pct
5th11.8611.96
25th14.3513.48
50th15.8315.6
75th18.3819.28
95th26.8626.43
The exact SQL behind every number
WITH
    daily AS
    (
        SELECT
            underlying_symbol                        AS sym,
            date                                     AS d,
            avg(toFloat64(implied_volatility)) * 100 AS atm_iv
        FROM global_markets.options_greeks
        WHERE underlying_symbol IN ('GLD', 'SPY')
          AND date >= '2021-09-01'
          AND date <  '2026-09-01'
          AND iv_converged = 1
          AND volume > 0
          AND days_to_expiry BETWEEN 20 AND 45
          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
        GROUP BY sym, d
    ),
    curves AS
    (
        SELECT
            sym,
            quantilesDeterministic(0.05, 0.25, 0.5, 0.75, 0.95)(atm_iv, toUInt64(d)) AS qs
        FROM daily
        GROUP BY sym
    )
SELECT
    ['5th', '25th', '50th', '75th', '95th'][idx] AS percentile,
    round(anyIf(qs, sym = 'GLD')[idx], 2)        AS gld_iv_pct,
    round(anyIf(qs, sym = 'SPY')[idx], 2)        AS spy_iv_pct
FROM curves
ARRAY JOIN [1, 2, 3, 4, 5] AS idx
GROUP BY idx
ORDER BY idx
Run this yourself

The median session printed 15.83% on GLD. The 5th percentile sits at 11.86% and the 95th percentile at 26.86%. That is the working answer to "what is a normal GLD implied volatility": the middle half of all sessions in the window fell between 14.35% and 18.38%. SPY's median over the same calendar measured 15.6%. A quote is cheap or rich against that table, never in the abstract.

What is GVZ, the gold volatility index?

CBOE publishes a gold counterpart to the VIX: the CBOE Gold ETF Volatility Index, ticker GVZ. It is built the way the VIX is built for S&P 500 options, from a wide strip of GLD options across many strikes rather than a handful of near the money ones, then interpolated to a constant 30 day horizon. GVZ is the named benchmark a reader will meet in the financial press for this exposure.

The numbers on this page are not GVZ prints. They are a plain average of converged, traded, near the money contracts, which is a simpler construction, so the two move together without matching tick for tick. How a volatility index is built covers the strip and the interpolation. For the raw per contract history behind either approach, historical implied volatility data covers where it lives.

How GLD skew differs from SPY skew

Skew is the difference in implied volatility between two options on the same fund, same expiry, different strikes. The measure quoted here compares the 25 delta call against the 25 delta put. Delta is an option's sensitivity to a one dollar move in the fund, so a 25 delta call sits above the current price and a 25 delta put below it, at roughly matched distance. Subtract the put's IV from the call's and one number per session comes out. Volatility skew explains the shape in full.

Equity index options carry a persistent put bid: downside strikes price above matched upside strikes, and that measure prints negative in almost every month. Gold's risk is not oriented the same way. The move that unsettles a gold market is usually a move up, and the upside wing draws its own demand.

Query25 delta call minus put implied volatility, in volatility points
60 rows (showing 20)
monthmonth_labelgld_skew_ptsspy_skew_ptsgld_minus_spy_pts
2021-09-01Sep 2021-0.94-9.178.23
2021-10-01Oct 2021-0.78-7.196.41
2021-11-01Nov 20210.12-7.827.94
2021-12-01Dec 2021-0.66-9.749.08
2022-01-01Jan 2022-0.83-7.716.88
2022-02-01Feb 20220.48-9.6510.13
2022-03-01Mar 20223.32-9.713.02
2022-04-01Apr 20222.21-7.539.74
2022-05-01May 20220.3-8.388.68
2022-06-01Jun 2022-0.01-6.776.76
2022-07-01Jul 2022-1.31-6.395.08
2022-08-01Aug 2022-0.31-65.69
2022-09-01Sep 2022-1.41-7.345.93
2022-10-01Oct 2022-1.01-4.933.92
2022-11-01Nov 2022-0.41-4.313.9
2022-12-01Dec 2022-0.34-5.385.04
2023-01-01Jan 2023-0.2-3.83.6
2023-02-01Feb 2023-0.39-6.015.62
2023-03-01Mar 20230.95-7.248.19
2023-04-01Apr 20230.85-5.656.5
The exact SQL behind every number
SELECT
    toString(toStartOfMonth(date))                AS month,
    formatDateTime(toStartOfMonth(date), '%b %Y') AS month_label,
    round(avgIf(toFloat64(implied_volatility) * 100, underlying_symbol = 'GLD' AND delta BETWEEN  0.18 AND  0.32)
        - avgIf(toFloat64(implied_volatility) * 100, underlying_symbol = 'GLD' AND delta BETWEEN -0.32 AND -0.18), 2) AS gld_skew_pts,
    round(avgIf(toFloat64(implied_volatility) * 100, underlying_symbol = 'SPY' AND delta BETWEEN  0.18 AND  0.32)
        - avgIf(toFloat64(implied_volatility) * 100, underlying_symbol = 'SPY' AND delta BETWEEN -0.32 AND -0.18), 2) AS spy_skew_pts,
    round(gld_skew_pts - spy_skew_pts, 2)         AS gld_minus_spy_pts
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('GLD', 'SPY')
  AND date >= '2021-09-01'
  AND date <  '2026-09-01'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
GROUP BY month, month_label
HAVING countIf(underlying_symbol = 'GLD' AND delta BETWEEN  0.18 AND  0.32) > 0
   AND countIf(underlying_symbol = 'GLD' AND delta BETWEEN -0.32 AND -0.18) > 0
   AND countIf(underlying_symbol = 'SPY' AND delta BETWEEN  0.18 AND  0.32) > 0
   AND countIf(underlying_symbol = 'SPY' AND delta BETWEEN -0.32 AND -0.18) > 0
ORDER BY month
Run this yourself

In Aug 2026, the GLD measure printed -0.1 volatility points while SPY printed -4.53. The SPY number is negative, the textbook equity shape, with the put wing paying more than the call wing. The third series is the comparison in one line: GLD's skew minus SPY's, which measured a positive 4.43 points in that month across the 60 months charted.

A second way to see it is the whole curve at once, across five delta buckets from the deep put wing to the deep call wing.

QueryAverage implied volatility by delta bucket, trailing twelve months
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
Run this yourself

Over the trailing twelve months of the window, GLD's 10 delta put bucket averaged 27.31% against 27.67% on the 10 delta call bucket, with 25.09% at the money. SPY's put wing averaged 23.17% against 11.65% on its call wing, with 14.98% at the money. Both curves lift at the edges, the familiar smile. The distance between the two ends is where a metal and an index part company.

What the level means for a covered call or a protective put

A covered call is holding the fund and selling a call against it, collecting the option premium. A protective put is holding the fund and buying a put under it, paying the premium for a floor. Implied volatility is the same input on both sides of that trade: a higher reading means a larger premium collected by the call seller and a larger cost paid by the put buyer, on the same day, on the same fund.

That is the practical use of the percentile table above. It says whether the premium quoted today is expensive or cheap against five years of its own history, before anyone forms a view on gold itself. A 25 delta call on GLD priced near the 95th percentile of 26.86% is a different proposition from the same strike priced near 11.86%, even though the contract looks identical on the screen. None of this is a recommendation to open either position. The level is an input to a price, not a verdict on one.

FAQ

What is a normal implied volatility for GLD?

Over the window on this page, the median session's at the money 30 day reading measured 15.83%, and the middle half of sessions fell between 14.35% and 18.38%. Readings at or above 26.86% sat in the top 5% of the sample.

Is GLD implied volatility higher or lower than SPY's?

It varies by period rather than sitting permanently on one side. In Aug 2026 the GLD average measured 23.61% against 13.34% on SPY, and the monthly panel above shows both series month by month.

What is GVZ?

GVZ is CBOE's Gold ETF Volatility Index, a 30 day constant maturity volatility index built from a strip of GLD options, using the construction the VIX applies to S&P 500 options. It is the published benchmark for this exposure. The figures here are computed independently from per contract data and are not GVZ prints.

Why does GLD skew look different from an equity ETF's?

Equity index options carry a persistent bid for downside puts, so the 25 delta put usually prices above the 25 delta call. In gold, upside interest competes with downside hedging, and the two wings price closer together. The monthly skew panel puts a number on that difference for every month in the window.

How current are these numbers?

The window is fixed and stated: sessions from Sep 2021 through Aug 2026, contracts with 20 to 45 days to expiry. Re run the panels with a later end date and every figure on the page moves with it.

Full data notes
  • Contract filters: a converged volatility solve and non zero volume on the session, grouped by the underlying fund rather than the contract code.
  • At the money means a strike within 5% of the fund's close that session. The delta buckets in the skew panels use option delta instead, so the comparison holds as either fund's price level changes.
  • Put deltas are stored signed, so a 25 delta put appears near minus 0.25. A run that returned no put rows would empty the skew panels rather than print a partial number.
  • The percentile panel uses a deterministic quantile, so two runs over the same window return the same figure.
  • Volatility points are simple differences in percentage terms: a call at 18% against a put at 16% is two points.

Every panel above ships with the SQL that produced it. Open one, swap the symbol or the dates, and run it yourself on the Strasmore terminal.

#gld#gold#implied volatility#skew#etf options