{"slug":"why-index-options-are-taxed-60-40","qid":"dte_mix","label":"Share of contract volume by days to expiry, SPX and SPY","post_title":"Why Index Options Are Taxed 60/40: Section 1256","post_url":"/blog/why-index-options-are-taxed-60-40#q-dte_mix","columns":["dte_bucket","spx_share_pct","spy_share_pct"],"rows":[{"dte_bucket":"1 to 7 days","spx_share_pct":"-nan","spy_share_pct":64.8},{"dte_bucket":"8 to 30 days","spx_share_pct":"-nan","spy_share_pct":19.8},{"dte_bucket":"31 to 90 days","spx_share_pct":"-nan","spy_share_pct":10.3},{"dte_bucket":"91 to 365 days","spx_share_pct":"-nan","spy_share_pct":4.3},{"dte_bucket":"over 1 year","spx_share_pct":"-nan","spy_share_pct":0.8}],"shape":"ranking","sql":"WITH flow AS\n(\n    SELECT\n        replaceOne(underlying_symbol, 'I:', '') AS sym,\n        days_to_expiry                          AS dte,\n        volume                                  AS vol\n    FROM global_markets.options_greeks\n    WHERE date >= today() - 90\n      AND sym IN ('SPX', 'SPY')\n      AND volume > 0\n      AND days_to_expiry >= 0\n),\ntotals AS\n(\n    SELECT\n        sumIf(vol, sym = 'SPX') AS spx_all,\n        sumIf(vol, sym = 'SPY') AS spy_all\n    FROM flow\n)\nSELECT\n    multiIf(dte = 0,    '0 (same session)',\n            dte <= 7,   '1 to 7 days',\n            dte <= 30,  '8 to 30 days',\n            dte <= 90,  '31 to 90 days',\n            dte <= 365, '91 to 365 days',\n                        'over 1 year')                     AS dte_bucket,\n    round(100 * sumIf(vol, sym = 'SPX') / any(spx_all), 1)  AS spx_share_pct,\n    round(100 * sumIf(vol, sym = 'SPY') / any(spy_all), 1)  AS spy_share_pct\nFROM flow\nCROSS JOIN totals\nGROUP BY dte_bucket\nORDER BY min(dte)","computed_at":"2026-08-22T04:36:26.651420+00:00","elapsed":3.948515974}