{"slug":"covered-call-vs-cash-secured-put","qid":"stages","label":"Both positions at four moments: entry, three weeks in, the SPY high, and the June dip","post_title":"Covered Call vs Cash-Secured Put","post_url":"/blog/covered-call-vs-cash-secured-put#q-stages","columns":["stage","spy_price","covered_call_pl","cash_secured_put_pl","gap_abs"],"rows":[{"stage":"1. Both trades opened (May 1)","spy_price":720,"covered_call_pl":0,"cash_secured_put_pl":0,"gap_abs":0},{"stage":"2. Three weeks in (May 15)","spy_price":737.34,"covered_call_pl":7.32,"cash_secured_put_pl":6.44,"gap_abs":0.88},{"stage":"3. SPY high (Jun 2)","spy_price":759.63,"covered_call_pl":15.47,"cash_secured_put_pl":13.35,"gap_abs":2.12},{"stage":"4. SPY dip (Jun 10)","spy_price":722.88,"covered_call_pl":7.59,"cash_secured_put_pl":6.45,"gap_abs":1.14}],"shape":"table","sql":"WITH entry AS (\n    SELECT avgIf(option_close, ticker = 'O:SPY260618C00720000') AS call0,\n           avgIf(option_close, ticker = 'O:SPY260618P00720000') AS put0,\n           avg(underlying_close) AS spy0\n    FROM global_markets.options_greeks\n    WHERE ticker IN ('O:SPY260618C00720000', 'O:SPY260618P00720000')\n      AND date = '2026-05-01'\n      AND implied_volatility > 0.02\n)\nSELECT multiIf(g.date = '2026-05-01', '1. Both trades opened (May 1)',\n               g.date = '2026-05-15', '2. Three weeks in (May 15)',\n               g.date = '2026-06-02', '3. SPY high (Jun 2)',\n               '4. SPY dip (Jun 10)') AS stage,\n       round(avg(g.underlying_close), 2) AS spy_price,\n       round(avg(g.underlying_close) - any(entry.spy0) + any(entry.call0)\n             - avgIf(g.option_close, g.ticker = 'O:SPY260618C00720000'), 2) AS covered_call_pl,\n       round(any(entry.put0)\n             - avgIf(g.option_close, g.ticker = 'O:SPY260618P00720000'), 2) AS cash_secured_put_pl,\n       round(abs((avg(g.underlying_close) - any(entry.spy0) + any(entry.call0)\n                  - avgIf(g.option_close, g.ticker = 'O:SPY260618C00720000'))\n                 - (any(entry.put0)\n                    - avgIf(g.option_close, g.ticker = 'O:SPY260618P00720000'))), 2) AS gap_abs\nFROM global_markets.options_greeks g, entry\nWHERE g.ticker IN ('O:SPY260618C00720000', 'O:SPY260618P00720000')\n  AND g.date IN ('2026-05-01', '2026-05-15', '2026-06-02', '2026-06-10')\n  AND g.implied_volatility > 0.02\nGROUP BY g.date\nORDER BY g.date","computed_at":"2026-07-31T03:07:57.244702+00:00","elapsed":0.003613611}