Mean taker slippage, BTC perps, last 24 hours
DELAYED 15 MIN…Updates by itself every 5 minutes
Mean taker slippage, latest
Each venue has its own level, so compare each venue with its own day, not with the others.
What each taker trade paid against the best quote. A backtest that fills at the mid leaves it out.
How much each trade pays above the best ask (buys) or receives below the best bid (sells) relative to the prevailing quote, aggregated per interval.
The 5m bar from 14:00 to 14:05 UTC on 14 May 2025, Binance BTC-USDT perpetual, from the free preview.
Step 1
Each trade is matched with the latest best bid and ask at or before its timestamp.
Positive means the trade filled worse than that quote, because it walked the book or the quote had moved. Negative means it printed inside the quote.
Step 2
A median of zero means at least half the trades filled at the quote or better. At the 95th percentile, a buy at this ask paid about $8.40 per BTC over it.
Step 3
Sells paid a little more than buys in this bar.
Step 4
BTC-USDT perpetual on Binance, 5m bars, 1 to 31 May 2025, from the free preview.
Bars by volume, quietest tenth to busiest tenth. Basis points.
Sorted by volume, the quietest tenth of May's bars had a median p95 slippage of 0.43 bps, the busiest tenth 1.84 bps. The median bar's mean was 0.14 bps, so most of the cost sits in the tail.
On the 322 bars that fell more than 20 bps, sells paid 0.38 bps and buys 0.17 bps. Trading in the direction of the move cost the most.
DELAYED 15 MINto 14:45 UTCUpdates by itself every 5 minutes
Slippage per trade is its price against the latest best quote at or before it: price minus ask for a buy, bid minus price for a sell, in basis points of that quote. Positive means the trade paid through the best quote. Negative means it printed inside it.
slippage_bps_mean is the average over the bar, _p95 its tail, _vwap the size-weighted average. Use the p95 for anything that trades in size.
The _buy_ and _sell_ fields split it by side. When sells pay more than buys, the bid side is thinner.
When most traders say "slippage," they mean the gap between expected and realized price. But that colloquial definition conflates several distinct costs. Precise measurement requires decomposing execution quality against observable benchmarks — a framework that traces back to Perold's (1988) concept of implementation shortfall.
Perold (1988) defined implementation shortfall as the difference between the return of a paper portfolio (where trades execute at decision prices) and the actual portfolio. This total cost decomposes into:
Our slippage metric captures the market impact component directly: the deviation between the execution price and the best available quote (BBO) at the moment of the trade. For a buy, slippage = trade_price − ask_price. For a sell, slippage = bid_price − trade_price. Negative values indicate price improvement.
This aligns with the framework of Almgren & Chriss (2001), where market impact is modeled as having both temporary (transient) and permanent components — our per-trade slippage captures the instantaneous temporary component.
Bessembinder (2003) showed that execution costs vary systematically with market conditions. In trending markets, buy slippage exceeds sell slippage (buyers chase into thin asks) while sells face ample bids. During panics, it reverses. The asymmetry itself is a regime indicator:
For execution quality benchmarking, comparing your actual slippage to the interval-average slippage tells you whether your order routing is better or worse than the typical market participant. Consistently executing above the median slippage means you're being adversely selected — arriving at the worst moments or using suboptimal routing.
A strategy backtested at mid-price or VWAP but executed with above-average slippage is silently bleeding alpha every trade. Engle, Ferstenberg & Russell (2012) estimated that proper slippage modeling can change the sign of backtest profitability for medium-frequency strategies.
References:
# 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 slippage --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"