{"slug":"how-the-put-call-ratio-is-calculated","qid":"pcr_daily","label":"Daily put/call volume ratio, SPY against AAPL, July 2026","post_title":"How the Put/Call Ratio Is Calculated","post_url":"/blog/how-the-put-call-ratio-is-calculated#q-pcr_daily","columns":["session_date","day_label","spy_put_call_ratio","aapl_put_call_ratio"],"rows":[{"session_date":"2026-07-01","day_label":"Jul 1","spy_put_call_ratio":1.1,"aapl_put_call_ratio":0.49},{"session_date":"2026-07-02","day_label":"Jul 2","spy_put_call_ratio":1.15,"aapl_put_call_ratio":0.54},{"session_date":"2026-07-06","day_label":"Jul 6","spy_put_call_ratio":1.13,"aapl_put_call_ratio":0.6},{"session_date":"2026-07-07","day_label":"Jul 7","spy_put_call_ratio":1.15,"aapl_put_call_ratio":0.91},{"session_date":"2026-07-08","day_label":"Jul 8","spy_put_call_ratio":1.48,"aapl_put_call_ratio":0.9},{"session_date":"2026-07-09","day_label":"Jul 9","spy_put_call_ratio":1.16,"aapl_put_call_ratio":0.62},{"session_date":"2026-07-10","day_label":"Jul 10","spy_put_call_ratio":1.24,"aapl_put_call_ratio":0.53},{"session_date":"2026-07-13","day_label":"Jul 13","spy_put_call_ratio":1.56,"aapl_put_call_ratio":0.47},{"session_date":"2026-07-14","day_label":"Jul 14","spy_put_call_ratio":1.15,"aapl_put_call_ratio":0.66},{"session_date":"2026-07-15","day_label":"Jul 15","spy_put_call_ratio":1.36,"aapl_put_call_ratio":0.47},{"session_date":"2026-07-16","day_label":"Jul 16","spy_put_call_ratio":1.24,"aapl_put_call_ratio":0.7},{"session_date":"2026-07-17","day_label":"Jul 17","spy_put_call_ratio":1.53,"aapl_put_call_ratio":0.96},{"session_date":"2026-07-20","day_label":"Jul 20","spy_put_call_ratio":1.3,"aapl_put_call_ratio":0.7},{"session_date":"2026-07-21","day_label":"Jul 21","spy_put_call_ratio":1.45,"aapl_put_call_ratio":0.65},{"session_date":"2026-07-22","day_label":"Jul 22","spy_put_call_ratio":1.45,"aapl_put_call_ratio":0.48},{"session_date":"2026-07-23","day_label":"Jul 23","spy_put_call_ratio":1.47,"aapl_put_call_ratio":0.81},{"session_date":"2026-07-24","day_label":"Jul 24","spy_put_call_ratio":1.35,"aapl_put_call_ratio":0.77},{"session_date":"2026-07-27","day_label":"Jul 27","spy_put_call_ratio":1.49,"aapl_put_call_ratio":0.9},{"session_date":"2026-07-28","day_label":"Jul 28","spy_put_call_ratio":1.31,"aapl_put_call_ratio":0.8},{"session_date":"2026-07-29","day_label":"Jul 29","spy_put_call_ratio":1.51,"aapl_put_call_ratio":1.15},{"session_date":"2026-07-30","day_label":"Jul 30","spy_put_call_ratio":1.44,"aapl_put_call_ratio":0.9},{"session_date":"2026-07-31","day_label":"Jul 31","spy_put_call_ratio":2,"aapl_put_call_ratio":0.55}],"shape":"series","sql":"SELECT\n    toString(d)                                                 AS session_date,\n    concat(formatDateTime(d, '%b '), toString(toDayOfMonth(d))) AS day_label,\n    round(toFloat64(sumIf(volume, sym = 'SPY' AND right_letter = 'P'))\n        / toFloat64(sumIf(volume, sym = 'SPY' AND right_letter = 'C')), 2)  AS spy_put_call_ratio,\n    round(toFloat64(sumIf(volume, sym = 'AAPL' AND right_letter = 'P'))\n        / toFloat64(sumIf(volume, sym = 'AAPL' AND right_letter = 'C')), 2) AS aapl_put_call_ratio\nFROM\n(\n    SELECT\n        date                                     AS d,\n        underlying_symbol                        AS sym,\n        volume,\n        substring(ticker, length(ticker) - 8, 1) AS right_letter\n    FROM global_markets.options_greeks\n    WHERE date >= '2026-07-01'\n      AND date <  '2026-08-01'\n      AND underlying_symbol IN ('SPY', 'AAPL')\n      AND volume > 0\n)\nGROUP BY d\nHAVING countIf(sym = 'SPY' AND right_letter = 'C') > 0\n   AND countIf(sym = 'AAPL' AND right_letter = 'C') > 0\nORDER BY d","computed_at":"2026-08-06T14:38:58.509223+00:00","elapsed":0.003386906}