{"slug":"buying-and-selling-call-options","qid":"roundtrip","label":"The same call at four exits: price, multiple of premium, and P&L per contract","post_title":"Buying and Selling Call Options","post_url":"/blog/buying-and-selling-call-options#q-roundtrip","columns":["stage","spy_price","call_price","x_entry","pnl_per_contract"],"rows":[{"stage":"Entry (May 1)","spy_price":720,"call_price":7.22,"x_entry":1,"pnl_per_contract":0},{"stage":"Peak (Jun 2)","spy_price":759.63,"call_price":23.5,"x_entry":3.25,"pnl_per_contract":1628},{"stage":"Trough (Jun 10)","spy_price":722.88,"call_price":3.17,"x_entry":0.44,"pnl_per_contract":-405},{"stage":"Rally (Jun 15)","spy_price":753.91,"call_price":15.41,"x_entry":2.13,"pnl_per_contract":819}],"shape":"table","sql":"WITH entry AS (\n  SELECT option_close AS premium\n  FROM global_markets.options_greeks\n  WHERE ticker = 'O:SPY260618C00740000' AND date = '2026-05-01' AND implied_volatility > 0.02\n)\nSELECT multiIf(g.date = '2026-05-01', 'Entry (May 1)',\n               g.date = '2026-06-02', 'Peak (Jun 2)',\n               g.date = '2026-06-10', 'Trough (Jun 10)', 'Rally (Jun 15)') AS stage,\n       round(g.underlying_close, 2) AS spy_price,\n       round(g.option_close, 2) AS call_price,\n       round(g.option_close / e.premium, 2) AS x_entry,\n       round((g.option_close - e.premium) * 100, 0) AS pnl_per_contract\nFROM global_markets.options_greeks g, entry e\nWHERE g.ticker = 'O:SPY260618C00740000'\n  AND g.date IN ('2026-05-01', '2026-06-02', '2026-06-10', '2026-06-15')\n  AND g.implied_volatility > 0.02\nORDER BY g.date","computed_at":"2026-07-16T09:34:01.748050+00:00","elapsed":0.002554304}