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.
| symbol | iv30_pct | near_iv_pct | far_iv_pct |
|---|---|---|---|
| NVDA | 36.84 | 36.35 | 36.99 |
| MSFT | 30.48 | 30.21 | 30.57 |
| AMZN | 29.76 | 29.63 | 29.8 |
| AAPL | 21.83 | 21.77 | 21.85 |
| KO | 18.72 | 19.01 | 18.62 |
| SPY | 13.59 | 13.49 | 13.63 |
- Rows × columns
- 6 × 4
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
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 →