{"slug":"level-1-vs-level-2-market-data","qid":"book_by_name","label":"Top-of-book spread and quote message count by name (10:00 to 11:00 a.m. ET)","post_title":"Level 1 vs Level 2 vs Level 3 Market Data","post_url":"/blog/level-1-vs-level-2-market-data#q-book_by_name","columns":["symbol","spread_bps","quote_update_count"],"rows":[{"symbol":"SPY","spread_bps":0.32,"quote_update_count":996649},{"symbol":"NVDA","spread_bps":1.16,"quote_update_count":535650},{"symbol":"AAPL","spread_bps":1.28,"quote_update_count":127659},{"symbol":"MSFT","spread_bps":1.61,"quote_update_count":91308},{"symbol":"KO","spread_bps":1.95,"quote_update_count":95441}],"shape":"ranking","sql":"SELECT\n    ticker                                                                 AS symbol,\n    round(avg((toFloat64(ask_price) - toFloat64(bid_price))\n              / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2)) * 10000, 2) AS spread_bps,\n    count()                                                                AS quote_update_count\nFROM global_markets.cache_stocks_quotes\nWHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO')\n  AND sip_timestamp >= '2026-06-17 14:00:00'\n  AND sip_timestamp <  '2026-06-17 15:00:00'\n  AND bid_price > 0\n  AND ask_price > bid_price\n  AND (toFloat64(ask_price) - toFloat64(bid_price)) / toFloat64(bid_price) < 0.05\nGROUP BY symbol\nORDER BY spread_bps","computed_at":"2026-08-07T15:34:41.052008+00:00","elapsed":0.002649002}