← Research
Risk desk28 May 202612 min

A-book, B-book, and the real cost of classifying flow wrongly

Internalisation is a risk decision priced in basis points and settled in months. Treating it as a static per-client flag is how a profitable book quietly stops being one.

Whether to internalise an order or pass it to the market is a risk decision taken thousands of times a day, usually by a static flag set on a client months earlier by someone who no longer works there. That flag is the single largest unexamined position most brokers carry.

What the decision is, precisely

B-booking means taking the other side of a client order and keeping the exposure. A-booking means hedging it with a liquidity provider. Neither is dishonest and neither is inherently safer. B-booking a client who loses is profitable; B-booking a client who is systematically right is a subsidy you pay until you notice.

Expected value of internalising a single orderE[internalise] = −E[client P&L] − hedging_cost_avoided − capital_charge(exposure)
The first term is the one that is estimated rather than known, and it is estimated from a sample that is almost always too small at the individual-client level.

Toxicity is a property of an order, not a person

The industry shorthand treats clients as toxic or benign. The data does not support that framing. The same client can be reliably unprofitable trading majors in quiet conditions and reliably profitable trading gold through a data release. What is predictive is the combination of order, instrument and market state.

Markout on internalised flow, segmented by state rather than by client
Majors, quiet session+0.21 pips
Majors, news window−0.38 pips
Metals, quiet+0.09 pips
Metals, news window−0.74 pips
Illustrative. A per-client flag cannot express any of this, because the client appears in all four rows.

A static per-client flag is a bet that the reason a client was classified in March is still the reason in November.

How the classification goes stale

  • Behaviour changes. Clients change size, instrument and style, often after a large loss or a large win. The classification does not follow.
  • Copy trading propagates. One profitable signal provider can turn two hundred independently benign accounts into one correlated position overnight.
  • Concentration builds silently. Individually small internalised positions in the same direction aggregate into an exposure nobody chose.
  • Latency arbitrage migrates. When one venue is closed off, the same flow reappears through a different account, a different entity, or a partner.

The aggregation blind spot is the expensive one

Every individual internalisation decision can be defensible while the resulting book is not. If four hundred accounts are each long a small amount of gold because they follow the same three signal providers, the broker is short gold in size, and no single order triggered a limit. This is a joining problem before it is a risk problem: you cannot see the position until copy relationships, partner attribution and instrument exposure are held together.

A decision path that can actually be maintained
  1. 01Score the order, not the clientInstrument, size, state, timing
  2. 02Check aggregate exposure firstIncluding correlated copy flow
  3. 03Internalise, hedge, or partialPartial is usually the right answer
  4. 04Measure markout on what you keptAt 1s, 5s and 30s
  5. 05Feed the outcome backThe scoring updates, the flag does not
Worked exampleWhat a stale flag costs
Static per-client flagPer-order scoring
Accounts internalised3,1403,140
Orders internalised100%82%
Markout on retained flow−0.12 pips+0.14 pips
Peak uncovered gold exposure$4.1M$0.9M
Hedging costLowerHigher
NetWorseBetter
Per-order scoring hedges more and therefore pays more in spread. It is still ahead, because the 18% it passes on is the 18% that was costing the most.

Illustrative figures, chosen to show the mechanism. Your own numbers will differ.

Why this has to be auditable

Book decisioning attracts regulatory attention for good reason: it is the point where the broker’s interest and the client’s can diverge. Any automation here needs to record what was known at the moment of the decision, what rule applied, and what the outcome was, not because it makes the decision better, but because being unable to reconstruct it afterwards is its own finding.

In practice this is the argument for keeping the scoring explicit and inspectable rather than learned end-to-end. A rule you can show a regulator, with the inputs it saw, is worth more than a marginally better one you cannot explain.

Written by the people who built the thing.

If you want to argue with any of the above, we would enjoy that. The same desk that wrote this runs the scoping calls.