The execution problem
In December 2000, Robert Almgren and Neil Chriss circulated Optimal Execution of Portfolio Transactions. It appeared in volume 3, issue 2 of the Journal of Risk and is often catalogued as 2001; the journal DOI record uses 2001. Both citation years occur, so the safest reference includes the volume, issue and DOI.
The paper turns one desk problem into a quadratic optimisation. Selling quickly reduces exposure to market moves but demands more liquidity per minute. Selling slowly reduces temporary impact but leaves more inventory exposed to volatility. Almgren-Chriss chooses the holdings path that minimises expected implementation shortfall plus a penalty for its variance.
It does not derive VWAP, and TWAP, VWAP and percentage-of-volume are not all descendants in a strict mathematical sense. Under linear impact and zero risk aversion, however, the model does produce equal-sized trades in equal time intervals: TWAP. That benchmark makes it a useful foundation for algorithmic execution.
Cost, risk and units
Start with shares to sell by time . Split the horizon into intervals of length . Let be shares remaining after trade , with and , and let
be shares sold in interval . The unaffected arithmetic price has absolute volatility , measured in price per share per square-root unit of time. With independent standard-normal shocks , the impacted reference price follows
For a sale, the average execution price is
The first function is permanent impact: it moves subsequent reference prices. The second is temporary impact: it is the concession on the current fill. The linear specification is
With price in dollars per share, shares as the quantity unit and days as time, has units of dollars per share squared, has units of dollar-days per share squared, and is dollars per share. The notation is easy to misuse because is a trading rate, not volatility.
Define implementation shortfall for the sale as the initial mark less realised proceeds:
Under the linear model,
The fixed term assumes a monotone sale programme. The permanent term is path-independent. Scheduling is therefore a contest between the temporary quadratic term, which favours even trades, and inventory variance, which favours early trades. A valid calibration needs .
The path independence is not hand-waving. Using ,
When permanent impact accumulated before each fill is combined with the temporary term, that second sum creates the adjustment inside . The remaining depends only on total quantity. An implementation that instead adds period by period changes both the dimensions and the optimum.
The variance expression has a similarly practical reading. The shock over interval is multiplied by the shares left after that interval's trade, . A schedule holding 80,000 shares through a volatile interval takes four times the variance contribution of one holding 40,000, because exposure enters squared.
The objective is
where has units of inverse dollars so both terms are monetary. This is risk aversion; it is unrelated to Kyle's lambda.
The optimal schedule
Differentiating with respect to each interior holding yields
The exact discrete decay rate is
With , the holdings and child orders are
For small , . Its units are inverse time, so is the programme's characteristic timescale.
The limits are useful unit tests. As , and
which means : TWAP. As , for every , so the programme sells in the first interval. High risk aversion means earlier execution, not passive execution.
Consider shares, day, , dollars per share per , dollars per share squared, dollar-days per share squared, and per dollar. Then
Rounded optimal holdings are 100,000, 84,926, 71,594, 59,730, 49,092, 39,461, 30,639, 22,446, 14,713, 7,282 and zero shares. The programme sells 15,074 shares first and 7,282 last. Recomputing the objective gives an expected cost of 25,761 dollars and a shortfall standard deviation of 92,919 dollars. TWAP costs 24,500 dollars in expectation but has a 106,771-dollar standard deviation. At this chosen , the model pays about 1,261 dollars of expected cost to remove about 13,852 dollars of one-standard-deviation risk.
This implementation reproduces those numbers and handles explicitly:
import numpy as np def ac_schedule(X, T, N, sigma, eta, gamma, risk_aversion): tau = T / N eta_tilde = eta - 0.5 * gamma * tau if eta_tilde <= 0: raise ValueError("eta - gamma*tau/2 must be positive") if risk_aversion == 0: holdings = X * (1 - np.arange(N + 1) / N) else: kappa_tilde_sq = risk_aversion * sigma**2 / eta_tilde kappa = np.arccosh(1 + 0.5 * kappa_tilde_sq * tau**2) / tau times = np.arange(N + 1) * tau holdings = X * np.sinh(kappa * (T - times)) / np.sinh(kappa * T) trades = holdings[:-1] - holdings[1:] expected = 0.5 * gamma * X**2 + eta_tilde / tau * np.sum(trades**2) variance = sigma**2 * tau * np.sum(holdings[1:]**2) return holdings, trades, expected, variance
Sweeping traces the efficient frontier. The low- end has low expected cost and high variance; the high- end has higher impact cost and lower variance. Describing those ends the other way round reverses the model.
Choosing by intuition is rarely stable because its numerical value changes with currency and quantity units. A desk can instead set a shortfall-risk budget, solve for the lowest expected-cost path that meets it and read the corresponding as a Lagrange multiplier. Another option is to specify the dimensionless urgency . Values near zero look like TWAP; larger values front-load progressively. Both approaches make the decision easier to explain than saying a trader is "moderately risk-averse".
The frontier is a model output, not evidence that every point is executable. Participation caps, minimum child sizes, auction windows and venue constraints turn the closed form into a constrained quadratic programme. The unconstrained trajectory is still valuable: it is a benchmark for checking whether those operational constraints, rather than a coding error, are driving the final schedule.
Benchmark choice matters too. Implementation shortfall marks the order at the decision or arrival price, so waiting risk remains visible. VWAP compares fills with the market's volume-weighted price during the execution window and can reward a schedule for following volume even when the asset moves sharply against the original decision. Optimising one benchmark and reporting another can make an economically poor schedule look successful.
A buy programme uses the same machinery with signs reversed, provided costs are defined as paid price minus the initial mark. Mixing sale sign conventions into a buy implementation can make impact appear to improve proceeds. Unit tests should check both directions, the zero-risk-aversion TWAP limit, exact completion at and monotonic holdings.
Calibration and failure modes
The closed form is the easy part. Calibration is where the model earns or loses credibility.
Estimate from mid-prices at a frequency that avoids excessive bid-ask bounce. Estimate temporary impact from execution shortfall against an arrival or contemporaneous benchmark, controlling for participation, spread and volatility. Estimate permanent impact from later mid-price changes, but acknowledge that order flow is selected on signals. A naive signed-flow regression mixes impact with alpha and adverse selection.
Calibration must preserve units across the whole pipeline. If volatility is estimated per square-root year but and are measured in days, divide annual absolute volatility by the square root of the trading-day convention before calculating . If impact is fitted against participation rate rather than shares per day, convert with expected market volume. Silent annual-versus-daily and shares-versus-percent-of-volume mismatches can alter urgency by orders of magnitude while still producing a smooth-looking curve.
Recalibration frequency should match parameter stability. Volatility may update daily or intraday, while impact coefficients need enough parent orders to estimate and can lag sudden liquidity breaks. Stressing , and available volume separately is more informative than applying one blanket cost multiplier, because each input changes the schedule through a different channel.
Back-tests should use information available at the decision time and compare predicted with realised shortfall by urgency bucket. Fitting impact on the same orders used to judge schedule quality gives a reassuring frontier but no evidence that it will survive the next liquidity regime.
Robert Almgren, Chee Thum, Emmanuel Hauptmann and Hong Li's 2005 institutional-order study rejected square-root temporary impact in favour of an exponent of over its sample. That is evidence for concavity, not a universal constant. Venue, asset class, participation and horizon all matter.
The model also assumes deterministic completion, instant temporary-impact decay, independent price shocks, constant coefficients and no volume curve. Real schedules face random fills, time-varying depth, signals and leakage to other traders. Linear permanent impact is defensible against price-manipulation problems in this model class, but real impact decays over several timescales.
Finally, mean-variance is a preference choice. Two shortfall distributions with the same mean and variance can have very different tails. A desk worried about completion or loss limits should compare the quadratic solution with scenario and risk-management constraints.
Almgren-Chriss does not supply a production algorithm by itself. It supplies a benchmark whose assumptions, dimensions and limits are unusually easy to inspect.
Frequently Asked Questions
What does Almgren-Chriss optimise?
It minimises expected implementation shortfall plus risk aversion times shortfall variance, subject to liquidating a fixed quantity by a deadline.
Does permanent impact change the optimal schedule?
Linear permanent impact is path-independent apart from the discrete correction . The main scheduling trade-off is temporary impact against inventory risk.
Why is the optimal schedule front-loaded?
Every share held after a trade contributes to future price risk. Positive risk aversion pays extra temporary impact to remove some of that inventory earlier.
Is risk-neutral Almgren-Chriss VWAP?
No. With equal time intervals and constant linear impact, the risk-neutral limit is TWAP. VWAP requires an intraday volume curve or time-varying liquidity inputs.
What are the units of risk aversion?
If expected cost is in dollars and variance in dollars squared, is inverse dollars. Changing currency units without rescaling changes the stated optimisation.
Which paper should I cite?
Cite Almgren and Chriss, Optimal Execution of Portfolio Transactions, Journal of Risk 3(2), 5 to 39, DOI 10.21314/JOR.2001.041. Note that the manuscript is dated December 2000 while many databases cite the journal issue as 2001.
Skip the £25k programme - try the alternative
Master's programmes are slow and expensive. Quantt is a self-paced alternative. Start free with a real lesson and interview practice, then unlock 50+ courses and your personalised plan.
Free to start · No credit card required