{"slug":"why-stock-quotes-are-delayed-15-minutes","qid":"delay_trace","label":"Live price against a 15 minute delayed view, one SPY session","post_title":"Why Stock Quotes Are Delayed 15 Minutes","post_url":"/blog/why-stock-quotes-are-delayed-15-minutes#q-delay_trace","columns":["et_time","live_price","delayed_price","gap_delta","session_label"],"rows":[{"et_time":"09:50","live_price":746.13,"delayed_price":744.22,"gap_delta":1.91,"session_label":"Jun 9"},{"et_time":"10:00","live_price":744.18,"delayed_price":745.68,"gap_delta":1.5,"session_label":"Jun 9"},{"et_time":"10:10","live_price":743.13,"delayed_price":744.99,"gap_delta":1.86,"session_label":"Jun 9"},{"et_time":"10:20","live_price":739.78,"delayed_price":744.52,"gap_delta":4.74,"session_label":"Jun 9"},{"et_time":"10:30","live_price":740.49,"delayed_price":741.18,"gap_delta":0.69,"session_label":"Jun 9"},{"et_time":"10:40","live_price":741.21,"delayed_price":741.98,"gap_delta":0.77,"session_label":"Jun 9"},{"et_time":"10:50","live_price":734.91,"delayed_price":740.7,"gap_delta":5.79,"session_label":"Jun 9"},{"et_time":"11:00","live_price":737.84,"delayed_price":738.11,"gap_delta":0.27,"session_label":"Jun 9"},{"et_time":"11:10","live_price":738.3,"delayed_price":736.42,"gap_delta":1.88,"session_label":"Jun 9"},{"et_time":"11:20","live_price":736.39,"delayed_price":736.34,"gap_delta":0.05,"session_label":"Jun 9"},{"et_time":"11:30","live_price":731.4,"delayed_price":737.14,"gap_delta":5.74,"session_label":"Jun 9"},{"et_time":"11:40","live_price":731.36,"delayed_price":733.68,"gap_delta":2.32,"session_label":"Jun 9"},{"et_time":"11:50","live_price":731.35,"delayed_price":731.58,"gap_delta":0.23,"session_label":"Jun 9"},{"et_time":"12:00","live_price":729.81,"delayed_price":731.74,"gap_delta":1.93,"session_label":"Jun 9"},{"et_time":"12:10","live_price":728.02,"delayed_price":730.48,"gap_delta":2.46,"session_label":"Jun 9"},{"et_time":"12:20","live_price":725.69,"delayed_price":728.99,"gap_delta":3.3,"session_label":"Jun 9"},{"et_time":"12:30","live_price":726.56,"delayed_price":727.65,"gap_delta":1.09,"session_label":"Jun 9"},{"et_time":"12:40","live_price":723.05,"delayed_price":727.82,"gap_delta":4.77,"session_label":"Jun 9"},{"et_time":"12:50","live_price":724.47,"delayed_price":727.98,"gap_delta":3.51,"session_label":"Jun 9"},{"et_time":"13:00","live_price":727.02,"delayed_price":725.29,"gap_delta":1.73,"session_label":"Jun 9"},{"et_time":"13:10","live_price":727.37,"delayed_price":724.66,"gap_delta":2.71,"session_label":"Jun 9"},{"et_time":"13:20","live_price":730.34,"delayed_price":728.42,"gap_delta":1.92,"session_label":"Jun 9"},{"et_time":"13:30","live_price":730.53,"delayed_price":728.03,"gap_delta":2.5,"session_label":"Jun 9"},{"et_time":"13:40","live_price":732.62,"delayed_price":729.93,"gap_delta":2.69,"session_label":"Jun 9"},{"et_time":"13:50","live_price":732.01,"delayed_price":731.3,"gap_delta":0.71,"session_label":"Jun 9"},{"et_time":"14:00","live_price":733.01,"delayed_price":732.58,"gap_delta":0.43,"session_label":"Jun 9"},{"et_time":"14:10","live_price":732.99,"delayed_price":732.9,"gap_delta":0.09,"session_label":"Jun 9"},{"et_time":"14:20","live_price":734.01,"delayed_price":732.79,"gap_delta":1.22,"session_label":"Jun 9"},{"et_time":"14:30","live_price":735.81,"delayed_price":733.24,"gap_delta":2.57,"session_label":"Jun 9"},{"et_time":"14:40","live_price":735.69,"delayed_price":734.47,"gap_delta":1.22,"session_label":"Jun 9"},{"et_time":"14:50","live_price":735.18,"delayed_price":735.42,"gap_delta":0.25,"session_label":"Jun 9"},{"et_time":"15:00","live_price":736.4,"delayed_price":734.83,"gap_delta":1.57,"session_label":"Jun 9"},{"et_time":"15:10","live_price":735.9,"delayed_price":735.88,"gap_delta":0.02,"session_label":"Jun 9"},{"et_time":"15:20","live_price":733.88,"delayed_price":737.04,"gap_delta":3.16,"session_label":"Jun 9"},{"et_time":"15:30","live_price":734.59,"delayed_price":734.27,"gap_delta":0.32,"session_label":"Jun 9"},{"et_time":"15:40","live_price":732.68,"delayed_price":733.91,"gap_delta":1.23,"session_label":"Jun 9"},{"et_time":"15:50","live_price":735.29,"delayed_price":734.49,"gap_delta":0.8,"session_label":"Jun 9"}],"shape":"series","sql":"WITH\n    widest_session AS\n    (\n        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker = 'SPY'\n          AND close > 0\n          AND window_start >= '2026-06-01 00:00:00'\n          AND window_start <  '2026-07-01 00:00:00'\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960\n        GROUP BY d\n        ORDER BY (max(toFloat64(high)) - min(toFloat64(low))) / min(toFloat64(low)) DESC\n        LIMIT 1\n    ),\n    session_bars AS\n    (\n        SELECT\n            toTimeZone(window_start, 'America/New_York')                      AS et,\n            toTimeZone(window_start, 'America/New_York') - INTERVAL 15 MINUTE AS et_earlier,\n            toFloat64(close)                                                  AS px\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker = 'SPY'\n          AND close > 0\n          AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM widest_session)\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960\n    )\nSELECT\n    formatDateTime(a.et, '%H:%i')  AS et_time,\n    round(a.px, 2)                 AS live_price,\n    round(b.px, 2)                 AS delayed_price,\n    round(abs(a.px - b.px), 2)     AS gap_delta,\n    formatDateTime(a.et, '%b %e')  AS session_label\nFROM session_bars AS a\nINNER JOIN session_bars AS b ON b.et = a.et_earlier\nWHERE toMinute(a.et) % 10 = 0\nORDER BY a.et","computed_at":"2026-08-06T15:16:28.210920+00:00","elapsed":0.004727028}