{"slug":"sub-penny-rule-and-price-improvement","qid":"subpenny_by_size","label":"AAPL sub-penny print rate by trade size, 17 June 2026","post_title":"The Sub-Penny Rule and Price Improvement","post_url":"/blog/sub-penny-rule-and-price-improvement#q-subpenny_by_size","columns":["size_bucket","subpenny_trade_pct","share_of_prints_pct"],"rows":[{"size_bucket":"under 100 shares","subpenny_trade_pct":38.66,"share_of_prints_pct":88.99},{"size_bucket":"100 to 499 shares","subpenny_trade_pct":21.57,"share_of_prints_pct":10.49},{"size_bucket":"500 to 999 shares","subpenny_trade_pct":30.46,"share_of_prints_pct":0.36},{"size_bucket":"1,000 to 4,999 shares","subpenny_trade_pct":32.22,"share_of_prints_pct":0.15},{"size_bucket":"5,000 shares and up","subpenny_trade_pct":18.06,"share_of_prints_pct":0.02}],"shape":"ranking","sql":"WITH prints AS\n(\n    SELECT\n        size,\n        multiIf(size < 100,  'under 100 shares',\n                size < 500,  '100 to 499 shares',\n                size < 1000, '500 to 999 shares',\n                size < 5000, '1,000 to 4,999 shares',\n                             '5,000 shares and up')       AS size_bucket,\n        toUInt64(round(toFloat64(price) * 10000)) % 100 != 0 AS sub_penny\n    FROM global_markets.stocks_trades\n    WHERE ticker = 'AAPL'\n      AND sip_timestamp >= '2026-06-17 00:00:00'\n      AND sip_timestamp <  '2026-06-18 00:00:00'\n      AND price > 0\n      AND size > 0\n)\nSELECT\n    size_bucket,\n    round(100 * countIf(sub_penny) / count(), 2)           AS subpenny_trade_pct,\n    round(100 * count() / (SELECT count() FROM prints), 2) AS share_of_prints_pct\nFROM prints\nGROUP BY size_bucket\nORDER BY min(size)","computed_at":"2026-08-07T15:10:20.884205+00:00","elapsed":0.002786925}