{"slug":"how-implied-volatility-is-calculated","qid":"iv_by_moneyness","label":"One solve per contract: AAPL implied volatility by strike zone, June 30, 2026","post_title":"How Implied Volatility Is Calculated","post_url":"/blog/how-implied-volatility-is-calculated#q-iv_by_moneyness","columns":["strike_vs_spot","implied_vol_pct","contract_count"],"rows":[{"strike_vs_spot":"0.80-0.90","implied_vol_pct":35.5,"contract_count":24},{"strike_vs_spot":"0.90-0.95","implied_vol_pct":29,"contract_count":10},{"strike_vs_spot":"0.95-1.00","implied_vol_pct":28.1,"contract_count":18},{"strike_vs_spot":"1.00-1.05","implied_vol_pct":27.4,"contract_count":18},{"strike_vs_spot":"1.05-1.10","implied_vol_pct":27.4,"contract_count":16},{"strike_vs_spot":"1.10-1.20","implied_vol_pct":27.3,"contract_count":20}],"shape":"ranking","sql":"WITH toFloat64(strike_price) / toFloat64(underlying_close) AS moneyness\nSELECT multiIf(moneyness < 0.90, '0.80-0.90',\n               moneyness < 0.95, '0.90-0.95',\n               moneyness < 1.00, '0.95-1.00',\n               moneyness < 1.05, '1.00-1.05',\n               moneyness < 1.10, '1.05-1.10',\n                                 '1.10-1.20') AS strike_vs_spot,\n       round(100 * avg(toFloat64(implied_volatility)), 1) AS implied_vol_pct,\n       count() AS contract_count\nFROM global_markets.options_greeks\nWHERE underlying_symbol = 'AAPL'\n  AND date = toDate('2026-06-30')\n  AND days_to_expiry BETWEEN 20 AND 45\n  AND iv_converged = 1\n  AND volume > 0\n  AND moneyness BETWEEN 0.80 AND 1.20\nGROUP BY strike_vs_spot\nORDER BY min(moneyness)","computed_at":"2026-08-25T14:06:52.854719+00:00","elapsed":0.002479753}