pool
Starting with XCore 6.01, pool stats data is also available in ClickHouse database. You can request access by contacting our support team in Microsoft Teams or the ticketing system.
Pool ToB/BoB
Top and bottom of book minute data per liquidity pool, written to stats/pool/pool.csv. Each line covers one liquidity pool and symbol for one minute.
| Heading | Description |
|---|---|
| time | End of the minute, as yyyy-MM-dd HH:mm:ss.SSS. |
| pool | The liquidity pool. |
| symbol | The symbol. |
| bid_count | The number of bid updates across all layers. |
| bid_depth_min | Minimal bid depth in the aggregated liquidity pool during the period. |
| bid_depth_max | Maximal bid depth in the aggregated liquidity pool during the period. |
| bid_tob_count | The number of top of book (ToB) bid updates. |
| bid_tob_avg | The average ToB bid. |
| bid_tob_open | The opening ToB bid. |
| bid_tob_high | The highest ToB bid. |
| bid_tob_low | The lowest ToB bid. |
| bid_tob_close | The closing ToB bid. |
| bid_tob_high_maker | Maker who streamed the highest ToB bid. |
| bid_bob_count | The number of bottom of book (BoB) bid updates. |
| bid_bob_avg | The average BoB bid. |
| bid_bob_open | The opening BoB bid. |
| bid_bob_high | The highest BoB bid. |
| bid_bob_low | The lowest BoB bid. |
| bid_bob_close | The closing BoB bid. |
| bid_bob_low_maker | Maker who streamed the lowest BoB bid. |
| ask_count | The number of ask updates across all layers. |
| ask_depth_min | Minimal ask depth in the aggregated liquidity pool during the period. |
| ask_depth_max | Maximal ask depth in the aggregated liquidity pool during the period. |
| ask_tob_count | The number of ToB ask updates. |
| ask_tob_avg | The average ToB ask. |
| ask_tob_open | The opening ToB ask. |
| ask_tob_high | The highest ToB ask. |
| ask_tob_low | The lowest ToB ask. |
| ask_tob_close | The closing ToB ask. |
| ask_tob_low_maker | Maker who streamed the lowest ToB ask. |
| ask_bob_count | The number of BoB ask updates. |
| ask_bob_avg | The average BoB ask. |
| ask_bob_open | The opening BoB ask. |
| ask_bob_high | The highest BoB ask. |
| ask_bob_low | The lowest BoB ask. |
| ask_bob_close | The closing BoB ask. |
| ask_bob_high_maker | Maker who streamed the highest BoB ask. |
| spread_tob_avg | The average ToB spread. |
| spread_tob_open | The opening ToB spread. |
| spread_tob_high | The highest ToB spread. |
| spread_tob_low | The lowest ToB spread. |
| spread_tob_close | The closing ToB spread. |
| spread_bob_avg | The average BoB spread. |
| spread_bob_open | The opening BoB spread. |
| spread_bob_high | The highest BoB spread. |
| spread_bob_low | The lowest BoB spread. |
| spread_bob_close | The closing BoB spread. |
Example
time,pool,symbol,bid_count,bid_depth_min,bid_depth_max,bid_tob_count,bid_tob_avg,bid_tob_open,bid_tob_high,bid_tob_low,bid_tob_close,bid_tob_high_maker,bid_bob_count,bid_bob_avg,bid_bob_open,bid_bob_high,bid_bob_low,bid_bob_close,bid_bob_low_maker,ask_count,ask_depth_min,ask_depth_max,ask_tob_count,ask_tob_avg,ask_tob_open,ask_tob_high,ask_tob_low,ask_tob_close,ask_tob_low_maker,ask_bob_count,ask_bob_avg,ask_bob_open,ask_bob_high,ask_bob_low,ask_bob_close,ask_bob_high_maker,spread_tob_avg,spread_tob_open,spread_tob_high,spread_tob_low,spread_tob_close,spread_bob_avg,spread_bob_open,spread_bob_high,spread_bob_low,spread_bob_close
2026-09-23 12:48:00.000,DEMO,EURUSD,36,0,2,18,1.10002,1.10002,1.10003,1.10001,1.10003,Maker_1,18,1.1,1.1,1.10001,1.09999,1.10001,Maker_1,36,0,2,18,1.10048,1.10048,1.10049,1.10047,1.10047,Maker_1,18,1.1005,1.1005,1.10051,1.10049,1.10049,Maker_1,0.00046,0.00046,0.00048,0.00044,0.00044,0.0005,0.0005,0.00052,0.00048,0.00048
Pool Filter
Minute data detailing filter interactions across all liquidity_pools, written to stats/pool/filter/pool_filter.csv. A line is written only for the pools and symbols where at least one price exceeded a limit during the minute. When more than 10 % of the bottom of book prices on one side exceeded the limit, XCore also writes a POOL_FILTER warning to the system log.
Additional terms are defined as follows:
- bid_limit = filter_best_bid + max(filter_tolerance * symbol.price_unit, filter_factor * filter_delta)
- ask_limit = filter_best_ask – max(filter_tolerance * symbol.price_unit, filter_factor * filter_delta)
| Heading | Description |
|---|---|
| time | End of the minute, as yyyy-MM-dd HH:mm:ss.SSS. |
| pool | The liquidity_pool. |
| symbol | The symbol. |
| bid_limit_high | The highest bid_limit recorded during this minute. |
| bid_limit_low | The lowest bid_limit recorded during this minute. |
| bid_tob_% | The percentage of top of book bid prices that exceeded the bid_limit. |
| bid_bob_% | The percentage of bottom of book bid prices that exceeded the bid_limit. |
| ask_limit_high | The highest ask_limit recorded during this minute. |
| ask_limit_low | The lowest ask_limit recorded during this minute. |
| ask_tob_% | The percentage of top of book ask prices that exceeded the ask_limit. |
| ask_bob_% | The percentage of bottom of book ask prices that exceeded the ask_limit. |
Please note that if the bottom of the book breaches the bid or ask_limit, it implicitly indicates that all prices on that side of the liquidity_pool have already exceeded their respective limits and, as a result, have been invalidated.