{"slug":"which-stocks-have-daily-options","qid":"daily_names","label":"Which tickers carry the most upcoming expirations: option roots by distinct expiration dates in the next six weeks","post_title":"Which Stocks Have Daily Options?","post_url":"/blog/which-stocks-have-daily-options#q-daily_names","columns":["root","upcoming_expirations","contracts_mm"],"rows":[{"root":"SPXW","upcoming_expirations":29,"contracts_mm":5.14},{"root":"NDXP","upcoming_expirations":28,"contracts_mm":0.1},{"root":"XSP","upcoming_expirations":26,"contracts_mm":0.33},{"root":"RUTW","upcoming_expirations":17,"contracts_mm":0.14},{"root":"SPY","upcoming_expirations":16,"contracts_mm":14.8},{"root":"QQQ","upcoming_expirations":16,"contracts_mm":11.01},{"root":"IWM","upcoming_expirations":16,"contracts_mm":2.37},{"root":"GLD","upcoming_expirations":16,"contracts_mm":1.38},{"root":"XLF","upcoming_expirations":16,"contracts_mm":0.4},{"root":"SMH","upcoming_expirations":15,"contracts_mm":0.73},{"root":"TLT","upcoming_expirations":12,"contracts_mm":1.83},{"root":"SLV","upcoming_expirations":12,"contracts_mm":1.02},{"root":"XLE","upcoming_expirations":12,"contracts_mm":0.49},{"root":"EEM","upcoming_expirations":12,"contracts_mm":0.35},{"root":"XND","upcoming_expirations":12,"contracts_mm":0},{"root":"TSLA","upcoming_expirations":11,"contracts_mm":5.44},{"root":"AAPL","upcoming_expirations":11,"contracts_mm":3.44},{"root":"IBIT","upcoming_expirations":11,"contracts_mm":2.65},{"root":"MU","upcoming_expirations":11,"contracts_mm":2.26},{"root":"AMZN","upcoming_expirations":11,"contracts_mm":2.2}],"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)\nWHERE expiry >= today() - 3\n  AND expiry <= today() + INTERVAL 40 DAY\n  AND root != 'SPCX'\nGROUP BY root\nHAVING upcoming_expirations >= 8\nORDER BY upcoming_expirations DESC, contracts_mm DESC, root\nLIMIT 20","computed_at":"2026-08-22T04:36:12.193486+00:00","elapsed":5.218876858}