Microstructure and Execution · Execution
7Fees, Rebates and Venue Economics
The same stock is bid at the same price on two exchanges. One pays the resting order a rebate and has twenty thousand shares queued ahead; the other charges the resting order a fee and has eight hundred. A trader who wants to be filled should pay to stand in the short line. Exchange fees are a few hundredths of a cent per share, but the spread of a liquid stock is one cent, and the fee split between the side that rests and the side that takes changes where orders go, how long queues are and who gets picked off. This chapter prices orders net of fees, shows when the split of a fee matters, and runs two venues of the exchange simulator side by side, one maker-taker and one inverted, to measure what a rebate buys.
7.1 Maker-taker, inverted and flat pricing
Under maker-taker pricing (One Quant Book 1, chapter 9) the venue pays the resting side a rebate and charges the taking side a fee; an inverted venue (taker-maker) does the reverse. Both earn the difference.
Definition 7.1 (Flat pricing)
Under flat pricing a venue charges both sides of a trade, or charges them the same fee per share whatever their role, so that resting and taking cost the same.
Flat pricing is the norm for futures, where the exchange charges each side a fee per contract, and in many equity markets outside the United States; maker-taker and inverted pricing are how US equity exchanges compete for the two sides of the order flow within a fee cap on taking displayed quotes. The two Cboe venues of the box are the chapter’s running example; the simulation uses their standard rates.
As of September 2026 — Two fee schedules and the new cap
Standard rates for securities at or above USD 1.00, effective September 1, 2026. Cboe BZX (maker-taker): a rebate of USD 0.0016 per share for adding displayed liquidity, a fee of USD 0.0030 for removing. Cboe BYX (taker-maker): a fee of USD 0.0020 for adding, a rebate of USD 0.0002 for removing. Both schedules have tiers and fee codes that change these rates for many members. The SEC’s 2024 amendments to Rule 610(c) lower the cap on fees for taking a protected quotation priced at USD 1.00 or more from USD 0.0030 to USD 0.001 per share; exemptive orders of October 31, 2025 and June 11, 2026 deferred compliance to the first business day of November 2027.
7.2 Fee-adjusted prices and the effective tick
Definition 7.2 (Fee-adjusted price)
The fee-adjusted price of a trade is its price plus the fee per share for a buyer and minus it for a seller, a rebate counting as a negative fee: what the trade costs or brings once the venue is paid. With the fee for the trade’s role and its side, it is .
A buyer who takes 1 000 shares at 20.00 pays USD 20.0030 a share on the maker-taker venue and USD 19.9998 on the inverted one: USD 3.20 less on the inverted venue at the same quoted price. The fee differences create prices between the ticks.
Definition 7.3 (Effective tick size)
The effective tick size is the smallest difference between the fee-adjusted prices at which one side can trade when the same instrument is quoted on venues with different fees: with take fees and and a tick , the fee-adjusted asks and interleave with gaps and (fees reduced modulo the tick).
With the two Cboe take fees, 0.30 and cents, the fee-adjusted asks of a one-cent stock sit alternately 0.32 and 0.68 cents apart: a quote on the inverted venue is a price improvement of 0.32 cents that the one-cent tick forbids on any single venue (Figure 7.1). Chao, Yao and Ye (2019) argue that this is why a discrete tick fragments US stock exchanges and disperses their fee structures: venues differentiate by fees because they cannot by price.
A taker compares venues on fee-adjusted prices and a router splits a marketable order across them in that order.
def route_take(quotes, side: int, qty: int) -> list[tuple]:
"""quotes: (venue, price, displayed qty, take fee) on the side being taken (asks for a buy, bids for a sell)."""
order = sorted(quotes, key=lambda q: fee_adjusted(q[1], side, q[3]) * side)
out, left = [], qty
for venue, price, avail, _ in order:
if left <= 0:
break
q = min(avail, left)
if q > 0:
out.append((venue, price, q))
left -= q
return out
7.3 Is the fee split neutral?
Definition 7.4 (Fee neutrality)
The split of a venue’s fee between makers and takers is neutral when moving part of the fee from one side to the other, the total held fixed, leaves every trader’s fee-adjusted prices and the market’s outcomes unchanged: the quotes absorb the move.
Proposition 7.5 (Neutrality without a tick)
Let competitive liquidity providers post the ask at which a sale breaks even, , where is their reservation price (value, costs and adverse selection). The taker’s fee-adjusted price is , and the maker’s net price is : both depend on the total fee only. With a tick the ask must be , and a change of split that is not a multiple of the tick changes fee-adjusted prices.
Proof. Without a tick, and ; moving from to moves by and nothing else. With a tick, is the smallest grid price at or above , so the maker keeps a rent that depends on modulo the tick. ∎
Moving 0.20 cents from the take fee (0.30 to 0.10) to the make side (a 0.16 rebate becomes a 0.04 fee) shows the difference. Without a tick, an ask at 10.01 moves to 10.012: the taker still pays 10.013 all-in and the maker still nets 10.0116. On a one-cent grid the ask must stay at 10.01 (the taker now pays 10.011, the maker loses 0.2 cents) or jump to 10.02 (the taker pays 10.021). When quotes cannot move, the rent goes to queue position instead: makers compete by joining queues, and the fee split decides how long the queues are. Colliard and Foucault (2012) model how the level and split of fees change fill rates and spreads; Foucault, Kadan and Kandel (2013) explain maker-taker pricing by the speed at which the two sides react. On the Toronto Stock Exchange, Malinova and Park (2015) found that posted quotes adjusted to a change in the fee split and liquidity demanders’ costs, fees included, did not change, while posted spreads narrowed and aggressive orders became more frequent.
7.4 Tiers and the venue’s business
A venue’s revenue from trading is the difference between what takers pay and what makers receive, times its volume; its members’ rates depend on volume tiers (One Quant Book 1, chapter 29), which give the largest liquidity providers the largest rebates and make volume thresholds into cliffs. Trading fees are only part of the business: market data and connectivity are sold to the same members.
The simulation builds the choice that tiers and fees create. Two engines of firm.exchsim run one stock with a one-cent tick: MT with BZX’s standard rates, INV with BYX’s. A small reactive market supplies the flow: an efficient price that moves one tick at random times; limit orders that join the best or rest a few ticks behind and cancel at a constant rate, and at once with probability one half when jumps through them; noise market orders; and informed market orders at a rate proportional to the distance between and the mid. Each limit order goes to MT or INV with probability one half. A fee-aware taker routes by fee-adjusted price (Listing 7.1), so at equal prices it takes INV’s queue first; a fee-blind one takes the larger displayed queue first, as a router that looks only at size would. Each case runs three seeds of two hours.
def market(t: float, side: int, qty: int, informed: bool):
state["informed"] = informed
quotes = [(v.name, p, v.book.visible_qty(-side, p), v.take * 10_000)
for v in ven.values() for p in v.book.prices(-side)[:5]]
if rng.random() >= f.aware: # fee-blind: the larger displayed size first
quotes = [(n, p, q, -1e-9 * q) for n, p, q, _ in quotes]
for name, p, qq in route_take(quotes, side, qty):
state["cl"] += 1
o = IN["O"](state["cl"], 1, "BS"[side < 0], qq, p, "I", "Y", "N", 0, 0, 0, "N", 0)
run(ven[name], t, 2, o)
When every taker is fee-aware, the inverted venue is the front of a consolidated queue and the maker-taker venue its back. INV takes 77% of the volume. Its limit orders receive a fill for 28.2% of the shares posted, after a median 4.6 seconds, against 8.4% after 8.8 seconds on MT, where the queue at the best is longer (910 shares a side on average, against 510). Fills on MT come when INV’s queue has been exhausted, which is when the flow is large or informed: the mid moves 0.63 cents against an MT fill within 30 seconds, 0.13 against an INV fill (standard errors 0.04). The capture is the same on both, 0.54 cents. Net of adverse selection, an MT fill is worth cents before the rebate and an INV fill 0.40 cents before the fee.
mx_fees.by_awareness.What does a posted share earn? Its value is the filled share times capture less adverse selection less the make fee. With every taker fee-aware, a share posted on MT is worth 0.006 cents and one on INV 0.057 (the difference has a standard error of 0.009): the rebate does not pay for the back of the queue. For a provider to be indifferent, MT would have to pay a rebate of 0.77 cents, more than twice its 0.30-cent take fee: no maker-taker venue can buy that queue. With half of the takers fee-blind, MT’s queue is hit first by those who look at size, and the ranking reverses: 0.052 cents on MT against 0.028 on INV (standard error 0.006), and the indifferent make fee on MT is about zero (0.006 cents), so the 0.16-cent rebate is more than MT needs. With no fee-aware taker, MT’s posted share is worth 0.074 against 0.015. How takers route decides what a rebate buys.
7.5 Evidence from fee experiments
The SEC tried to measure fees as the tick size pilot had measured the tick. It adopted the Transaction Fee Pilot, Rule 610T, on December 19, 2018: 1 460 randomly selected stocks in two test groups, one with a cap of USD 0.0010 on exchange transaction fees (the cap then in force, set in 2005, was USD 0.0030) and one in which exchanges could not pay rebates, and every other stock in a control group. Exchanges challenged the rule, and the D.C. Circuit vacated it on June 16, 2020, before it started. The evidence therefore comes from changes that venues made themselves and from routing data. Malinova and Park’s Toronto study is one; Battalio, Corwin and Jennings (2016) found retail brokers that sent limit orders to the venues paying the largest rebates and a negative relation between limit order execution quality and the rebate level, the conflict Angel, Harris and Spatt had described. Their finding is the empirical side of the simulation: an order placed for its rebate stands at the back of the consolidated queue.
7.6 Tutorial: the rebate that bought a queue
Goal. Price orders net of fees, then measure on two simulated venues what a rebate buys. End state: Figure 7.2 and the numbers of sections 2 to 4.
- Fee-adjusted prices.
firm_venuefees.fee_adjustedandeffective_tickwith the box’s rates. - Neutrality.
neutral_ask(ask, take, take_new, tick)with and without a tick. - Two venues.
mx_fees.two_venues(share_mt, fees, seconds, seed, flow=Flow(aware=…)): per venue, the filled share, the time to first fill, capture, adverse selection, value per posted share, queue and volume share. - Awareness.
by_awareness()averages three seeds for 0, one half and all takers fee-aware;indifference_makegives the make fee that equalises the venues; draw withfig_fees.py.
What to change next. Apply the new 0.10-cent cap to MT’s take fee and lower its rebate to keep its margin; let each provider choose the venue with the better expected value given the queues it sees, and watch the shares move.
7.7 Build: fees and venue choice
Purpose. Fee-aware prices and venue choice for the smart order router of chapter 18, the transaction-cost analysis of chapter 19 and Book 11’s market makers.
Interface. fee_adjusted(price, side, fee), effective_tick(tick, fees), route_take(quotes, side, qty), passive_value(fill, capture, adverse, make), indifference_make(…), neutral_ask(ask, take, take_new, tick), tier_make_fee(schedule, adav, tcv) on Book 1’s firm.feesched.
Rules. Fees per share, positive when paid; a buyer adds the fee, a seller subtracts it; routing sorts quotes by fee-adjusted price, displayed size only.
Acceptance tests. code/firm/venuefees/tests/: fee-adjusted prices and a split buy and sell by hand; the effective tick for two and three fees; the indifferent make fee solves its equation; the neutral ask with and without a tick; a tiered make fee.
Stretch. Routing with fill probabilities and queue positions (chapter 6’s firm.queuevalue); monthly tier planning with the cliffs of firm.feesched.
Sources and further reading
- J.-E. Colliard and T. Foucault, “Trading fees and efficiency in limit order markets”, Review of Financial Studies 25(11), 2012.
- T. Foucault, O. Kadan and E. Kandel, “Liquidity cycles and make/take fees in electronic markets”, Journal of Finance 68(1), 2013.
- K. Malinova and A. Park, “Subsidizing liquidity: the impact of make/take fees on market quality”, Journal of Finance 70(2), 2015.
- J. J. Angel, L. E. Harris and C. S. Spatt, “Equity trading in the 21st century: an update”, Quarterly Journal of Finance 5(1), 2015.
- R. Battalio, S. A. Corwin and R. Jennings, “Can brokers have it all? On the relation between make-take fees and limit order execution quality”, Journal of Finance 71(5), 2016.
- S. Chao, C. Yao and M. Ye, “Why discrete price fragments U.S. stock exchanges and disperses their fee structures”, Review of Financial Studies 32(3), 2019.
- United States Court of Appeals for the District of Columbia Circuit, New York Stock Exchange LLC v. SEC, No. 19-1042, 2020.
- Cboe BZX and BYX U.S. Equities fee schedules, September 2026.
7.8 Exercises
Exercise 7.1 ★
A trader buys 1 000 shares at 20.00. What is the fee-adjusted price with the box’s BZX take fee and with BYX’s take rebate, and how much does the choice of venue save?
Solution
Solution of Exercise 7.1.
BZX: ; BYX: . The inverted venue saves 0.32 cents a share, USD 3.20 on 1 000 shares.
Exercise 7.2 ★
What is the effective tick of a one-cent stock traded on two venues whose take fees are 0.30 and cents?
Solution
Solution of Exercise 7.2.
The fee-adjusted asks interleave with gaps cents and cents: the effective tick is 0.32 cents.
Exercise 7.3 ★
A posted share on INV fills 30% of the time, captures 0.5 cents and loses 0.1 to adverse selection, with a 0.20-cent make fee; on MT it fills 10% of the time, captures 0.5 cents and loses 0.6, with a 0.16-cent rebate. What is each worth per posted share?
Solution
Solution of Exercise 7.3.
INV: cents; MT: cents.
Exercise 7.4 ★★
In exercise 3, what make fee on MT would make a provider indifferent? Can a venue whose take fee is capped at 0.30 cents pay it?
Solution
Solution of Exercise 7.4.
Solve : , a rebate of 0.70 cents. The venue would pay 0.70 to the maker and receive 0.30 from the taker, losing 0.40 cents on every share traded: it cannot.
Exercise 7.5 ★★
A venue moves 0.20 cents from its 0.30-cent take fee to the make side, where a 0.16-cent rebate becomes a 0.04-cent fee. What happens to an ask at 10.01, to the taker’s fee-adjusted price and to the maker’s net price, without a tick and with a one-cent tick?
Solution
Solution of Exercise 7.5.
The total fee stays at 0.14 cents. Without a tick the ask moves to 10.012: the taker pays as before (), the maker nets as before (). With a one-cent tick the ask stays at 10.01 (taker 10.011, the maker loses 0.2 cents) or moves to 10.02 (taker 10.021): the split is no longer neutral.
Exercise 7.6 ★★
Why does adverse selection on the maker-taker venue rise with the share of fee-aware takers, from 0.31 to 0.63 cents, while the capture stays at 0.54?
Solution
Solution of Exercise 7.6.
The capture is the half-spread, the same at the same price on both venues. What changes is which trades reach MT’s queue: fee-aware takers hit INV first, so MT fills only when INV’s queue has been exhausted, by large or informed orders after which the price moves on. The more takers are fee-aware, the more MT’s fills are these.
Exercise 7.7 ★★★
Coding. Run two_venues with MT’s take fee at the new 0.10-cent cap and its rebate cut to 0.06 cents (same margin minus 0.10). With all takers fee-aware, how do MT’s filled share, adverse selection and value per posted share change, and why?
Solution
Solution of Exercise 7.7.
Three seeds of two hours: MT’s filled share (8.4%) and adverse selection (0.63 cents) do not change, because INV’s take rebate still makes it cheaper to take and the routing order is the same; the value per posted share falls from 0.006 to cents, the 0.10 cents of rebate lost on each filled share. A lower cap removes room for rebates without changing who fills first.
Exercise 7.8 ★★★
Find the flaw. “Our router sends every passive order to the venue that pays the largest rebate, which lowers our clients’ costs.”
Solution
Solution of Exercise 7.8.
The rebate goes to the broker, and the order stands where fee-aware takers arrive last: it fills less often and, when it fills, more often against flow that keeps moving the price. Battalio, Corwin and Jennings found a negative relation between limit order execution quality and the rebate level; the simulation shows fills of 8.4% against 28.2% and adverse selection of 0.63 against 0.13 cents. Measure fill rates and mark-outs by venue before claiming lower costs.
7.9 Problem: The Rebate That Bought a Queue
Problem 7.1
Weekend problem — the rebate that bought a queue
A market maker quotes one stock on a maker-taker and an inverted venue. Decide where to post, and find out what the rebate is paying for.
Part I — Prices net of fees.
- Give the box’s make and take rates on both venues.
- Compute the fee-adjusted price of a 1 000-share buy at 20.00 on each.
- Define the effective tick and compute it for these fees.
- Why does a discrete tick push venues to compete on fees?
Part II — Neutrality.
- State and prove the neutrality proposition.
- Rework the move of 0.20 cents from the take fee to the make side with and without a tick.
- Where does the rent go when quotes cannot move?
- What did Malinova and Park find on the Toronto Stock Exchange?
Part III — Two venues.
- Describe the simulated market and the two kinds of takers.
- With all takers fee-aware, give each venue’s volume share, filled share and median time to first fill.
- Give the adverse selection per filled share on each venue and explain the difference.
- Give the value per posted share on each venue.
- What rebate would make a provider indifferent, and can MT pay it?
Part IV — Routing and the verdict.
- What changes when half of the takers route by displayed size?
- And when none are fee-aware?
- What was the Transaction Fee Pilot, and what happened to it?
- What did Battalio, Corwin and Jennings find?
- How does the new access fee cap change the maker-taker venue’s room for rebates?
- State the named result: the fill rate and the mark-out of passive orders on the maker-taker and the inverted venue, and the rebate at which a liquidity provider is indifferent.
- In one sentence: what does a rebate buy?
Solution
Solution of Problem 7.1.
1. BZX: rebate 0.16 cents to add, fee 0.30 to remove; BYX: fee 0.20 to add, rebate 0.02 to remove. 2. 20.0030 and 19.9998. 3. The smallest gap between fee-adjusted prices across venues: 0.32 cents. 4. Venues cannot quote between ticks; different fees let them offer sub-tick prices net of fees (Chao, Yao and Ye). 5. See the proposition: without a tick; with one, is rounded up to the grid. 6. Without a tick the ask moves to 10.012 and nothing else changes; with one it stays at 10.01 or moves to 10.02. 7. To queue position: makers compete by joining queues, so the split changes queue lengths. 8. Quotes adjusted and demanders’ costs, fees included, did not change; posted spreads narrowed and aggressive orders became more frequent. 9. An efficient price with jumps, limit orders at or behind the best cancelling at a constant rate and when stale, noise and informed market orders; fee-aware takers route by fee-adjusted price, fee-blind ones by displayed size. 10. INV 77% of the volume, 28.2% filled, 4.6 seconds; MT 23%, 8.4%, 8.8 seconds. 11. 0.63 cents on MT against 0.13 on INV: MT fills when INV’s queue is gone, which is when large or informed flow arrives. 12. 0.006 cents on MT, 0.057 on INV. 13. A rebate of 0.77 cents, beyond the 0.30-cent take fee: no. 14. MT’s queue is taken first by size-based routers: 0.052 cents on MT against 0.028 on INV, and the indifferent make fee on MT is about zero. 15. 0.074 against 0.015 cents. 16. Rule 610T, adopted December 19, 2018: 1 460 stocks in a USD 0.0010 fee-cap group and a no-rebate group; vacated by the D.C. Circuit on June 16, 2020. 17. Brokers sending limit orders to the highest-rebate venues, and worse limit order execution quality where rebates are higher. 18. Rebates must stay below the 0.10-cent take fee, so the most a maker-taker venue can pay falls by 0.20 cents. 19. Named result: with all takers fee-aware, a posted share fills 8.4% of the time on the maker-taker venue with 0.63 cents of 30-second adverse selection, against 28.2% and 0.13 cents on the inverted venue; a provider would be indifferent only at a 0.77-cent rebate, which the venue cannot pay; with half the takers routing by size the indifferent make fee is about zero. 20. A place at the back of the consolidated queue, worth what the takers’ routing makes it worth.
7.10 Interview questions
Interview question 7.1 ★ trader
What is the difference between a maker-taker and an inverted venue, and where would you send a passive order you need filled quickly?
Solution
Solution of Interview question 7.1.
Maker-taker pays the resting side and charges the taker; inverted does the reverse. To be filled quickly, post on the inverted venue: fee-aware takers hit it first at equal prices, and its queue is shorter.
What the interviewer is looking for: Fee roles; routing order; queue length.
Interview question 7.2 ★★ trader, researcher
Is the split of an exchange fee between makers and takers neutral? When is it not?
Solution
Solution of Interview question 7.2.
Without a tick, yes: quotes absorb the move and fee-adjusted prices depend on the total fee only. With a tick, quotes cannot move by a fraction of it, so the split changes fee-adjusted prices and queue lengths; it also matters when some traders do not pay fees directly (retail flow, some brokers).
What the interviewer is looking for: Continuous-price neutrality; the tick; who bears the fee.
Interview question 7.3 ★★ researcher
Passive fills on one venue have worse mark-outs than on another at the same price. Give two explanations and a test that separates them.
Solution
Solution of Interview question 7.3.
Different flow reaches the venue (routing order, fee-aware takers hitting another venue first), or different quoters and order types. Condition on the same trades: compare fills from the same aggressive sweeps, or randomise the venue of your own passive orders and compare mark-outs.
What the interviewer is looking for: Routing order; selection; a randomised test.
Interview question 7.4 ★★ trader
Your router ranks venues by fee-adjusted price. What does that do to the market makers who post on the most expensive venue to take?
Solution
Solution of Interview question 7.4.
They become the back of the consolidated queue: they fill only when the cheaper venues are exhausted, less often and against more informed flow, and their rebate must compensate.
What the interviewer is looking for: Queue order across venues; adverse selection.
Interview question 7.5 ★★ researcher
How would you design an experiment to measure the effect of rebates on market quality?
Solution
Solution of Interview question 7.5.
Randomly assign stocks to fee regimes with a control group (as the Transaction Fee Pilot intended), measure spreads, depth, fill rates and mark-outs, routing shares and volumes, and estimate difference-in-differences with clustered standard errors; check spillovers across venues.
What the interviewer is looking for: Randomisation; control; spillovers.
Interview question 7.6 ★★★ trader
The access fee cap falls from 0.30 to 0.10 cents. What happens to maker-taker rebates, queues and your market-making P&L?
Solution
Solution of Interview question 7.6.
Rebates must fall below 0.10 cents, so the maker-taker venues’ advantage for providers shrinks, queues there shorten, and the inverted venues’ edge for takers narrows; my P&L loses the rebate income and must come from spread capture and queue position, so I requote where fills are less toxic.
What the interviewer is looking for: Fee arithmetic; queue response; P&L components.