Why Level 1 Quotes Cannot Reliably Reconstruct Trades
Summary
Level 1 market data shows the best bid and ask, their displayed sizes, and sometimes the latest trade price and size. The document explains why changes in displayed bid or ask quantities cannot be treated as traded volume: a size change may reflect executions, new orders, cancellations, or a combination of these events. The quote data alone does not identify which event occurred or establish a complete list of transactions.
A reported last-trade price and size can provide evidence of an individual trade, but it may omit earlier trades if the feed reports only the latest transaction between updates. As a result, volume inferred from such updates may understate actual traded volume. The discussion gives a practical limitation rather than a reconstruction method: reliable trade-level records require data that identifies executions, while Level 1 quote changes by themselves are insufficient.
Key ideas
- Level 1 quotes describe displayed trading interest, not necessarily executed trades.
- Changes in displayed size can result from executions, order additions, cancellations, or combinations of events.
- Quote updates alone cannot reliably determine trade prices and volumes.
- A latest-trade field may omit transactions that occurred earlier in the reporting interval.
Tags
Full text
# How do you interpret Level 1 data to a list of transactions/trades? # How do you interpret Level 1 data to a list of transactions/trades? If you have L1 data of a given security, what is the best practice to interpret it to a list of transaction/trades? Or, can we actually do so? Just FYI, it's not a project for school but a problem I encounter in my full-time job. I thought it would be pretty easy at my first glance but now I realize there should be some "best solution" to this specific question, at least I might be missing something here. What I'm doing now is to calculate the bid/ask quantity change by each update in the L1 book as traded volume (with price as last traded price, of course). Planning to make it an open-source repo on GitHub later, at least for students and new beginners in this industry. Update Now I tend to think it's not possible to do so with Level 1 data. ## Answer by Fokko (score 0, accepted) https://quant.stackexchange.com/a/44682 The L1 data of order books is data of people willing to trade (in fact just orders and not trades). So you see the highest bid someone is willing to pay, the lowest ask which is offered and the corresponding offered sizes/lots to these prices. Sometimes the last price and size of the last transaction ist provided in L1 as well but not necessarily. The latter one could be used for estimating trade volume. But be aware that L1 book is not a good measure for traded volume for four main “actions” that can occur: - matched demands, so performed trades and sinking sizes or higher sizes if the demand of the next shown price is higher. - Higher sizes by higher demand but no trade. - Lower sizes by lower demands but no trade. - A mix of all the previous cases. This shows, that calculating trades prices and trades volume from L1 data, as you already suspected in your edit, is not reliably possible as you cannot be sure to have real trades or may be amended or deleted orders or if a higher demand offsets the lowered size. However as said above, depending on the data provider the last trade with its size could be provided. But even then you are just obtaining the information from the last trade. This could lead to miss data if many trades occur in the interval and only the last one is provided. So your calculated volume would be lower or equal the real traded volume.
Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.