iv_history
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-25, from crypto-covered-call-etfs.
| month | mstr_iv_pct | coin_iv_pct | spy_iv_pct |
|---|---|---|---|
| 2024-09-01 | 81.2 | 68.4 | 15.1 |
| 2024-10-01 | 101.4 | 86.2 | 16.6 |
| 2024-11-01 | 144.6 | 86.2 | 13.8 |
| 2024-12-01 | 110.8 | 74.8 | 12.7 |
| 2025-01-01 | 99.1 | 76.2 | 14.4 |
| 2025-02-01 | 79.1 | 70.6 | 14.1 |
| 2025-03-01 | 89.3 | 73.2 | 19 |
| 2025-04-01 | 83 | 77.2 | 27.2 |
| 2025-05-01 | 67.2 | 62.6 | 18.5 |
| 2025-06-01 | 51.2 | 57.1 | 15.9 |
| 2025-07-01 | 51.6 | 65.3 | 15 |
| 2025-08-01 | 54.8 | 55.3 | 13.7 |
| 2025-09-01 | 55.3 | 55.6 | 13.3 |
| 2025-10-01 | 64.8 | 68.6 | 15.7 |
| 2025-11-01 | 77.1 | 64.8 | 16.7 |
| 2025-12-01 | 73.8 | 54.9 | 13.5 |
| 2026-01-01 | 67.6 | 57 | 14 |
| 2026-02-01 | 83.2 | 73.3 | 16.4 |
| 2026-03-01 | 73.5 | 72.2 | 21 |
| 2026-04-01 | 71.5 | 76.4 | 17.2 |
| 2026-05-01 | 67.9 | 69.6 | 15.4 |
| 2026-06-01 | 81.5 | 70.6 | 15.7 |
| 2026-07-01 | 87 | 79.2 | 14.8 |
| 2026-08-01 | 71.5 | 65.8 | 13.3 |
- Rows × columns
- 24 × 4
- Period covered
- to
- 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 |
|---|---|---|---|
month |
date | 2024-09-01 to 2026-08-01 | |
mstr_iv_pct |
number | 51.2 to 144.6 | percent |
coin_iv_pct |
number | 54.9 to 86.2 | percent |
spy_iv_pct |
number | 12.7 to 27.2 | 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.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
SELECT
toString(toStartOfMonth(date)) AS month,
round(avgIf(toFloat64(implied_volatility), underlying_symbol = 'MSTR') * 100, 1) AS mstr_iv_pct,
round(avgIf(toFloat64(implied_volatility), underlying_symbol = 'COIN') * 100, 1) AS coin_iv_pct,
round(avgIf(toFloat64(implied_volatility), underlying_symbol = 'SPY') * 100, 1) AS spy_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('MSTR', 'COIN', 'SPY')
AND date >= toStartOfMonth(today() - 730)
AND date < toStartOfMonth(today())
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
GROUP BY month
HAVING countIf(underlying_symbol = 'MSTR') > 0
AND countIf(underlying_symbol = 'COIN') > 0
AND countIf(underlying_symbol = 'SPY') > 0
ORDER BY month
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.