Whoa... why are they "wrong?" Are you sure you're calculating them properly? As you say, IB data U.S. equity data runs at 250ms tick times: 4 per second, and this price point is a Volume-Weighted Average Price (VWAP) of the previous 250 price points. IB streams accurate 250ms VWAP price points. You can't just compute a simple average across the four points in a second. Perhaps this is why your calculated bars were wrong? You must also receive total volume for each 250ms time, and calculate another VWAP of these four VWAP'd data points for a proper 1s bar.