{"slug":"covered-calls-on-aapl","qid":"monthly_writes","label":"The same 0.30 delta AAPL write, repeated on the first session of every month","post_title":"Covered Calls on AAPL: A Worked Example","post_url":"/blog/covered-calls-on-aapl#q-monthly_writes","columns":["month","month_label","strike","premium","premium_pct","move_to_expiry_pct","outcome"],"rows":[{"month":"2021-09","month_label":"September 2021","strike":"160","premium":1.4,"premium_pct":0.91,"move_to_expiry_pct":-6.86,"outcome":"kept"},{"month":"2021-10","month_label":"October 2021","strike":"149","premium":1.79,"premium_pct":1.26,"move_to_expiry_pct":5.06,"outcome":"called away"},{"month":"2021-11","month_label":"November 2021","strike":"155","premium":1.37,"premium_pct":0.92,"move_to_expiry_pct":9.03,"outcome":"called away"},{"month":"2021-12","month_label":"December 2021","strike":"175","premium":2.15,"premium_pct":1.3,"move_to_expiry_pct":7.12,"outcome":"called away"},{"month":"2022-01","month_label":"January 2022","strike":"190","premium":2.99,"premium_pct":1.64,"move_to_expiry_pct":-5.23,"outcome":"kept"},{"month":"2022-02","month_label":"February 2022","strike":"180","premium":2.72,"premium_pct":1.56,"move_to_expiry_pct":-6.39,"outcome":"kept"},{"month":"2022-03","month_label":"March 2022","strike":"170","premium":3,"premium_pct":1.83,"move_to_expiry_pct":6.47,"outcome":"called away"},{"month":"2022-04","month_label":"April 2022","strike":"180","premium":2.65,"premium_pct":1.52,"move_to_expiry_pct":-9.4,"outcome":"kept"},{"month":"2022-05","month_label":"May 2022","strike":"165","premium":3.2,"premium_pct":2.03,"move_to_expiry_pct":-7.93,"outcome":"kept"},{"month":"2022-06","month_label":"June 2022","strike":"155","premium":3,"premium_pct":2.03,"move_to_expiry_pct":-6.13,"outcome":"kept"},{"month":"2022-07","month_label":"July 2022","strike":"145","premium":3.15,"premium_pct":2.27,"move_to_expiry_pct":16.9,"outcome":"called away"},{"month":"2022-08","month_label":"August 2022","strike":"167.5","premium":2.41,"premium_pct":1.49,"move_to_expiry_pct":-3.46,"outcome":"kept"},{"month":"2022-09","month_label":"September 2022","strike":"165","premium":2.55,"premium_pct":1.61,"move_to_expiry_pct":-12.87,"outcome":"kept"},{"month":"2022-10","month_label":"October 2022","strike":"152.5","premium":2.68,"premium_pct":1.87,"move_to_expiry_pct":-3.21,"outcome":"kept"},{"month":"2022-11","month_label":"November 2022","strike":"160","premium":2.08,"premium_pct":1.38,"move_to_expiry_pct":-1.73,"outcome":"kept"},{"month":"2022-12","month_label":"December 2022","strike":"155","premium":2.16,"premium_pct":1.46,"move_to_expiry_pct":-12.22,"outcome":"kept"},{"month":"2023-01","month_label":"January 2023","strike":"134","premium":2.6,"premium_pct":2.08,"move_to_expiry_pct":23.64,"outcome":"called away"},{"month":"2023-02","month_label":"February 2023","strike":"152.5","premium":2.19,"premium_pct":1.5,"move_to_expiry_pct":3.45,"outcome":"kept"},{"month":"2023-03","month_label":"March 2023","strike":"152.5","premium":1.9,"premium_pct":1.31,"move_to_expiry_pct":13.47,"outcome":"called away"},{"month":"2023-04","month_label":"April 2023","strike":"172.5","premium":2.7,"premium_pct":1.63,"move_to_expiry_pct":4.55,"outcome":"called away"},{"month":"2023-05","month_label":"May 2023","strike":"175","premium":2.94,"premium_pct":1.74,"move_to_expiry_pct":6.82,"outcome":"called away"},{"month":"2023-06","month_label":"June 2023","strike":"185","premium":2.45,"premium_pct":1.36,"move_to_expiry_pct":7.47,"outcome":"called away"},{"month":"2023-07","month_label":"July 2023","strike":"200","premium":2.22,"premium_pct":1.15,"move_to_expiry_pct":-5.44,"outcome":"kept"},{"month":"2023-08","month_label":"August 2023","strike":"205","premium":1.94,"premium_pct":0.99,"move_to_expiry_pct":-2.99,"outcome":"kept"},{"month":"2023-09","month_label":"September 2023","strike":"195","premium":1.79,"premium_pct":0.95,"move_to_expiry_pct":-9.56,"outcome":"kept"},{"month":"2023-10","month_label":"October 2023","strike":"180","premium":3,"premium_pct":1.73,"move_to_expiry_pct":1.63,"outcome":"kept"},{"month":"2023-11","month_label":"November 2023","strike":"180","premium":2.56,"premium_pct":1.46,"move_to_expiry_pct":9.44,"outcome":"called away"},{"month":"2023-12","month_label":"December 2023","strike":"195","premium":1.85,"premium_pct":0.97,"move_to_expiry_pct":0.67,"outcome":"kept"},{"month":"2024-01","month_label":"January 2024","strike":"195","premium":1.63,"premium_pct":0.88,"move_to_expiry_pct":0.29,"outcome":"kept"},{"month":"2024-02","month_label":"February 2024","strike":"190","premium":3.95,"premium_pct":2.18,"move_to_expiry_pct":-0.71,"outcome":"kept"},{"month":"2024-03","month_label":"March 2024","strike":"185","premium":1.94,"premium_pct":1.08,"move_to_expiry_pct":-4.22,"outcome":"kept"},{"month":"2024-04","month_label":"April 2024","strike":"180","premium":1.78,"premium_pct":1.05,"move_to_expiry_pct":8.19,"outcome":"called away"},{"month":"2024-05","month_label":"May 2024","strike":"180","premium":1.93,"premium_pct":1.13,"move_to_expiry_pct":12.86,"outcome":"called away"},{"month":"2024-06","month_label":"June 2024","strike":"200","premium":2.66,"premium_pct":1.37,"move_to_expiry_pct":16.62,"outcome":"called away"},{"month":"2024-07","month_label":"July 2024","strike":"225","premium":3.6,"premium_pct":1.66,"move_to_expiry_pct":1.48,"outcome":"kept"},{"month":"2024-08","month_label":"August 2024","strike":"230","premium":3.1,"premium_pct":1.41,"move_to_expiry_pct":4.28,"outcome":"kept"},{"month":"2024-09","month_label":"September 2024","strike":"230","premium":3.8,"premium_pct":1.72,"move_to_expiry_pct":2.69,"outcome":"kept"},{"month":"2024-10","month_label":"October 2024","strike":"235","premium":3.65,"premium_pct":1.62,"move_to_expiry_pct":-1.24,"outcome":"kept"},{"month":"2024-11","month_label":"November 2024","strike":"230","premium":3.05,"premium_pct":1.37,"move_to_expiry_pct":6.58,"outcome":"called away"},{"month":"2024-12","month_label":"December 2024","strike":"245","premium":2.87,"premium_pct":1.2,"move_to_expiry_pct":1.51,"outcome":"kept"},{"month":"2025-01","month_label":"January 2025","strike":"255","premium":2.55,"premium_pct":1.05,"move_to_expiry_pct":-2.98,"outcome":"kept"},{"month":"2025-02","month_label":"February 2025","strike":"240","premium":2.48,"premium_pct":1.08,"move_to_expiry_pct":4.35,"outcome":"kept"},{"month":"2025-03","month_label":"March 2025","strike":"250","premium":2.99,"premium_pct":1.26,"move_to_expiry_pct":-20.9,"outcome":"kept"},{"month":"2025-04","month_label":"April 2025","strike":"235","premium":3.2,"premium_pct":1.43,"move_to_expiry_pct":-8.1,"outcome":"kept"},{"month":"2025-05","month_label":"May 2025","strike":"220","premium":4.95,"premium_pct":2.41,"move_to_expiry_pct":-2.14,"outcome":"kept"},{"month":"2025-06","month_label":"June 2025","strike":"210","premium":3.4,"premium_pct":1.69,"move_to_expiry_pct":5.89,"outcome":"called away"},{"month":"2025-07","month_label":"July 2025","strike":"220","premium":2.8,"premium_pct":1.34,"move_to_expiry_pct":-3.13,"outcome":"kept"},{"month":"2025-08","month_label":"August 2025","strike":"210","premium":3.25,"premium_pct":1.61,"move_to_expiry_pct":14.78,"outcome":"called away"},{"month":"2025-09","month_label":"September 2025","strike":"245","premium":1.41,"premium_pct":0.6,"move_to_expiry_pct":9.08,"outcome":"called away"},{"month":"2025-10","month_label":"October 2025","strike":"265","premium":4.26,"premium_pct":1.67,"move_to_expiry_pct":5.91,"outcome":"called away"},{"month":"2025-11","month_label":"November 2025","strike":"280","premium":3.15,"premium_pct":1.17,"move_to_expiry_pct":3.96,"outcome":"kept"},{"month":"2025-12","month_label":"December 2025","strike":"295","premium":2.7,"premium_pct":0.95,"move_to_expiry_pct":-4.26,"outcome":"kept"},{"month":"2026-01","month_label":"January 2026","strike":"280","premium":3.5,"premium_pct":1.29,"move_to_expiry_pct":-4.24,"outcome":"kept"},{"month":"2026-02","month_label":"February 2026","strike":"280","premium":3.25,"premium_pct":1.21,"move_to_expiry_pct":-4.13,"outcome":"kept"},{"month":"2026-03","month_label":"March 2026","strike":"275","premium":4.2,"premium_pct":1.59,"move_to_expiry_pct":-3.24,"outcome":"kept"},{"month":"2026-04","month_label":"April 2026","strike":"270","premium":2.95,"premium_pct":1.16,"move_to_expiry_pct":9.87,"outcome":"called away"},{"month":"2026-05","month_label":"May 2026","strike":"290","premium":3.3,"premium_pct":1.18,"move_to_expiry_pct":11.42,"outcome":"called away"},{"month":"2026-06","month_label":"June 2026","strike":"320","premium":3.6,"premium_pct":1.18,"move_to_expiry_pct":1.11,"outcome":"kept"},{"month":"2026-07","month_label":"July 2026","strike":"310","premium":3.84,"premium_pct":1.3,"move_to_expiry_pct":4.91,"outcome":"kept"},{"month":"2026-08","month_label":"August 2026","strike":"320","premium":3.85,"premium_pct":1.27,"move_to_expiry_pct":5.41,"outcome":"kept"},{"month":"2026-09","month_label":"September 2026","strike":"340","premium":3.88,"premium_pct":1.19,"move_to_expiry_pct":2.63,"outcome":"kept"}],"shape":"series","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),\npicked AS\n(\n    SELECT\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            toStartOfMonth(date) AS write_month,\n            (abs(toInt32(days_to_expiry) - 30), abs(toFloat64(delta) - 0.30)) AS gap,\n            toFloat64(strike_price) AS strike_usd,\n            expiration_date AS expiry,\n            toFloat64(option_close) AS premium_usd,\n            toFloat64(underlying_close) AS spot_usd\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 toInt32(days_to_expiry) BETWEEN 21 AND 45\n          AND toFloat64(delta) BETWEEN 0.10 AND 0.50\n          AND expiration_date <= today() - 3\n          AND date IN (SELECT write_date FROM month_open)\n    )\n    GROUP BY write_month\n)\nSELECT\n    formatDateTime(p.write_month, '%Y-%m') AS month,\n    concat(monthName(p.write_month), ' ', toString(toYear(p.write_month))) AS month_label,\n    toString(round(p.strike_usd, 1)) AS strike,\n    round(p.premium_usd, 2) AS premium,\n    round(100 * p.premium_usd / p.spot_usd, 2) AS premium_pct,\n    round(100 * (toFloat64(s.close) / p.spot_usd - 1), 2) AS move_to_expiry_pct,\n    if(toFloat64(s.close) > p.strike_usd, 'called away', 'kept') AS outcome\nFROM picked 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\nORDER BY p.write_month","computed_at":"2026-10-05T15:27:27.826293+00:00","elapsed":6.204737656}