This article also applies to the CMBP-1, TCBBO, and CBBO schemas.
MBP-1 vs. TBBO vs. BBO schemas
Info
The MBP-1, TBBO, and BBO schemas are very similar, as they share the same fields and all both cover top-of-book information in different ways.
Key differences: Event update space
The easiest way to think of the differences between the MBP-1, TBBO and BBO schemas is to consider their update space:
- MBP-1 is in book update space.
- BBO on trade (TBBO) is in trade space.
- BBO on interval (BBO) is in time space, subsampled at 1-second or 1-minute intervals.
Recommended use cases
Another way to understand the differences between the schemas is to think of their use cases.
- Every top of book update: Of the three schemas, MBP-1 is the only one that provides every top of book update. If you need the most granular of these three schemas, you should use MBP-1.
- Illiquid instruments: For illiquid instruments that trade infrequently, the BBO schema is generally more useful than TBBO. If an instrument doesn't trade for extended periods of time, the best bid and offer retrieved from the last TBBO message can be stale.
- Options: The BBO schema is most useful for option instruments, since they have a very low ratio of trades to book updates and will exhibit an extremely large volume of MBP-1 updates relative to BBO or TBBO updates. Options MBP-1 data can be costly or difficult to process while options TBBO data can be stale. A majority of our options users use BBO instead of MBP-1.
- Trading signals based on trades: Since most of the price discovery happens around the time of a trade, TBBO can be used to construct many useful signals without the bloat of MBP-1.
- Display apps: If you're building a display app that doesn't show every update and just needs to display a reasonably recent trade price, the BBO schema is more convenient than TBBO or MBP-1 because the BBO schema includes a forward-filled last sale price. In other words, the BBO schema is easier to manage because it's stateless with regards to the trade price. Moreover, your app usually has to handle less traffic when using the BBO schema.
Deriving TBBO and BBO from MBP-1
You can always use MBP-1 and derive the other two schemas.
- You can derive the TBBO schema by removing any event from the MBP-1 schema that does not have an
action
ofT
, for trades. - You can derive the BBO schema by subsampling the MBP-1 schema at either a 1-second or 1-minute interval.
However, it is not possible to derive BBO from TBBO or vice versa.
Visual differences: MBP-1 vs. TBBO
The following graph illustrates the difference between MBP-1s and TBBO. One can observe that the bid-ask spread can be updated in MBP-1 without a trade event. That is not the case for TBBO, where every data point has an associated trade.
Visual differences: MBP-1 vs. BBO-1s
The following graph illustrates the difference between MBP-1s and BBO-1s on an options contract. Observe that BBO-1s has much fewer BBO updates, making it easier to handle.