{"slug":"how-to-pick-an-option-strike-price","qid":"premium_curve","label":"Median premium collected per delta band, as a percent of the share price","post_title":"How to Pick an Option Strike Price by Delta","post_url":"/blog/how-to-pick-an-option-strike-price#q-premium_curve","columns":["delta_band","call_premium_pct","put_premium_pct","contract_count"],"rows":[{"delta_band":"5 to 10","call_premium_pct":0.21,"put_premium_pct":0.26,"contract_count":7543},{"delta_band":"10 to 15","call_premium_pct":0.38,"put_premium_pct":0.45,"contract_count":4875},{"delta_band":"15 to 20","call_premium_pct":0.57,"put_premium_pct":0.64,"contract_count":3829},{"delta_band":"20 to 25","call_premium_pct":0.78,"put_premium_pct":0.89,"contract_count":3248},{"delta_band":"25 to 30","call_premium_pct":0.98,"put_premium_pct":1.12,"contract_count":2865},{"delta_band":"30 to 35","call_premium_pct":1.25,"put_premium_pct":1.4,"contract_count":2688},{"delta_band":"35 to 40","call_premium_pct":1.49,"put_premium_pct":1.7,"contract_count":2531},{"delta_band":"40 to 45","call_premium_pct":1.84,"put_premium_pct":2.05,"contract_count":2447},{"delta_band":"45 to 50","call_premium_pct":2.13,"put_premium_pct":2.43,"contract_count":2394}],"shape":"ranking","sql":"WITH\nsnaps AS\n(\n    SELECT\n        ticker                                                AS contract,\n        any(if(upper(substring(toString(option_type), 1, 1)) = 'C', 'call', 'put')) AS opt,\n        argMin(abs(delta), abs(toInt32(days_to_expiry) - 30)) AS abs_delta,\n        argMin(100 * toFloat64(option_close) / toFloat64(underlying_close),\n               abs(toInt32(days_to_expiry) - 30))             AS premium_pct\n    FROM global_markets.options_greeks\n    WHERE date >= '2024-01-01'\n      AND date <  '2026-09-01'\n      AND days_to_expiry BETWEEN 27 AND 33\n      AND delta != 0\n      AND volume > 0\n      AND option_close > 0\n      AND underlying_close > 0\n      AND toDate(expiration_date) < '2026-09-01'\n      AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'SPY', 'KO', 'JPM', 'XOM')\n    GROUP BY contract\n    HAVING abs_delta >= 0.05 AND abs_delta < 0.50\n),\nbanded AS\n(\n    SELECT\n        toUInt16(floor(abs_delta * 20)) AS band,\n        contract,\n        opt,\n        premium_pct\n    FROM snaps\n)\nSELECT\n    concat(toString(band * 5), ' to ', toString(band * 5 + 5))                              AS delta_band,\n    round(quantileDeterministicIf(0.5)(premium_pct, cityHash64(contract), opt = 'call'), 2) AS call_premium_pct,\n    round(quantileDeterministicIf(0.5)(premium_pct, cityHash64(contract), opt = 'put'), 2)  AS put_premium_pct,\n    count()                                                                                 AS contract_count\nFROM banded\nGROUP BY band\nHAVING countIf(opt = 'call') > 0 AND countIf(opt = 'put') > 0\nORDER BY band","computed_at":"2026-09-27T15:21:47.875525+00:00","elapsed":0.004674213}