{"slug":"us-stock-market-hours-lagos-time","qid":"session_split","label":"session_split","post_title":"us-stock-market-hours-lagos-time","post_url":"/blog/lang/pcm/us-stock-market-hours-lagos-time#q-session_split","columns":["segment","volume_millions","share_pct","avg_thousand_per_minute"],"rows":[{"segment":"Regular session","volume_millions":1655.2,"share_pct":83.8,"avg_thousand_per_minute":90.3},{"segment":"After-hours","volume_millions":273.5,"share_pct":13.8,"avg_thousand_per_minute":29.5},{"segment":"Premarket","volume_millions":47.3,"share_pct":2.4,"avg_thousand_per_minute":3.5}],"shape":"ranking","sql":"WITH bars AS\n(\n    SELECT\n        toHour(toTimeZone(window_start, 'America/New_York')) * 60\n            + toMinute(toTimeZone(window_start, 'America/New_York')) AS et_min,\n        toFloat64(volume)                                            AS volume\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= today() - 70\n      AND window_start <  today() - 2\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 240\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) <  1200\n)\nSELECT\n    multiIf(et_min < 570, 'Premarket',\n            et_min < 960, 'Regular session',\n                          'After-hours')                            AS segment,\n    round(sum(volume) / 1e6, 1)                                      AS volume_millions,\n    round(100 * sum(volume) / (SELECT sum(volume) FROM bars), 1)      AS share_pct,\n    round(avg(volume) / 1000, 1)                                     AS avg_thousand_per_minute\nFROM bars\nGROUP BY segment\nORDER BY share_pct DESC","computed_at":"2026-10-03T15:04:04.816435+00:00","elapsed":0.149869092}