Home/Financial AI/Part V

Episode 25 · Concept · Part V · Microstructure

Spread, Slippage, and the True Cost of a Trade

Door (spread/slip): 1 bp ignored → negative EV. Chapter 3 introduced friction as a single number in the EV formula. This chapter unpacks it - spread, slippage, fees, impact - so the EV gate uses numbers measured from fills, not hope.

Related reading This chapter stands on its own, but Ep24 covers a related idea in more depth if you want it.

The expected-value formula of Chapter 3 includes a single term for friction. This chapter unpacks that term - explaining where it comes from, how it varies with order size and asset liquidity, and how to measure it accurately enough to plug into the EV calculation. It is the least glamorous chapter in the book, and the most important. A strategy with a beautiful alpha and miscounted friction is a strategy that loses money. Every chart of strategy returns on every research deck excludes friction. The author has computed a beautiful equity curve in their backtesting platform, and now the slide shows Sharpe 1.8, 22% annualised return, modest drawdowns.

Figure 1. Concept map for this episode: fight, desk translation, what to lock.

Episode 25 concept map

The structure of a real fill

When you submit a buy order, the price you actually pay is rarely the price you saw on the screen. The realised fill price breaks down into the mid-price plus four separate costs: the half-spread (crossing from the mid to the bid or ask), market impact (the price moving away from you as your order trades), adverse selection (the market moving against you because someone with better information traded first), and fees. Each is a separate source of cost, and each has to be measured on its own.

Measuring friction empirically

The right way to measure friction is to compute it from your actual fills, not from a theoretical model.

Friction in R-multiples

For the EV formula, we need friction expressed in R-multiples (Chapter 3): friction per share divided by your per-share risk (the distance from entry to stop). For a stock at ₹100 with a stop at ₹98 (a risk of ₹2 per share) and a typical round-trip friction of ₹0.15 per share, that's 0.15 / 2 = 0.075. That is, friction subtracts 7.5% of your initial risk from every trade outcome - before the trade has any chance to win or lose on its own.

The friction governor

A practical operational pattern: maintain a friction governor - a configuration entry that records the current measured friction per asset class, updated weekly from realised fills. The EV calculation pulls from the governor rather than from a hardcoded constant. This way, when execution conditions change (a broker raises fees, a regulatory tax is introduced, liquidity contracts during a stress event), the EV calculation automatically incorporates the new reality. The friction governor is one of the simplest but most valuable infrastructure components in a production trading system. Without it, every EV calculation is anchored on a friction estimate that may be months out of date - and the resulting trades are often unknowingly negative-EV.

Definition

Bid-ask spread

The bid is the highest price any current buyer is willing to pay; the ask (or offer) is the lowest price any current seller is willing to accept. The difference between them is the bid-ask spread, and it is the market maker's minimum compensation for providing two-sided liquidity. When you place a market order to buy, you "lift the ask" - you pay the ask price. When you place a market order to sell, you "hit the bid" - you receive the bid price. The half-spread (half of the bid-ask spread) is the cost you pay relative to the theoretical fair price (the mid).

Worked picture

The 100 small trades that ate an alpha

A strategy makes 100 trades per quarter on a portfolio of mid-cap stocks. Each trade is ₹50,000 in size. Each leg crosses an average 6-bp spread (so 12 bps round-trip), pays 2.5 bps in brokerage and exchange charges per leg (5 bps round-trip), and incurs 0.3% STT on sells (effectively 15 bps on a 50% turnover assumption). Total friction per round trip: 12 + 5 + 15 = 32 bps. The strategy's gross alpha (before friction) is 0.8% per trade. The net alpha is 0.8% - 0.32% = 0.48% per trade. The friction has eaten 40% of the strategy's alpha. None of the individual cost components was alarming. The sum was decisive. And if the spread crossed had been twice what was estimated (12 bps per leg instead of 6, so 24 bps round-trip instead of 12) total friction would rise to 44 bps and net alpha would fall to 0.36% per trade - a meaningfully thinner margin than the 0.48% assumed at the outset, even though the strategy would still be solidly profitable. Friction is rarely the most exciting number to estimate; it is almost always the most consequential.

What breaks in production

Theoretical friction is almost always too low

A common mistake is to estimate friction from quoted spreads and modelled brokerage rates. The result is often half the actual realised friction, because: - Quoted spreads ignore queue position and adverse selection. - Modelled brokerage ignores complex fee structures and end-of-day reconciliations. - The arrival price often moves between when you observed it and when your order arrives at the exchange. Always measure friction from realised fills, ideally over a 90-day rolling window. The realised number is the only honest input to the EV calculation.

What to lock

Chapter 25 — the picture closes

Friction is an accumulation of small taxes: 32 bps round-trip ate 40% of an 80-bps gross edge in the worked example above. Expressed as a fraction of your per-trade risk, friction can quietly kill otherwise viable edges. The friction governor makes it a live input, not a footnote. Beautiful alpha with wrong friction is negative EV with extra steps.

Book pointer · Chapter 25 This essay is the precursor layer: richer explanation for the desk picture. Full derivations and callout stacks live in Financial AI Chapter 25.

Ep25Open on YouTube ↗

Next. Open Ep26: Avellaneda–Stoikov: Inventory Risk for Makers. Part V index.