{"slug":"dax-daily-options","qid":"dte_iv_curve","label":"Median implied volatility by days to expiry: near-the-money SPY contracts, 16 July 2026","post_title":"DAX Daily Options: How Eurex 0DTE Works","post_url":"/blog/dax-daily-options#q-dte_iv_curve","columns":["dte_bucket","contracts","median_iv_pct","p90_iv_pct"],"rows":[{"dte_bucket":"1-2","contracts":116,"median_iv_pct":24.3,"p90_iv_pct":55.5},{"dte_bucket":"3-5","contracts":197,"median_iv_pct":12.5,"p90_iv_pct":19.7},{"dte_bucket":"6-10","contracts":343,"median_iv_pct":13.4,"p90_iv_pct":24.4},{"dte_bucket":"11-21","contracts":431,"median_iv_pct":12.9,"p90_iv_pct":18.5},{"dte_bucket":"22-45","contracts":476,"median_iv_pct":14.4,"p90_iv_pct":18.6}],"shape":"ranking","sql":"SELECT multiIf(days_to_expiry = 0, '0 (same day)',\n               days_to_expiry <= 2, '1-2',\n               days_to_expiry <= 5, '3-5',\n               days_to_expiry <= 10, '6-10',\n               days_to_expiry <= 21, '11-21',\n               '22-45') AS dte_bucket,\n       count() AS contracts,\n       round(quantileDeterministic(0.5)(toFloat64(implied_volatility) * 100, cityHash64(ticker)), 1) AS median_iv_pct,\n       round(quantileDeterministic(0.9)(toFloat64(implied_volatility) * 100, cityHash64(ticker)), 1) AS p90_iv_pct\nFROM global_markets.options_greeks\nWHERE underlying_symbol = 'SPY'\n  AND date = toDate('2026-07-16')\n  AND iv_converged = 1\n  AND volume > 0\n  AND days_to_expiry <= 45\n  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05\nGROUP BY dte_bucket\nORDER BY min(days_to_expiry)","computed_at":"2026-08-03T07:38:26.216618+00:00","elapsed":0.00286496}