VPIN · flow toxicity
What the VPIN gauge approximates, how to read high and low readings, and how it pairs with the liquidation map.
VPIN (Volume-synchronized Probability of INformed trading) is a measure of flow toxicity: how one-sided and informed the recent order flow looks, from the point of view of the people quoting the other side of it. EdgeDepth computes it in real time on every pair.
What “toxic” means
Flow is toxic when the people trading it know something the market makers don’t - when fills are systematically followed by price moving against whoever provided the liquidity. Market makers can’t see intent, but they can see imbalance: informed flow tends to arrive one-sided and keep arriving. VPIN is a running estimate of exactly that.
How it’s computed
Three ideas, no magic:
- Volume time, not clock time. The tape is sliced into buckets of equal traded volume, not equal minutes. Information arrives with volume - one frantic minute can matter more than a quiet hour, and volume bucketing weights it accordingly.
- Classify the aggressor. Within each bucket, volume is split into buy-initiated and sell-initiated.
- Average the imbalance. VPIN is the average absolute buy/sell imbalance over a rolling window of buckets, normalized to 0-1. Balanced two-sided flow → low. Persistent one-sided flow → high.
Because it’s computed from the same trade feed you can watch on the tape, you can always sanity-check the gauge against the raw prints: a high reading should look one-sided.
Reading it
- Low VPIN: balanced, two-sided flow. Market makers are comfortable; spreads stay tight; size can trade without moving price much.
- High VPIN: persistently one-sided flow. Liquidity providers are being run over and respond the only way they can - widening quotes or pulling them. Thinner book, easier displacement. High VPIN doesn’t cause moves; it removes the cushion that normally prevents them.
- Persistence beats spikes. A single bucket can be lopsided by chance; a reading that stays elevated across buckets means the pressure is real and ongoing.
How to use it
VPIN is a gauge, not a signal. It doesn’t say which way; it says conditions are flammable. The reading only becomes actionable next to a map of where the fuel is:
- High toxicity while price sits just above a dense liquidation cluster is a market being pushed toward a cliff.
- The same reading in the middle of nowhere - no fuel nearby, balanced book - is context, not opportunity.
- Rising VPIN plus bids evaporating in the ladder is the statistical and mechanical view of the same event agreeing with each other. That agreement is worth more than either alone.
Limits, honestly
VPIN is an estimate of an unobservable quantity - nobody can measure “informed trading” directly. It approximates aggressor sides, it’s sensitive to its bucket parameters, and academics have argued about it for a decade. We ship it because it summarizes something real (sustained one-sided pressure) that is tedious to read off the raw tape across 550 pairs at once. Treat it as a smoke detector, not a fire marshal.
Like everything else in the terminal, VPIN is recomputed identically in replay. Rewind any archived cascade and watch how the gauge behaved in the minutes before the flush - that study, repeated across events, is how the reading becomes intuition.