What about the following:

The tick data shows current best bid at 1000 and best ask at 1001. Someone places a market buy, thereby buying for 1001 at ask but the 1001 ask has size remaining, this event doesn't get recorded in tick bid/ask data at all (unless size is included). But if you want to simulate whether your limit sell order at 1000.5 would have been filled, the tick data would say no, because it's above the best bid and remained there, but the market buy order would have indeed filled your order because at 1000.5 it would have been the best price for the buyer, better than 1001. The trades data would reflect this by showing there was a trade that you could have received instead. Am I missing something?