{"slug":"credit-spread-vs-debit-spread","qid":"parity_chain","label":"Put-call parity on one AAPL chain: call minus put against stock minus strike","post_title":"Credit Spread vs Debit Spread: Same Trade?","post_url":"/blog/credit-spread-vs-debit-spread#q-parity_chain","columns":["strike","call_price","put_price","call_minus_put","stock_minus_strike","parity_gap","snapshot","expiry"],"rows":[{"strike":"$280","call_price":16,"put_price":3.74,"call_minus_put":12.26,"stock_minus_strike":11.52,"parity_gap":0.74,"snapshot":"Jun 12, 2026","expiry":"Jul 17, 2026"},{"strike":"$285","call_price":12.51,"put_price":5.16,"call_minus_put":7.35,"stock_minus_strike":6.52,"parity_gap":0.83,"snapshot":"Jun 12, 2026","expiry":"Jul 17, 2026"},{"strike":"$290","call_price":9.3,"put_price":7.05,"call_minus_put":2.25,"stock_minus_strike":1.52,"parity_gap":0.73,"snapshot":"Jun 12, 2026","expiry":"Jul 17, 2026"},{"strike":"$295","call_price":6.7,"put_price":9.96,"call_minus_put":-3.26,"stock_minus_strike":-3.48,"parity_gap":0.22,"snapshot":"Jun 12, 2026","expiry":"Jul 17, 2026"},{"strike":"$300","call_price":4.7,"put_price":12.5,"call_minus_put":-7.8,"stock_minus_strike":-8.48,"parity_gap":0.68,"snapshot":"Jun 12, 2026","expiry":"Jul 17, 2026"}],"shape":"table","sql":"SELECT\n    concat('$', toString(toFloat64(strike_price)))                                AS strike,\n    round(avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c')), 2)  AS call_price,\n    round(avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p')), 2)   AS put_price,\n    round(avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c'))\n        - avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p')), 2)   AS call_minus_put,\n    round(any(toFloat64(underlying_close)) - toFloat64(strike_price), 2)           AS stock_minus_strike,\n    round(avgIf(toFloat64(option_close), lower(option_type) IN ('call', 'c'))\n        - avgIf(toFloat64(option_close), lower(option_type) IN ('put', 'p'))\n        - any(toFloat64(underlying_close)) + toFloat64(strike_price), 2)           AS parity_gap,\n    formatDateTime(any(date), '%b %e, %Y')                                         AS snapshot,\n    formatDateTime(any(expiration_date), '%b %e, %Y')                              AS expiry\nFROM global_markets.options_greeks\nWHERE underlying_symbol = 'AAPL'\n  AND date = '2026-06-12'\n  AND expiration_date = '2026-07-17'\n  AND volume >= 50\n  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.04\nGROUP BY strike_price\nHAVING countIf(lower(option_type) IN ('call', 'c')) > 0\n   AND countIf(lower(option_type) IN ('put', 'p')) > 0\nORDER BY strike_price","computed_at":"2026-08-07T16:16:38.373708+00:00","elapsed":0.004305983}