{"slug":"unusual-options-activity","qid":"oa_skew","label":"Calls or puts: the board's call and put contract volume on the same session","post_title":"Unusual Options Activity: Last Session","post_url":"/blog/unusual-options-activity#q-oa_skew","columns":["ticker","call_volume_k","put_volume_k","call_share_pct","session_id"],"rows":[{"ticker":"UTHR","call_volume_k":37.6,"put_volume_k":0.1,"call_share_pct":100,"session_id":20260819},{"ticker":"MSOS","call_volume_k":84.8,"put_volume_k":1.6,"call_share_pct":98,"session_id":20260819},{"ticker":"MDT","call_volume_k":62.9,"put_volume_k":2.1,"call_share_pct":97,"session_id":20260819},{"ticker":"RXRX","call_volume_k":57.6,"put_volume_k":1.6,"call_share_pct":97,"session_id":20260819},{"ticker":"PURR","call_volume_k":123.3,"put_volume_k":7.8,"call_share_pct":94,"session_id":20260819},{"ticker":"NVAX","call_volume_k":39.4,"put_volume_k":3.4,"call_share_pct":92,"session_id":20260819},{"ticker":"TEM","call_volume_k":119,"put_volume_k":15.1,"call_share_pct":89,"session_id":20260819},{"ticker":"ETHA","call_volume_k":553.5,"put_volume_k":184.1,"call_share_pct":75,"session_id":20260819},{"ticker":"MRK","call_volume_k":118.8,"put_volume_k":41.2,"call_share_pct":74,"session_id":20260819},{"ticker":"MRNA","call_volume_k":184.2,"put_volume_k":407.4,"call_share_pct":31,"session_id":20260819}],"shape":"table","sql":"WITH tape AS (\n    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,\n           sum(toFloat64(volume)) AS vol\n    FROM global_markets.options_minute_aggs\n    WHERE window_start >= toDateTime(today() - 45, 'America/New_York')\n    GROUP BY d\n),\nranked AS (\n    SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS raw_rn\n    FROM tape\n),\ncal AS (\n    SELECT d, vol, rn, sum(if(rn BETWEEN 2 AND 21, 1, 0)) OVER () AS baseline_sessions\n    FROM (\n        SELECT d, vol, row_number() OVER (ORDER BY d DESC) AS rn\n        FROM ranked\n        WHERE vol >= 0.75 * (SELECT quantileExact(0.5)(vol) FROM ranked WHERE raw_rn > 1)\n    )\n),\nday_root AS (\n    SELECT substring(ticker, 3, length(ticker) - 17) AS root,\n           toDate(toTimeZone(window_start, 'America/New_York')) AS d,\n           sum(toFloat64(volume)) AS vol,\n           sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'C') AS calls,\n           sumIf(toFloat64(volume), substring(ticker, length(ticker) - 8, 1) = 'P') AS puts\n    FROM global_markets.options_minute_aggs\n    WHERE window_start >= toDateTime(today() - 45, 'America/New_York')\n    GROUP BY root, d\n),\nscored AS (\n    SELECT r.root AS root,\n           round(sumIf(r.vol, c.rn = 1) / avgIf(r.vol, c.rn BETWEEN 2 AND 21), 1) AS vol_ratio,\n           sumIf(r.calls, c.rn = 1) AS calls,\n           sumIf(r.puts, c.rn = 1) AS puts,\n           maxIf(toYYYYMMDD(c.d), c.rn = 1) AS session_id\n    FROM day_root r INNER JOIN cal c ON r.d = c.d\n    WHERE c.rn <= 21\n      AND r.root NOT IN ('SPCX')\n      AND r.root NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')\n    GROUP BY r.root\n    HAVING sumIf(r.vol, c.rn = 1) >= 25000\n       AND avgIf(r.vol, c.rn BETWEEN 2 AND 21) >= 5000\n       AND countIf(c.rn BETWEEN 2 AND 21) >= 18\n),\nboard AS (\n    SELECT root, vol_ratio, calls, puts, session_id\n    FROM scored\n    ORDER BY vol_ratio DESC, root ASC\n    LIMIT 10\n)\nSELECT root AS ticker,\n       round(calls / 1000, 1) AS call_volume_k,\n       round(puts / 1000, 1) AS put_volume_k,\n       round(100.0 * calls / (calls + puts), 0) AS call_share_pct,\n       session_id\nFROM board\nWHERE calls + puts > 0\nORDER BY call_share_pct DESC, ticker ASC","computed_at":"2026-08-25T13:13:29.096581+00:00","elapsed":71.979154957}