{"slug":"covered-calls-on-aapl","qid":"delta_outcomes","label":"Outcomes of the repeated monthly AAPL write, by delta target","post_title":"Covered Calls on AAPL: A Worked Example","post_url":"/blog/covered-calls-on-aapl#q-delta_outcomes","columns":["delta_target","write_count","avg_premium_pct","finished_itm_pct","avg_write_return_pct","avg_hold_return_pct"],"rows":[{"delta_target":"0.15","write_count":61,"avg_premium_pct":0.51,"finished_itm_pct":18,"avg_write_return_pct":1.22,"avg_hold_return_pct":1.59},{"delta_target":"0.20","write_count":61,"avg_premium_pct":0.81,"finished_itm_pct":26.2,"avg_write_return_pct":1.09,"avg_hold_return_pct":1.59},{"delta_target":"0.25","write_count":61,"avg_premium_pct":1.01,"finished_itm_pct":27.9,"avg_write_return_pct":1.15,"avg_hold_return_pct":1.59},{"delta_target":"0.30","write_count":61,"avg_premium_pct":1.41,"finished_itm_pct":34.4,"avg_write_return_pct":1.02,"avg_hold_return_pct":1.59},{"delta_target":"0.35","write_count":61,"avg_premium_pct":1.71,"finished_itm_pct":41,"avg_write_return_pct":0.9,"avg_hold_return_pct":1.59},{"delta_target":"0.40","write_count":61,"avg_premium_pct":1.98,"finished_itm_pct":45.9,"avg_write_return_pct":0.82,"avg_hold_return_pct":1.59}],"shape":"table","sql":"WITH month_open AS\n(\n    SELECT min(date) AS write_date\n    FROM global_markets.options_greeks\n    WHERE underlying_symbol = 'AAPL'\n      AND lower(toString(option_type)) IN ('call', 'c')\n      AND toFloat64(option_close) > 0\n      AND date >= '2021-09-01'\n    GROUP BY toStartOfMonth(date)\n),\npicks AS\n(\n    SELECT\n        delta_target,\n        write_month,\n        argMin(strike_usd, gap) AS strike_usd,\n        argMin(expiry, gap) AS expiry,\n        argMin(premium_usd, gap) AS premium_usd,\n        argMin(spot_usd, gap) AS spot_usd\n    FROM\n    (\n        SELECT\n            tg.delta_target AS delta_target,\n            toStartOfMonth(g.date) AS write_month,\n            (abs(toInt32(g.days_to_expiry) - 30),\n             abs(toFloat64(g.delta) - toFloat64(tg.delta_target))) AS gap,\n            toFloat64(g.strike_price) AS strike_usd,\n            g.expiration_date AS expiry,\n            toFloat64(g.option_close) AS premium_usd,\n            toFloat64(g.underlying_close) AS spot_usd\n        FROM global_markets.options_greeks AS g\n        CROSS JOIN\n        (\n            SELECT arrayJoin(['0.15', '0.20', '0.25', '0.30', '0.35', '0.40']) AS delta_target\n        ) AS tg\n        WHERE g.underlying_symbol = 'AAPL'\n          AND lower(toString(g.option_type)) IN ('call', 'c')\n          AND toFloat64(g.option_close) > 0\n          AND toInt32(g.days_to_expiry) BETWEEN 21 AND 45\n          AND toFloat64(g.delta) BETWEEN 0.05 AND 0.55\n          AND g.expiration_date <= today() - 3\n          AND g.date IN (SELECT write_date FROM month_open)\n    )\n    GROUP BY delta_target, write_month\n)\nSELECT\n    p.delta_target AS delta_target,\n    count() AS write_count,\n    round(avg(100 * p.premium_usd / p.spot_usd), 2) AS avg_premium_pct,\n    round(100 * countIf(toFloat64(s.close) > p.strike_usd) / count(), 1) AS finished_itm_pct,\n    round(avg(100 * (least(toFloat64(s.close), p.strike_usd) + p.premium_usd - p.spot_usd) / p.spot_usd), 2) AS avg_write_return_pct,\n    round(avg(100 * (toFloat64(s.close) - p.spot_usd) / p.spot_usd), 2) AS avg_hold_return_pct\nFROM picks AS p\nINNER JOIN\n(\n    SELECT date, close\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'AAPL'\n      AND date >= '2021-09-01'\n) AS s ON s.date = p.expiry\nGROUP BY p.delta_target\nORDER BY p.delta_target","computed_at":"2026-10-05T15:27:31.003923+00:00","elapsed":3.069193576}