STRASMORE/EXPLORE 2,214 QUERIES

iv_screener

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 ranking 6×4read in context →
iv_screener — 6 rows by 4 columns, computed from US exchange, SIP and OPRA data.
symboliv30_pctnear_iv_pctfar_iv_pct
NVDA36.8436.3536.99
MSFT30.4830.2130.57
AMZN29.7629.6329.8
AAPL21.8321.7721.85
KO18.7219.0118.62
SPY13.5913.4913.63
Rows × columns
6 × 4
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 iv_screener, derived from the stored result.
ColumnTypeRangeNotes
symbol text 6 distinct values (AAPL, AMZN, KO…)
iv30_pct number 13.59 to 36.84 percent
near_iv_pct number 13.49 to 36.35 percent
far_iv_pct number 13.63 to 36.99 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
    underlying_symbol                                           AS symbol,
    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,
    round(near_iv * 100, 2)                                     AS near_iv_pct,
    round(far_iv * 100, 2)                                      AS far_iv_pct
FROM
(
    SELECT
        underlying_symbol,
        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
            underlying_symbol,
            days_to_expiry,
            avg(toFloat64(implied_volatility))  AS atm_iv,
            count()                             AS contracts
        FROM global_markets.options_greeks
        WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'AMZN', 'KO')
          AND date = '2026-06-15'
          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 underlying_symbol, days_to_expiry
        HAVING contracts >= 2
    )
    GROUP BY underlying_symbol
    HAVING countIf(days_to_expiry <= 30) > 0
       AND countIf(days_to_expiry > 30) > 0
)
ORDER BY iv30_pct DESC

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
iv30_trace series 54×5 term_structure series 13×5 bracket_legs table 2×7 weekly_leaders ranking 25×4 Annualized volatility vs total return, 25 large caps, calmest to wildest (~2 years) ranking 25×3 SPY options median spread by expiration date, near-the-money strikes only ranking 25×4 See all 2,214 queries →