well, you ask a lot of questions all of a sudden for someone who made bold and false claims a few post above (and has badly accused and attacked me in the past)
To answer a few of your questions, IB samples quote and trade data (note that I use the term trade "data", it does not mean they delay your executions, but simply means that all you see about real-time data is in effect not entirely real-time because it is sampled. That included bids, offers, trades, volume, anything you can imagine to see changing in "near" real-time is sampled. IB does aggregate, not the exchange. That you get data in different callbacks only means that the gateway that everyone runs on their local machines is implementing an API that segregates the callbacks. But still fact remains that any and all incoming data by IB is sampled.
My question is where are the specifications or information available? How do you know that IB is doing the aggregation not their data suppliers? How much data conditioning occurs before it gets to IB?
Since IB data is for the purposes of updating quote board in TWS UI both bid and ask would be treated differently than last trades as they are in market quotation systems because they serve different purpose (one is pre-trade the other post-trade but TWS user see both of them with small delay). The data sent to client app through API is just an attempt to emulate tick data from market quotation displayed on the screen with bid ask as a main feature there plus sizes and last. API was just afterthought hence this unusual "tick" data structure and separation of price and size in separate callbacks with no time stamps. The sole purpose of API is to help automate what is available in TWS. Therefore it is not only pure sampling issue but what is prioritized when providing data for the UI updates so it will not freeze.
API documentation says that data is sent when it changes but this is just in regards to what is happening on the TWS end but not what is the relationship between what IB servers receive and then send to TWS/client application. There is very little verifiable information what is going on beyond that.


