{"slug":"expected-move-from-implied-volatility","qid":"move_by_horizon","label":"Apple: implied volatility and the expected move at six horizons, one session","post_title":"Expected Move From Implied Volatility","post_url":"/blog/expected-move-from-implied-volatility#q-move_by_horizon","columns":["horizon","avg_days","iv_pct","expected_move_pct","expected_move_usd","underlying_price","as_of"],"rows":[{"horizon":"1 week","avg_days":5,"iv_pct":28,"expected_move_pct":3.17,"expected_move_usd":10.41,"underlying_price":327.8,"as_of":"Jul 15, 2026"},{"horizon":"2 weeks","avg_days":12,"iv_pct":25.1,"expected_move_pct":4.47,"expected_move_usd":14.65,"underlying_price":327.8,"as_of":"Jul 15, 2026"},{"horizon":"1 month","avg_days":27,"iv_pct":29.5,"expected_move_pct":8.08,"expected_move_usd":26.49,"underlying_price":327.8,"as_of":"Jul 15, 2026"},{"horizon":"3 months","avg_days":79,"iv_pct":27.4,"expected_move_pct":12.73,"expected_move_usd":41.74,"underlying_price":327.8,"as_of":"Jul 15, 2026"},{"horizon":"6 months","avg_days":165,"iv_pct":27.7,"expected_move_pct":18.62,"expected_move_usd":61.05,"underlying_price":327.8,"as_of":"Jul 15, 2026"},{"horizon":"1 year","avg_days":292,"iv_pct":28.4,"expected_move_pct":25.44,"expected_move_usd":83.39,"underlying_price":327.8,"as_of":"Jul 15, 2026"}],"shape":"table","sql":"SELECT multiIf(days_to_expiry <= 7, '1 week',\n               days_to_expiry <= 14, '2 weeks',\n               days_to_expiry <= 45, '1 month',\n               days_to_expiry <= 120, '3 months',\n               days_to_expiry <= 240, '6 months',\n               '1 year') AS horizon,\n       round(avg(days_to_expiry), 0) AS avg_days,\n       round(100 * avg(toFloat64(implied_volatility)), 1) AS iv_pct,\n       round(100 * avg(toFloat64(implied_volatility)) * sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_pct,\n       round(avg(toFloat64(underlying_close)) * avg(toFloat64(implied_volatility))\n             * sqrt(avg(days_to_expiry) / 365), 2) AS expected_move_usd,\n       round(avg(toFloat64(underlying_close)), 2) AS underlying_price,\n       formatDateTime(max(date), '%b %e, %Y') AS as_of\nFROM global_markets.options_greeks\nWHERE underlying_symbol = 'AAPL'\n  AND date = (SELECT max(date)\n              FROM global_markets.options_greeks\n              WHERE underlying_symbol = 'AAPL'\n                AND date <= toDate('2026-07-15'))\n  AND iv_converged = 1\n  AND volume > 0\n  AND days_to_expiry BETWEEN 1 AND 400\n  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05\nGROUP BY horizon\nHAVING count() >= 3\nORDER BY avg_days","computed_at":"2026-08-22T04:05:37.323730+00:00","elapsed":1.70789602}