Covered Calls on AAPL: A Worked Example
The same 0.30 delta AAPL write, repeated on the first session of every monthseries ·
2026-10-05 · 61×7
Implied volatility and premium on 0.25 to 0.35 delta calls, AAPL against comparison namesranking ·
2026-10-05 · 6×3
AAPL dividend versus the time value left in the nearest in-the-money call, the day before each ex datetable ·
2026-10-05 · 20×7
Outcomes of the repeated monthly AAPL write, by delta targettable ·
2026-10-05 · 6×6
One AAPL call per delta target, about 30 days out, with the covered call math appliedtable ·
2026-10-05 · 6×10
The same 0.30 delta AAPL write, repeated on the first session of every month
The same 0.30 delta AAPL write, repeated on the first session of every month
| month | month_label | strike | premium | premium_pct | move_to_expiry_pct | outcome |
|---|---|---|---|---|---|---|
| 2021-09 | September 2021 | 160 | 1.4 | 0.91 | -6.86 | kept |
| 2021-10 | October 2021 | 149 | 1.79 | 1.26 | 5.06 | called away |
| 2021-11 | November 2021 | 155 | 1.37 | 0.92 | 9.03 | called away |
| 2021-12 | December 2021 | 175 | 2.15 | 1.3 | 7.12 | called away |
| 2022-01 | January 2022 | 190 | 2.99 | 1.64 | -5.23 | kept |
| 2022-02 | February 2022 | 180 | 2.72 | 1.56 | -6.39 | kept |
| 2022-03 | March 2022 | 170 | 3 | 1.83 | 6.47 | called away |
| 2022-04 | April 2022 | 180 | 2.65 | 1.52 | -9.4 | kept |
| 2022-05 | May 2022 | 165 | 3.2 | 2.03 | -7.93 | kept |
| 2022-06 | June 2022 | 155 | 3 | 2.03 | -6.13 | kept |
| 2022-07 | July 2022 | 145 | 3.15 | 2.27 | 16.9 | called away |
| 2022-08 | August 2022 | 167.5 | 2.41 | 1.49 | -3.46 | kept |
| 2022-09 | September 2022 | 165 | 2.55 | 1.61 | -12.87 | kept |
| 2022-10 | October 2022 | 152.5 | 2.68 | 1.87 | -3.21 | kept |
| 2022-11 | November 2022 | 160 | 2.08 | 1.38 | -1.73 | kept |
| 2022-12 | December 2022 | 155 | 2.16 | 1.46 | -12.22 | kept |
| 2023-01 | January 2023 | 134 | 2.6 | 2.08 | 23.64 | called away |
| 2023-02 | February 2023 | 152.5 | 2.19 | 1.5 | 3.45 | kept |
| 2023-03 | March 2023 | 152.5 | 1.9 | 1.31 | 13.47 | called away |
| 2023-04 | April 2023 | 172.5 | 2.7 | 1.63 | 4.55 | called away |
| 2023-05 | May 2023 | 175 | 2.94 | 1.74 | 6.82 | called away |
| 2023-06 | June 2023 | 185 | 2.45 | 1.36 | 7.47 | called away |
| 2023-07 | July 2023 | 200 | 2.22 | 1.15 | -5.44 | kept |
| 2023-08 | August 2023 | 205 | 1.94 | 0.99 | -2.99 | kept |
| 2023-09 | September 2023 | 195 | 1.79 | 0.95 | -9.56 | kept |
| 2023-10 | October 2023 | 180 | 3 | 1.73 | 1.63 | kept |
| 2023-11 | November 2023 | 180 | 2.56 | 1.46 | 9.44 | called away |
| 2023-12 | December 2023 | 195 | 1.85 | 0.97 | 0.67 | kept |
| 2024-01 | January 2024 | 195 | 1.63 | 0.88 | 0.29 | kept |
| 2024-02 | February 2024 | 190 | 3.95 | 2.18 | -0.71 | kept |
| 2024-03 | March 2024 | 185 | 1.94 | 1.08 | -4.22 | kept |
| 2024-04 | April 2024 | 180 | 1.78 | 1.05 | 8.19 | called away |
| 2024-05 | May 2024 | 180 | 1.93 | 1.13 | 12.86 | called away |
| 2024-06 | June 2024 | 200 | 2.66 | 1.37 | 16.62 | called away |
| 2024-07 | July 2024 | 225 | 3.6 | 1.66 | 1.48 | kept |
| 2024-08 | August 2024 | 230 | 3.1 | 1.41 | 4.28 | kept |
| 2024-09 | September 2024 | 230 | 3.8 | 1.72 | 2.69 | kept |
| 2024-10 | October 2024 | 235 | 3.65 | 1.62 | -1.24 | kept |
| 2024-11 | November 2024 | 230 | 3.05 | 1.37 | 6.58 | called away |
| 2024-12 | December 2024 | 245 | 2.87 | 1.2 | 1.51 | kept |
| 2025-01 | January 2025 | 255 | 2.55 | 1.05 | -2.98 | kept |
| 2025-02 | February 2025 | 240 | 2.48 | 1.08 | 4.35 | kept |
| 2025-03 | March 2025 | 250 | 2.99 | 1.26 | -20.9 | kept |
| 2025-04 | April 2025 | 235 | 3.2 | 1.43 | -8.1 | kept |
| 2025-05 | May 2025 | 220 | 4.95 | 2.41 | -2.14 | kept |
| 2025-06 | June 2025 | 210 | 3.4 | 1.69 | 5.89 | called away |
| 2025-07 | July 2025 | 220 | 2.8 | 1.34 | -3.13 | kept |
| 2025-08 | August 2025 | 210 | 3.25 | 1.61 | 14.78 | called away |
| 2025-09 | September 2025 | 245 | 1.41 | 0.6 | 9.08 | called away |
| 2025-10 | October 2025 | 265 | 4.26 | 1.67 | 5.91 | called away |
| 2025-11 | November 2025 | 280 | 3.15 | 1.17 | 3.96 | kept |
| 2025-12 | December 2025 | 295 | 2.7 | 0.95 | -4.26 | kept |
| 2026-01 | January 2026 | 280 | 3.5 | 1.29 | -4.24 | kept |
| 2026-02 | February 2026 | 280 | 3.25 | 1.21 | -4.13 | kept |
| 2026-03 | March 2026 | 275 | 4.2 | 1.59 | -3.24 | kept |
| 2026-04 | April 2026 | 270 | 2.95 | 1.16 | 9.87 | called away |
| 2026-05 | May 2026 | 290 | 3.3 | 1.18 | 11.42 | called away |
| 2026-06 | June 2026 | 320 | 3.6 | 1.18 | 1.11 | kept |
| 2026-07 | July 2026 | 310 | 3.84 | 1.3 | 4.91 | kept |
| 2026-08 | August 2026 | 320 | 3.85 | 1.27 | 5.41 | kept |
| 2026-09 | September 2026 | 340 | 3.88 | 1.19 | 2.63 | kept |
the exact SQL behind every number
WITH month_open AS
(
SELECT min(date) AS write_date
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND lower(toString(option_type)) IN ('call', 'c')
AND toFloat64(option_close) > 0
AND date >= '2021-09-01'
GROUP BY toStartOfMonth(date)
),
picked AS
(
SELECT
write_month,
argMin(strike_usd, gap) AS strike_usd,
argMin(expiry, gap) AS expiry,
argMin(premium_usd, gap) AS premium_usd,
argMin(spot_usd, gap) AS spot_usd
FROM
(
SELECT
toStartOfMonth(date) AS write_month,
(abs(toInt32(days_to_expiry) - 30), abs(toFloat64(delta) - 0.30)) AS gap,
toFloat64(strike_price) AS strike_usd,
expiration_date AS expiry,
toFloat64(option_close) AS premium_usd,
toFloat64(underlying_close) AS spot_usd
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND lower(toString(option_type)) IN ('call', 'c')
AND toFloat64(option_close) > 0
AND toInt32(days_to_expiry) BETWEEN 21 AND 45
AND toFloat64(delta) BETWEEN 0.10 AND 0.50
AND expiration_date <= today() - 3
AND date IN (SELECT write_date FROM month_open)
)
GROUP BY write_month
)
SELECT
formatDateTime(p.write_month, '%Y-%m') AS month,
concat(monthName(p.write_month), ' ', toString(toYear(p.write_month))) AS month_label,
toString(round(p.strike_usd, 1)) AS strike,
round(p.premium_usd, 2) AS premium,
round(100 * p.premium_usd / p.spot_usd, 2) AS premium_pct,
round(100 * (toFloat64(s.close) / p.spot_usd - 1), 2) AS move_to_expiry_pct,
if(toFloat64(s.close) > p.strike_usd, 'called away', 'kept') AS outcome
FROM picked AS p
INNER JOIN
(
SELECT date, close
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'AAPL'
AND date >= '2021-09-01'
) AS s ON s.date = p.expiry
ORDER BY p.write_month
More from this analysisCovered Calls on AAPL: A Worked Example
AAPL dividend versus the time value left in the nearest in-the-money call, the day before each ex date
table 20×7
→
Implied volatility and premium on 0.25 to 0.35 delta calls, AAPL against comparison names
ranking 6×3
→
Outcomes of the repeated monthly AAPL write, by delta target
table 6×6
→
One AAPL call per delta target, about 30 days out, with the covered call math applied
table 6×10
→
See all 3,094 queries →