Strasmore Research
Learn Matt ConnorBy Matt Connor

What Is 0DTE Options Trading? Measured on Tape

0DTE options expire the same day they trade. What zero days to expiration means, which tickers expire daily, and the measured same-day share of options volume.

0DTE options trading is the buying and selling of option contracts on their last day of life — "zero days to expiration," expiring at that afternoon's close. Any listed option becomes a 0DTE option on its expiration date; the term took hold once the biggest index products began listing a contract that expires every single trading day. On Monday, July 6, 2026, contracts expiring that same day carried 38.8% of all US options volume. Every figure below is measured from the consolidated options tape, with the exact SQL one click away.

What does 0DTE mean?

DTE is trader shorthand for days to expiration: the number of calendar days until an option contract expires. A 30-DTE option has a month of life left; a 0-DTE option expires today. At the close of its expiration day, an in-the-money option is exercised or settled, and an out-of-the-money option lapses with no value.

Two things about the label are worth pinning down. First, 0DTE is not a separate product: the same SPY call that was a 30-DTE contract in early June is a 0-DTE contract on its final trading day. Second, the volume measured on this page counts contracts traded, not positions held — options volume vs. open interest walks through that distinction.

Which options expire every day?

For decades, listed US stock options expired once a month, on the third Friday. Weekly Friday expirations spread through the 2000s and 2010s, and in 2022 the exchanges completed the calendar for the biggest index products: Cboe added Tuesday and Thursday S&P 500 (SPX) expirations that spring, and Tuesday and Thursday listings for the SPY and QQQ ETFs followed in November. Since late 2022, SPX, SPY, and QQQ have listed an expiration for every trading day of the week — a same-day contract exists in those products every session — and the Russell 2000 ETF (IWM) also expires daily.

Ordinary single stocks long kept the Friday rhythm — monthlies on the third Friday, weeklies on the rest — and under that convention a Friday (or the Thursday before a Friday market holiday) was the only day a stock option could be 0DTE. The tape below shows how far past that convention the market has moved: July 6, 2026 was a Monday, and same-day-expiring contracts traded in TSLA, NVDA, AAPL, and META.

What share of options volume is 0DTE?

The panel below takes that Monday — July 6, 2026, a verified full session (receipts in the data notes) — and buckets every contract traded across the whole US options tape by its days to expiration, parsed from each contract's OCC ticker.

QueryJuly 6, 2026: whole-tape options volume by days to expiry
The exact SQL behind every number
SELECT multiIf(dte = 0, '0 (expires today)',
               dte = 1, '1 day',
               dte <= 7, '2-7 days',
               dte <= 30, '8-30 days',
               '31+ days') AS days_to_expiry,
       round(sum(volume) / 1e6, 2) AS contracts_mm,
       round(100.0 * sum(volume) / sum(sum(volume)) OVER (), 1) AS pct_of_volume
FROM (
    SELECT toFloat64(volume) AS volume,
           dateDiff('day',
                    toDate(toTimeZone(window_start, 'America/New_York')),
                    toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))) AS dte
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-07-06 08:00:00')
      AND window_start < toDateTime('2026-07-07 04:00:00')
      AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2026-07-06')
)
WHERE dte >= 0
GROUP BY days_to_expiry
ORDER BY min(dte)

Same-day contracts were the largest bucket on the tape: 23.52 million contracts, or 38.8% of the session's 60.64 million total — ahead of the 18.6% that traded more than a month from expiry. The quietest bucket sits right next door: contracts with exactly one day left drew 4.5% of volume. Short-dated activity concentrates into the expiry session itself, not the day before it.

One session is one session, so here is the same measurement across a full month — June 2026, whole tape, every session in one scan:

QueryJune 2026: whole-month options volume and its same-day-expiry share
The exact SQL behind every number
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / 1e6, 1) AS zero_dte_contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-06-01 00:00:00')
  AND window_start < toDateTime('2026-07-01 00:00:00')

Across 21 June sessions and 1477.9 million contracts, 506.3 million — 34.3% — traded on the day they expired. June was the end point of a half-year climb: our first-half 2026 market recap ran this same scan for each month of the half and measured the same-day share climbing from its January level to its June high.

Data notes: session and parse receipts

The receipt below verifies the inputs: SPY printed 390 regular-session minute bars on July 6 (a complete 9:30-to-4:00 session), options volume whose expiry failed to parse from the OCC ticker measured 0%, and volume on contracts past their expiry date measured 0%. Timestamps are stored in UTC and converted to Eastern Time before any date is compared.

QueryThe receipt: July 6, 2026 session completeness and OCC parse coverage
The exact SQL behind every number
WITH (
    SELECT countIf(window_start >= toDateTime('2026-07-06 09:30:00', 'America/New_York')
               AND window_start < toDateTime('2026-07-06 16:00:00', 'America/New_York'))
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-07-06 00:00:00', 'America/New_York')
      AND window_start < toDateTime('2026-07-07 00:00:00', 'America/New_York')
) AS spy_bars
SELECT spy_bars AS spy_session_bars_jul06,
       round(sum(toFloat64(volume)) / 1e6, 2) AS total_contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) IS NULL) / sum(toFloat64(volume)), 2) AS unparsable_expiry_pct,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) < toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 2) AS past_expiry_pct
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-07-06 08:00:00')
  AND window_start < toDateTime('2026-07-07 04:00:00')
  AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2026-07-06')

Which tickers dominate 0DTE trading?

The buckets say how much; the OCC symbols also say where. Every listed option ticker embeds a root — the underlying product it belongs to — and the panel below ranks roots by same-day-expiry volume on July 6, 2026.

QueryJuly 6, 2026: top roots by same-day-expiry options volume
The exact SQL behind every number
SELECT root AS underlying,
       round(sum(volume) / 1e6, 2) AS zero_dte_contracts_mm,
       round(100.0 * sum(volume) / sum(sum(volume)) OVER (), 1) AS pct_of_zero_dte_volume
FROM (
    SELECT substring(ticker, 3, length(ticker) - 17) AS root,
           toFloat64(volume) AS volume
    FROM global_markets.options_minute_aggs
    WHERE window_start >= toDateTime('2026-07-06 08:00:00')
      AND window_start < toDateTime('2026-07-07 04:00:00')
      AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2026-07-06')
      AND toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))
)
WHERE root != 'SPCX'
GROUP BY root
ORDER BY sum(volume) DESC
LIMIT 8

The two biggest index ETFs top the list: SPY carried 36.1% of the session's same-day volume (8.49 million contracts) and QQQ another 21.2%. SPXW — the root for weekly, cash-settled S&P 500 index options — printed 11.3%, and IWM 3.5%. The rest of the table is the notable part: TSLA was the session's largest single-stock same-day root at 11.9%, with NVDA, AAPL, and META behind it — on a Monday, a day no stock option would have expired under the old Friday-only convention.

One settlement note: SPXW options settle in cash against the index level, while SPY, QQQ, and single-stock options settle in shares — an in-the-money contract held through expiration becomes a stock position.

When during the day does 0DTE volume trade?

A same-day option's entire life plays out inside one session. This panel splits July 6's volume by Eastern Time clock hour — same-day contracts against everything longer-dated.

QueryJuly 6, 2026 by ET hour: same-day vs. longer-dated options volume
The exact SQL behind every number
SELECT concat(leftPad(toString(toHour(toTimeZone(window_start, 'America/New_York'))), 2, '0'), ':00 ET') AS hour_bucket,
       round(sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / 1e6, 2) AS zero_dte_contracts_mm,
       round(sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) != toDate(toTimeZone(window_start, 'America/New_York'))) / 1e6, 2) AS longer_dated_contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct_of_hour
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-07-06 08:00:00')
  AND window_start < toDateTime('2026-07-07 04:00:00')
  AND toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2026-07-06')
GROUP BY hour_bucket
ORDER BY hour_bucket

In the opening bucket (the 9:30–9:59 slice of the 09:00 row), same-day contracts took 30% of options volume. The share climbed through the morning, peaked in the 13:00 ET hour at 47.6%, and printed 35.3% in the final full hour. The small 16:00 ET row is the 15-minute tail after the 4:00 p.m. stock close, when broad index options keep trading until 4:15 p.m. ET.

Why are 0DTE options so sensitive? Theta and gamma

Two terms from options math describe most of what makes the final day different. Both are mechanics of the contract, not anyone's forecast.

Theta measures time decay. An option's price has two parts: intrinsic value (what exercising it would be worth right now) and time value (the premium for what might still happen before expiry). Time value must reach zero at expiration, and on the final day whatever remains burns off over hours instead of weeks.

Gamma measures how fast an option's delta — its sensitivity to the underlying's price — changes. Near expiry, an at-the-money option's delta swings quickly between near zero and near one as the underlying crosses the strike. Last-day premiums are small, and the same dollar move in the underlying translates into far larger percentage swings in the option's price than it would a month out — in both directions.

That is leverage, and it cuts in both directions: a small last-day premium is what makes outsized percentage swings possible, and an out-of-the-money 0DTE contract held to the close expires at zero — a complete loss of the premium, with no time left to recover. For the measured scale of both tails in options at large, the best and worst thousand dollars of June 2026 ran a full month's hindsight ledger on real June trades. FINRA has published investor guidance flagging short-dated options trading and the speed of exactly these mechanics.

Who trades 0DTE options?

The tape records contracts, prices, sizes, and times — never identities — and no volume table can say who is on the other side of a trade. What the data does show: same-day volume runs all session long, concentrates in the deepest index products, and by mid-2026 extends to the largest single stocks on days their contracts expire. Public commentary from exchanges and regulators describes the flow as a mix — institutional desks running defined-risk spreads and same-day hedges alongside retail traders taking directional positions — with FINRA's investor guidance addressed to the retail side. This page sticks to what is measurable: the share, the products, and the clock.

0DTE options FAQ

What does 0DTE mean?

0DTE stands for zero days to expiration: an option contract trading on its own expiration day. It is a stage of a contract's life, not a separate product — every listed option becomes 0DTE on its final day. The term is most associated with S&P 500 index and ETF options, which list an expiration every trading day.

What share of options volume is 0DTE?

Measured across the whole US options tape, contracts traded on their own expiry day accounted for 34.3% of June 2026's volume — 506.3 million of 1477.9 million contracts. On Monday, July 6, 2026, the same-day share printed 38.8%.

Are 0DTE options riskier than longer-dated options?

They compress the same range of outcomes into a single session. On the final day, remaining time value decays within hours, gamma is at its highest near the strike, and an out-of-the-money contract expires with no value at the close — a total loss of the premium, with no time to recover. FINRA investor guidance flags short-dated options trading and describes these same mechanics.

Which tickers have 0DTE options?

SPX, SPY, QQQ, and IWM list expirations for every trading day. Every optionable stock has 0DTE options on its own expiration Fridays. On the July 6, 2026 tape — a Monday — same-day volume also printed in TSLA, NVDA, AAPL, and META.


Every panel above is a stored query — expand the SQL under any table, or ask the same questions in plain English on the Strasmore terminal.

#options#0dte#expiration