spy_term_structure
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-18, from what-is-the-cme-cvol-index.
| tenor | atm_iv_pct |
|---|---|
| 1-7 days | 17.2 |
| 8-14 days | 14.8 |
| 15-21 days | 15.8 |
| 22-30 days | 15.2 |
| 31-45 days | 15.4 |
| 46-60 days | 15.7 |
| 61-90 days | 16 |
- Rows × columns
- 7 × 2
- 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 |
|---|---|---|---|
tenor |
text | 7 distinct values (1-7 days, 15-21 days, 22-30 days…) | |
atm_iv_pct |
number | 14.8 to 17.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.
the exact SQL behind every number
SELECT
tenor_label AS tenor,
round(100 * avg(implied_volatility), 1) AS atm_iv_pct
FROM
(
SELECT
implied_volatility,
multiIf(days_to_expiry <= 7, '1-7 days',
days_to_expiry <= 14, '8-14 days',
days_to_expiry <= 21, '15-21 days',
days_to_expiry <= 30, '22-30 days',
days_to_expiry <= 45, '31-45 days',
days_to_expiry <= 60, '46-60 days',
'61-90 days') AS tenor_label,
multiIf(days_to_expiry <= 7, 1,
days_to_expiry <= 14, 2,
days_to_expiry <= 21, 3,
days_to_expiry <= 30, 4,
days_to_expiry <= 45, 5,
days_to_expiry <= 60, 6,
7) AS tenor_order
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= '2026-06-01'
AND date < '2026-07-01'
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 1 AND 90
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.02
)
GROUP BY tenor_label, tenor_order
ORDER BY tenor_order
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-the-cme-cvol-index
spy_strike_weights
ranking 11×4
→
Top 25 weekly-options underlyings by distinct contracts traded, with expiration weekdays
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
→
Share of prints with a placeholder participant timestamp, one March session per year (IBM and MSFT)
ranking 24×4
→
When market headlines publish, by New York clock hour
ranking 24×2
→
See all 2,358 queries →