{"slug":"covered-call-vs-cash-secured-put","qid":"pl_paths","label":"Covered call vs cash-secured put: profit and loss per share, same strike, same expiry","post_title":"Covered Call vs Cash-Secured Put","post_url":"/blog/covered-call-vs-cash-secured-put#q-pl_paths","columns":["date","covered_call_pl","cash_secured_put_pl"],"rows":[{"date":"2026-05-01","covered_call_pl":0,"cash_secured_put_pl":0},{"date":"2026-05-04","covered_call_pl":-0.62,"cash_secured_put_pl":-1.16},{"date":"2026-05-05","covered_call_pl":4.49,"cash_secured_put_pl":1.74},{"date":"2026-05-06","covered_call_pl":4.14,"cash_secured_put_pl":4.83},{"date":"2026-05-07","covered_call_pl":4.51,"cash_secured_put_pl":4.57},{"date":"2026-05-08","covered_call_pl":7.06,"cash_secured_put_pl":6.06},{"date":"2026-05-11","covered_call_pl":7.62,"cash_secured_put_pl":6.16},{"date":"2026-05-12","covered_call_pl":6.1,"cash_secured_put_pl":6.15},{"date":"2026-05-13","covered_call_pl":9.39,"cash_secured_put_pl":7.6},{"date":"2026-05-14","covered_call_pl":10.26,"cash_secured_put_pl":9.07},{"date":"2026-05-15","covered_call_pl":7.32,"cash_secured_put_pl":6.44},{"date":"2026-05-18","covered_call_pl":9.45,"cash_secured_put_pl":7.4},{"date":"2026-05-19","covered_call_pl":8.15,"cash_secured_put_pl":6.08},{"date":"2026-05-20","covered_call_pl":7.25,"cash_secured_put_pl":8.42},{"date":"2026-05-21","covered_call_pl":12.01,"cash_secured_put_pl":9.46},{"date":"2026-05-22","covered_call_pl":9.97,"cash_secured_put_pl":10.17},{"date":"2026-05-26","covered_call_pl":13.49,"cash_secured_put_pl":11.3},{"date":"2026-05-27","covered_call_pl":12.61,"cash_secured_put_pl":11.83},{"date":"2026-05-28","covered_call_pl":14.65,"cash_secured_put_pl":12.64},{"date":"2026-05-29","covered_call_pl":13.82,"cash_secured_put_pl":12.8},{"date":"2026-06-01","covered_call_pl":13.15,"cash_secured_put_pl":13.05},{"date":"2026-06-02","covered_call_pl":15.47,"cash_secured_put_pl":13.35},{"date":"2026-06-03","covered_call_pl":11,"cash_secured_put_pl":13.04},{"date":"2026-06-04","covered_call_pl":12.15,"cash_secured_put_pl":13.49},{"date":"2026-06-05","covered_call_pl":12.13,"cash_secured_put_pl":8.39},{"date":"2026-06-08","covered_call_pl":13.39,"cash_secured_put_pl":11.21},{"date":"2026-06-09","covered_call_pl":12.42,"cash_secured_put_pl":10.21},{"date":"2026-06-10","covered_call_pl":7.59,"cash_secured_put_pl":6.45},{"date":"2026-06-11","covered_call_pl":16.04,"cash_secured_put_pl":11.73}],"shape":"series","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 g.date AS date,\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\nFROM global_markets.options_greeks g, entry\nWHERE g.ticker IN ('O:SPY260618C00720000', 'O:SPY260618P00720000')\n  AND g.date BETWEEN '2026-05-01' AND '2026-06-15'\n  AND g.implied_volatility > 0.02\nGROUP BY g.date\nHAVING countIf(g.ticker = 'O:SPY260618C00720000') > 0\n   AND countIf(g.ticker = 'O:SPY260618P00720000') > 0\nORDER BY g.date","computed_at":"2026-07-31T03:07:57.064257+00:00","elapsed":0.00333101}