{"slug":"equity-vs-index-put-call-ratio","qid":"mix_sweep","label":"The total is a call-volume-weighted blend of the two buckets","post_title":"Equity vs Index Put/Call Ratio: What's High?","post_url":"/blog/equity-vs-index-put-call-ratio#q-mix_sweep","columns":["index_share_of_call_volume","equity_ratio","index_ratio","blended_total_ratio"],"rows":[{"index_share_of_call_volume":"0%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":0.556},{"index_share_of_call_volume":"10%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":0.64},{"index_share_of_call_volume":"20%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":0.724},{"index_share_of_call_volume":"30%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":0.808},{"index_share_of_call_volume":"40%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":0.892},{"index_share_of_call_volume":"50%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":0.976},{"index_share_of_call_volume":"60%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":1.06},{"index_share_of_call_volume":"70%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":1.144},{"index_share_of_call_volume":"80%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":1.228},{"index_share_of_call_volume":"90%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":1.312},{"index_share_of_call_volume":"100%","equity_ratio":0.556,"index_ratio":1.396,"blended_total_ratio":1.396}],"shape":"ranking","sql":"WITH components AS\n(\n    SELECT\n        round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA'))\n              / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')), 3) AS equity_ratio,\n        round(sumIf(volume, startsWith(lower(option_type), 'p') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA'))\n              / sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA')), 3) AS index_ratio\n    FROM global_markets.options_greeks\n    WHERE date >= (SELECT toDate(max(date))\n                   FROM global_markets.options_greeks\n                   WHERE volume > 0) - 60\n      AND volume > 0\n      AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA', 'JPM', 'KO', 'JNJ',\n                                'SPY', 'QQQ', 'IWM', 'DIA')\n    HAVING sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0\n       AND sumIf(volume, startsWith(lower(option_type), 'c') AND underlying_symbol NOT IN ('SPY', 'QQQ', 'IWM', 'DIA')) > 0\n)\nSELECT\n    concat(toString(step * 10), '%')                                    AS index_share_of_call_volume,\n    equity_ratio,\n    index_ratio,\n    round(equity_ratio + (index_ratio - equity_ratio) * (step / 10), 3) AS blended_total_ratio\nFROM\n(\n    SELECT\n        equity_ratio,\n        index_ratio,\n        arrayJoin(range(11)) AS step\n    FROM components\n)\nORDER BY step","computed_at":"2026-08-22T04:05:08.595022+00:00","elapsed":10.361426228}