Square-Root Market Impact Calibration Playbook (Production-Focused)

2026-02-21 · finance

Square-Root Market Impact Calibration Playbook (Production-Focused)

Date: 2026-02-21 16:04 KST
Category: research
Tags: execution, market-impact, slippage, calibration, microstructure

Why this note

Backtests often assume impact is a fixed bps haircut or a linear function of order size. In live trading, impact is nonlinear, regime-dependent, and strongly tied to participation rate and liquidity state.

A practical baseline is the square-root form:

[ \text{Impact (bps)} \approx Y \cdot \sigma_{\text{daily}} \cdot \sqrt{\frac{Q}{V}} ]

This memo is a practical guide for calibrating and operating that model without lying to yourself.


1) Data contract for calibration

For every parent order, log at minimum:

  1. Decision timestamp + decision reference price
  2. Parent side (buy/sell), target quantity, participation cap
  3. Child fills (time, qty, price, venue/route)
  4. Arrival spread and spread distribution during execution
  5. Realized participation trajectory (q_t / v_t)
  6. Benchmark returns over execution window (to separate drift from impact)
  7. Post-trade markouts (e.g., +1m, +5m, +30m)

Without a parent-order dataset, impact “calibration” is just curve-fitting noise from mixed intents.


2) Decompose cost first, calibrate impact second

Before fitting square-root impact, split implementation shortfall into:

If this decomposition is skipped, the impact coefficient (Y) will absorb everything (including bad scheduling), making it unstable and unusable.


3) Robust fitting procedure

Use robust regressions, not plain OLS, because tails dominate execution data.

Recommended fit target

Practical rules

If (Y) swings wildly week to week, you don’t have regime segmentation yet.


4) Regime overlays (where most edge lives)

Square-root baseline is the floor, not the whole house. Add multiplicative overlays:

[ \hat{c} = Y \cdot \sigma \sqrt{Q/V} \cdot f_{spread} \cdot f_{toxicity} \cdot f_{volshock} ]

These overlays prevent naive underestimation exactly when costs matter most.


5) Control loop for live execution

Operationalize the model as a feedback loop:

  1. Pre-trade estimate: expected cost band (p50/p90)
  2. In-trade monitor: realized vs expected trajectory
  3. Policy switch: if realized cost breaches threshold, reduce POV cap or pause
  4. Post-trade attribution: classify breach reason (spread, toxicity, delay, impact)
  5. Recalibration queue: promote repeated breaches into parameter updates

No control loop = model drift hidden as “market was weird today.”


6) Risk guardrails

Use model output for sizing and go/no-go decisions:

Execution model should be a risk gate, not just a reporting metric.


7) Common failure modes

  1. Mixing child and parent levels in one fit (invalid scale)
  2. Using stale ADV/vol estimates in fast regime shifts
  3. Ignoring side asymmetry (buy/sell cost differences in stress)
  4. Static (Y) across all assets (guaranteed misspecification)
  5. No benchmark drift adjustment (trend mistaken for impact)

8) Minimal implementation checklist


Closing thought

Square-root impact is useful because it is simple enough to run and rich enough to be wrong in informative ways. Treat it as a baseline model wrapped in regime-aware controls, and it becomes operationally valuable rather than academically decorative.