{"slug":"what-is-0dte-options","qid":"expiry_outcome","label":"How July 6's same-day SPY contracts finished: out of the money vs. in the money","post_title":"What Is 0DTE? Zero Days to Expiry Options","post_url":"/blog/what-is-0dte-options#q-expiry_outcome","columns":["at_the_bell","contracts","call_contracts_mm","put_contracts_mm","pct_of_spy_zero_dte_volume"],"rows":[{"at_the_bell":"Out of the money at the close (expired at zero)","contracts":86,"call_contracts_mm":1.78,"put_contracts_mm":3.91,"pct_of_spy_zero_dte_volume":66.9},{"at_the_bell":"In the money at the close (settled with value)","contracts":163,"call_contracts_mm":2.38,"put_contracts_mm":0.42,"pct_of_spy_zero_dte_volume":33.1}],"shape":"table","sql":"WITH (\n    SELECT round(argMax(close, window_start), 2)\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= toDateTime('2026-07-06 09:30:00', 'America/New_York')\n      AND window_start < toDateTime('2026-07-06 16:01:00', 'America/New_York')\n) AS spy_close\nSELECT if(expired_at_zero, 'Out of the money at the close (expired at zero)',\n                           'In the money at the close (settled with value)') AS at_the_bell,\n       count() AS contracts,\n       round(sumIf(vol, opt_type = 'C') / 1e6, 2) AS call_contracts_mm,\n       round(sumIf(vol, opt_type = 'P') / 1e6, 2) AS put_contracts_mm,\n       round(100.0 * sum(vol) / sum(sum(vol)) OVER (), 1) AS pct_of_spy_zero_dte_volume\nFROM (\n    SELECT substring(ticker, length(ticker) - 8, 1) AS opt_type,\n           toFloat64(substring(ticker, length(ticker) - 7, 8)) / 1000 AS strike,\n           (opt_type = 'C' AND strike > spy_close) OR (opt_type = 'P' AND strike < spy_close) AS expired_at_zero,\n           sum(toFloat64(volume)) AS vol\n    FROM global_markets.options_minute_aggs\n    WHERE window_start >= toDateTime('2026-07-06 08:00:00')\n      AND window_start < toDateTime('2026-07-07 04:00:00')\n      AND startsWith(ticker, 'O:SPY260706')\n    GROUP BY ticker, opt_type, strike, expired_at_zero\n)\nGROUP BY expired_at_zero\nORDER BY expired_at_zero DESC","computed_at":"2026-08-11T14:13:57.539647+00:00","elapsed":0.003833665}