Almgren–Chriss Optimal Execution: Market Impact and Timing Risk
See how the Almgren–Chriss model balances temporary market impact against the price risk of holding an unfinished order, with a worked schedule and assumptions.
In this guideA large order creates two competing costs
Short summary
The Almgren–Chriss model chooses an execution path by trading off expected market-impact cost against uncertainty from keeping inventory open. Under a simple linear-impact, fixed-parameter model, greater risk aversion makes the schedule more urgent and front-loaded. “Optimal” means optimal for that stated model and objective; it does not predict a live fill or identify a universally best trading schedule.
A large order creates two competing costs
Suppose a trader wants to buy or sell a fixed quantity before a deadline. Sending it all at once can consume the visible book and move the price against the order. Splitting it into smaller child orders can reduce the rate of trading and the temporary impact paid on each slice, but leaves more of the intended position exposed to price changes for longer. A deadline adds a third practical concern: any shares still unfilled at the end remain outside the target position.
The model associated with Robert Almgren and Neil Chriss makes this choice explicit. It treats a trading schedule as a path through time, estimates the expected cost and variance associated with that path, and describes a frontier between lower expected cost and lower execution uncertainty. The original paper presents the frontier for a simple linear impact model and shows how a trader’s risk preference can select a point on it. See Almgren and Chriss, “Optimal Execution of Portfolio Transactions”.
This is a framework for studying execution mechanics. It does not say whether the underlying investment is attractive, forecast the next price move, or promise that an algorithm can trade at the modeled prices.
Describe the order as remaining inventory
Let X be the number of shares the trader intends to execute, and let T be the time allowed. Define x(t) as the quantity still unexecuted at time t. For a sell program, x(0)=X and a completed order has x(T)=0. For a buy, the same mathematics can describe the unfilled target quantity.
The rate of execution is v(t) = −dx(t)/dt for a sell, so a faster positive rate means inventory falls more quickly. In a discrete schedule, the equivalent state is the remaining quantity after each interval; the amount sent during an interval is the difference between the previous and next inventory values. Defining the state this way prevents a common sign mistake: the order’s traded quantity and the amount still at risk move in opposite directions.
The remaining quantity matters because it is exposed to price variation. In a basic model with constant price volatility σ, the variance contribution is proportional to the time integral of squared inventory, σ² ∫₀ᵀ x(t)² dt. Holding a large residual position for more time therefore raises modeled execution uncertainty. This is price risk around the chosen benchmark, not a prediction that the market will move in one direction.
Separate temporary impact from permanent impact
Market impact describes how the trader’s own activity can make execution prices less favorable. The original framework separates temporary impact, which affects the prices paid for the current child orders, from permanent impact, which shifts the reference price after trades. In a common linear temporary-impact specification, trading at rate v incurs a cost proportional to v² over time, summarized as η ∫₀ᵀ v(t)² dt, where η is the temporary-impact coefficient.
The square captures why concentrating a fixed order into a short burst can be costly in that model: doubling the trading rate more than doubles the modeled temporary-impact cost per unit time. The coefficient is not universal. It has to be estimated for a particular asset, venue, order size, time period, and chosen units. Actual spreads, queue priority, hidden liquidity, fees, partial fills, and market reactions are more detailed than this one term. The original temporary-impact function also includes a fixed per-unit term, often written ε sgn(v), for a spread-like cost. For a monotone order that completes the fixed quantity, this adds a constant total and does not change the schedule choice; the η term isolates the rate-dependent part.
Permanent impact should not be treated as another freely adjustable speed penalty in the simplest linear model. When permanent impact is linear in trading rate and the trader completes a fixed quantity, its expected total contribution can be independent of the precise path. It still affects expected execution cost, but it does not by itself select the schedule in that special case. Nonlinear or transient impact models can change that result. Gatheral’s discussion of market impact explains why impact assumptions need to be checked for consistency rather than treated as universal laws: “No-Dynamic-Arbitrage and Market Impact”.
Minimize expected cost plus a penalty for uncertainty
Write E for expected implementation cost and V for its variance. The classic mean–variance formulation minimizes E + λV, where λ is the trader’s risk-aversion weight. A larger value puts more weight on uncertainty; a smaller value puts more weight on expected cost. In the linear continuous-time version, the schedule-dependent part of the objective can be written as:
η ∫₀ᵀ v(t)² dt + λσ² ∫₀ᵀ x(t)² dt
The first term favors slower trading because it penalizes high execution rates. The second favors faster trading because it penalizes leaving inventory exposed. Their balance produces an efficient cost–risk frontier: moving toward less uncertainty generally requires accepting more expected cost. Bertsimas and Lo’s earlier work studies execution cost optimization over a fixed horizon, while Almgren–Chriss explicitly adds the variance of execution cost to the decision: Bertsimas and Lo, “Optimal Control of Execution Costs”.
The weight λ is not a universal knob with a standard setting. Its numerical meaning depends on the units and scaling of the cost and variance terms, and on how risk is valued by the person responsible for the order. Volatility estimates, impact estimates, order size, and deadline all matter. A schedule is only as meaningful as those inputs and the objective used to choose them.
Read the hyperbolic-sine trajectory
With constant volatility and linear temporary impact, the continuous-time optimal remaining inventory has the form
x(t) = X × sinh(κ(T − t)) / sinh(κT)
Here κ is an urgency parameter. Under one common continuous-time convention, κ² = λσ²/η; in the paper’s discrete model this relation is approached as the time intervals become short. Units and coefficient definitions must match before comparing values of κ across implementations.
When λ approaches zero, so does κ, and the ratio approaches 1 − t/T: the order is spread along a straight-line schedule. Raising risk aversion or volatility increases κ and moves more execution earlier, reducing the time that a large inventory remains open. Raising temporary-impact cost η lowers urgency and spreads more trading across the horizon. None of these comparative statics says that front-loading will produce a better realized fill; it only describes how the stated objective changes.
The formula is sometimes presented as a fully adaptive trading algorithm. In this basic form it is a precomputed trajectory based on parameters fixed before execution. The original paper also discusses extensions and information, but a static base path does not automatically respond to a price jump, a change in liquidity, or a new signal.

A normalized example makes the tradeoff visible
Consider a hypothetical sell order of 1,000 shares with a 60-minute deadline. Suppose the fitted urgency parameter satisfies κT = 2. That dimensionless value specifies the curve without pretending that volatility or market-impact inputs are current market data.
| Elapsed time | Almgren–Chriss inventory remaining | Straight-line TWAP inventory remaining |
|---|---|---|
| 0 minutes | 1,000 shares | 1,000 shares |
| 15 minutes | about 587 shares | 750 shares |
| 30 minutes | about 324 shares | 500 shares |
| 45 minutes | about 144 shares | 250 shares |
| 60 minutes | 0 shares | 0 shares |
For example, after 15 minutes the formula gives 1,000 × sinh(1.5) / sinh(2), or about 587 shares still to sell. The modeled schedule has therefore sold about 413 shares, compared with 250 under straight-line TWAP. The figures are rounded outputs of a deliberately normalized model, not realized prices, forecasts, or a recommendation to sell at that pace. The example also assumes completion exactly at the deadline and omits fees, spread, discrete order sizes, and changing liquidity.
The comparison shows what the risk term does to the path: it shifts activity earlier so the order carries less inventory into the later part of the window. Whether that change is worthwhile depends on how much execution cost it adds and how costly the remaining price exposure is under the trader’s chosen objective.
Calibrate the model before trusting its shape
The coefficients need empirical definitions. Volatility depends on the return series, sampling interval, and annualization or time scaling. Temporary-impact estimates depend on the asset, market venue, participation rate, order size, and whether the data include spread and fees. If one input is measured per minute and another per day, the resulting urgency parameter can be meaningless even if the formula is coded correctly.
A useful analysis reports the chosen horizon, volatility convention, impact curve, risk weight, and any constraints alongside the schedule. It should test how the trajectory changes when each estimate is perturbed. If small changes in η, σ, or λ move most of the order from the end to the start, that sensitivity is a central result, not a detail to hide.
The objective also embeds a preference. Two traders facing identical price and liquidity estimates can choose different schedules if one is more concerned about an adverse price move or an incomplete position. The model makes that choice explicit; it cannot choose the trader’s acceptable tradeoff on their behalf.
Know what the baseline leaves out
The closed-form path assumes a simplified price process and stable model parameters over the execution window. The single-asset version also omits cross-impact from trading related instruments. Real order books have tick sizes, changing depth, queues, venue fragmentation, partial fills, fees, funding for perpetual contracts, and trading constraints. Nonlinear or transient market impact may change the optimal trajectory. A signal about expected returns can also change urgency, but then the problem is no longer the no-alpha baseline described by this formula.
Crypto markets make data conventions especially important because a perpetual contract’s traded price, index, mark, funding flow, and liquidation rules answer different questions. A model applied to such a contract must define the price series and cost horizon it is optimizing. The basic equation does not include funding payments or guarantee execution across exchanges. Do not infer a venue-specific order instruction from a textbook trajectory.
These limits do not make the model useless. They make it a baseline for asking which inputs and tradeoffs drive a schedule. Comparing that baseline with realistic fills, measured impact, and completion outcomes is more informative than labeling one curve “optimal” without stating the model.
Keep execution schedules and performance benchmarks distinct
TWAP and VWAP often refer to both benchmarks and algorithm families. A TWAP benchmark averages prices over time; a TWAP schedule distributes order quantity across time. A VWAP benchmark weights market prices by volume; a VWAP schedule tries to follow an expected volume profile. Almgren–Chriss instead derives a schedule from an explicit cost–risk objective. These approaches can be combined or compared, but the acronyms alone do not specify identical objectives. See VWAP and TWAP benchmarks and schedules.
Implementation shortfall measures a realized gap between an investment decision and the resulting portfolio, including an estimate for unfilled quantity under a chosen horizon. It is an after-the-fact measurement convention, not an optimizer. See how implementation shortfall is calculated. A backtest or broker comparison should keep the decision, benchmark, fees, partial fills, and unfilled remainder aligned before attributing differences to a schedule.
An execution model does not establish that the investment itself has positive expected return. Treat a modeled schedule as one assumption-driven way to organize a parent order, then review realized fills and constraints separately. For more on impact assumptions, return to Gatheral’s market-impact analysis.
Common questions
Q1Is the Almgren–Chriss schedule the same as TWAP?
No. In the basic limit where risk aversion approaches zero, its remaining-inventory curve approaches a straight line, similar to equal-time execution. With a positive variance penalty, the hyperbolic-sine path is more front-loaded. A TWAP benchmark or algorithm can also be defined differently by its data and implementation rules.
Q2Does a higher risk-aversion value mean the order will get a better price?
No. It changes the modeled balance between expected impact cost and execution uncertainty. Trading earlier can reduce exposure time but may raise spread and impact costs; the realized fill still depends on the market.
Q3Can I put the formula directly into a crypto exchange order?
The equation alone does not specify venue rules, contract units, fees, funding, price source, participation caps, or live liquidity. It is a model baseline, not an exchange-ready instruction or investment recommendation.
Sources and further reading
Report an issue
We’ll prepare an email with this article link. Mark receives the report only after you send it
Quick check
Read the guide? Check yourself with 3 questions
Question 01
In the basic model, what does the remaining inventory x(t) represent?
Choose an answer to see the explanation
Options glossary
Clear definitions of essential option terms, from calls, puts, and option chains to IV, Greeks, open interest, and max pain
Browse the options glossary