{"slug":"which-stocks-have-daily-options","qid":"stock_contrast","label":"Daily options vs weekly options: upcoming expiration dates for six household tickers","post_title":"Which Stocks Have Daily Options?","post_url":"/blog/which-stocks-have-daily-options#q-stock_contrast","columns":["root","upcoming_expirations","contracts_mm"],"rows":[{"root":"SPY","upcoming_expirations":16,"contracts_mm":14.8},{"root":"QQQ","upcoming_expirations":16,"contracts_mm":11.01},{"root":"AAPL","upcoming_expirations":11,"contracts_mm":3.44},{"root":"NVDA","upcoming_expirations":10,"contracts_mm":6.15},{"root":"XOM","upcoming_expirations":6,"contracts_mm":0.48},{"root":"KO","upcoming_expirations":6,"contracts_mm":0.13}],"shape":"ranking","sql":"SELECT root,\n       uniqExact(expiry) AS upcoming_expirations,\n       round(sum(vol) / 1e6, 2) AS contracts_mm\nFROM (\n    SELECT substring(ticker, 3, length(ticker) - 17) AS root,\n           toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) AS expiry,\n           toFloat64(volume) AS vol\n    FROM global_markets.options_minute_aggs\n    WHERE window_start >= now() - INTERVAL 8 DAY\n      AND (ticker LIKE 'O:SPY2%' OR ticker LIKE 'O:QQQ2%' OR ticker LIKE 'O:AAPL2%'\n           OR ticker LIKE 'O:NVDA2%' OR ticker LIKE 'O:KO2%' OR ticker LIKE 'O:XOM2%')\n)\nWHERE expiry >= today() - 3\n  AND expiry <= today() + INTERVAL 40 DAY\n  AND root IN ('SPY', 'QQQ', 'AAPL', 'NVDA', 'KO', 'XOM')\nGROUP BY root\nORDER BY upcoming_expirations DESC, contracts_mm DESC, root","computed_at":"2026-08-22T04:36:13.331206+00:00","elapsed":0.817350853}