Liquidations (Multi-Exchange Methodology)
How we aggregate liquidations across 8 exchanges, why our numbers differ from Coinglass, and what to trust.
Liquidation totals on different sites disagree, sometimes by 5× or more. This page explains exactly how we compute ours and where the deltas vs. other services come from.
Where data comes from
We connect to public liquidation WebSockets on each venue:
| Exchange | Stream | Throttled? |
|---|---|---|
| Binance | !forceOrder@arr | Yes (1/s/symbol) |
| OKX | liquidation-orders channel | Yes (1/s/symbol, since Sep 2021) |
| Aster | force-order channel | Yes (similar throttle) |
| Bybit | liquidation topic | No |
| Bitget | force_order v3 | No |
| Gate.io | liquidation | No |
| HTX | force-order subscription | No |
| Hyperliquid | userFills delta (filtered to liqs) | No (S3 + WS) |
No paid data partner. No exchange affiliation. Source code for each connector lives in the worker repo.
How we normalize
Each connector emits a row with the same shape:
{ exchange, symbol, side, price, qty, notional, ts }notional = price * qty * contractMultiplier, where the multiplier
comes from our contract_specs table (e.g. some Bitget contracts are
denominated in "contracts" worth 0.01 of the base asset, not 1).
This is why we had a one-time backfill in mid-2026 to fix a
~80× overstatement on Bitget — the multiplier was originally
treated as 1 across the board.
The 1-event-per-second throttle: why our Binance number is a
floor, not the truth
The Binance public WS docs are explicit:
For each symbol, only the largest one liquidation order within 1000ms is pushed.
OKX and Aster do the same. We see the largest event per second per symbol; smaller fills inside that second are silently omitted. That means:
- Our cross-exchange total is strictly a lower bound.
- Throttling affects busy seconds more than quiet ones — so the delta from "true" total grows during crashes.
- Bitget, Bybit, Gate, and HTX don't throttle, so on those venues our number is closer to ground truth.
Why this looks weird compared to Coinglass
Coinglass aggregates from multiple feeds, some of them paid / partner streams from the exchanges directly that bypass the public WS throttle. Their methodology is private. We've stared at our numbers vs theirs and the pattern is:
- For Binance / OKX, Coinglass usually shows more than us (they have throttle-bypass).
- For Bitget, Coinglass usually shows less than us (they appear to sample / downsample).
- For Gate, Coinglass usually shows more than us (their feed quality on small venues is better).
Both numbers can be correct given their definitions. The page surfaces a callout at the bottom so you're aware before drawing conclusions.
Rollup tables
liquidations_events— raw per-event log (not exposed externally).liquidation_rollup_1h— hourly per-(exchange, symbol) sums. This is what powers Rankings' "24H LIQ" column and the Liquidations page totals.
See also
- Liquidations feature page — the user- facing description.