{"slug":"quote-driven-vs-order-driven-markets","qid":"touch","label":"Quoted spread and displayed size at the NBBO, one June 2026 hour","post_title":"Quote-Driven vs Order-Driven Markets","post_url":"/blog/quote-driven-vs-order-driven-markets#q-touch","columns":["symbol","quoted_spread_bps","touch_size_lots"],"rows":[{"symbol":"SPY","quoted_spread_bps":0.27,"touch_size_lots":180},{"symbol":"AAPL","quoted_spread_bps":1.01,"touch_size_lots":100},{"symbol":"KO","quoted_spread_bps":1.25,"touch_size_lots":450},{"symbol":"MSFT","quoted_spread_bps":1.53,"touch_size_lots":100},{"symbol":"PG","quoted_spread_bps":3.29,"touch_size_lots":350}],"shape":"ranking","sql":"WITH quotes AS\n(\n    SELECT\n        ticker,\n        toUInt64(sequence_number)           AS weight,\n        toFloat64(bid_price)                AS bid,\n        toFloat64(ask_price)                AS ask,\n        toFloat64(bid_size + ask_size) / 2  AS touch_lots\n    FROM global_markets.cache_stocks_quotes\n    WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'PG', 'KO')\n      AND sip_timestamp >= '2026-06-16 14:30:00'\n      AND sip_timestamp <  '2026-06-16 15:30:00'\n      AND bid_price > 0\n      AND ask_price > bid_price\n)\nSELECT\n    ticker                                                                                       AS symbol,\n    round(quantileDeterministic(0.5)(10000 * (ask - bid) / ((ask + bid) / 2), weight), 2)        AS quoted_spread_bps,\n    round(quantileDeterministic(0.5)(touch_lots, weight), 1)                                     AS touch_size_lots\nFROM quotes\nGROUP BY ticker\nORDER BY quoted_spread_bps","computed_at":"2026-08-11T15:48:11.122185+00:00","elapsed":0.002810677}