---
title: "The Buy-Side Trading Desk and Its Brokers"
book: "Microstructure and Execution"
subject: quant
language: en
chapter: 20
exercises: 8
source: https://one-course.com/books/quant/10/en/chapter/20-the-buy-side-trading-desk-and-its-brokers
---

# Chapter 20 — The Buy-Side Trading Desk and Its Brokers

A fund’s trading desk sends its orders to six brokers’ algorithms and pays each in commissions. Which broker is best cannot be seen in a quarter’s data, so the desk lets a wheel choose, and measures. This chapter describes what the desk does and the systems it does it with, then simulates a year and more of its flow to answer three questions: how many months of orders it takes to tell the best broker from the second, what a performance-weighted wheel gains and loses, and what happens to a broker ranking when the traders choose who gets the hard orders.

## 20.1 What the desk does

A portfolio manager decides what to buy and sell; the trading desk decides how. It receives the orders, chooses for each a broker, an algorithm and its parameters (or a block negotiation), watches them while they work, and answers for the result under the firm’s best-execution duty (One Quant Book 1, chapter 11). Two systems carry the work.

**Definition 20.1 (Order management system, execution management system).**

An *order management system* (OMS) holds the fund’s orders and positions from the portfolio manager’s decision to settlement: compliance checks, allocations to accounts, the record of what was ordered and done. An *execution management system* (EMS) is the trader’s screen for working orders: market data, brokers’ algorithms and direct market access, and the [child orders](https://one-course.com/books/quant/10/en/chapter/14-the-almgrenchriss-framework#def-mx-the-almgren-chriss-framework-parent) and fills in real time.

The OMS knows the decision time and price; the EMS knows every [child order](https://one-course.com/books/quant/10/en/chapter/14-the-almgrenchriss-framework#def-mx-the-almgren-chriss-framework-parent). TCA (chapter 19) needs both, and the most common flaw in a desk’s data is that the decision time never left the portfolio manager’s head.

## 20.2 High touch and low touch

**Definition 20.2 (High-touch and low-touch trading).**

*High-touch trading* hands an order to a person at the broker (a sales-trader or cash trader, One Quant Book 1, chapter 2), who works it with judgement, finds natural counterparties for blocks, and may commit the broker’s capital. *Low-touch trading* sends it to the broker’s electronic channels (algorithms, direct market access, smart routing), with the buy-side trader choosing and supervising.

High touch is for orders whose size or information makes the market’s reaction the main cost: a large block in an illiquid stock, a trade the fund does not want seen (chapter 9’s indications of interest and [conditional orders](https://one-course.com/books/quant/10/en/chapter/9-dark-pools-and-blocks#def-mx-dark-pools-and-blocks-conditional)). Low touch is for the rest, which is most orders by count. The line moves with the order’s difficulty, and so does the comparison of brokers: a broker that gets the hard orders looks expensive whatever it does.

## 20.3 Algo wheels

**Definition 20.3 (Algo wheel).**

An *algo wheel* allocates the desk’s low-touch orders among brokers’ algorithms by a rule rather than by the trader’s choice: at random, in rotation, stratified by the order’s difficulty, or weighted by past performance, so that each broker’s results can be compared on comparable flow.

A wheel is an A/B test (One Quant Book 7, chapter 21) whose randomisation unit is the order. The simulated desk of this chapter sends 600 orders a month to six brokers. Each order’s difficulty is its [pre-trade cost estimate](https://one-course.com/books/quant/10/en/chapter/19-transaction-cost-analysis#def-mx-transaction-cost-analysis-pretrade) (chapter 19), lognormal with a mean of 15 basis points and a standard deviation of 25; its cost is the broker’s effect plus that difficulty plus noise, Student $t$ with four degrees of freedom and a standard deviation of 30 basis points (the heavy tails of real execution costs). The brokers’ effects are 0, 3, 4, 5, 6 and 8 basis points: broker 1 is the best, broker 2 is 3 basis points worse.

The minimum detectable effect (One Quant Book 7, chapter 21) sets how long the wheel must turn. To detect a difference $\delta$ between two brokers with a two-sided test at 5% and a power of 80% (One Quant Book 4, chapter 12), each needs $2\sigma^2(z_{0.975}+z_{0.8})^2/\delta^2$ orders; with six brokers sharing 600 orders a month, $\delta=3$ and $\sigma=30$, that is 15.7 months. Without difficulty adjustment the noise includes the orders’ difficulty, $\sigma=\sqrt{30^2+25^2}=39.1$, and it takes 26.6 months.

```python
def months_needed(delta: float, sd: float, orders_per_month: float, k: int,
                  alpha: float = 0.05, power: float = 0.8) -> float:
    z = norm.ppf(1 - alpha / 2) + norm.ppf(power)
    per_broker = 2 * sd**2 * z**2 / delta**2
    return per_broker * k / orders_per_month
```

***Listing 20.1.** The months of a uniform wheel needed to detect a difference between two brokers: the orders each broker needs for a two-sided test at the chosen power, times the number of brokers, over the desk’s monthly flow. code/firm/algowheel/firm_algowheel.py*

[Figure 20.1](#fig-mx-the-buy-side-trading-desk-and-its-brokers-power) checks the formula by simulation: 300 desks, each testing broker 2 against broker 1 every two months. The adjusted test reaches 80% power after 16 months, the raw one after 24. Stratifying the wheel by difficulty (each broker gets the same mix of orders within twenty difficulty buckets) makes the raw comparison slightly more precise, a standard deviation of 1.51 basis points after a year against 1.59 at random, but adjustment does far more: it removes the difficulty from the noise instead of balancing it.

![The probability that a uniform wheel shows broker 2 significantly worse than broker 1 (a true difference of 3 basis points), against the months of flow: 300 simulated desks. Data: mx_wheel.power_study.](https://one-course.com/images/onecourse/chapters/quant-10/mx-the-buy-side-trading-desk-and-its-brokers/fig-7cc6f5204148.svg)

***Figure 20.1.** The probability that a uniform wheel shows broker 2 significantly worse than broker 1 (a true difference of 3 basis points), against the months of flow: 300 simulated desks. Data: `mx_wheel.power_study`.*

A uniform wheel pays for its knowledge: it sends five-sixths of the flow to brokers that are not the best, 4.33 basis points an order above always using broker 1. A performance-weighted wheel spends less. Thompson sampling keeps a posterior for each broker’s adjusted cost and sends each order to the broker whose sampled cost is lowest; it learns as it goes ([Figure 20.2](#fig-mx-the-buy-side-trading-desk-and-its-brokers-thompson)). Over 24 months it sent 87.2% of the orders to broker 1 (97.5% in the last month) at an excess cost of 0.54 basis points an order. The price is information: broker 2 received 5.4% of the flow, and the test of broker 1 against broker 2 had a power of 88% after 24 months, against 100% for the uniform wheel, which also knows the other four brokers equally well. A wheel that must also keep brokers engaged and detect a broker that gets worse needs a floor on each broker’s share.

![The share of each month’s orders sent to the best broker by a Thompson-sampling wheel and by a uniform one, averaged over 60 simulated desks. Data: mx_wheel.thompson_study.](https://one-course.com/images/onecourse/chapters/quant-10/mx-the-buy-side-trading-desk-and-its-brokers/fig-7012295c903a.svg)

***Figure 20.2.** The share of each month’s orders sent to the best broker by a Thompson-sampling wheel and by a uniform one, averaged over 60 simulated desks. Data: `mx_wheel.thompson_study`.*

## 20.4 Evaluating brokers

**Definition 20.4 (Broker scorecard).**

A *broker scorecard* is the desk’s periodic report on each broker: orders and value traded, costs against the agreed benchmarks raw and adjusted for difficulty with their standard errors, and softer measures (service, capital commitment, the quality of block liquidity), from which the desk sets next period’s allocation.

| broker | orders | raw cost | adjusted cost | s.e. | rank |
| --- | --- | --- | --- | --- | --- |
| broker 1 | 1 175 | 15.4 | 15.1 | 0.9 | 1 |
| broker 2 | 1 246 | 16.7 | 17.7 | 0.9 | 2 |
| broker 3 | 1 171 | 18.6 | 18.7 | 0.9 | 3 |
| broker 4 | 1 169 | 21.9 | 21.0 | 0.9 | 5 |
| broker 5 | 1 207 | 20.5 | 20.6 | 0.8 | 4 |
| broker 6 | 1 232 | 22.9 | 22.7 | 0.8 | 6 |

***Table 20.1.** A year of the uniform wheel as a scorecard: costs in basis points at the average difficulty, with robust standard errors. The true effects are 0, 3, 4, 5, 6 and 8 basis points above broker 1. Data: `mx_wheel.card`.*

The scorecard of [Table 20.1](#tab-mx-the-buy-side-trading-desk-and-its-brokers-card) ranks brokers 4 and 5 the wrong way round: their true difference is 1 basis point and the standard errors are 0.8 to 0.9. A ranking is a point estimate; the scorecard must show the errors. Anand, Irvine, Puckett and Venkataraman (2012) found that some brokers deliver better executions consistently over time, so persistent differences exist, but finding them takes years of a desk’s flow or the pooled flow of many desks.

Without a wheel the comparison can be worse than noisy. Suppose the desk’s traders send the hardest fifth of the orders to the broker they trust most, broker 1, and the rest to the other five. After a year, the raw scorecard ranks broker 1 last, 35.1 basis points worse than broker 2; adjusted for difficulty it ranks it first, 3.8 basis points better than the next. The adjustment works here only because the difficulty model is right; with a wrong model, only randomisation protects the comparison.

## 20.5 Paying for research and execution

**Definition 20.5 (Commission sharing agreement, research unbundling).**

A *commission sharing agreement* lets a fund pay commissions to an executing broker and direct part of them to other firms that provide research. *Research unbundling* separates the payment for research from the payment for execution, so that each is priced and chosen on its own.

Bundled commissions tie the choice of broker to the research the fund wants, which is another reason the desk’s allocation may not follow execution quality alone. The rules have moved several times.

**As of September 2026 — Paying for research.**

MiFID II, applied from 3 January 2018, required investment firms to separate charges for research from charges for execution: research paid from the firm’s own resources or from a research payment account agreed with clients. In the United Kingdom the FCA allowed joint payments for research and execution again from 1 August 2024 (policy statement PS24/9), under conditions. In the EU, Directive (EU) 2024/2811 of 23 October 2024 (part of the Listing Act) lets firms choose to pay jointly or separately, if they tell clients and assess the research each year; member states had to apply it from 6 June 2026. In the United States, SEC staff no-action relief of 26 October 2017 let broker-dealers receive separate research payments from MiFID II firms without being regulated as investment advisers; extended in 2019, it expired on 3 July 2023.

For the desk, unbundling has a practical consequence: once research is paid separately, the execution budget can follow the scorecard.

## 20.6 Tutorial: an algo wheel

**Goal.** Simulate a desk’s flow over six brokers, run uniform, stratified and Thompson-sampling wheels, evaluate the brokers with and without difficulty adjustment, and compute the months needed to rank them. **End state:** Figures [20.1](#fig-mx-the-buy-side-trading-desk-and-its-brokers-power) and [20.2](#fig-mx-the-buy-side-trading-desk-and-its-brokers-thompson), [Table 20.1](#tab-mx-the-buy-side-trading-desk-and-its-brokers-card) and the numbers of sections 3 and 4.

1. **Flow.** `mx_wheel.desk(months, seed)` , `cost_of(broker, flow)` .
2. **Allocate.** `firm_algowheel.random_allocation` , `stratified_allocation` , `Thompson` .
3. **Evaluate.** `evaluate(cost, broker, difficulty, k, adjust)` on `firm.tca` ’s clustered regression, `scorecard` ; `months_needed` .
4. **Studies.** `power_study()` , `stratified_study()` , `thompson_study()` , `routing_study()` , `card()` ; draw with `fig_wheel.py` .

**What to change next.** Let a broker’s effect drift over time and see how fast each wheel notices; add a floor to Thompson sampling’s shares; use CUPED (One Quant Book 7, chapter 21) with the pre-trade estimate as the covariate.

## 20.7 Build: algo wheel

**Purpose.** The desk’s allocation and evaluation of brokers, used by chapter 28’s [execution algorithm](https://one-course.com/books/quant/10/en/chapter/16-benchmark-algorithms#def-mx-benchmark-algorithms-algo) to compare its own versions.

**Interface.** `random_allocation(n, k, rng)`, `stratified_allocation(difficulty, k, buckets, rng)`, `Thompson(k, prior_mean, prior_sd, noise_sd)` with `choose` and `update`, `evaluate(cost, broker, difficulty, k, adjust, clusters)`, `months_needed(delta, sd, orders_per_month, k, alpha, power)`, `scorecard(cost, broker, difficulty, k, names, clusters)`.

**Rules.** Costs in basis points, positive when paid; difficulty is the pre-trade estimate, known before allocation; broker effects reported at the average difficulty with clustered standard errors.

**Acceptance tests.** `code/firm/algowheel/tests/`: stratification balances difficulty better than chance; the adjusted evaluation recovers planted effects that the raw one distorts; the months formula; Thompson sampling concentrates on the best broker.

**Stretch.** Time-varying effects; share floors; pooling across desks.

Sources and further reading

- A. Anand, P. Irvine, A. Puckett and K. Venkataraman, “Performance of institutional trading desks: an analysis of persistence in trading costs”, *Review of Financial Studies* 25(2), 2012.
- FCA, PS24/9, “Payment optionality for investment research”, 2024.
- Directive (EU) 2024/2811 amending Directive 2014/65/EU, 23 October 2024.
- SEC, press release 2017-200 (26 October 2017), and Commissioner M. T. Uyeda, statement on the expiration of the staff no-action letter on MiFID II, 5 July 2023.

## 20.8 Exercises

**Exercise 20.1 ★.**

How many orders does each broker need for a 3-basis-point difference to be detected with 80% power at 5%, with a noise of 30 basis points?

**Solution of Exercise 20.1.**

$2\times30^2\times(1.960+0.842)^2/3^2=1\,570$ orders each.

**Exercise 20.2 ★.**

The desk drops to three brokers. How many months does the adjusted comparison of the best two now need?

**Solution of Exercise 20.2.**

$1\,570\times3/600=7.8$ months: fewer brokers share the flow, so each gets its orders faster.

**Exercise 20.3 ★.**

What is the excess cost per order of a uniform wheel over always choosing broker 1?

**Solution of Exercise 20.3.**

The average of the effects, $(0+3+4+5+6+8)/6=4.33$ basis points an order.

**Exercise 20.4 ★★.**

Why does stratification help the raw comparison so little here?

**Solution of Exercise 20.4.**

Stratification balances the difficulty mix across brokers but leaves each order’s difficulty in the noise; random allocation already balances it on average, and with heavy-tailed difficulty the extreme orders within the top bucket still land unevenly. Adjustment subtracts the difficulty itself.

**Exercise 20.5 ★★.**

Thompson sampling saves 3.8 basis points an order. What does it give up, and when would a desk prefer the uniform wheel?

**Solution of Exercise 20.5.**

Information about the other brokers: broker 2 got 5.4% of the flow and the best-pair test fell to 88% power, and brokers 3 to 6 are barely observed, so a change in any of them would go unseen. A desk that needs to monitor every broker, or expects effects to drift, prefers the uniform wheel or a bandit with share floors.

**Exercise 20.6 ★★.**

Why did the raw scorecard rank broker 1 last when the traders sent it the hardest orders, and what assumption does the adjustment rely on?

**Solution of Exercise 20.6.**

Its orders were the hardest fifth, whose difficulty alone costs far more than the effects between brokers. The adjustment assumes the difficulty model is right (here, cost rises one for one with the pre-trade estimate) and extrapolates it to orders that only broker 1 received.

**Exercise 20.7 ★★★.**

*Coding.* With the noise’s standard deviation halved (15 basis points), how many months do the adjusted and raw comparisons need by the formula?

**Solution of Exercise 20.7.**

Adjusted: 3.9 months; raw ($\sigma=\sqrt{15^2+25^2}=29.2$): 14.8 months. With less noise, the difficulty dominates the raw comparison and adjustment matters more.

**Exercise 20.8 ★★★.**

*Find the flaw.* “After a quarter of the wheel, broker 3 is 2 basis points cheaper than broker 2, so we move its flow up.”

**Solution of Exercise 20.8.**

A quarter is 1 800 orders, 300 a broker: the standard error of a difference between two brokers is about $30\sqrt{2/300}=2.4$ basis points, so 2 basis points is noise, and the true order here is the opposite.

## 20.9 Problem: Six Brokers, One Wheel

**Problem 20.1.**

Weekend problem — six brokers, one wheel

A desk’s head asks how long its new wheel must run before it can say which broker is best, and whether it should weight the wheel by performance.

**Part I — The desk.**

1. What do the OMS and the EMS each hold, and why does TCA need both?
2. Distinguish high-touch and [low-touch trading](#def-mx-the-buy-side-trading-desk-and-its-brokers-touch) and say which orders go where.
3. Why does the difficulty of the orders a broker receives distort its scorecard?
4. Define an [algo wheel](#def-mx-the-buy-side-trading-desk-and-its-brokers-wheel) and its randomisation unit.

**Part II — How long.**

5. Describe the simulated flow and the brokers’ effects.
6. Derive the orders each broker needs for a two-sided test at 5% with 80% power.
7. Why does the raw comparison need more months than the adjusted one?
8. *State the named result* : the months of flow needed to tell the best broker from the second with 80% power, with and without difficulty adjustment.
9. What does stratification add?

**Part III — Weighting by performance.**

10. How does Thompson sampling allocate?
11. Give its share of flow to the best broker, its excess cost and its power, against the uniform wheel’s.
12. What would you add to protect the desk against a broker that gets worse?
13. Read the scorecard: what can and cannot be concluded about brokers 4 and 5?

**Part IV — Judgement and money.**

14. What did the traders’ routing do to the raw ranking, and what did adjustment recover?
15. What did Anand, Irvine, Puckett and Venkataraman find about persistence?
16. Define a [commission sharing agreement](#def-mx-the-buy-side-trading-desk-and-its-brokers-csa) and [research unbundling](#def-mx-the-buy-side-trading-desk-and-its-brokers-csa) .
17. Summarise where research payment rules stand in the UK, the EU and the US.
18. Why does unbundling matter to the wheel?
19. What would you tell the head of the desk?
20. In one sentence: why does a desk randomise?

**Solution of Problem 20.1.**

**1.** The OMS holds orders, decisions and positions; the EMS the [child orders](https://one-course.com/books/quant/10/en/chapter/14-the-almgrenchriss-framework#def-mx-the-almgren-chriss-framework-parent) and fills. TCA needs the decision time and price from one and the executions from the other. **2.** High touch: a person at the broker works the order; low touch: the broker’s electronic channels. Large, sensitive orders go high touch. **3.** A broker given harder orders pays more whatever its skill. **4.** A rule that allocates orders among brokers; the order. **5.** 600 orders a month, difficulty lognormal (mean 15, s.d. 25 basis points), noise $t_4$ with s.d. 30; effects 0, 3, 4, 5, 6, 8. **6.** $2\sigma^2(z_{0.975}+z_{0.8})^2/\delta^2$ orders each: 1 570 for $\delta=3$, $\sigma=30$. **7.** Its noise includes the orders’ difficulty ($\sigma=39.1$). **8.** *Named result*: with difficulty adjustment 16 months (15.7 by the formula), without it 24 months in simulation (26.6 by the formula). **9.** A slightly more precise raw comparison: s.d. 1.51 against 1.59 after a year. **10.** It samples each broker’s posterior adjusted cost and sends the order to the lowest. **11.** 87.2% to broker 1 (97.5% in the last month), 0.54 basis points excess, power 88%; uniform: 16.7%, 4.33, 100%. **12.** A floor on each broker’s share and a forgetting factor in the posteriors. **13.** Their true difference is 1 basis point with standard errors of 0.8 to 0.9: their order is not established. **14.** Raw, broker 1 ranked last, 35.1 basis points worse than broker 2; adjusted, first, 3.8 better than the next. **15.** Some brokers deliver better executions consistently over time. **16.** See the definitions. **17.** UK joint payments allowed again since 1 August 2024; EU choice of joint or separate payment applied from 6 June 2026; US no-action relief expired on 3 July 2023. **18.** Bundled payments tie the allocation to research; unbundled, it can follow execution quality. **19.** Adjust for difficulty, run the wheel uniformly for about a year and a half before ranking the top two, and use a floored bandit only once the ranking is clear. **20.** So that the brokers’ orders differ only by chance and their costs can be compared.

## 20.10 Interview questions

**Interview question 20.1 ★ trader.**

When would you give an order to a sales-trader rather than an algorithm?

**Solution of Interview question 20.1.**

When the order is large relative to liquidity, information-sensitive, or needs a natural counterparty or the broker’s capital: a block in an illiquid name, a trade around an event.

*What the interviewer is looking for: Size and sensitivity; blocks and capital.*

**Interview question 20.2 ★★ researcher.**

How would you design an [algo wheel](#def-mx-the-buy-side-trading-desk-and-its-brokers-wheel)’s evaluation so that a broker cannot game it?

**Solution of Interview question 20.2.**

Randomise the allocation, fix the benchmark (arrival) and the difficulty model in advance, measure all orders including cancelled ones (opportunity cost), and look at reversion and fill rates, so that a broker cannot pick easy orders, finish only the easy parts, or trade to its benchmark.

*What the interviewer is looking for: Randomisation; a fixed benchmark; completeness.*

**Interview question 20.3 ★★ researcher.**

How long must a wheel run to rank brokers 3 basis points apart, and what shortens it?

**Solution of Interview question 20.3.**

With 600 orders a month over six brokers and a noise of 30 basis points, about 16 months adjusted; fewer brokers, more flow, better difficulty adjustment (less residual noise) or variance reduction with pre-trade covariates shorten it.

*What the interviewer is looking for: The power calculation; the levers.*

**Interview question 20.4 ★★ developer.**

What must the OMS and EMS record for the desk’s TCA and wheel to work?

**Solution of Interview question 20.4.**

The decision time and price, the order’s instructions and changes, the broker and algorithm with parameters, every [child order](https://one-course.com/books/quant/10/en/chapter/14-the-almgrenchriss-framework#def-mx-the-almgren-chriss-framework-parent) and fill with venue and time stamps, and the wheel’s allocation decision and its random seed.

*What the interviewer is looking for: Decision data; the allocation record.*

**Interview question 20.5 ★★ mle.**

Would you run the wheel as a bandit? What are the risks?

**Solution of Interview question 20.5.**

It saves cost once the best broker is clear, but it starves the others of flow (their estimates decay), confounds time trends with allocation, and brokers may react to their share. Use floors, forgetting, and a uniform period to start.

*What the interviewer is looking for: Exploration versus exploitation; drift; incentives.*

**Interview question 20.6 ★★★ bank.**

You run a broker’s algorithm business. A client’s wheel ranks you fifth of six after one quarter. What do you do?

**Solution of Interview question 20.6.**

Ask for the order-level data and the method, show that one quarter cannot separate brokers a few basis points apart (standard errors), check the difficulty of the orders you received, and fix whatever the data show (reversion, fill rates, venue choices) rather than argue the rank.

*What the interviewer is looking for: Statistical humility; order-level evidence.*
