Skip to main content
AI Fin Hub

Calculator

Statistical Arbitrage Capacity Calculator

Estimate maximum strategy AUM from alpha, slippage, fees, daily volume and volatility, and signal half-life. Square-root impact closed-form.

Runs in your browser. Nothing you enter is uploaded, and no account or API key is needed.

Education, not investment advice. Past performance does not predict future results. How we check our numbers.

Inputs

Alpha per trade (bps, before costs)
Slippage per trade (bps)
Fees per trade (bps)
Daily $ volume per name ($M)
Daily volatility per name (%)

Impact is quoted per unit of daily volatility; 1–3% is typical for US equities.

Names traded in parallel

Strategy capacity is per-name capacity × names, assuming similar liquidity.

Signal half-life (days)

Sets turnover (trades per year), which scales annual P&L, not per-trade capacity.

Impact coefficient Y

impact = Y · daily vol · √(trade ÷ daily volume). Published fits run about 0.1 to 1.

Maximum strategy AUM

$2.00M

At this size market impact eats the remaining 8.0 bps of edge and net alpha reaches zero. Practical AUM, where half the gross alpha survives: $125k.

Per name: $2.00M maximum, $125k practical, 1 name.

At the practical AUM

Trades per year

50

trading days ÷ half-life

Annual net return

3.0%

half of gross alpha × trades/yr

Annual net P&L

$4k

impact 2.0 bps per trade

Capacity vs slippage

SlippageMaximum AUMvs current
0.0 bps$3.78M189%
1.0 bps$3.13M156%
2.0 bps$2.53M127%
3.0 bps$2.00M100%
5.0 bps$1.13M56%
8.0 bps$281k14%
12.0 bps$00%
18.0 bps$00%
25.0 bps$00%

Reading the result

Square-root impact: a trade of size Q in a name with daily volume V and daily volatility σ costs Y · σ · √(Q / V) of notional. Capacity is the position at which that cost uses up the alpha left after slippage and fees, so it scales linearly with daily volume and with the square of the remaining edge, and inversely with the square of volatility. Each signal cycle is assumed to trade the full position in one day.

How to use it

  1. Enter alpha per trade, slippage and fees in basis points.
  2. Enter the daily dollar volume and daily volatility of a typical traded name and how many names you trade in parallel.
  3. Set the signal half-life (it sets trades per year) and the square-root impact coefficient.
  4. Read the maximum strategy AUM, where impact uses up the edge, and the practical AUM, where half the gross alpha survives.
  5. Check annual net return and P&L at the practical AUM, and the capacity-vs-slippage table to see how fast capacity falls with costs.

Questions people ask

What does the tool estimate?

How much capital a strategy can trade before its own market impact uses up the edge. Inputs are alpha per trade, slippage and fees, the daily dollar volume and daily volatility of a typical name, the number of names, the signal half-life and an impact coefficient. Outputs are the AUM at zero net alpha, the AUM at half the gross alpha, trades per year and the annual net return and P&L at the practical AUM.

What's the capacity-Sharpe curve?

The tool shows capacity against slippage rather than a Sharpe curve: each row of the table is the maximum AUM at that slippage assumption. Capacity falls with the square of the edge left after costs, so a few basis points of extra slippage can halve it or wipe it out.

Where does the slippage model come from?

Market impact follows the square-root law, impact = Y × daily volatility × √(trade size ÷ daily volume), as estimated by Almgren, Thum, Hauptmann and Li (2005) and documented across markets by Tóth et al. (2011). Slippage and fees are fixed per-trade costs on top. Each signal cycle is assumed to trade the full position within a day.

Does the tool work for non-equity stat-arb?

The square-root form has been observed in futures and other liquid markets as well, but the coefficient differs by market and execution style. Enter a coefficient and a daily volatility that match the market you trade.

Why is capacity so much lower than I'd expect?

Because it scales with the square of the net edge: a strategy with 12 bps of alpha and 4 bps of slippage and fees has 8 bps left, and halving that remaining edge cuts capacity by three quarters. Thin-edge strategies are small by construction, and backtests that ignore impact overstate how much they can run.

  • Playgrounds Cointegration Half-Life Solver

    Engle-Granger residual ADF + Ornstein-Uhlenbeck half-life from any two price/return series. Hedge ratio, p-value, spread chart. Browser-only.

  • Playgrounds Pair Trading Cointegration Tester

    Paste two price series. Engle-Granger cointegration test: OLS hedge ratio, Augmented Dickey-Fuller on residuals, Ornstein-Uhlenbeck half-life, z-score.

  • Playgrounds Execution Simulator

    Estimate execution cost in closed form — square-root permanent impact, linear temporary impact, half-spread, and a latency-drift band. See the slippage a naive backtest hides.

All articles

Use it from code

The same calculation as a JavaScript module you can import. It runs where you import it, with no request, key or rate limit.

import { compute } from "https://aifinhub.io/engines/statistical-arbitrage-capacity.js";

Input and output contract and the guide for agents.