STRASMORE/EXPLORE 2,214 QUERIES

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

as of series 13×5read in context →
term_structure — 13 rows by 5 columns, computed from US exchange, SIP and OPRA data.
expiry_dateexpiry_labeltime_to_expiryatm_iv_pctcontract_count
2026-06-17June 172 days25.5112
2026-06-18June 183 days25.8912
2026-06-22June 227 days20.8612
2026-06-24June 249 days22.112
2026-06-26June 2611 days22.6812
2026-06-29June 2914 days21.176
2026-07-02July 217 days22.1711
2026-07-10July 1025 days21.776
2026-07-17July 1732 days21.856
2026-07-24July 2439 days22.416
2026-07-31July 3146 days25.456
2026-08-21August 2167 days25.016
2026-09-18September 1895 days25.456
Rows × columns
13 × 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 term_structure, derived from the stored result.
ColumnTypeRangeNotes
expiry_date date 2026-06-17 to 2026-09-18
expiry_label text 13 distinct values (August 21, July 10, July 17…)
time_to_expiry text 13 distinct values (11 days, 14 days, 17 days…)
atm_iv_pct number 20.86 to 25.89 percent
contract_count number 6 to 12 count

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(expiration_date)                                              AS expiry_date,
    concat(monthName(expiration_date), ' ', toString(toDayOfMonth(expiration_date))) AS expiry_label,
    concat(toString(days_to_expiry), ' days')                              AS time_to_expiry,
    round(avg(toFloat64(implied_volatility)) * 100, 2)                     AS atm_iv_pct,
    count()                                                                AS contract_count
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date = '2026-06-15'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 1 AND 120
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.025
GROUP BY expiration_date, days_to_expiry
HAVING contract_count >= 2
ORDER BY expiration_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
iv30_trace series 54×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 →