{"slug":"implied-volatility-heatmap","qid":"skew_row","label":"skew_row","post_title":"implied-volatility-heatmap","post_url":"/blog/implied-volatility-heatmap#q-skew_row","columns":["moneyness","median_iv_pct","contracts"],"rows":[{"moneyness":"10% below spot","median_iv_pct":28.8,"contracts":82},{"moneyness":"5% below spot","median_iv_pct":25.1,"contracts":86},{"moneyness":"at the money","median_iv_pct":23.9,"contracts":85},{"moneyness":"5% above spot","median_iv_pct":24.3,"contracts":87},{"moneyness":"10% above spot","median_iv_pct":24.7,"contracts":85}],"shape":"ranking","sql":"SELECT\n    moneyness,\n    round(100 * quantileDeterministic(iv, det), 1) AS median_iv_pct,\n    count()                                        AS contracts\nFROM\n(\n    SELECT\n        toFloat64(implied_volatility)                             AS iv,\n        cityHash64(ticker)                                        AS det,\n        toFloat64(strike_price) / toFloat64(underlying_close) - 1  AS m,\n        multiIf(m < -0.075, '10% below spot',\n                m < -0.025, '5% below spot',\n                m <  0.025, 'at the money',\n                m <  0.075, '5% above spot',\n                            '10% above spot')                     AS moneyness\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'AAPL'\n      AND date BETWEEN '2026-06-01' AND '2026-06-30'\n      AND iv_converged = 1\n      AND volume > 0\n      AND days_to_expiry BETWEEN 25 AND 35\n      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.125\n      AND ((lower(option_type) IN ('put', 'p')  AND toFloat64(strike_price) <= toFloat64(underlying_close))\n        OR (lower(option_type) IN ('call', 'c') AND toFloat64(strike_price) >  toFloat64(underlying_close)))\n)\nGROUP BY moneyness\nORDER BY min(m)","computed_at":"2026-10-02T15:14:05.404750+00:00","elapsed":0.004356037}