{"slug":"es-futures-trading-hours","qid":"spread_by_et_hour","label":"spread_by_et_hour","post_title":"es-futures-trading-hours","post_url":"/blog/es-futures-trading-hours#q-spread_by_et_hour","columns":["et_hour","avg_spread_cents","quote_count"],"rows":[{"et_hour":"04:00","avg_spread_cents":5.91,"quote_count":808},{"et_hour":"05:00","avg_spread_cents":5.97,"quote_count":629},{"et_hour":"06:00","avg_spread_cents":4.39,"quote_count":540},{"et_hour":"07:00","avg_spread_cents":6.05,"quote_count":7699},{"et_hour":"08:00","avg_spread_cents":4,"quote_count":593},{"et_hour":"09:00","avg_spread_cents":3.84,"quote_count":2618},{"et_hour":"10:00","avg_spread_cents":1.98,"quote_count":7298},{"et_hour":"11:00","avg_spread_cents":1.48,"quote_count":7668},{"et_hour":"12:00","avg_spread_cents":1.78,"quote_count":3327},{"et_hour":"13:00","avg_spread_cents":1.97,"quote_count":3439},{"et_hour":"14:00","avg_spread_cents":8.41,"quote_count":18702},{"et_hour":"15:00","avg_spread_cents":3.19,"quote_count":25416},{"et_hour":"16:00","avg_spread_cents":3.53,"quote_count":6463},{"et_hour":"17:00","avg_spread_cents":10,"quote_count":3},{"et_hour":"18:00","avg_spread_cents":7.37,"quote_count":308},{"et_hour":"19:00","avg_spread_cents":5.08,"quote_count":378}],"shape":"ranking","sql":"SELECT\n    formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:00') AS et_hour,\n    round(avg(toFloat64(ask_price) - toFloat64(bid_price)) * 100, 2)       AS avg_spread_cents,\n    count()                                                                AS quote_count\nFROM global_markets.cache_stocks_quotes\nWHERE ticker = 'SPY'\n  AND sip_timestamp >= toDateTime('2026-09-16 08:00:00', 'UTC')\n  AND sip_timestamp <  toDateTime('2026-09-17 01:00:00', 'UTC')\n  AND toMinute(toTimeZone(sip_timestamp, 'America/New_York')) = 0\n  AND bid_price > 0\n  AND ask_price > bid_price\nGROUP BY et_hour\nORDER BY et_hour","computed_at":"2026-09-30T15:08:35.853640+00:00","elapsed":0.002296439}