STRASMORE/EXPLORE 2,830 QUERIES

skew_persistence

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-30, from buying-puts-vs-buying-calls.

as of series 24×4read in context →
skew_persistence — 24 rows by 4 columns, computed from US exchange, SIP and OPRA data.
monthput_25d_iv_pctcall_25d_iv_pctskew_spread_pct
2024-09-0117.5111.95.61
2024-10-0118.7813.575.21
2024-11-0115.311.294.01
2024-12-0114.5410.14.44
2025-01-0116.0311.924.1
2025-02-0116.6211.225.4
2025-03-0122.1915.816.37
2025-04-0131.9924.67.39
2025-05-0121.3214.916.41
2025-06-0118.4912.535.97
2025-07-0116.3411.954.39
2025-08-011610.645.36
2025-09-0116.210.375.82
2025-10-0118.1912.85.39
2025-11-0120.1713.566.61
2025-12-0115.8910.765.14
2026-01-0116.111.324.78
2026-02-0120.212.817.39
2026-03-0126.1816.519.67
2026-04-0120.9313.587.35
2026-05-0117.5112.634.88
2026-06-0118.2512.915.34
2026-07-0117.3911.985.41
2026-08-0115.3810.974.42
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
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for skew_persistence, derived from the stored result.
ColumnTypeRangeNotes
month date 2024-09-01 to 2026-08-01
put_25d_iv_pct number 14.54 to 31.99 percent
call_25d_iv_pct number 10.1 to 24.6 percent
skew_spread_pct number 4.01 to 9.67 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), delta BETWEEN -0.30 AND -0.20) * 100, 2)  AS put_25d_iv_pct,
    round(avgIf(toFloat64(implied_volatility), delta BETWEEN  0.20 AND  0.30) * 100, 2)  AS call_25d_iv_pct,
    round((avgIf(toFloat64(implied_volatility), delta BETWEEN -0.30 AND -0.20)
         - avgIf(toFloat64(implied_volatility), delta BETWEEN  0.20 AND  0.30)) * 100, 2) AS skew_spread_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
  AND date >= '2024-09-01'
  AND date <  '2026-09-01'
  AND iv_converged = 1
  AND volume > 0
  AND days_to_expiry BETWEEN 20 AND 45
GROUP BY month
HAVING countIf(delta BETWEEN -0.30 AND -0.20) > 0
   AND countIf(delta BETWEEN 0.20 AND 0.30) > 0
ORDER BY month
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysisbuying-puts-vs-buying-calls
skew_curve ranking 6×4 → parity_ladder ranking 6×4 → realised_vol_by_month ranking 4×3 → breakeven_by_dte ranking 4×4 → The 2s10s spread by month, full history series 604×5 → One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 → See all 2,830 queries →