STRASMORE/EXPLORE 2,214 QUERIES

iv30_trace

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-09-12, from what-is-an-implied-volatility-index.

as of series 54×5read in context →
iv30_trace — 54 rows by 5 columns, computed from US exchange, SIP and OPRA data.
session_dateas_of_labelnear_iv_pctfar_iv_pctiv30_pct
2026-06-15June 15, 202621.7721.8521.83
2026-06-16June 16, 202621.9421.5521.6
2026-06-17June 17, 202622.8422.6322.84
2026-06-18June 18, 202622.3322.5722.37
2026-06-22June 22, 202623.8924.3224.22
2026-06-23June 23, 202624.3723.5523.65
2026-06-24June 24, 202625.8728.6125.87
2026-06-25June 25, 202628.1629.9628.47
2026-06-26June 26, 202627.1229.2427.84
2026-06-29June 29, 202625.8829.0528.33
2026-06-30June 30, 202625.4929.4128.99
2026-07-01July 1, 202628.5427.8328.54
2026-07-02July 2, 202628.4228.0128.35
2026-07-06July 6, 202628.9828.7928.84
2026-07-07July 7, 202629.1628.5328.61
2026-07-08July 8, 202629.1227.2429.12
2026-07-09July 9, 202628.227.628.1
2026-07-10July 10, 202628.5526.7127.95
2026-07-13July 13, 202629.7628.2228.59
2026-07-14July 14, 202628.4928.1328.17
2026-07-15July 15, 202628.6927.328.69
2026-07-16July 16, 202629.4929.0229.41
2026-07-17July 17, 202631.7430.2431.25
2026-07-20July 20, 202631.4730.230.51
2026-07-21July 21, 202631.6630.3230.48
2026-07-22July 22, 202629.7329.5429.73
2026-07-23July 23, 202629.8428.8729.68
2026-07-24July 24, 202629.2628.6829.07
2026-07-27July 27, 202630.4929.6129.82
2026-07-28July 28, 202630.0328.8428.97
2026-07-29July 29, 202629.4429.2129.44
2026-07-30July 30, 202645.1838.6544.13
2026-07-31July 31, 202627.426.7127.17
2026-08-03August 3, 202627.4427.127.18
2026-08-04August 4, 202626.7126.626.61
2026-08-05August 5, 202626.3626.3626.36
2026-08-06August 6, 202625.0125.1225.03
2026-08-07August 7, 202623.924.7424.18
2026-08-10August 10, 202624.4724.4724.47
2026-08-11August 11, 202622.9223.5623.49
2026-08-12August 12, 202623.4323.5923.43
2026-08-13August 13, 202624.3123.7124.21
2026-08-14August 14, 202622.5122.6422.55
2026-08-17August 17, 202623.2123.6823.57
2026-08-18August 18, 202624.0924.2924.27
2026-08-19August 19, 202624.9725.0724.97
2026-08-20August 20, 202625.0325.625.13
2026-08-21August 21, 202624.1624.5724.3
2026-08-24August 24, 202624.6924.7524.73
2026-08-25August 25, 202624.8624.9924.98
2026-08-26August 26, 202625.624.5425.6
2026-08-27August 27, 202624.6825.8424.88
2026-08-28August 28, 202623.9624.0123.97
2026-08-31August 31, 202624.0424.4624.36
Rows × columns
54 × 5
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 iv30_trace, derived from the stored result.
ColumnTypeRangeNotes
session_date date 2026-06-15 to 2026-08-31
as_of_label text 54 distinct values
near_iv_pct number 21.77 to 45.18 percent
far_iv_pct number 21.55 to 38.65 percent
iv30_pct number 21.6 to 44.13 percent

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
SELECT
    toString(date)                                              AS session_date,
    concat(monthName(date), ' ', toString(toDayOfMonth(date)), ', ', toString(toYear(date))) AS as_of_label,
    round(near_iv * 100, 2)                                     AS near_iv_pct,
    round(far_iv * 100, 2)                                      AS far_iv_pct,
    round(sqrt((near_iv * near_iv * near_dte * (far_dte - 30)
              + far_iv * far_iv * far_dte * (30 - near_dte))
              / (far_dte - near_dte) / 30) * 100, 2)            AS iv30_pct
FROM
(
    SELECT
        date,
        maxIf(days_to_expiry, days_to_expiry <= 30)             AS near_dte,
        minIf(days_to_expiry, days_to_expiry > 30)              AS far_dte,
        argMaxIf(atm_iv, days_to_expiry, days_to_expiry <= 30)  AS near_iv,
        argMinIf(atm_iv, days_to_expiry, days_to_expiry > 30)   AS far_iv
    FROM
    (
        SELECT
            date,
            days_to_expiry,
            avg(toFloat64(implied_volatility))  AS atm_iv,
            count()                             AS contracts
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'AAPL'
          AND date BETWEEN '2026-06-15' AND '2026-08-31'
          AND iv_converged = 1
          AND volume > 0
          AND days_to_expiry BETWEEN 7 AND 90
          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.025
        GROUP BY date, days_to_expiry
        HAVING contracts >= 2
    )
    GROUP BY date
    HAVING countIf(days_to_expiry <= 30) > 0
       AND countIf(days_to_expiry > 30) > 0
)
ORDER BY date

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 analysiswhat-is-an-implied-volatility-index
term_structure series 13×5 iv_screener ranking 6×4 bracket_legs table 2×7 One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 2s10s spread, monthly average: last 20 years series 240×2 Growth of $100 in the 1x SOXX vs the 3x SOXL, Jan 2 to Jul 13 2026 series 131×3 See all 2,214 queries →