{"slug":"sub-penny-rule-and-price-improvement","qid":"tick_burden","label":"The penny tick and the quoted gap, in basis points","post_title":"The Sub-Penny Rule and Price Improvement","post_url":"/blog/sub-penny-rule-and-price-improvement#q-tick_burden","columns":["name","avg_spread_cents","one_cent_bps","spread_bps","tier"],"rows":[{"name":"MSFT ($388)","avg_spread_cents":6.23,"one_cent_bps":0.26,"spread_bps":1.61,"tier":"above $0.015"},{"name":"AAPL ($300)","avg_spread_cents":3.19,"one_cent_bps":0.33,"spread_bps":1.06,"tier":"above $0.015"},{"name":"NVDA ($207)","avg_spread_cents":1.52,"one_cent_bps":0.48,"spread_bps":0.74,"tier":"above $0.015"},{"name":"KO ($80)","avg_spread_cents":1.54,"one_cent_bps":1.26,"spread_bps":1.94,"tier":"above $0.015"},{"name":"BAC ($58)","avg_spread_cents":1,"one_cent_bps":1.73,"spread_bps":1.73,"tier":"at or under $0.015"},{"name":"T ($23)","avg_spread_cents":1,"one_cent_bps":4.44,"spread_bps":4.44,"tier":"at or under $0.015"},{"name":"F ($14)","avg_spread_cents":1,"one_cent_bps":6.94,"spread_bps":6.94,"tier":"at or under $0.015"}],"shape":"table","sql":"WITH best_quote AS\n(\n    SELECT\n        ticker,\n        toStartOfSecond(sip_timestamp) AS sec,\n        toFloat64(max(bid_price))      AS best_bid,\n        toFloat64(min(ask_price))      AS best_ask\n    FROM global_markets.cache_stocks_quotes\n    WHERE ticker IN ('MSFT', 'AAPL', 'NVDA', 'KO', 'BAC', 'T', 'F')\n      AND sip_timestamp >= '2026-06-17 14:00:00'\n      AND sip_timestamp <  '2026-06-17 14:15:00'\n      AND bid_price > 0\n      AND ask_price > bid_price\n    GROUP BY ticker, sec\n    HAVING min(ask_price) > max(bid_price)\n)\nSELECT\n    concat(ticker, ' ($', toString(round(avg((best_bid + best_ask) / 2), 0)), ')') AS name,\n    round(avg(best_ask - best_bid) * 100, 2)                                       AS avg_spread_cents,\n    round(10000 * 0.01 / avg((best_bid + best_ask) / 2), 2)                        AS one_cent_bps,\n    round(10000 * avg(best_ask - best_bid) / avg((best_bid + best_ask) / 2), 2)    AS spread_bps,\n    if(avg(best_ask - best_bid) <= 0.015, 'at or under $0.015', 'above $0.015')     AS tier\nFROM best_quote\nGROUP BY ticker\nORDER BY avg((best_bid + best_ask) / 2) DESC","computed_at":"2026-08-07T15:10:21.063516+00:00","elapsed":0.003511614}