Unit 14, lesson 107

Transaction cost analysis and execution benchmarks

How transaction cost analysis measures implementation shortfall against a paper portfolio, splits it at the arrival price into delay, execution and opportunity cost, and compares it with a VWAP benchmark.

  • Video 107
  • Order books, execution and market making

A portfolio manager decides to buy 10001000 shares when the price is 100100, and by the comparison time only 700700 shares have filled, at an average price of about 100.14100.14. Was the execution expensive? The average fill price leaves out the 300300 shares that were never bought, the price move before trading began and the fees. This lesson derives implementation shortfall as the gap between a paper portfolio and the actual one, splits it at the arrival price, compares it with a VWAP benchmark, and explains why such comparisons do not by themselves measure the quality of a broker or an algorithm.

Key terms

Transaction cost analysis

Definition Transaction cost analysis (TCA) measures the cost of executing an order against a stated benchmark. A measurement is defined only once it fixes the order, meaning its side, its intended quantity QQ and its decision time, together with the reference price, the fills with quantities qiq_i and prices pip_i, the explicit costs such as commissions and fees, the comparison time TT with its price pTp_T, the treatment of shares that were never traded and the cash convention. Explicit costs are paid directly. Implicit costs arise from execution prices that differ from the reference price and from trades that were not completed. A cost can be reported in currency units, per share, or in basis points of a notional, with 1 bp=0.00011 \text{ bp} = 0.0001. Two benchmarks applied to the same order answer different questions and need not agree.

In plain words Transaction cost analysis is careful bookkeeping for trades. Before asking what a trade cost, write down what it is compared with, over which horizon, and what happens to the part that did not trade.

Example The constructed order of this lesson has the following record, with prices in currency units per share and no interest on cash over the comparison horizon.

ItemValue
orderbuy Q=1000Q = 1000 shares
decision pricep0=100p_0 = 100
arrival pricepa=100.05p_a = 100.05
first fill400400 shares at 100.10100.10
second fill300300 shares at 100.20100.20
unfilled300300 shares
comparison pricepT=100.50p_T = 100.50
fees1010 currency units

The fills cost 40040+30060=7010040040 + 30060 = 70100 currency units for 700700 shares, an average price of about 100.143100.143, which by itself says nothing about the 300300 unfilled shares.

Paper portfolio

Definition For a decision to buy Q>0Q > 0 shares at the decision price p0p_0, the paper portfolio buys all QQ shares at p0p_0 at the decision time, with no fees and no market impact, and holds them to the comparison time TT. Its gain at the comparison price pTp_T is

Gpaper=Q (pT−p0).G_{\text{paper}} = Q\,(p_T - p_0) .

The actual portfolio holds the shares that were really bought, the fills qiq_i at prices pip_i with filled quantity Qf=∑iqi≤QQ_f = \sum_i q_i \le Q, marked at the same price pTp_T, and it pays the explicit fees. Cash that was not spent earns no interest under the convention of this lesson, so

Gactual=∑iqi (pT−pi)−fees.\begin{aligned} G_{\text{actual}} &= \sum_i q_i\,(p_T - p_i) \\[0.4em] &\quad - \text{fees} . \end{aligned}

Both gains use the same intended quantity, comparison time, comparison price and cash convention. The paper portfolio is a reference construction. It is not a claim that QQ shares could actually have been bought at p0p_0.

In plain words The paper portfolio is the trade the manager had in mind, done instantly and for free. The actual portfolio is what the trading delivered. Both are valued the same way at the same moment, so that their difference measures the cost of turning the decision into trades.

Example For the constructed order the paper gain is 1000⋅(100.50−100)=5001000 \cdot (100.50 - 100) = 500 currency units. The actual fills gain 400⋅0.40+300⋅0.30=160+90=250400 \cdot 0.40 + 300 \cdot 0.30 = 160 + 90 = 250 before fees and 240240 after the fees of 1010.

Implementation shortfall

Definition Implementation shortfall is the paper gain minus the actual gain, IS⁡=Gpaper−Gactual\operatorname{IS} = G_{\text{paper}} - G_{\text{actual}}. For a buy order, write Q=Qf+(Q−Qf)Q = Q_f + (Q - Q_f) in the paper gain and split pT−p0=(pT−pi)+(pi−p0)p_T - p_0 = (p_T - p_i) + (p_i - p_0) for each fill. The terms qi(pT−pi)q_i (p_T - p_i) cancel against the actual gain, which leaves

IS⁡=∑iqi (pi−p0)+(Q−Qf)(pT−p0)+fees.\begin{aligned} \operatorname{IS} &= \sum_i q_i\,(p_i - p_0) \\[0.4em] &\quad + (Q - Q_f)(p_T - p_0) \\[0.4em] &\quad + \text{fees} . \end{aligned}

The first term is the filled slippage, the cost of the shares bought measured from the decision price. The second is the opportunity cost of the unfilled shares, and the third the explicit fees. For a sell order the paper portfolio sells all QQ shares at p0p_0, unsold shares stay in the actual portfolio at pTp_T, and the same accounting reverses the price differences,

IS⁡=∑iqi (p0−pi)+(Q−Qf)(p0−pT)+fees.\begin{aligned} \operatorname{IS} &= \sum_i q_i\,(p_0 - p_i) \\[0.4em] &\quad + (Q - Q_f)(p_0 - p_T) \\[0.4em] &\quad + \text{fees} . \end{aligned}

A positive shortfall means that the actual portfolio did worse than the paper one. When some shares are unfilled, the opportunity cost is positive when the price moved against the order and negative when it moved in the order’s favor, for example when the price fell after a buy decision and not buying helped. The shortfall is an identity between two gains under the stated conventions. It does not show that the full quantity could have traded at the decision price, and it does not say which part was caused by the execution.

In plain words Shortfall charges the execution for paying more than the decision price on the shares it bought, for the price move on the shares it did not buy, and for the fees. If the price falls after a buy decision, the shares that were not bought were a lucky miss, and their opportunity cost is negative.

Example For the constructed order the filled slippage is 400⋅0.10+300⋅0.20=40+60=100400 \cdot 0.10 + 300 \cdot 0.20 = 40 + 60 = 100, the opportunity cost is 300⋅0.50=150300 \cdot 0.50 = 150 and the fees are 1010, so the shortfall is 260260 currency units. It equals the paper gain minus the actual gain, 500−240500 - 240, and relative to the paper notional Qp0=100000Q p_0 = 100000 it is 2626 bp. If only the comparison price changes, to 99.8099.80, the filled slippage and the fees stay 100100 and 1010, the opportunity cost becomes 300⋅(−0.20)=−60300 \cdot (-0.20) = -60, and the shortfall falls to 5050. The negative term is a comparison with the paper portfolio, not a payment received from anyone.

Arrival price

Definition The arrival price pap_a is the reference price, for example the midpoint, at the moment the order reaches the execution process, which can be later than the decision. Adding and subtracting pap_a in every price difference of the shortfall of a buy order gives

IS⁡=Q (pa−p0)+∑iqi (pi−pa)+(Q−Qf)(pT−pa)+fees.\begin{aligned} \operatorname{IS} &= Q\,(p_a - p_0) \\[0.4em] &\quad + \sum_i q_i\,(p_i - p_a) \\[0.4em] &\quad + (Q - Q_f)(p_T - p_a) \\[0.4em] &\quad + \text{fees} . \end{aligned}

The first term is the delay cost, and it applies to the whole intended quantity, because the pieces pa−p0p_a - p_0 from the filled and the unfilled shares add up to Q(pa−p0)Q(p_a - p_0). The second term is the execution cost of the fills measured from arrival, and the third is the opportunity cost measured from arrival. The decomposition redistributes the same total without dropping any shares. Using only the filled quantity in the delay term while measuring the unfilled opportunity from arrival would leave out the delay on the unfilled shares. Which desk is responsible for each term is a separate question that the algebra does not answer.

In plain words The arrival price splits the story at the moment trading starts. What happened before it is delay, and what happened after it belongs to the execution and to the shares left undone.

Example For the constructed order with pa=100.05p_a = 100.05, the delay cost is 1000⋅0.05=501000 \cdot 0.05 = 50. The execution cost from arrival is 400⋅0.05+300⋅0.15=20+45=65400 \cdot 0.05 + 300 \cdot 0.15 = 20 + 45 = 65, and the opportunity cost from arrival is 300⋅0.45=135300 \cdot 0.45 = 135. With the fees of 1010 the four terms add up to 260260, the same shortfall as before.

VWAP benchmark

Definition The volume-weighted average price of trades jj with volumes vj>0v_j > 0 and prices pjp_j over a specified interval is

VWAP⁡=∑jvj pj∑jvj.\operatorname{VWAP} = \frac{\sum_j v_j\, p_j}{\sum_j v_j} .

The market VWAP pˉmkt\bar p_{\text{mkt}} uses the market’s trades in the benchmark interval, under a stated rule for which trades are included, and the execution VWAP pˉexec\bar p_{\text{exec}} uses the order’s own fills, with weights qiq_i and prices pip_i. For a buy, the VWAP slippage of the filled shares is

Qf (pˉexec−pˉmkt)=∑iqi (pi−pˉmkt),\begin{aligned} &Q_f\,(\bar p_{\text{exec}} - \bar p_{\text{mkt}}) \\[0.4em] &\quad = \sum_i q_i\,(p_i - \bar p_{\text{mkt}}), \end{aligned}

and a negative value means that the fills beat the benchmark. The comparison uses only the filled shares, so it leaves out the unfilled shares and usually the delay before arrival, and it depends on the chosen interval and inclusion rule. A favorable VWAP comparison can therefore come together with a large implementation shortfall.

In plain words VWAP asks whether the order bought at a typical price for the period in which it traded. It does not ask whether the order should have traded sooner, or whether all of it got done.

Example In the constructed benchmark interval the market trades 20002000 shares at 100.10100.10 and 10001000 shares at 100.25100.25, so the market VWAP is (200200+100250)/3000=100.15(200200 + 100250)/3000 = 100.15. The fills cost 7010070100 for 700700 shares, an execution VWAP of about 100.142857100.142857. The VWAP slippage is 70100−700⋅100.15=−570100 - 700 \cdot 100.15 = -5 currency units, so the fills beat the benchmark by 55 currency units while the shortfall of the same order is 260260. Changing the comparison price to 99.8099.80 moves the shortfall to 5050 but leaves both VWAPs unchanged, because the fills have not changed.

Benchmark bias

Definition Benchmark bias is a systematic difference between what a benchmark comparison reports and the execution quality it is meant to measure, caused by the way the benchmark or the sample of orders is built. One source is endogeneity, when the order’s own trades move the benchmark. Another is selection, when only completed orders are evaluated and abandoned decisions, whose opportunity costs can be large, are left out. A third is confounding, when brokers or algorithms receive orders of different size, urgency, timing or market conditions, so that differences in average cost mix the difficulty of the orders with the quality of their execution. The shortfall decomposition is an exact accounting identity, but it does not identify these causal differences. Evaluating a broker or an algorithm causally needs a separate research design, for example random assignment of comparable orders.

In plain words A benchmark can flatter or punish an execution for reasons that have nothing to do with skill. If a buyer’s own trades lift the benchmark, or if the hard orders went to one broker, the comparison is tilted before anything is measured.

Example Suppose the constructed fills took place inside the benchmark interval and the market VWAP is recomputed with them added to the other 30003000 shares, giving (300450+70100)/3700≈100.14865(300450 + 70100)/3700 \approx 100.14865. The VWAP slippage becomes about −4.05-4.05 instead of −5-5, because the benchmark is pulled toward the order’s own prices. In the extreme case where the order is the whole market volume of the interval, its execution VWAP equals the market VWAP and its VWAP slippage is exactly zero, whatever its impact. A buy whose impact raises later market prices in the interval also raises the market VWAP, which makes aggressive buying look better against VWAP than it was.

Check yourself

  1. A buy order for 500500 shares has decision price 5050. It fills completely, 300300 shares at 50.0450.04 and 200200 shares at 50.1050.10, and the fees are 55 currency units. Find the implementation shortfall in currency units and in basis points of the paper notional, and explain why the comparison price does not matter here.
Show the answer

The filled slippage is 300⋅0.04+200⋅0.10=12+20=32300 \cdot 0.04 + 200 \cdot 0.10 = 12 + 20 = 32, and with the fees the shortfall is 3737 currency units. The paper notional is 500⋅50=25000500 \cdot 50 = 25000, so

3725000=0.00148=14.8 bp.\begin{aligned} \frac{37}{25000} &= 0.00148 \\[0.4em] &= 14.8 \text{ bp}. \end{aligned}

Every share was bought, so Q−Qf=0Q - Q_f = 0 and the opportunity cost vanishes. The paper and the actual portfolio then hold the same 500500 shares at TT, and the comparison price cancels from the difference of their gains.

  1. A sell order for 10001000 shares has decision price 100100. By the comparison time 600600 shares have been sold at 99.9099.90, the comparison price is 99.5099.50 and the fees are 66. A colleague applies the buy formula and reports a shortfall of −254-254. Find the correct shortfall and check it by valuing both portfolios.
Show the answer

For a sell the price differences are reversed, so the shortfall is

600⋅0.10+400⋅0.50+6=60+200+6=266\begin{aligned} &600 \cdot 0.10 + 400 \cdot 0.50 + 6 \\[0.4em] &\quad = 60 + 200 + 6 = 266 \end{aligned}

currency units. At TT the paper portfolio holds the cash 1000⋅100=1000001000 \cdot 100 = 100000. The actual portfolio holds the cash 600⋅99.90−6=59934600 \cdot 99.90 - 6 = 59934 and 400400 unsold shares worth 400⋅99.50=39800400 \cdot 99.50 = 39800, a total of 9973499734, and 100000−99734=266100000 - 99734 = 266. The buy formula gives −60−200+6=−254-60 - 200 + 6 = -254, which counts selling below the decision price, and holding unsold shares while the price fell, as gains. The sign convention has to follow the side of the order.

  1. In the constructed buy order, change only the comparison price to 99.8099.80. Compute the four terms of the arrival decomposition and check their total against the shortfall. A colleague computes the delay cost with the filled quantity only. What total does the colleague get, and which amount is missing?
Show the answer

The delay cost is still 1000⋅0.05=501000 \cdot 0.05 = 50 and the execution cost from arrival is still 6565. The opportunity cost from arrival becomes 300⋅(99.80−100.05)=−75300 \cdot (99.80 - 100.05) = -75. With the fees,

50+65−75+10=50,50 + 65 - 75 + 10 = 50,

which matches the shortfall 100−60+10=50100 - 60 + 10 = 50 measured from the decision price. The colleague’s delay term is 700⋅0.05=35700 \cdot 0.05 = 35, which gives a total of 35+65−75+10=3535 + 65 - 75 + 10 = 35. The missing 1515 is the delay on the 300300 unfilled shares, 300⋅0.05300 \cdot 0.05. The opportunity term measured from arrival starts at pap_a, so the move from p0p_0 to pap_a on those shares has to sit in the delay term, and only the full quantity QQ keeps the identity exact.

How this lesson connects