Market Making and High-Frequency Trading · Market making
23Retail Wholesaling
A retail order to buy fifty shares is routed from a phone to a wholesaler, which fills it at a price slightly better than the best offer on any exchange, keeps the trade, and pays the broker for the privilege. In this chapter’s model, a wholesaler that gives retail orders 30% of the half-spread in price improvement and pays a tenth of a cent a share for them keeps 0.44 cent a share after hedging; the retail trader pays an effective spread of 70% of the quoted one. The same terms offered to institutional orders would lose 0.94 cent a share: the business is the segmentation.
23.1 The economics of retail flow
Book 1, chapter 10 describes the structure: retail brokers route their customers’ marketable orders to wholesalers, off-exchange market makers that fill them as principals, usually at or inside the national best bid and offer, and pay the brokers for the flow. The wholesaler’s revenue per share has five parts:
with the half-spread, the share of it given back as price improvement, the information in the order, the payment and the cost of hedging what the wholesaler will not hold. Everything turns on : retail orders are small, numerous and, over the next minute, nearly uninformed; institutional orders are not.
Definition 23.1 (Flow segmentation)
Flow segmentation is the separation of order flow by its origin (retail, institutional, proprietary) so that each segment trades at prices set by its own expected information and cost, rather than at a single price set by the mix; it is what allows a wholesaler to improve on the quotes that informed flow has made wide.
23.2 Segmentation and pricing
The chapter’s day (Listing 23.1): 20 000 retail orders arriving about once a second, sizes lognormal around a median of 50 shares, 0.1 cent a share of information in the order’s direction, sides driven by a herding sentiment that makes retail buy (or sell) in waves; the stock quoted 2 to 3 cents wide. For comparison, a thousand institutional orders around a median of 2 000 shares, with 1.5 cents of information. The wholesaler fills every order at the quote improved by of the half-spread, pays 0.1 cent a share, holds up to 10 000 shares of inventory and hedges the excess on an exchange at the half-spread plus a 0.3-cent fee (Listing 23.2).
hf_wholesale.by_pi.At no improvement the wholesaler keeps 0.85 cent a share of retail flow and loses 0.57 on institutional flow (Figure 23.2). Each 10% of the half-spread given back costs it 0.125 cent; the retail business breaks even at 68% and never reaches the institutional one. That gap is the value of segmentation, and it is what pays both the improvement and the payment for flow.
23.3 Price improvement and its measurement
Definition 23.2 (Internalisation rate)
The internalisation rate is the share of a market maker’s fills (by shares or by orders) that it keeps against its own inventory rather than offsetting on an exchange or another venue within a short interval.
Price improvement is measured against the national best bid and offer at the order’s arrival. The Rule 605 statistics of Book 1, chapter 10 report it per market centre: the effective spread (twice the distance from the mid to the fill), its ratio to the quoted spread (E/Q), and the improvement per share. In the model at 30% improvement, the retail trader faces a quoted spread of 2.5 cents and an effective spread of 1.75: E/Q is 0.70, and the improvement is 0.375 cent a share.
Improvement against the quote is not the same as a good price. Schwarz, Barber, Huang, Jorion and Odean placed 85 000 simultaneous market orders through six accounts at five brokers: the mean account-level round-trip cost ranged from 0.07% to 0.46%, excluding commissions, because wholesalers gave systematically different prices for the same trades to different brokers; the variation in payment for order flow did not explain it. The internalisation rate here is 87%: the 13% of the retail volume that the wholesaler hedges is the flow that arrived in waves.
As of September 2026 — The rules on retail execution
In its annual report for 2025, Virtu Financial records that in June 2025 the SEC withdrew its pending proposals for an Order Competition Rule (proposed Rule 615 of Regulation NMS), for Regulation Best Execution and for a restriction on volume-based tiered exchange pricing, and that the compliance date of the amendments to Rule 605 of Regulation NMS, previously around 15 December 2025, was postponed to 1 August 2026. On 3 July 2012 the SEC approved the New York Stock Exchange’s Retail Liquidity Program on a pilot basis, with non-displayed retail price improvement orders priced better than the protected best bid or offer by at least $0.001 a share.
23.4 Inventory from one-sided flow
Retail flow nets out over a day but not over minutes: when many retail traders buy the same stock at once, the wholesaler is short all of it. The inventory limit trades hedging costs against risk (Figure 23.3). With a limit of 1 000 shares the wholesaler hedges 0.47 cent a share and nets 0.20 with a daily standard deviation of 0.06; at 10 000 it hedges 0.20 and nets 0.45 with a standard deviation of 0.38; at 50 000 its hedging nearly vanishes but its daily result is dominated by inventory, with a standard deviation of 1.32 cents a share. Herding decides how much must be hedged at all: without it, the same limit hedges 0.9% of the volume; with the persistence of the model’s sentiment, 12.9%.
hf_wholesale.limits.23.5 Rules and the debate
The debate over payment for order flow (Book 1, chapter 10) is about who captures the value of segmentation: the wholesaler, the broker through payments, or the retail trader through improvement. The chapter’s arithmetic shows the room: 1.25 cents of half-spread, less 0.1 of information and 0.2 of hedging, leaves 0.95 cent a share to share out; the model gives 0.375 to the trader and 0.1 to the broker, and the wholesaler keeps 0.475 (0.44 after its inventory’s P&L). The withdrawn Order Competition Rule would have sent many retail orders to auctions where other traders could compete for them; exchanges’ retail liquidity programmes, the NYSE’s approved in 2012, let exchange members offer retail orders sub-penny price improvement on the exchange itself.
Definition 23.3 (Retail liquidity programme)
A retail liquidity programme is an exchange mechanism in which orders identified as retail can execute against non-displayed price-improving orders that only retail orders may take, priced inside the best bid or offer by a fraction of a cent.
23.6 Strategy files
Strategy file 23.1 — Equity retail internalisation
Who pays you, and why. Retail traders, through the part of the spread not given back, for immediacy and a price at or inside the quote.
Instruments and venues. US equities; brokers’ routed flow; exchanges for hedging.
Signal. The quote at arrival; the flow’s segment and expected information by broker and order type.
Sizing and execution. Fill every order at the quote improved by the agreed share; hold up to the inventory limit; hedge beyond it.
Costs. Payment for flow, hedging (0.20 cent a share at a 10 000-share limit in the model), mark-outs, the inventory’s risk.
How it dies. Flow that is less retail than it looks, and regulation of routing; the named episode is Schwarz, Barber, Huang, Jorion and Odean’s finding that the same order earned different prices at different brokers.
Horizon, capacity, infrastructure. Milliseconds to fill, minutes to hedge; the brokers’ order flow agreements.
Backtest honestly. The quote at arrival, the order’s later mark-out by broker, herding days.
Sources. Schwarz et al. (2025); Book 1, chapter 10; this chapter.
Strategy file 23.2 — Retail options flow through price-improvement auctions
Who pays you, and why. Retail options traders, whose orders carry wide spreads and little information.
Instruments and venues. Listed options; exchange price-improvement auctions (Book 1, chapter 24), where the wholesaler’s affiliate may guarantee the order.
Signal. The options’ fair values (chapter 19) and the order’s segment.
Sizing and execution. Guarantee and improve the order in the auction; hedge delta in the stock.
Costs. Payment for flow (higher in options than in stocks), auction allocation rules, hedging.
How it dies. Auction rules that give competitors more of the allocation; Ernst and Spatt’s evidence that option internalisation is imperfectly competitive, which is what supports the payments.
Horizon, capacity, infrastructure. Milliseconds; auction connectivity on every options exchange.
Backtest honestly. Each exchange’s auction allocation as of the date.
Sources. Ernst and Spatt (2022, working paper); Book 1, chapter 24.
Strategy file 23.3 — Exchange retail liquidity programmes
Who pays you, and why. Retail orders that brokers send to an exchange’s retail programme.
Instruments and venues. Exchanges’ retail programmes; non-displayed price-improvement orders.
Signal. The same segmentation, on the exchange: the retail flag.
Sizing and execution. Rest sub-penny improving orders that only retail orders can take; hedge on the lit book.
Costs. Exchange fees; the improvement given.
How it dies. Brokers routing retail flow to wholesalers instead; the named episode is the NYSE’s programme, approved in July 2012 as a pilot.
Horizon, capacity, infrastructure. Milliseconds; exchange membership.
Backtest honestly. Only the retail orders that actually reached the programme.
Sources. SEC order approving the NYSE Retail Liquidity Program (2012).
23.7 Tutorial: fifty shares from a phone
Goal. Decompose a wholesaler’s result on segmented flow and find how much price improvement and how much inventory it can afford. End state: Figures 23.2 and 23.3 and the Rule 605 statistics.
The flow: retail with herding, institutional with information.
if kind == "retail": self.size = np.maximum(1, np.round(rng.lognormal(math.log(50.0), 1.0, n))) s = np.empty(n) x = 0.0 z = rng.standard_normal(n) for i in range(n): x = herd * x + math.sqrt(1.0 - herd * herd) * z[i] s[i] = x p_buy = 0.5 + 0.3 * np.tanh(s) self.side = np.where(rng.random(n) < p_buy, 1.0, -1.0) info = 0.1 if info is None else info else: self.size = np.maximum(100, np.round(rng.lognormal(math.log(2000.0), 0.8, n))) self.side = np.where(rng.random(n) < 0.5, 1.0, -1.0) info = 1.5 if info is None else infoListing 23.1. Retail sizes, the herding sentiment behind their sides, and their information; institutional orders for comparison. code/firm/wholesale/firm_wholesale.py The wholesaler: capture, mark-out, payment, hedging beyond the limit, inventory P&L.
n = flow.n vol = flow.size.sum() capture = float(np.sum(flow.size * flow.half * (1.0 - pi_share))) markout = float(np.sum(flow.size * flow.info)) # information the wholesaler gives up pay = pfof * vol q, hedge_cost, hedged, inv_pnl = 0.0, 0.0, 0.0, 0.0 dt = np.diff(np.concatenate([[0.0], flow.t])) noise = rng.standard_normal(n) * sigma_day * np.sqrt(dt / day_s) for i in range(n): inv_pnl += q * noise[i] q -= flow.side[i] * flow.size[i] if abs(q) > limit: x = abs(q) - limit hedge_cost += x * (flow.half[i] + hedge_fee) hedged += x q = math.copysign(limit, q) net = capture - markout - pay - hedge_cost + inv_pnl return {"volume": float(vol), "capture": capture / vol, "markout": markout / vol, "pfof": pay / vol, "hedge": hedge_cost / vol, "inventory": inv_pnl / vol, "net": net / vol, "hedged_share": hedged / vol, "net_ex_inventory": (capture - markout - pay - hedge_cost) / vol}Listing 23.2. Every order filled at the improved quote; the inventory hedged beyond its limit; the parts per share. code/firm/wholesale/firm_wholesale.py - Sweep the improvement and the limit (
hf_wholesale.by_pi,hf_wholesale.limits); the Rule 605 statistics (firm.wholesale.rule605).
What to change next. Let the payment differ by broker and see who gets the improvement; add price momentum to herding days; route part of the flow to a retail liquidity programme.
23.8 Build: the wholesaler
Purpose. Simulate segmented flow, fill it with price improvement, hedge the residual, and report the parts of the result and Rule 605-style statistics.
Interface. Flow(kind, n, seed, rate, herd, info, half_spread, spread_jitter), wholesale(flow, pi_share, pfof, limit, hedge_fee, sigma_day, seed), rule605(flow, pi_share).
Rules. Cents a share; improvement as a share of the half-spread; hedging at the half-spread plus a fee.
Acceptance tests. code/firm/wholesale/tests/: retail orders smaller and less informed than institutional ones; the decomposition by hand with no noise and no limit; more improvement lowers the net; a tighter limit hedges more; E/Q equals one less the improvement share.
Stretch. Broker-specific payments and improvement; price impact of herding; options flow and auctions.
Sources and further reading
- C. Schwarz, B. M. Barber, X. Huang, P. Jorion, T. Odean, The “actual retail price” of equity trades, Journal of Finance 80(5), 2025, 2507–2541.
- T. Ernst, C. S. Spatt, Payment for order flow and option internalization, working paper, 2022.
- Virtu Financial, annual report on Form 10-K for 2025.
- US Securities and Exchange Commission, Release No. 34-67347 (NYSE Retail Liquidity Program), 3 July 2012.
23.9 Exercises
Exercise 23.1 ★
The quote is 50.00–50.02 and the wholesaler gives 30% of the half-spread. At what price does a retail buy order fill, and what is its effective spread?
Solution
Solution of Exercise 23.1.
The half-spread is one cent; 30% of it is 0.3 cent: the buy fills at $50.017. The effective spread is cents, 70% of the quoted two.
Exercise 23.2 ★
With a half-spread of 1.25 cents, mark-out 0.1, payment 0.1 and hedging 0.2, at what improvement share does the wholesaler break even?
Solution
Solution of Exercise 23.2.
: .
Exercise 23.3 ★
What E/Q ratio does 30% improvement give, and why is it independent of the spread?
Solution
Solution of Exercise 23.3.
E/Q : both spreads scale with the half-spread.
Exercise 23.4 ★★
Why does herding make a wholesaler hedge fourteen times more volume at the same limit?
Solution
Solution of Exercise 23.4.
Without herding, buys and sells alternate at random and the inventory wanders slowly; with herding, runs of buys or sells push it past the limit, and the excess must be hedged: 12.9% of the volume against 0.9%.
Exercise 23.5 ★★
Why could the wholesaler not offer institutional flow the same terms?
Solution
Solution of Exercise 23.5.
Institutional orders carry 1.5 cents of information a share in the model, more than the half-spread: filling them at the quote loses 0.57 cent a share before any improvement.
Exercise 23.6 ★★
Schwarz and co-authors found price dispersion across brokers not explained by payment for flow. What else could explain it?
Solution
Solution of Exercise 23.6.
Differences in the orders’ types, sizes and timing across brokers, the wholesalers’ pricing agreements with each broker (such as improvement commitments), and differences in the brokers’ own routing.
Exercise 23.7 ★★★
Coding. Rerun hf_wholesale.limits: which limit maximises the mean net, and which maximises the mean less the standard deviation?
Solution
Solution of Exercise 23.7.
The mean net is highest at a limit of 10 000 shares (0.45 cent); the mean less the standard deviation is highest at 5 000 (0.39 less 0.21).
Exercise 23.8 ★★★
Find the flaw. “Our E/Q is 0.70, so our customers get 30% of the spread back: the best execution in the market.”
Solution
Solution of Exercise 23.8.
E/Q measures improvement against the quote at arrival, not the price the customer could have obtained elsewhere; the same order can receive different prices through different brokers, and the payment for flow is not in the statistic.
23.10 Problem: Fifty Shares from a Phone
Problem 23.1
Weekend problem — fifty shares from a phone
A wholesaler prices its terms for a broker’s retail flow.
Part I — The business.
- Write the wholesaler’s net per share and name its parts.
- Define flow segmentation.
- Describe the retail and institutional flows of the model.
- What does segmentation pay for?
Part II — Improvement.
- Give the net per share at 0, 30% and 70% improvement, for retail and institutional flow.
- Where does the retail business break even?
- Define the internalisation rate and give the model’s.
- Give the Rule 605 statistics at 30%.
Part III — Inventory and rules.
- What does the inventory limit trade off? Give three points.
- What does herding do to hedging?
- Summarise the dated box.
- Define a retail liquidity programme.
Part IV — The verdict.
- State the named result: the wholesaler’s capture per share net of payment for order flow and hedging, and the retail trader’s price improvement against the displayed spread.
- Who captures the value of segmentation?
- What did Schwarz and co-authors find, and what does it mean for disclosures?
- What would an order competition rule have changed?
- Which strategy file is most exposed to regulation?
- How would you detect institutional flow disguised as retail?
- What should a broker ask a wholesaler for?
- In one sentence: what does a wholesaler buy?
Solution
Solution of Problem 23.1.
- : capture, mark-out, payment for flow, hedging, inventory P&L.
- See Definition 23.1.
- Retail: 20 000 orders, median 50 shares, 0.1 cent of information, herding; institutional: median 2 000 shares, 1.5 cents.
- The improvement to the trader, the payment to the broker and the wholesaler’s margin.
- Retail: 0.85, 0.475 and cent a share; institutional: , , .
- At 68% of the half-spread.
- See Definition 23.2; 87%.
- Quoted 2.5 cents, effective 1.75, E/Q 0.70, improvement 0.375 cent a share.
- Hedging costs against inventory risk: 0.20 net with 0.06 s.d. at 1 000 shares, 0.45 with 0.38 at 10 000, dominated by inventory at 50 000 (s.d. 1.32).
- It makes the flow one-sided in waves: 12.9% of volume hedged against 0.9% without it.
- The SEC withdrew the order competition and best-execution proposals in June 2025; Rule 605’s amendments now apply from August 2026; the NYSE’s retail programme was approved in 2012 with sub-penny improvement.
- See Definition 23.3.
- At 30% improvement and 0.1 cent paid for flow, the wholesaler keeps 0.475 cent a share before inventory P&L (0.44 after), and the trader receives 0.375 cent a share against a 2.5-cent quoted spread (E/Q 0.70).
- All three: the model splits 0.95 cent a share into 0.375, 0.1 and 0.475.
- Wholesalers priced the same orders differently by broker; disclosures should report prices relative to comparable executions, by broker.
- Many retail orders would have been exposed to auctions where others could compete.
- Equity retail internalisation.
- From the flow’s mark-outs by broker and the order sizes and timing.
- Its improvement and fill statistics on the broker’s own orders, against other wholesalers’.
- The right to trade against flow that knows little, and the obligation to price it well.
23.11 Interview questions
Interview question 23.1 ★ trader
Why can a wholesaler fill retail orders inside the quote when exchange market makers cannot?
Solution
Solution of Interview question 23.1.
The wholesaler knows the flow is retail and nearly uninformed; exchange quotes must protect against everyone, including informed traders, so they are wider.
What the interviewer is looking for: segmentation.
Interview question 23.2 ★★ researcher
How would you measure the information in a broker’s order flow?
Solution
Solution of Interview question 23.2.
Mark-outs of its orders at several horizons, by order size, type and time, against a benchmark flow.
What the interviewer is looking for: mark-outs by segment.
Interview question 23.3 ★★ developer
Design the system that prices a retail order in 100 microseconds from the quote, the broker’s terms and the inventory.
Solution
Solution of Interview question 23.3.
Quotes from a consolidated feed, per-broker terms as a lookup table, the inventory as shared state; a function of those three computed on each order, with limits checked in the same path.
What the interviewer is looking for: precomputed terms, shared inventory.
Interview question 23.4 ★★ risk
A meme-stock day sends a wave of retail buys in one name. What limits apply, and what happens to the wholesaler’s quotes?
Solution
Solution of Interview question 23.4.
Per-name inventory and loss limits; hedging beyond them on exchanges; wider or no improvement in the name, and routing to exchanges if the inventory cannot be hedged.
What the interviewer is looking for: limits and graceful withdrawal.
Interview question 23.5 ★★ trader
A broker asks for more payment for flow. How do you decide?
Solution
Solution of Interview question 23.5.
From the net per share of that broker’s flow after improvement, hedging and inventory: pay only what leaves a margin, and compare with the improvement the broker’s customers receive.
What the interviewer is looking for: per-broker economics.
Interview question 23.6 ★★★ researcher
With herding sentiment following an AR(1) of persistence per order, how does the variance of the net order imbalance over orders grow with ?
Solution
Solution of Interview question 23.6.
For an AR(1) sign process the variance of the sum grows like for large : persistence multiplies the imbalance’s variance.
What the interviewer is looking for: long-run variance of an AR(1).