It doesn't have to be very time-consuming. I do data filtering on a tick by tick basis before using the data in my programs and the data delay is negligable. I don't do fancy filtering, just simple % change from a baseline "good" price. Take a look at the thread link I posted on the IB forum two posts up. In a nutshell, if I get more than a certain # of bad ticks (say 10-20) at a price level, then I move the baseline to that price level. It's fast, pretty effective (still lets some bad ticks through) but surely better than getting all those bad ticks.