{"slug":"how-ohlcv-bars-are-built","qid":"closing_auction_minute","label":"SPY volume by minute into the close, June 10 2026","post_title":"How OHLCV Bars Are Built From Ticks","post_url":"/blog/how-ohlcv-bars-are-built#q-closing_auction_minute","columns":["et_time","volume_millions","share_of_window_pct"],"rows":[{"et_time":"15:45","volume_millions":0.19,"share_of_window_pct":1.8},{"et_time":"15:46","volume_millions":0.17,"share_of_window_pct":1.6},{"et_time":"15:47","volume_millions":0.16,"share_of_window_pct":1.6},{"et_time":"15:48","volume_millions":0.27,"share_of_window_pct":2.6},{"et_time":"15:49","volume_millions":0.6,"share_of_window_pct":5.9},{"et_time":"15:50","volume_millions":1.15,"share_of_window_pct":11.2},{"et_time":"15:51","volume_millions":0.41,"share_of_window_pct":4},{"et_time":"15:52","volume_millions":0.21,"share_of_window_pct":2},{"et_time":"15:53","volume_millions":0.22,"share_of_window_pct":2.1},{"et_time":"15:54","volume_millions":0.3,"share_of_window_pct":2.9},{"et_time":"15:55","volume_millions":0.32,"share_of_window_pct":3.1},{"et_time":"15:56","volume_millions":0.31,"share_of_window_pct":3},{"et_time":"15:57","volume_millions":0.44,"share_of_window_pct":4.3},{"et_time":"15:58","volume_millions":0.84,"share_of_window_pct":8.2},{"et_time":"15:59","volume_millions":1.76,"share_of_window_pct":17.2},{"et_time":"16:00","volume_millions":0.49,"share_of_window_pct":4.8},{"et_time":"16:01","volume_millions":0.13,"share_of_window_pct":1.3},{"et_time":"16:02","volume_millions":0.19,"share_of_window_pct":1.9},{"et_time":"16:03","volume_millions":0.16,"share_of_window_pct":1.6},{"et_time":"16:04","volume_millions":0.17,"share_of_window_pct":1.6},{"et_time":"16:05","volume_millions":0.08,"share_of_window_pct":0.8},{"et_time":"16:06","volume_millions":0.17,"share_of_window_pct":1.6},{"et_time":"16:07","volume_millions":1.35,"share_of_window_pct":13.1},{"et_time":"16:08","volume_millions":0.13,"share_of_window_pct":1.3},{"et_time":"16:09","volume_millions":0.05,"share_of_window_pct":0.4}],"shape":"series","sql":"WITH minute_volume AS\n(\n    SELECT\n        toStartOfMinute(toTimeZone(window_start, 'America/New_York')) AS et_minute,\n        sum(volume)                                                   AS shares\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= '2026-06-10 19:45:00'\n      AND window_start <  '2026-06-10 20:10:00'\n    GROUP BY et_minute\n)\nSELECT\n    formatDateTime(et_minute, '%H:%i')                                            AS et_time,\n    round(toFloat64(shares) / 1e6, 2)                                             AS volume_millions,\n    round(100 * toFloat64(shares) / (SELECT toFloat64(sum(shares)) FROM minute_volume), 1) AS share_of_window_pct\nFROM minute_volume\nORDER BY et_minute","computed_at":"2026-08-08T15:20:36.580676+00:00","elapsed":0.002621178}