{"slug":"iv-term-structure-explained","qid":"market_curve","label":"IV term structure, six liquid names: median near-the-money implied volatility by expiry band, June 2026","post_title":"IV Term Structure: What the Curve Tells You","post_url":"/blog/iv-term-structure-explained#q-market_curve","columns":["expiry_band","median_iv_pct","pts_vs_front_band","contract_count"],"rows":[{"expiry_band":"5-20 days","median_iv_pct":19.6,"pts_vs_front_band":0,"contract_count":7332},{"expiry_band":"21-45 days","median_iv_pct":17.6,"pts_vs_front_band":-2,"contract_count":6827},{"expiry_band":"46-90 days","median_iv_pct":16.3,"pts_vs_front_band":-3.2,"contract_count":5593},{"expiry_band":"91-180 days","median_iv_pct":18.5,"pts_vs_front_band":-1.1,"contract_count":6736},{"expiry_band":"181-365 days","median_iv_pct":21.5,"pts_vs_front_band":1.9,"contract_count":6559}],"shape":"ranking","sql":"WITH (\n    SELECT quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker))\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'KO', 'JNJ', 'PG')\n      AND date >= toDate('2026-06-01')\n      AND date < toDate('2026-07-01')\n      AND iv_converged = 1\n      AND volume > 0\n      AND implied_volatility BETWEEN 0.03 AND 3\n      AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65\n      AND days_to_expiry BETWEEN 5 AND 20\n) AS front_band_iv\nSELECT multiIf(days_to_expiry <= 20, '5-20 days',\n               days_to_expiry <= 45, '21-45 days',\n               days_to_expiry <= 90, '46-90 days',\n               days_to_expiry <= 180, '91-180 days',\n               '181-365 days') AS expiry_band,\n       round(100 * quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker)), 1) AS median_iv_pct,\n       round(100 * (quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker)) - front_band_iv), 1) AS pts_vs_front_band,\n       count() AS contract_count\nFROM global_markets.options_greeks\nWHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'KO', 'JNJ', 'PG')\n  AND date >= toDate('2026-06-01')\n  AND date < toDate('2026-07-01')\n  AND iv_converged = 1\n  AND volume > 0\n  AND implied_volatility BETWEEN 0.03 AND 3\n  AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65\n  AND days_to_expiry BETWEEN 5 AND 365\nGROUP BY expiry_band\nORDER BY min(days_to_expiry)","computed_at":"2026-08-04T13:34:08.159043+00:00","elapsed":0.004090433}