{"slug":"why-only-some-stocks-have-daily-options","qid":"expiry_calendar","label":"expiry_calendar","post_title":"why-only-some-stocks-have-daily-options","post_url":"/blog/why-only-some-stocks-have-daily-options#q-expiry_calendar","columns":["symbol","expirations_next_45d","non_friday_expirations","as_of_label"],"rows":[{"symbol":"IWM","expirations_next_45d":15,"non_friday_expirations":8,"as_of_label":"Sep 24, 2026"},{"symbol":"QQQ","expirations_next_45d":15,"non_friday_expirations":8,"as_of_label":"Sep 24, 2026"},{"symbol":"SPY","expirations_next_45d":15,"non_friday_expirations":8,"as_of_label":"Sep 24, 2026"},{"symbol":"AAPL","expirations_next_45d":11,"non_friday_expirations":4,"as_of_label":"Sep 24, 2026"},{"symbol":"MSFT","expirations_next_45d":11,"non_friday_expirations":4,"as_of_label":"Sep 24, 2026"},{"symbol":"NVDA","expirations_next_45d":11,"non_friday_expirations":4,"as_of_label":"Sep 24, 2026"},{"symbol":"KO","expirations_next_45d":7,"non_friday_expirations":0,"as_of_label":"Sep 24, 2026"}],"shape":"ranking","sql":"WITH (SELECT max(date) FROM global_markets.options_greeks) AS asof\nSELECT\n    underlying_symbol                                                    AS symbol,\n    countDistinct(expiration_date)                                       AS expirations_next_45d,\n    countDistinctIf(expiration_date, toDayOfWeek(expiration_date) != 5)  AS non_friday_expirations,\n    formatDateTime(max(date), '%b %e, %Y')                               AS as_of_label\nFROM global_markets.options_greeks\nWHERE date = asof\n  AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'NVDA', 'AAPL', 'MSFT', 'KO')\n  AND volume > 0\n  AND expiration_date >  asof\n  AND expiration_date <= asof + 45\nGROUP BY underlying_symbol\nORDER BY expirations_next_45d DESC, symbol ASC","computed_at":"2026-09-28T15:12:13.024072+00:00","elapsed":0.002065285}