STRASMORE/EXPLORE 2,170 QUERIES

Three ways to build a 30-day IV for SPY, from one set of rows

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-08-15, from Where to Get Historical Implied Volatility Data.

as of series 53×6read in context →
Three ways to build a 30-day IV for SPY, from one set of rows — 53 rows by 6 columns, computed from US exchange, SIP and OPRA data.
weekweek_labeltight_atm_pctwide_atm_pctvolume_weighted_pctspread_pp
2025-07-28July 28, 202516.616.416.70.2
2025-08-04August 4, 202513.614.714.91.3
2025-08-11August 11, 202512.313.613.91.5
2025-08-18August 18, 202512.613.514.52
2025-08-25August 25, 202511.812.813.61.8
2025-09-01September 1, 202512.513.2141.4
2025-09-08September 8, 202511.912.513.31.4
2025-09-15September 15, 202512.613.2141.5
2025-09-22September 22, 202513.414.2151.6
2025-09-29September 29, 202513.514.1140.6
2025-10-06October 6, 202515.215.616.81.6
2025-10-13October 13, 20251717.718.81.8
2025-10-20October 20, 202514.315.115.71.5
2025-10-27October 27, 202514.215.115.41.2
2025-11-03November 3, 202515.616.316.61
2025-11-10November 10, 202515.715.917.21.5
2025-11-17November 17, 202519.618.821.22.4
2025-11-24November 24, 202514.715.415.91.2
2025-12-01December 1, 202513.414.2140.7
2025-12-08December 8, 202513.113.613.40.5
2025-12-15December 15, 202513.213.914.31.1
2025-12-22December 22, 202511.412.412.30.9
2025-12-29December 29, 202512.412.712.40.3
2026-01-05January 5, 202612.613.313.50.9
2026-01-12January 12, 202613.213.814.11
2026-01-19January 19, 202614.314.9161.7
2026-01-26January 26, 20261414.515.21.2
2026-02-02February 2, 202615.316.216.51.2
2026-02-09February 9, 202615.916.317.51.6
2026-02-16February 16, 202616.616.717.40.8
2026-02-23February 23, 202616.216.517.71.5
2026-03-02March 2, 20261918.8190.2
2026-03-09March 9, 202621.521.121.30.4
2026-03-16March 16, 202620.920.6221.3
2026-03-23March 23, 20262422.924.31.4
2026-03-30March 30, 202622.621.621.31.3
2026-04-06April 6, 202617.718.418.40.7
2026-04-13April 13, 202615.116160.9
2026-04-20April 20, 20261616.4171
2026-04-27April 27, 202615.115.715.90.8
2026-05-04May 4, 20261515.915.70.9
2026-05-11May 11, 202615.516.316.51
2026-05-18May 18, 202615.115.4160.9
2026-05-25May 25, 202613.514.114.51
2026-06-01June 1, 202614.214.816.32
2026-06-08June 8, 202616.317.117.61.3
2026-06-15June 15, 202613.914.615.61.7
2026-06-22June 22, 202616.116.516.70.6
2026-06-29June 29, 202614.414.414.10.4
2026-07-06July 6, 202613.313.914.20.9
2026-07-13July 13, 202614.514.815.51
2026-07-20July 20, 202615.215.315.60.5
2026-07-27July 27, 20261515.315.80.8
Rows × columns
53 × 6
Period covered
to
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 Three ways to build a 30-day IV for SPY, from one set of rows, derived from the stored result.
ColumnTypeRangeNotes
week date 2025-07-28 to 2026-07-27
week_label text 53 distinct values
tight_atm_pct number 11.4 to 24 percent
wide_atm_pct number 12.4 to 22.9 percent
volume_weighted_pct number 12.3 to 24.3 percent
spread_pp number 0.2 to 2.4

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.

the exact SQL behind every number
WITH
    near_money AS
    (
        SELECT
            toMonday(date)                                                 AS week_start,
            toFloat64(implied_volatility)                                  AS iv,
            days_to_expiry                                                 AS dte,
            volume                                                         AS vol,
            abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS moneyness
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'SPY'
          AND date >= '2025-08-01'
          AND date <  '2026-08-01'
          AND iv_converged = 1
          AND volume > 0
          AND underlying_close > 0
          AND days_to_expiry BETWEEN 20 AND 45
          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
    ),
    weekly AS
    (
        SELECT
            week_start,
            avgIf(iv, dte BETWEEN 25 AND 35 AND moneyness < 0.01) AS tight_atm,
            avg(iv)                                               AS wide_atm,
            sum(iv * vol) / sum(vol)                              AS volume_weighted
        FROM near_money
        GROUP BY week_start
        HAVING countIf(dte BETWEEN 25 AND 35 AND moneyness < 0.01) > 0
    )
SELECT
    toString(week_start) AS week,
    concat(monthName(week_start), ' ', toString(toDayOfMonth(week_start)), ', ', toString(toYear(week_start))) AS week_label,
    round(100 * tight_atm, 1)       AS tight_atm_pct,
    round(100 * wide_atm, 1)        AS wide_atm_pct,
    round(100 * volume_weighted, 1) AS volume_weighted_pct,
    round(100 * (greatest(tight_atm, wide_atm, volume_weighted)
               - least(tight_atm, wide_atm, volume_weighted)), 1) AS spread_pp
FROM weekly
ORDER BY week_start

Run your own version of this

The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.

More from this analysisWhere to Get Historical Implied Volatility Data
Underlying names with converged daily IV, by quarter table 49×2 Median near-the-money IV, 20 to 45 days to expiry (June 2026) ranking 8×3 One name, one month: implied volatility by time to expiry (AAPL, June 2026) table 6×5 The top-ranked name's implied volatility by week, with its 52-week high and low series 53×4 SPY vs QQQ, normalized return over the last 45 days series 33×3 One SPY $740 call's price over its 7-week life (expired Jun 18 2026) series 31×2 See all 2,170 queries →