{"slug":"when-is-the-cot-report-released","qid":"release_clock","label":"Where Friday volume sits on the clock: SPY, 15-minute buckets, full Friday sessions over the past year","post_title":"When Is the COT Report Released?","post_url":"/blog/when-is-the-cot-report-released#q-release_clock","columns":["et_time","share_of_session_pct","avg_volume_millions"],"rows":[{"et_time":"09:30","share_of_session_pct":6.98,"avg_volume_millions":4.79},{"et_time":"09:45","share_of_session_pct":5.05,"avg_volume_millions":3.46},{"et_time":"10:00","share_of_session_pct":5.21,"avg_volume_millions":3.57},{"et_time":"10:15","share_of_session_pct":4.26,"avg_volume_millions":2.92},{"et_time":"10:30","share_of_session_pct":3.78,"avg_volume_millions":2.59},{"et_time":"10:45","share_of_session_pct":4.28,"avg_volume_millions":2.94},{"et_time":"11:00","share_of_session_pct":4.2,"avg_volume_millions":2.88},{"et_time":"11:15","share_of_session_pct":3.65,"avg_volume_millions":2.5},{"et_time":"11:30","share_of_session_pct":3.2,"avg_volume_millions":2.2},{"et_time":"11:45","share_of_session_pct":3.31,"avg_volume_millions":2.27},{"et_time":"12:00","share_of_session_pct":2.72,"avg_volume_millions":1.87},{"et_time":"12:15","share_of_session_pct":2.75,"avg_volume_millions":1.89},{"et_time":"12:30","share_of_session_pct":2.26,"avg_volume_millions":1.55},{"et_time":"12:45","share_of_session_pct":2.35,"avg_volume_millions":1.61},{"et_time":"13:00","share_of_session_pct":2.6,"avg_volume_millions":1.78},{"et_time":"13:15","share_of_session_pct":2.32,"avg_volume_millions":1.59},{"et_time":"13:30","share_of_session_pct":2.5,"avg_volume_millions":1.72},{"et_time":"13:45","share_of_session_pct":2.39,"avg_volume_millions":1.64},{"et_time":"14:00","share_of_session_pct":2.74,"avg_volume_millions":1.88},{"et_time":"14:15","share_of_session_pct":2.66,"avg_volume_millions":1.82},{"et_time":"14:30","share_of_session_pct":2.62,"avg_volume_millions":1.8},{"et_time":"14:45","share_of_session_pct":3,"avg_volume_millions":2.06},{"et_time":"15:00","share_of_session_pct":3.29,"avg_volume_millions":2.26},{"et_time":"15:15","share_of_session_pct":3.79,"avg_volume_millions":2.6},{"et_time":"15:30","share_of_session_pct":4.92,"avg_volume_millions":3.38},{"et_time":"15:45","share_of_session_pct":13.17,"avg_volume_millions":9.03}],"shape":"series","sql":"WITH raw AS (\n    SELECT toTimeZone(window_start, 'America/New_York') AS et,\n           volume\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= toDateTime('2025-08-01 00:00:00')\n      AND window_start < toDateTime('2026-08-01 00:00:00')\n),\nbars AS (\n    SELECT toDate(et) AS session_date,\n           toHour(et) * 60 + toMinute(et) AS minute_of_day,\n           intDiv((toHour(et) * 60 + toMinute(et)) - 570, 15) AS bucket,\n           volume AS shares\n    FROM raw\n    WHERE toDayOfWeek(et) = 5\n      AND (toHour(et) * 60 + toMinute(et)) BETWEEN 570 AND 959\n),\nfull_sessions AS (\n    SELECT session_date\n    FROM bars\n    GROUP BY session_date\n    HAVING sumIf(shares, minute_of_day >= 930) >= 0.05 * sum(shares)\n)\nSELECT formatDateTime(toDateTime(toDate('2026-01-02')) + (570 + b.bucket * 15) * 60, '%H:%i') AS et_time,\n       round(100 * sum(b.shares) / sum(sum(b.shares)) OVER (), 2) AS share_of_session_pct,\n       round(sum(b.shares) / uniqExact(b.session_date) / 1000000, 2) AS avg_volume_millions\nFROM bars AS b\nINNER JOIN full_sessions AS s ON b.session_date = s.session_date\nGROUP BY b.bucket\nORDER BY b.bucket","computed_at":"2026-08-04T14:59:58.835429+00:00","elapsed":0.003839701}