{"slug":"es-futures-trading-hours","qid":"closing_minutes","label":"closing_minutes","post_title":"es-futures-trading-hours","post_url":"/blog/es-futures-trading-hours#q-closing_minutes","columns":["et_time","avg_volume_millions"],"rows":[{"et_time":"15:30","avg_volume_millions":0.16},{"et_time":"15:31","avg_volume_millions":0.12},{"et_time":"15:32","avg_volume_millions":0.13},{"et_time":"15:33","avg_volume_millions":0.13},{"et_time":"15:34","avg_volume_millions":0.13},{"et_time":"15:35","avg_volume_millions":0.18},{"et_time":"15:36","avg_volume_millions":0.15},{"et_time":"15:37","avg_volume_millions":0.12},{"et_time":"15:38","avg_volume_millions":0.12},{"et_time":"15:39","avg_volume_millions":0.14},{"et_time":"15:40","avg_volume_millions":0.17},{"et_time":"15:41","avg_volume_millions":0.14},{"et_time":"15:42","avg_volume_millions":0.14},{"et_time":"15:43","avg_volume_millions":0.14},{"et_time":"15:44","avg_volume_millions":0.16},{"et_time":"15:45","avg_volume_millions":0.22},{"et_time":"15:46","avg_volume_millions":0.21},{"et_time":"15:47","avg_volume_millions":0.2},{"et_time":"15:48","avg_volume_millions":0.2},{"et_time":"15:49","avg_volume_millions":0.22},{"et_time":"15:50","avg_volume_millions":0.38},{"et_time":"15:51","avg_volume_millions":0.3},{"et_time":"15:52","avg_volume_millions":0.29},{"et_time":"15:53","avg_volume_millions":0.28},{"et_time":"15:54","avg_volume_millions":0.35},{"et_time":"15:55","avg_volume_millions":0.48},{"et_time":"15:56","avg_volume_millions":0.41},{"et_time":"15:57","avg_volume_millions":0.52},{"et_time":"15:58","avg_volume_millions":0.77},{"et_time":"15:59","avg_volume_millions":1.66},{"et_time":"16:00","avg_volume_millions":0.3}],"shape":"series","sql":"SELECT\n    formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_time,\n    round(sum(volume)\n          / countDistinct(toDate(toTimeZone(window_start, 'America/New_York')))\n          / 1e6, 2)                                                       AS avg_volume_millions\nFROM global_markets.delayed_stocks_minute_aggs\nWHERE ticker = 'SPY'\n  AND window_start >= today() - 120\n  AND window_start <  today() - 2\n  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n       + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 930 AND 960\nGROUP BY et_time\nORDER BY et_time","computed_at":"2026-09-30T15:08:36.065765+00:00","elapsed":0.122551965}