Yesterday I placed a limit buy order for 3 shares of ITIC (NASDAQ) @ $122.05. About 5-10 minutes later, a trade went through - 100 shares @ $122.00, while my order was untouched. How is that possible? My broker is IB and I have market data subscription so the prices I've seen should have been live. I used the "SMART" routing. At the time of the trade, I could see the top bid being $122.05.
I've gone over IB's execution policy and I'm still not sure what happened: https://www.interactivebrokers.com/en/index.php?f=995
Could it be that the limit order @ $122.00 specified a "fill-or-kill" execution and the only way for the seller to sell 100 shares at best price was for IB to ignore my tiny order and go straight for the big one? Or maybe executing a 97@122 + firstname.lastname@example.org trade is somehow worse for the seller than a email@example.com, when fees are included?
I also found this similar question: TD Webbroker.ca did not execute my limit sell order even though my stock went .02 over limit
The top answer relates to orders being routed to different exchanges (NYSE vs NYSE Arca). Could something similar happen with NASDAQ stocks?
EDIT: I might have found the answer - 3 shares is considered an "odd lot" and is not included in NBBO: https://www.nasdaq.com/articles/what-happens-in-an-odd-lot-world-2019-06-20
I'm still interested in opinions whether this is really the reason for my order being jumped over.