Aperiodic
MarketsLive
Pricing
Get Started

Metrics library · Order flow

Flow

Get the data

Net taker flow, running total through the day, BTC perps, last 24 hours

DELAYED 15 MIN…Updates by itself every 5 minutes

Loading…

Net taker flow, running total through the day, latest

Binance
—
OKX
—
Hyperliquid
—

A falling line with a steady price means resting bids absorbed the selling.

How it's builtBTC, May 2025Perps rankedFieldsDownloadFAQ

Whether buyers or sellers crossed the spread, and by how much.

Directional order flow split by taker buy vs. sell, broken into small/medium/large notional segments, with a flow toxicity score.

Built from
Trades
Fields
36
Intervals
1m to 1d; 15s and 30s on Prime
Plan
Pro
Venues
Binance, OKX, Hyperliquid
Live
Free 15 minutes behind; real time on paid plans

How it's built

One real minute of trades, field by field. Each value matches our pipeline's output.

All 11,692 trades from 14:38 to 14:39 UTC on 11 June 2025, Binance BTC-USDT perpetual, from the free raw-trades preview.

  1. Step 1

    Take each trade's taker side

    The venue reports which side was the taker, the order that crossed the spread against a resting order. In this minute 8,111 trades were taker sells and 3,581 taker buys.

    Loading 11,692 trades…
  2. Step 2

    Sum each side, split by size

    taker_buy_volume=Σ notional of taker buys=$25.07M
    taker_sell_volume=Σ notional of taker sells=$68.02M

    The buckets are by trade notional: under $100, $100 to $1,000, and $1,000 and up. No trade was under $100, because the smallest order size, 0.001 BTC, was worth about $110.

    buy, $1,000 and up$24.42M
    buy, $100 to $1,000$648.8K
    buy, under $100$0
    sell, $1,000 and up$66.75M
    sell, $100 to $1,000$1.27M
    sell, under $100$0
  3. Step 3

    Net buys against sells

    volume_delta_notional=buys − sells=-$42.95M
    volume_delta=Σ buy amount − Σ sell amount=-390.45 BTC
    taker_buy_sell_ratio=buys / sells=0.369
    taker_buy_sell_percentage=buys / (buys + sells)=26.9%
    Loading 11,692 trades…
  4. Step 4

    Measure how one-sided it was

    flow_entropy=−p ln p − (1−p) ln(1−p), p = 26.9%=0.583

    p is the taker-buy share of notional. With the natural log, an even split scores ln 2 (0.693) and a one-sided bar scores 0.

    this bar: 0.583ln 2 = 0.693, an even split
    all sellsbuy share of notionalall buys
  5. Step 5

    Score toxicity

    Take the z-score of the minute's net flow and of its volatility, each against every minute of the UTC day so far, this one included, and multiply them. Volatility here is the square root of the sum of squared trade-to-trade returns in the minute.

    z(net flow)=(-$42.95M − (-$24.9K)) / $6.83M=-6.29
    z(volatility)=(0.122% − 0.012%) / 0.059%=1.88
    flow_toxicity_score=z(net flow) × z(volatility)=-11.84

    This minute had the 2nd most net selling of the day's 879, with volatility above the day's mean, so the score is large and negative.

    Net flow of each of the UTC day's 879 minutes so far

    day mean
    -$49.34M$100.32M

    Volatility of each minute so far

    day mean
    0.00%1.39%
  6. Step 6

    The bar

    taker_buy_volume
    $25.07M
    taker_sell_volume
    $68.02M
    taker_buy_count
    3,581
    taker_sell_count
    8,111
    volume_delta_notional
    -$42.95M
    taker_buy_sell_ratio
    0.369
    flow_entropy
    0.583
    flow_toxicity_score
    -11.84
    taker_buy_large_order_percentage
    97.4%
    taker_sell_large_order_percentage
    98.1%

Did taker flow lead BTC's price?

Net taker flow moved with BTC's price in the same hour (correlation 0.72) and said almost nothing about the next hour (0.02).

BTC-USDT perpetual on Binance, 5m bars, 1 to 31 May 2025, from the free preview.

Correlation
0.01
-0.05
0.72
0.02
-0.09
-0.07
2h before1h beforesame hour1h later2h later3h later

Hourly net taker flow against the price move, by lag.

Hour by hour across May, taker buys minus taker sells correlated 0.72 with BTC's price move in the same hour and 0.02 with the move an hour later. Over the month takers sold $2.5B more than they bought, while the price rose.

Toxicity says more about the next bar. The most toxic tenth of bars was followed by moves 1.4× the size of those after the least toxic tenth (8.54 bps against 5.90 bps). It says nothing about direction.

Where buyers or sellers dominated the last 24 hours

Among the 100 most traded perps on Binance, OKX and Hyperliquid, by 24-hour volume.

DELAYED 15 MINto 14:45 UTCUpdates by itself every 5 minutes

Highest

#PerpTaker buy/sell, 24h
  1. 1SILVER Hyperliquid · USDC1.220
  2. 2AIN Binance · USDT1.206
  3. 3DRAM Hyperliquid · USDC1.111
  4. 4SOXS OKX · USDT1.092
  5. 5GOOGL Hyperliquid · USDC1.086

Lowest

#PerpTaker buy/sell, 24h
  1. 1MU Hyperliquid · USDC0.696
  2. 2AMD Binance · USDT0.813
  3. 3XYZ100 Hyperliquid · USDC0.821
  4. 4NVDA Hyperliquid · USDC0.855
  5. 5MU Binance · USDT0.863

How to read it

A taker buy is a trade where the buyer crossed the spread. volume_delta_notional is taker buys minus taker sells in dollars: positive means buyers were more aggressive.

taker_buy_sell_ratio divides the two: 1 is balanced, above 1 buyers led. flow_entropy measures the same balance on a scale where ln 2, about 0.693, is an even split.

flow_toxicity_score multiplies how one-sided the flow was by how volatile the bar was, each as a z-score against the UTC day so far, this bar included. Large readings of either sign mark bars that were both one-sided and volatile.

The small, medium and large splits use trade notional: under $100, $100 to $1,000, and $1,000 and up.

taker_buy_volume
Total buy-side traded notional in the interval
taker_sell_volume
Total sell-side traded notional in the interval
taker_buy_count
Number of buy-side trades in the interval
taker_sell_count
Number of sell-side trades in the interval
volume_delta
Buy-side traded quantity minus sell-side traded quantity
volume_delta_notional
Buy-side traded notional minus sell-side traded notional
flow_entropy
Entropy of the buy-versus-sell notional split in the interval
flow_toxicity_score
Past-normalized signed notional flow multiplied by past-normalized short-horizon realized volatility
All 36 fieldsFewer fields
taker_buy_sell_ratio
Buy-side traded notional divided by sell-side traded notional
taker_buy_sell_count_ratio
Buy-side trade count divided by sell-side trade count
taker_buy_sell_percentage
Share of traded notional that came from buy-side trades
taker_buy_sell_count_percentage
Share of trades that were buy-side trades
taker_buy_small_order_volume
Total buy-side notional from small trades under $100
taker_buy_small_order_count
Number of buy-side trades under $100
taker_buy_medium_order_volume
Total buy-side notional from medium trades from $100 to under $1,000
taker_buy_medium_order_count
Number of buy-side trades from $100 to under $1,000
taker_buy_large_order_volume
Total buy-side notional from large trades of at least $1,000
taker_buy_large_order_count
Number of buy-side trades of at least $1,000
taker_sell_small_order_volume
Total sell-side notional from small trades under $100
taker_sell_small_order_count
Number of sell-side trades under $100
taker_sell_medium_order_volume
Total sell-side notional from medium trades from $100 to under $1,000
taker_sell_medium_order_count
Number of sell-side trades from $100 to under $1,000
taker_sell_large_order_volume
Total sell-side notional from large trades of at least $1,000
taker_sell_large_order_count
Number of sell-side trades of at least $1,000
taker_buy_small_order_percentage
Ratio of small buy-side trade notional to total buy-side traded notional
taker_buy_medium_order_percentage
Ratio of medium buy-side trade notional to total buy-side traded notional
taker_buy_large_order_percentage
Ratio of large buy-side trade notional to total buy-side traded notional
taker_buy_small_order_count_percentage
Share of buy-side trades that were small trades
taker_buy_medium_order_count_percentage
Share of buy-side trades that were medium trades
taker_buy_large_order_count_percentage
Share of buy-side trades that were large trades
taker_sell_small_order_percentage
Ratio of small sell-side trade notional to total sell-side traded notional
taker_sell_medium_order_percentage
Ratio of medium sell-side trade notional to total sell-side traded notional
taker_sell_large_order_percentage
Ratio of large sell-side trade notional to total sell-side traded notional
taker_sell_small_order_count_percentage
Share of sell-side trades that were small trades
taker_sell_medium_order_count_percentage
Share of sell-side trades that were medium trades
taker_sell_large_order_count_percentage
Share of sell-side trades that were large trades
The research behind itHide the research

Order flow tells you direction. Realized volatility tells you uncertainty. Separately, each is informative. Together, they capture something neither can alone: the toxicity of the trading environment for liquidity providers.

Origins: From PIN to VPIN

The concept traces directly to Easley, López de Prado & O'Hara's (2012) Volume-Synchronized Probability of Informed Trading (VPIN). Their key insight: the probability of informed trading — originally estimated via the PIN model (Easley, Kiefer, O'Hara & Paperman, 1996) using maximum likelihood on trade arrival rates — could be approximated in real-time by measuring order flow imbalance synchronized to volume clocks rather than time clocks.

VPIN gained notoriety after Easley, López de Prado & O'Hara (2011) demonstrated it spiked dramatically in the hours preceding the May 6, 2010 Flash Crash, suggesting it captured the buildup of toxic flow before the market broke.

Our implementation

We compute flow toxicity as:

Toxicity = z-score(signed net flow) × z-score(realized volatility)

Where:

  • Signed net flow = taker buy notional − taker sell notional over the interval
  • Realized volatility = trade-to-trade return volatility within the interval
  • Z-scores are computed over expanding windows for stationarity

The multiplicative interaction is the critical design choice. High directional pressure during calm markets (low vol) is manageable — market makers can hedge gradually. High volatility without directional pressure is expensive but two-sided. High flow in both directions during high volatility — that's when adverse selection costs spike. Market makers are simultaneously being picked off directionally and unable to hedge because prices are moving too fast.

Why this matters for strategy design

From the market maker's perspective (Glosten & Milgrom, 1985), the spread must compensate for adverse selection risk. When toxicity rises, spreads should widen — and empirically they do. But there's a lag. The toxicity signal leads the spread adjustment, creating a window where liquidity providers are undercompensated for risk.

From a directional perspective, high flow toxicity tends to precede sharp moves. Low toxicity during a "directionless" market signals that liquidity provision is cheap, spreads are tight, and mean reversion is more reliable.

The asymmetry across instruments is underappreciated. Some assets attract systematically toxic flow (high informed-trader participation). Others don't. Knowing which is which changes how you size risk — this is the cross-sectional dimension of the Easley & O'Hara (1987) information-based trading framework.


References:

  • Easley, D., López de Prado, M.M. & O'Hara, M. (2012). "Flow Toxicity and Liquidity in a High-Frequency World." Review of Financial Studies, 25(5), 1457–1493.
  • Easley, D., López de Prado, M.M. & O'Hara, M. (2011). "The Microstructure of the 'Flash Crash'." Journal of Portfolio Management, 37(2), 118–128.
  • Easley, D., Kiefer, N.M., O'Hara, M. & Paperman, J.B. (1996). "Liquidity, Information, and Infrequently Traded Stocks." Journal of Finance, 51(4), 1405–1436.
  • Easley, D. & O'Hara, M. (1987). "Price, Trade Size, and Information in Securities Markets." Journal of Financial Economics, 19(1), 69–90.
  • Glosten, L.R. & Milgrom, P.R. (1985). "Bid, Ask and Transaction Prices in a Specialist Market with Heterogeneously Informed Traders." Journal of Financial Economics, 14(1), 71–100.

Download the same month

No account needed. Pro adds every venue and perp, at 1-minute to daily bars.
# Install the Aperiodic CLI into ~/.local/bin
mkdir -p "$HOME/.local/bin"
curl -fsSL https://raw.githubusercontent.com/aperiodic-io/cli/main/install.sh | INSTALL_DIR="$HOME/.local/bin" bash
export PATH="$HOME/.local/bin:$PATH"

# Free preview — no API key required
aperiodic flow --preview \
  --exchange binance-futures \
  --symbol perpetual-BTC-USDT:USDT \
  --interval 5m \
  --timestamp exchange \
  --start-date 2025-05-01 \
  --end-date 2025-05-31 \
  --output-dir ./data && echo "Saved to $PWD/data"

Questions

Related

Trade sizeSmall, medium and large trades, and the tailsTrade run structureHow long buyers and sellers keep at itImpactKyle's lambda, Amihud, and what size costs
Aperiodic

Built from hundreds of terabytes of raw data and distilled into point-in-time metrics you can pull as parquet files. Plus the raw trades, quotes and derivatives data behind them.

Use Cases
  • Improve your backtest
  • Find new alpha
  • Execute smarter
Indices
  • All indices
  • Aperiodic Cost Index
  • Aperiodic Depth Index
  • Aperiodic Impact Index
Metrics
  • Metrics library
  • Data Catalog
  • Live markets dashboard
  • Global Liquidity
  • Unusual activity
  • Order Flow
  • L1 & L2
  • Derivatives
  • RWA
  • Raw Data
Developers
  • API Docs
  • Live WebSocket Feed
  • MCP Server
  • Notebooks
  • For AI Agents
  • Atlas Security Master
  • Pre-flight
  • Changelog
  • Roadmap
  • llms.txt
Learn
  • Replays
  • Microstructure Guide
  • Architecture
  • Research Blog
  • FAQ
Compare
  • All vendors
  • vs. Tardis
  • vs. CoinGlass
  • vs. Kaiko
  • vs. Amberdata
Company
  • Pricing
  • Contact
  • Book a call
  • Terms of Service
  • Privacy Policy
  • Licensing
  • SLA

© Copyright 2026 Aperiodic. All Rights Reserved.

Aperiodic Limited · Registered in Ireland · Company No. 815273 ·
136 Capel Street, Dublin D01 T2C9, Ireland

Shown: minute closes of 847 perpetuals, 20:30–22:30 UTC on 10 Oct 2025, IOTX in orange · built with ohlcv 1m