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.
Inputs
Impact is quoted per unit of daily volatility; 1–3% is typical for US equities.
Strategy capacity is per-name capacity × names, assuming similar liquidity.
Sets turnover (trades per year), which scales annual P&L, not per-trade capacity.
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
| Slippage | Maximum AUM | vs current |
|---|---|---|
| 0.0 bps | $3.78M | 189% |
| 1.0 bps | $3.13M | 156% |
| 2.0 bps | $2.53M | 127% |
| 3.0 bps | $2.00M | 100% |
| 5.0 bps | $1.13M | 56% |
| 8.0 bps | $281k | 14% |
| 12.0 bps | $0 | 0% |
| 18.0 bps | $0 | 0% |
| 25.0 bps | $0 | 0% |
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
- Enter alpha per trade, slippage and fees in basis points.
- Enter the daily dollar volume and daily volatility of a typical traded name and how many names you trade in parallel.
- Set the signal half-life (it sets trades per year) and the square-root impact coefficient.
- Read the maximum strategy AUM, where impact uses up the edge, and the practical AUM, where half the gross alpha survives.
- 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.
Related tools
- 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.
Articles
- 7 min read Signal Orthogonality: Why Ensembles Become One Bet
A 10-signal ensemble with pairwise correlation 0.8 is effectively a 1.5-signal ensemble. The math, a two-minute diagnostic, and three axes that work.
- 10 min read Execution Simulator: 50k Shares at 10% Participation
Engine returns 12.59 bps total cost ($2,833 on $2.25M notional) for a 50k-share buy at 10% participation. Splitting across days makes impact worse.
- 7 min read Stat-Arb Capacity: Half-Life Sets the Ceiling
A 7-day half-life, 8bp-edge pair returns just $10 engine maxAum, hitting zero capacity by 8bp slippage. Impact, not headline size, binds a thin edge.
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";