Flow Toxicity VPIN

VPIN estimates how much of a stock's trading volume is one-sided in a way chance does not explain — the footprint of traders who know something the market maker does not. It is a measure of pressure, not of direction. Built on the model of Easley, López de Prado & O'Hara (Review of Financial Studies, 2012).
Read this before using it. A high reading says a stock is likely to move more over the next few days — not that it will move up. We tested this over two years and found no directional edge at any horizon. Anyone selling VPIN as a buy signal is misreading the model.

Does it actually work? Our own test

We tested VPIN on the 80 most liquid NSE stocks across 477 trading days — two full years. Because the same stocks share the same dates, a naïve test overstates significance badly, so each date's result is measured separately and then tested across dates (Fama–MacBeth). These are the corrected figures.
Volatility: confirmed, and it lasts.
The highest-VPIN fifth moved more than the lowest at every horizon — +0.15pp next day (t = 4.59), +0.24pp at 3 days (t = 4.41), +0.38pp at 5 days (t = 5.11).
Direction: nothing.
No edge at 1, 3 or 5 days (t = −0.19, −1.08, 0.10). Exactly as the theory predicts — VPIN measures pressure, not which way price goes.
It held up when we looked harder.
Going from 102 to 477 independent days made the volatility result stronger, not weaker. Noise washes out with more data; this did the opposite.
Two corrections we are publishing rather than quietly dropping. On a two-month sample the effect looked like it faded after one day — with two years it clearly does not; that sample was simply too small to see it. And the measured effect is smaller than the short sample suggested (0.15pp next day, not 0.39pp) — more data made the estimate more certain and more modest. Separately, a naïve pooled test appeared to show high VPIN predicting lower 5-day returns (t = −3.38); handling the date overlap correctly collapsed it to nothing, so we do not claim it.
Loading flow data…

How to read it

The percentile is the number that matters, not the raw VPIN. Raw values are not comparable between stocks — a level that is extreme for a steady large cap is ordinary for a volatile small cap. So each stock is scored against its own two-month history.

What a high reading means in practice. Buying and selling volume have stopped balancing. Someone is working a position with persistence. Historically this precedes wider spreads and thinner liquidity — the conditions in which stop losses fill badly and gaps get larger.

Useful ways to use it: sizing positions smaller in extreme-reading names; expecting wider slippage; treating a high reading alongside an unexplained price move as a reason to look for news rather than to trade; and pairing it with bulk & block deals to see whether large trades are on record.

The method. Trading is re-clocked from time to volume — the session is cut into equal-volume buckets rather than equal minutes, because information arrives with volume. Each bucket's volume is split into buying and selling using Bulk Volume Classification, and VPIN is the average imbalance over the last 50 buckets. Computed from 5-minute bars across roughly 58 sessions. This is research context, not an execution tool.