{"slug":"implied-volatility-vs-vega","qid":"vega_by_expiry","label":"Same underlying, same IV, rising vega: AAPL by days to expiry (July 2026)","post_title":"Implied Volatility vs Vega: The Difference","post_url":"/blog/implied-volatility-vs-vega#q-vega_by_expiry","columns":["dte_bucket","avg_iv_pct","vega_vs_front","contract_day_count"],"rows":[{"dte_bucket":"0 to 29 days","avg_iv_pct":33.2,"vega_vs_front":1,"contract_day_count":3957},{"dte_bucket":"30 to 59 days","avg_iv_pct":28.8,"vega_vs_front":2.28,"contract_day_count":822},{"dte_bucket":"60 to 89 days","avg_iv_pct":28.3,"vega_vs_front":3.19,"contract_day_count":299},{"dte_bucket":"90 to 119 days","avg_iv_pct":28.1,"vega_vs_front":3.75,"contract_day_count":226},{"dte_bucket":"120 to 149 days","avg_iv_pct":28.6,"vega_vs_front":4.3,"contract_day_count":303},{"dte_bucket":"150 to 179 days","avg_iv_pct":28.3,"vega_vs_front":4.76,"contract_day_count":312},{"dte_bucket":"180 to 209 days","avg_iv_pct":27.9,"vega_vs_front":5.07,"contract_day_count":183},{"dte_bucket":"210 to 239 days","avg_iv_pct":28.6,"vega_vs_front":5.54,"contract_day_count":152},{"dte_bucket":"240 to 269 days","avg_iv_pct":28.4,"vega_vs_front":5.75,"contract_day_count":100},{"dte_bucket":"330 to 359 days","avg_iv_pct":28.8,"vega_vs_front":6.67,"contract_day_count":103},{"dte_bucket":"390 to 419 days","avg_iv_pct":30.3,"vega_vs_front":7.53,"contract_day_count":53},{"dte_bucket":"420 to 449 days","avg_iv_pct":29.1,"vega_vs_front":7.48,"contract_day_count":155},{"dte_bucket":"480 to 509 days","avg_iv_pct":30.7,"vega_vs_front":8.23,"contract_day_count":51},{"dte_bucket":"510 to 539 days","avg_iv_pct":29.5,"vega_vs_front":8.14,"contract_day_count":168}],"shape":"ranking","sql":"WITH ntm AS\n(\n    SELECT\n        intDiv(days_to_expiry, 30) * 30 AS dte_floor,\n        avg(toFloat64(vega))            AS vega_avg,\n        avg(implied_volatility)         AS iv_avg,\n        count()                         AS contract_days\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'AAPL'\n      AND date >= '2026-07-01'\n      AND date <  '2026-08-01'\n      AND iv_converged = 1\n      AND volume > 0\n      AND days_to_expiry BETWEEN 1 AND 545\n      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05\n    GROUP BY dte_floor\n    HAVING count() >= 50\n)\nSELECT\n    concat(toString(dte_floor), ' to ', toString(dte_floor + 29), ' days') AS dte_bucket,\n    round(iv_avg * 100, 1)                                                 AS avg_iv_pct,\n    round(vega_avg / first_value(vega_avg) OVER (ORDER BY dte_floor ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING), 2) AS vega_vs_front,\n    toUInt32(contract_days)                                                AS contract_day_count\nFROM ntm\nORDER BY dte_floor","computed_at":"2026-08-13T15:29:08.247578+00:00","elapsed":0.00290451}