Quant Memo
Core

Slippage Models

A flat basis-point slippage assumption is a single number standing in for a cost that actually moves with size, volatility, and urgency. It is usually close enough on a calm day and badly wrong on exactly the days the strategy trades hardest.

Prerequisites: Transaction Costs

The fastest way to add realism to a backtest is to subtract a flat number — say 5 bps — from every trade and call it slippage. It's better than assuming zero cost, and for a long time it's the only cost model most strategies get. The problem is that slippage isn't a constant; it's a function of how much you're trading relative to how much liquidity is available right then, and that ratio is not stable. It's smallest on quiet days and largest exactly when volatility spikes and your model wants to trade the most.

Worked example: the flat estimate that's fine on average and wrong when it matters

A short-vol strategy assumes 5 bps flat slippage on every trade, backtested over three years including March 2020. Average realized slippage across the whole sample, measured after the fact, is close to the assumption — about 6 bps. On the surface the flat model looks calibrated.

But slippage wasn't 6 bps every day; it was 3 bps on 90% of trading days and spiked hard during the volatility event:

PeriodRealized slippageStrategy's trading intensity that day
Typical day3 bpsnormal
Elevated vol (VIX 25-35)11 bps1.5x normal
Vol shock (VIX > 60, March 2020)48 bps3x normal (model wants to trade more)

The flat 5-6 bps average hides that the strategy's worst days for slippage are also its highest-turnover days, because the signal itself reacts to volatility. A model that scales cost with realized volatility and participation rate — something like

slippagecσsize/ADV\text{slippage} \approx c \cdot \sigma \cdot \sqrt{\text{size} / \text{ADV}}

— predicts the 48 bps spike instead of averaging it away, and the difference shows up precisely in the tail month that drives most of a strategy's max drawdown.

flat 5 bps assumption realized, vol-scaled
The flat line looks like a reasonable average of the jagged one — until you notice the spike lands on the strategy's biggest trading day.

Slippage should be modeled as a function of size relative to available liquidity and current volatility, not as a single constant — the constant can average out correctly over a sample while being badly wrong on the specific days that drive drawdown.

Backtesting a strategy whose own trading intensity rises with volatility, using a flat cost model calibrated on average realized slippage, systematically understates cost on the worst days — the exact days where understated cost turns a survivable drawdown into a much deeper one.

A workable middle ground when full order-book simulation isn't available: bucket historical slippage by realized volatility and participation rate, and sample from the matching bucket rather than a single average.

Related concepts

Practice in interviews

Further reading

  • Almgren & Chriss, Optimal Execution of Portfolio Transactions
  • Frazzini, Israel & Moskowitz, Trading Costs of Asset Pricing Anomalies
ShareTwitterLinkedIn