Skip to content

The Square-Root Law of Market Impact: Why Impact Scales Like √Q

Trade twice as much and the price moves roughly 40% more, not twice as much. This regularity is unusually robust across asset classes — and Kyle's classic model says impact should be linear. Here's how the data beat the theory, how theory caught up, and how to use the law to price your own trades.

11 of 12 ~12 min

There’s a regularity that shows up across asset classes, time periods, and execution strategies: the price impact of a trade grows like the square root of the trade size.

Impact(Q)≈Y⋅σ⋅QV\text{Impact}(Q) \approx Y \cdot \sigma \cdot \sqrt{\frac{Q}{V}}

where QQ is the trade size, VV is the daily volume, σ\sigma is the daily volatility, and YY is a coefficient typically in the range 0.5–2.0 (often around 1 for liquid stocks).

This is the square-root law of market impact, documented in US equities (Keim and Madhavan, 1996; Almgren, Thum, Hauptmann, 2005), European equities (Bouchaud and Bonart, 2014), FX (Mancini, Ranaldo, Wrampelmeyer, 2013), futures (Lillo, Farmer, Mantegna, 2003), and crypto (Bouchaud, Bonart, Donier, Gould, 2018). Empirical finance has very few regularities that replicate across this many markets.

Here’s what makes it interesting: microstructure’s most classic theoretical model disagrees with it. The Kyle model (article 6) says impact is linear in QQ — lambda is a constant. The data say sub-linear: Q\sqrt{Q}. This article is the story of the data beating the theory: first the data itself, then how theory caught up, and finally how you use the law at the execution desk. Harris doesn’t devote a chapter to the square-root law, but it is the workhorse of practitioner impact models.

The Data First

Almgren, Thum, and Hauptmann (2005) fit the power-law form directly on a very large sample of real institutional orders from a major trading operation:

Impact(Q)=α+β⋅(QV)γ\text{Impact}(Q) = \alpha + \beta \cdot \left(\frac{Q}{V}\right)^\gamma

Estimates of the exponent γ\gamma from that study and the follow-on literature mostly land between 0.4 and 0.6, clustering near 0.5.

In words: with VV fixed, doubling QQ increases impact by a factor of 20.5≈1.412^{0.5} \approx 1.41, not 2. Quadrupling QQ merely doubles impact. Ten times more QQ gives 10≈3.16\sqrt{10} \approx 3.16 times more impact. This is sub-linear scaling: large orders are less efficient per unit than small ones, but the inefficiency grows slowly — a 100× larger order carries only ~10× more impact, not 100×. For anyone executing size, it’s good news wrapped around bad news: hammering the market costs less than linear extrapolation suggests, but it also means even small orders carry non-trivial impact.

How Theory Caught Up

Three routes have been proposed to close the gap between linear Kyle and square-root data. Each gets part of the story right, and each is missing a corner.

Route one: Kyle plus information decay. Single-period Kyle gives Δp=λQ\Delta p = \lambda Q. But put the informed trader into a multi-period model — building the position over TT periods while the information decays — and the cumulative impact of total flow QQ becomes approximately:

Impact≈λ⋅Q⋅σu2\text{Impact} \approx \lambda \cdot \sqrt{Q \cdot \sigma_u^2}

which is sub-linear in QQ for fixed noise-trading variance σu2\sigma_u^2. The intuition: the more you trade, the more the market maker’s beliefs update, so each subsequent trade has less marginal impact — the first 10% of the order moves the price most, the last 10% least. This route’s contribution is showing that square-root impact is compatible with rational pricing; its missing corner is that “why exactly 0.5” depends on the particular setup.

Route two: the diffusive picture of liquidity. Bouchaud and co-authors (2009, 2010, 2014) argue the square-root law comes from order flow propagating through a population of market participants: each has finite trading capacity and takes time to absorb flow, and the aggregate behaves like a diffusion, with impact growing like the square root of cumulative volume. A minimal toy equation writes impact I(t)I(t) as driven by order flow X(t)X(t) while decaying on its own:

dIdt=α⋅X(t)−β⋅I(t)\frac{dI}{dt} = \alpha \cdot X(t) - \beta \cdot I(t)

a first-order relaxation process, with steady state

I(∞)=αβXI(\infty) = \frac{\alpha}{\beta} X

Note that this toy by itself produces exponential saturation, not yet a square root; to get ⋅\sqrt{\cdot} behavior you must replace the instantaneous decay with a slowly decaying memory kernel — which is exactly what the Bouchaud-school propagator models do. This route’s contribution is generating the observed shape naturally — approximately square-root at short horizons, drifting toward linear at long ones; its cost is a model further from first principles.

Route three: the shape of the order book. Book depth grows with distance from the midprice. If depth at price pp is roughly

D(p)∝exp⁡(p−Mη)D(p) \propto \exp\left(\frac{p - M}{\eta}\right)

for some scale η\eta, a market order of size QQ eats through the book to

M+ηlog⁡(1+Q/D0)M + \eta \log(1 + Q/D_0)

where D0D_0 is depth at the touch. For small QQ that’s approximately linear (M+ηQ/D0M + \eta Q/D_0); for large QQ, logarithmic. Also sub-linear — but log, not square-root. So the visible book alone can’t account for the law; the square-root behavior emerges from the mix of order types and trader behavior, above all the latent liquidity that never rests on the book. The lesson from this route is actually the most useful one: don’t expect a snapshot of the order book to tell you the true cost of a large order.

The Practitioner Form and a Feel for Magnitudes

Practitioners run the law as a parameterized formula:

Impact(Q,T)=Y⋅σ⋅QV⋅f(T)\text{Impact}(Q, T) = Y \cdot \sigma \cdot \sqrt{\frac{Q}{V}} \cdot f(T)

where σ\sigma is daily volatility (annualized divided by 252\sqrt{252}, or daily realized vol), VV is daily dollar volume, YY is an asset-class-specific coefficient (typically 0.5–2.0), and f(T)f(T) is a horizon adjustment whose convention varies by shop — powers like T0.5T^{0.5} are common, and some desks rewrite the whole thing in terms of the participation rate Q/(VT)Q/(VT). The units are (volatility) × (dimensionless ratio), returning a percentage impact.

Why do σ\sigma and VV appear? Because they are the two natural normalizers. In a high-vol environment the price is moving anyway — a 10 bp impact on a 1%-vol day is “small” relative to the natural range, while the same 10 bps on a 0.1%-vol day is “huge” — so impact only becomes comparable across regimes after normalizing by volatility. Volume simply is liquidity: the same dollar size has less impact in a high-volume name because the market is actively absorbing flow. The combination σ⋅Q/V\sigma \cdot \sqrt{Q/V} is the price impact per unit of flow, normalized for natural volatility — it strips out the “obvious” scaling and leaves the structural part.

For a feel of the magnitudes — a $1M trade in a stock with $\sigma = 2%daily,daily,V = $50Mdaily,daily,Y = 1$:

Impact=1⋅0.02⋅1,000,00050,000,000=0.02⋅0.02≈0.02⋅0.141=0.28%\text{Impact} = 1 \cdot 0.02 \cdot \sqrt{\frac{1{,}000{,}000}{50{,}000{,}000}} = 0.02 \cdot \sqrt{0.02} \approx 0.02 \cdot 0.141 = 0.28\%

A $1M trade moves the price 28 bps — a $0.28 move on a $100 stock, a reasonable magnitude for an institutional block.

Python Implementation

import numpy as np

def sqrt_impact(Q, V, sigma, Y=1.0):
    """
    Square-root market impact forecast.
    Q: trade size in dollars
    V: daily volume in dollars
    sigma: daily volatility (decimal)
    Y: impact coefficient (default 1.0)
    Returns: expected price impact as decimal (e.g., 0.002 = 20 bps).
    """
    if V <= 0:
        return np.nan
    return Y * sigma * np.sqrt(Q / V)


# Examples
print(f"$100k in liquid stock:    {sqrt_impact(1e5, 5e8, 0.015)*1e4:.1f} bps")
print(f"$1M in liquid stock:      {sqrt_impact(1e6, 5e8, 0.015)*1e4:.1f} bps")
print(f"$10M in liquid stock:     {sqrt_impact(1e7, 5e8, 0.015)*1e4:.1f} bps")
print(f"$1M in small-cap:         {sqrt_impact(1e6, 5e6, 0.025)*1e4:.1f} bps")

Each doubling of trade size multiplies the output by roughly 2≈1.41\sqrt{2} \approx 1.41 — the concavity is visible directly.

Where the Law Breaks

The square-root law is robust, not universal, and you should know its borders before leaning on it. The size axis has a failure zone at each end. For very small orders (Q/V<0.001Q/V < 0.001, under 0.1% of daily volume), impact is often closer to linear in QQ — square-root behavior only emerges at larger sizes. For very large orders (Q/V>0.1Q/V > 0.1, over 10% of daily volume), impact can grow faster than Q\sqrt{Q} — you’re exhausting the day’s liquidity and impact accelerates. The two orders of magnitude in between are the law’s home turf, and most institutional flow happens to live there. The Almgren-school estimates match this picture: Y≈1Y \approx 1 for liquid US equities when Q/VQ/V sits between 0.001 and 0.1, with YY shrinking below the range, growing above it, and running higher across the board in volatile regimes.

Beyond size, regimes. In trending markets the price is moving with the trend anyway, and impact measured against a trend-adjusted price can come out sub-square-root or even negative. Call auctions (open and close) run on entirely different impact dynamics — the law doesn’t apply there. In crisis periods — crashes and flash events — impact per dollar can run 10–100× normal; the law still holds directionally, but with a much larger YY. And in very illiquid crypto alts the law often fails outright: the book is too thin to support any continuous function. The border summarized in one line: the square-root law is a useful default — in unusual conditions, recalibrate locally.

The Almgren-Chriss Connection

A question that trips people up: Almgren-Chriss (article 9), the canonical optimal-execution model, assumes linear impact — does that contradict the square-root law?

Almgren-Chriss assumes instantaneous temporary and permanent impact both linear in the trading rate vtv_t:

Temporary impact=η⋅vt\text{Temporary impact} = \eta \cdot v_t Permanent impact=γ⋅vt\text{Permanent impact} = \gamma \cdot v_t

The total impact of a trajectory is the integral, which for uniform trading of total size QQ over TT periods gives:

Total temp impact=η⋅Q/T\text{Total temp impact} = \eta \cdot Q / T Total perm impact=γ⋅Q\text{Total perm impact} = \gamma \cdot Q

Altogether ηQ/T+γQ\eta Q/T + \gamma Q — linear in QQ, not square-root. So the two aren’t measuring the same object: Almgren-Chriss captures the per-instant impact, while the square-root law captures the integrated effect over longer horizons once information diffusion is in the picture. In practice both are used, divided by horizon: Almgren-Chriss for short-horizon trajectory optimization (minutes to hours), the square-root law for long-horizon cost estimation (hours to days).

The square-root law has a time dimension of its own worth adding here. A more refined version writes out how impact accumulates during the execution:

Impact(Q,t)=Y⋅σ⋅QV⋅(tT)0.5\text{Impact}(Q, t) = Y \cdot \sigma \cdot \sqrt{\frac{Q}{V}} \cdot \left(\frac{t}{T}\right)^{0.5}

At t=Tt = T (end of execution) you’ve paid the full square-root impact; at t=T/2t = T/2, half of it — a useful interpolation. Trajectory shape therefore matters: uniform trading accumulates impact smoothly, front-loading pays most of it upfront, back-loading defers it to the end.

Using It to Make Trading Decisions

The law’s core job at the execution desk is putting cost and alpha on the same sheet of paper, before the trade. You have a $10M parent order; the options line up from fast to slow. Trade it all at once: pay $\sigma \cdot \sqrt{10M/V}$of impact — for$V = $100M$daily and$\sigma = 2%$, that's $0.02 \cdot \sqrt{0.1} \approx 0.63% = 63$ bps. Trade over the day: each child order pays less, total cost depends on the trajectory, and Almgren-Chriss gives the optimum. Trade over multiple days: lower impact still, but now you’re exposed to alpha decay and price drift — the longer the horizon, the more market risk.

Then do the arithmetic. A $10M trade at 63 bps of expected impact is $63{,}000 of expected cost. If the alpha you expect this trade to capture is only 50 bps, your net is negative — don’t trade. If it’s 100 bps, your net is positive — trade. The rule is cold: act only when alpha exceeds impact. It sounds banal, but it separates “I have a signal” from “does this signal still make money at my size” — and plenty of strategies die on the second question.

There’s a strategic implication hiding here too: the optimal execution speed depends on whether your alpha decays. If your alpha is stable, stretch the execution over the longest horizon you can — trade time for impact. If your alpha evaporates over time, trade fast, accept the higher impact, and capture it before it’s gone. The optimal horizon balances those two forces, and Almgren-Chriss formalizes the balance in a mean-variance framework. Harris’s discussion of dealer behavior (Ch. 13) runs on the same logic implicitly: dealers balance the cost of holding inventory against the cost of demanding immediacy.

Y Is Not a Constant: Calibration

The least honest symbol in the formula is YY. It varies by asset class (equities around 1, FX lower, crypto alts anywhere from 2–5), by market regime (higher under stress), by order type (immediacy-demanding market orders above limit orders), by time of day (higher at the open and close), and by whose flow it is (institutional metaorders measure higher than retail flow). So don’t treat Y=1Y = 1 as a universal truth — estimate it for your own setup.

The literature’s magnitudes are summarized below — read this table as rough directional reference, not calibration values; your numbers will differ by regime and execution method:

Asset ClassY EstimateSource
US Large-Cap0.8 – 1.2Almgren-Thum-Hauptmann 2005
US Small-Cap1.2 – 1.8Keim-Madhavan 1996
European Equities1.0 – 1.5Bouchaud et al. 2014
FX Majors0.4 – 0.8Mancini et al. 2013
Crypto Majors0.8 – 1.5Brauneis et al. 2021
Crypto Alts2.0 – 5.0Various, very noisy
US Treasuries0.6 – 1.0Pasquariello-Vega 2007
Futures (ES)0.7 – 1.0Lillo-Farmer-Mantegna 2003

The good news is that estimating YY from your own data is straightforward. Collect execution records — each trade’s notional QQ, time of day, asset, and realized impact against arrival price or VWAP — then run OLS on

Impacti=Y⋅σi⋅Qi/Vi+ϵi\text{Impact}_i = Y \cdot \sigma_i \cdot \sqrt{Q_i/V_i} + \epsilon_i

Set expectations properly: realized impact is noisy, the R2R^2 typically comes out well below one, and you need thousands of trades before the YY estimate is worth trusting. Once the base estimate exists, refine it — separate estimates by time of day, market regime, and trade type, because YY is not constant along any of those dimensions.

Compressed into three sentences for the desk: impact scales like Q/V\sqrt{Q/V}, so doubling size costs only 1.41× the impact; price every trade beforehand with Y⋅σ⋅Q/VY \cdot \sigma \cdot \sqrt{Q/V} and clear it against alpha — act only when the trade nets positive; and calibrate YY on your own data instead of trusting defaults.

References

  • Harris, L. Trading and Exchanges: Market Microstructure for Practitioners. Oxford University Press, 2003. Ch. 13 (dealers), Ch. 19 (liquidity). ISBN: 978-0-19-514470-3.
  • Almgren, R., Thum, C., Hauptmann, E. “Direct Estimation of Equity Market Impact.” Risk, 2005.
  • Keim, D., Madhavan, A. “The Upstairs Market for Large-Block Transactions: Analysis and Measurement of Price Effects.” Review of Financial Studies, 1996.
  • Bouchaud, J.-P. “Price Impact.” Encyclopedia of Quantitative Finance, 2010.
  • Bouchaud, J.-P., Bonart, J., Donier, J., Gould, M. Trades, Quotes and Prices: Financial Markets Under the Microscope. Cambridge University Press, 2018.
  • Lillo, F., Farmer, J., Mantegna, R. “Master Curve for Price-Impact Function.” Nature, 2003.