{"slug":"us-premarket-and-after-hours-uk-time","qid":"extended_hours_spreads","label":"extended_hours_spreads","post_title":"us-premarket-and-after-hours-uk-time","post_url":"/blog/us-premarket-and-after-hours-uk-time#q-extended_hours_spreads","columns":["et_time","london_time","median_spread_bps","quote_update_count"],"rows":[{"et_time":"04:00","london_time":"09:00","median_spread_bps":6.96,"quote_update_count":1528},{"et_time":"05:00","london_time":"10:00","median_spread_bps":5.74,"quote_update_count":434},{"et_time":"06:00","london_time":"11:00","median_spread_bps":7.26,"quote_update_count":655},{"et_time":"07:00","london_time":"12:00","median_spread_bps":4.84,"quote_update_count":1245},{"et_time":"08:00","london_time":"13:00","median_spread_bps":4.83,"quote_update_count":1386},{"et_time":"09:00","london_time":"14:00","median_spread_bps":1.51,"quote_update_count":101502},{"et_time":"10:00","london_time":"15:00","median_spread_bps":1.21,"quote_update_count":135693},{"et_time":"11:00","london_time":"16:00","median_spread_bps":0.91,"quote_update_count":105315},{"et_time":"12:00","london_time":"17:00","median_spread_bps":0.91,"quote_update_count":82479},{"et_time":"13:00","london_time":"18:00","median_spread_bps":0.61,"quote_update_count":66234},{"et_time":"14:00","london_time":"19:00","median_spread_bps":0.61,"quote_update_count":71955},{"et_time":"15:00","london_time":"20:00","median_spread_bps":0.61,"quote_update_count":114515},{"et_time":"16:00","london_time":"21:00","median_spread_bps":3.92,"quote_update_count":739},{"et_time":"17:00","london_time":"22:00","median_spread_bps":3.01,"quote_update_count":194},{"et_time":"18:00","london_time":"23:00","median_spread_bps":3.62,"quote_update_count":712},{"et_time":"19:00","london_time":"00:00","median_spread_bps":3.01,"quote_update_count":388}],"shape":"series","sql":"WITH q AS\n(\n    SELECT\n        toTimeZone(sip_timestamp, 'America/New_York') AS et,\n        toTimeZone(sip_timestamp, 'Europe/London')    AS uk,\n        toUInt64(sequence_number)                     AS seq,\n        10000 * (toFloat64(ask_price) - toFloat64(bid_price))\n              / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) AS spread_bps\n    FROM global_markets.cache_stocks_quotes\n    WHERE ticker = 'AAPL'\n      AND sip_timestamp >= '2026-09-15 08:00:00'\n      AND sip_timestamp <  '2026-09-16 00:00:00'\n      AND bid_price > 0\n      AND ask_price >= bid_price\n)\nSELECT\n    formatDateTime(toStartOfHour(et), '%H:%i')          AS et_time,\n    formatDateTime(toStartOfHour(uk), '%H:%i')          AS london_time,\n    round(quantileDeterministic(0.5)(spread_bps, seq), 2) AS median_spread_bps\n    ,\n    count()                                             AS quote_update_count\nFROM q\nGROUP BY et_time, london_time\nORDER BY et_time","computed_at":"2026-10-01T15:16:13.701211+00:00","elapsed":0.022679842}