{"slug":"what-does-dte-mean-in-options","qid":"dte_trend","label":"0DTE's rise: same-day share of SPY option volume, June 8-12 of each year","post_title":"DTE Meaning in Options: Days to Expiration","post_url":"/blog/what-does-dte-mean-in-options#q-dte_trend","columns":["year","pct_0dte","pct_week_or_less","spy_contracts_mm"],"rows":[{"year":2020,"pct_0dte":20.2,"pct_week_or_less":61.7,"spy_contracts_mm":31.1},{"year":2021,"pct_0dte":18.6,"pct_week_or_less":68.3,"spy_contracts_mm":12.7},{"year":2022,"pct_0dte":30.3,"pct_week_or_less":76.2,"spy_contracts_mm":21.6},{"year":2023,"pct_0dte":44.2,"pct_week_or_less":80.7,"spy_contracts_mm":22.7},{"year":2024,"pct_0dte":50.1,"pct_week_or_less":79.7,"spy_contracts_mm":19.6},{"year":2025,"pct_0dte":60,"pct_week_or_less":85.7,"spy_contracts_mm":30.4},{"year":2026,"pct_0dte":69.5,"pct_week_or_less":89.9,"spy_contracts_mm":71.9}],"shape":"ranking","sql":"SELECT year,\n       round(100.0 * sumIf(vol, dte = 0) / sum(vol), 1) AS pct_0dte,\n       round(100.0 * sumIf(vol, dte <= 7) / sum(vol), 1) AS pct_week_or_less,\n       round(sum(vol) / 1e6, 1) AS spy_contracts_mm\nFROM (\n    SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS year,\n           toFloat64(volume) AS vol,\n           dateDiff('day',\n                    toDate(toTimeZone(window_start, 'America/New_York')),\n                    toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))) AS dte\n    FROM global_markets.options_minute_aggs\n    WHERE ticker LIKE 'O:SPY2%'\n      AND toMonth(toTimeZone(window_start, 'America/New_York')) = 6\n      AND toDayOfMonth(toTimeZone(window_start, 'America/New_York')) BETWEEN 8 AND 12\n      AND toYear(toTimeZone(window_start, 'America/New_York')) >= 2020\n)\nWHERE dte >= 0\nGROUP BY year\nORDER BY year","computed_at":"2026-08-11T14:10:57.117089+00:00","elapsed":0.003045469}