{"slug":"portfolio-delta-and-beta-weighting","qid":"delta_ladder","label":"AAPL call and put delta across the strike ladder, 20 to 45 days to expiry","post_title":"Portfolio Delta and Beta Weighting Explained","post_url":"/blog/portfolio-delta-and-beta-weighting#q-delta_ladder","columns":["strike_vs_spot","call_delta","put_delta","contract_count"],"rows":[{"strike_vs_spot":"-12%","call_delta":0.924,"put_delta":-0.084,"contract_count":4},{"strike_vs_spot":"-10%","call_delta":0.855,"put_delta":-0.109,"contract_count":5},{"strike_vs_spot":"-8%","call_delta":0.914,"put_delta":-0.144,"contract_count":4},{"strike_vs_spot":"-6%","call_delta":0.815,"put_delta":-0.187,"contract_count":6},{"strike_vs_spot":"-4%","call_delta":0.718,"put_delta":-0.28,"contract_count":12},{"strike_vs_spot":"-2%","call_delta":0.602,"put_delta":-0.398,"contract_count":6},{"strike_vs_spot":"0%","call_delta":0.515,"put_delta":-0.485,"contract_count":6},{"strike_vs_spot":"+2%","call_delta":0.429,"put_delta":-0.57,"contract_count":6},{"strike_vs_spot":"+4%","call_delta":0.343,"put_delta":-0.654,"contract_count":6},{"strike_vs_spot":"+6%","call_delta":0.267,"put_delta":-0.754,"contract_count":6},{"strike_vs_spot":"+8%","call_delta":0.171,"put_delta":-0.788,"contract_count":10},{"strike_vs_spot":"+10%","call_delta":0.106,"put_delta":-0.834,"contract_count":4}],"shape":"ranking","sql":"SELECT\n    concat(if(bucket_pct > 0, '+', ''), toString(bucket_pct), '%') AS strike_vs_spot,\n    round(avgIf(contract_delta, contract_delta > 0), 3)            AS call_delta,\n    round(avgIf(contract_delta, contract_delta < 0), 3)            AS put_delta,\n    count()                                                        AS contract_count\nFROM\n(\n    SELECT\n        toInt32(round((toFloat64(strike_price) / toFloat64(underlying_close) - 1) * 50)) * 2 AS bucket_pct,\n        toFloat64(delta)                                                                     AS contract_delta\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'AAPL'\n      AND date >= toDate('2026-06-30')\n      AND date <  toDate('2026-07-01')\n      AND iv_converged = 1\n      AND volume > 0\n      AND days_to_expiry BETWEEN 20 AND 45\n      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.12\n)\nGROUP BY bucket_pct\nHAVING countIf(contract_delta > 0) > 0 AND countIf(contract_delta < 0) > 0\nORDER BY bucket_pct","computed_at":"2026-08-06T05:02:01.531598+00:00","elapsed":0.002925953}