STRASMORE/EXPLORE 3,256 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,256 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

Local Volatility vs Implied Volatility
SPY at-the-money and downside implied volatility across expiry bands, September 2026ranking · 2026-10-09 · 5×4Preview: 5 ranked values, smallest first. SPY implied volatility by strike distance from spot, 20 to 45 day expiries, September 2026ranking · 2026-10-09 · 7×3Preview: 7 ranked values, largest first. SPY at-the-money implied volatility and downside skew spread, week by week, 2026series · 2026-10-09 · 39×4Preview: a 16-point series, ending lower. Forward volatility embedded in the SPY monthly expiry curve, last week of September 2026series · 2026-10-09 · 5×4Preview: a 5-point series, ending higher.
SPY at-the-money and downside implied volatility across expiry bands, September 2026

SPY at-the-money and downside implied volatility across expiry bands, September 2026

most recentas of ranking 5×4read in context →
SPY at-the-money and downside implied volatility across expiry bands, September 2026 — 5 rows by 4 columns, computed from US exchange, SIP and OPRA data.
expiry_bandatm_iv_pctdownside_iv_pctskew_spread_pts
7 to 21 days12.0922.2310.14
22 to 45 days13.0218.695.67
46 to 90 days14.0218.674.65
91 to 180 days15.118.483.38
181 to 365 days16.719.132.43
the exact SQL behind every number
SELECT
    band                                                  AS expiry_band,
    round(avgIf(iv, abs(m) <= 0.01) * 100, 2)             AS atm_iv_pct,
    round(avgIf(iv, m >= -0.08 AND m <= -0.05) * 100, 2)  AS downside_iv_pct,
    round((avgIf(iv, m >= -0.08 AND m <= -0.05)
           - avgIf(iv, abs(m) <= 0.01)) * 100, 2)         AS skew_spread_pts
FROM
(
    SELECT
        iv,
        m,
        dte,
        multiIf(dte <=  21, '7 to 21 days',
                dte <=  45, '22 to 45 days',
                dte <=  90, '46 to 90 days',
                dte <= 180, '91 to 180 days',
                '181 to 365 days')                                    AS band
    FROM
    (
        SELECT
            toFloat64(implied_volatility)                             AS iv,
            toFloat64(strike_price) / toFloat64(underlying_close) - 1 AS m,
            days_to_expiry                                            AS dte
        FROM global_markets.options_greeks
        WHERE underlying_symbol = 'SPY'
          AND date >= '2026-09-01'
          AND date <  '2026-10-01'
          AND iv_converged = 1
          AND volume > 0
          AND days_to_expiry BETWEEN 7 AND 365
          AND underlying_close > 0
          AND implied_volatility > 0
    )
)
GROUP BY band
HAVING countIf(abs(m) <= 0.01) >= 50
   AND countIf(m >= -0.08 AND m <= -0.05) >= 50
ORDER BY min(dte)
$