A trading idea is worth only what remains after it is executed
A backtest can show a profit at reference prices while a real strategy loses after trading. Commissions are only one part of the difference.
Trading can cost money through:
- exchange, broker, clearing, and regulatory fees;
- crossing the bid–ask spread;
- slippage between the expected and achieved price;
- market impact caused by the order itself;
- delay while the decision waits to be executed;
- partial or missed fills; and
- financing, borrow, and currency conversion.
The combined gap between a paper decision and the implemented portfolio is called implementation shortfall. Its purpose is accountability: start at the moment the investment decision exists, then explain where value was gained or lost before the desired position was completed.
Cost labels need a reference point
“Slippage” is often used for every difference between a chart price and a fill. That shorthand hides economically different causes:
| Cost component | Comparison being made | Why the distinction matters |
|---|---|---|
| Explicit fees | Fill quantity against a known fee schedule | Usually observable and mechanically attributable |
| Spread cost | Execution price against the contemporaneous midpoint or quote | Describes the price paid for immediacy |
| Delay or timing | Market price when the order becomes eligible against the earlier decision price | Can be favorable or adverse without being caused by the order |
| Market impact | Market response associated with the order’s own liquidity demand | Should change with size, urgency, and market state |
| Opportunity cost | Desired but unfilled quantity against a later evaluation price | Keeps missed trades in the policy result |
| Implementation shortfall | The complete implemented outcome against the paper decision | Reconciles the components under one benchmark |
The components are not always perfectly identifiable from public data. The discipline is still useful: name the reference price, say which effects are modeled or observed, and do not call every adverse difference “impact.”
The decision price is the honest benchmark
Illustrative example. Suppose a signal becomes valid at 10:00 when the market is 100. The strategy fills at 100.30 and later closes at 101.
A backtest that enters at 100 reports a one-point gross move. The executable strategy captured 0.70 before exit costs. The 0.30 difference might contain spread, delay, and impact. It should not disappear simply because 100 is a cleaner chart price.
The benchmark must match when the decision was knowable. A close-based signal cannot use that same close as a frictionless fill unless an order existed beforehand under a different rule.
What implementation shortfall measures
For a buy order, a simplified decomposition can compare:
- Paper portfolio: what would have happened if the complete target position were acquired at the decision price.
- Executed portfolio: what actually filled, at what prices, with what fees.
- Unexecuted amount: the opportunity gain or loss on any quantity that was never filled.
For a buy order, one compact accounting identity is:
is the desired quantity, and are each fill quantity and price, is the decision price, is the evaluation price for the unfilled quantity, and contains explicit fees. For a sell order, apply a consistent side sign so adverse execution still appears as positive cost.
The sign of each component should remain intuitive. Paying above the decision price is an adverse execution cost for a buy. A favorable price movement during delay can produce a negative cost, but it should be identified as market movement or timing—not automatically as execution skill.
Aggressive and passive orders trade different risks
An aggressive order seeks immediate execution and usually crosses the spread. It improves completion certainty but can create greater spread and impact cost.
A passive limit order waits for another participant to trade with it. It may earn the spread, but it can remain unfilled or fill selectively just before price moves against it. A backtest that compares only successful passive fills ignores the opportunity cost and adverse selection of the full policy.
Neither style is universally cheaper. Cost depends on urgency, size, liquidity, signal decay, queue position, and market state.
A complete illustrative order
Illustrative example.
A strategy decides at 10:00 to buy 1,000 shares. The decision midpoint is 100.00. The modeled execution is:
- 600 shares at 100.10;
- 300 shares at 100.20;
- 100 shares unfilled;
- $5 total explicit fees; and
- market price 100.50 at the end of the execution window.
The filled 900 shares paid an average of about 100.13, or exactly $120 above their decision-price value under the stated fills. The unfilled 100 shares missed a 0.50 rise, an opportunity cost of $50 if the paper portfolio still desired them. Adding the $5 fee gives illustrative shortfall of $175 relative to the complete paper decision.
These values are deliberately illustrative, not historical or Arizmic performance. The example shows why “average fill versus close” is incomplete: unfilled quantity belongs in the result.
Build costs in layers
| Layer | Data needed | Appropriate use |
|---|---|---|
| Fixed fees | Schedule and traded quantity | Minimum explicit cost |
| Fixed tick or basis-point sensitivity | Price and turnover | Early break-even analysis |
| Spread-aware model | Historical bid and ask | Cost of immediacy |
| Event/fill model | Trades or quotes | Timing and partial-fill questions |
| Impact model | Size, volume, volatility, participation | Scaling and capacity |
| Queue-aware model | Depth events and queue assumptions | Passive execution claims |
A simple fixed haircut is useful when labeled as sensitivity. It is not evidence that an order could have filled at that cost.
Designing a cost-aware strategy study
Show gross results first, then apply a cost curve. At minimum report:
- turnover and number of execution events;
- break-even cost per unit traded;
- net outcome under several plausible costs;
- performance after one decision-event delay;
- contribution from high-turnover periods;
- fill and non-fill treatment; and
- results by spread and volatility state where data permits.
For high-frequency or short-horizon rules, test whether the gross edge is large relative to the quoted spread before performing elaborate optimization. If a strategy earns less than one plausible round trip, parameter precision is not the main problem.
Important failure modes
- The model fills at the midpoint or close without an executable path.
- A touched limit is treated as a guaranteed full fill.
- Historical spreads are missing or replaced by today’s average.
- Cost stays constant as order size and urgency grow.
- Unfilled passive orders disappear from the sample.
- Favorable delay movement is labeled as execution alpha.
- A strategy’s best parameters are also those most sensitive to cost.
Further reading
- Perold, “The Implementation Shortfall: Paper Versus Reality” (1988) — Introduces implementation shortfall as the difference between a paper portfolio decision and the implemented result, including missed trades. It supplies the canonical accounting framework but does not estimate present-day spreads or impact.
- Madhavan, “Market Microstructure: A Survey” (2000) — Surveys how information, inventory, spreads, trading protocols, and price formation create costs between a decision and a fill. It is conceptual context rather than a current venue or data specification.
- Almgren and Chriss, “Optimal Execution of Portfolio Transactions” (2001) — Formalizes the trade-off between expected market-impact cost and the price risk of waiting. Its linear-impact framework is a useful baseline, not a universal cost calibration.