{"slug":"when-do-short-options-get-assigned-early","qid":"itm_time_value","label":"Time value left in AAPL contracts by depth in the money","post_title":"When Short Options Get Assigned Early","post_url":"/blog/when-do-short-options-get-assigned-early#q-itm_time_value","columns":["itm_depth","call_avg_vega","put_avg_vega","call_contracts","put_contracts"],"rows":[{"itm_depth":"under 1%","call_avg_vega":0.207,"put_avg_vega":0.208,"call_contracts":692,"put_contracts":650},{"itm_depth":"1 to 3%","call_avg_vega":0.185,"put_avg_vega":0.191,"call_contracts":1221,"put_contracts":1146},{"itm_depth":"3 to 5%","call_avg_vega":0.153,"put_avg_vega":0.162,"call_contracts":965,"put_contracts":868},{"itm_depth":"5 to 10%","call_avg_vega":0.116,"put_avg_vega":0.13,"call_contracts":1603,"put_contracts":889},{"itm_depth":"over 10%","call_avg_vega":0.071,"put_avg_vega":0.101,"call_contracts":2407,"put_contracts":321}],"shape":"table","sql":"SELECT\n    depth_bucket                            AS itm_depth,\n    round(avgIf(vega_f, side = 'call'), 3)  AS call_avg_vega,\n    round(avgIf(vega_f, side = 'put'), 3)   AS put_avg_vega,\n    countIf(side = 'call')                  AS call_contracts,\n    countIf(side = 'put')                   AS put_contracts\nFROM\n(\n    SELECT\n        if(delta > 0, 'call', 'put') AS side,\n        toFloat64(vega)              AS vega_f,\n        if(delta > 0,\n           toFloat64(underlying_close) / toFloat64(strike_price) - 1,\n           toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS depth,\n        multiIf(depth < 0.01, 'under 1%',\n                depth < 0.03, '1 to 3%',\n                depth < 0.05, '3 to 5%',\n                depth < 0.10, '5 to 10%',\n                              'over 10%') AS depth_bucket\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'AAPL'\n      AND date >= today() - 120\n      AND iv_converged = 1\n      AND volume > 0\n      AND days_to_expiry BETWEEN 3 AND 30\n      AND toFloat64(underlying_close) > 0\n      AND toFloat64(strike_price) > 0\n      AND toFloat64(delta) != 0\n      AND depth > 0\n)\nGROUP BY depth_bucket\nHAVING countIf(side = 'call') > 0 AND countIf(side = 'put') > 0\nORDER BY min(depth)","computed_at":"2026-08-22T04:35:53.645098+00:00","elapsed":0.194997889}