Trading strategies·other

Spread scalping

commoditised
Reviewed 4 June 2026. As of 2026: widely known and implemented; the edge is in execution, not the idea.

Capture the spread on very short holds with tight risk. Close cousin to market making, but more aggressive about turnover and more exposed to fees and adverse selection.

The idea

Spread scalping annotated diagramfigure
Capture the spread on very short holds with tight risk. Close cousin to market making, but more aggressive about turnover and more exposed to fees and adverse selection.

Reference figure. This concept is explained in prose and diagram; the interactive widgets live on the flagship pages it links to under Where this fits.

What is spread scalping?

Spread scalping is a high-turnover strategy that aims to earn the bid-ask spread (buying passively at the bid, selling passively at the ask) on as many small round trips as possible, holding inventory for seconds or less. The thesis is that thousands of tiny captured spreads compound into a real number; the reality is that costs and adverse selection erode them away.

Intuition first. If the bid is 99 and the ask is 101, buying at 99 and selling at 101 nets 2, for free, in principle. Do it a thousand times a day and the spread compounds. That is the seductive picture, and it is incomplete in three specific ways the rest of this page makes precise.

The crucial structural fact is that true scalping is passive on both legs. To earn the spread, both the buy and the sell must rest as limit orders that someone else crosses. The moment you cross the spread to get filled, you pay the spread instead of earning it: you have turned a scalp into a cost. This is why scalping is fundamentally a queueing problem, not a timing problem.

The naive picture ignores three things, each of which subtracts from the gross spread: fees and partial fills, the queue you usually do not reach, and the adverse selection on the fills you do get.
net=spread capturedtickfeestwo legsadverse selectionworst fills come to youinventory carryunbalanced exits\text{net} = \underbrace{\text{spread captured}}_{\le\,\text{tick}} - \underbrace{\text{fees}}_{\text{two legs}} - \underbrace{\text{adverse selection}}_{\text{worst fills come to you}} - \underbrace{\text{inventory carry}}_{\text{unbalanced exits}}

Spread scalping is the mechanical kernel of market making (quote both sides, capture the spread) but stripped of the two things that make market making viable: inventory management and adverse-selection control. Strip those away and "spread scalping" is just market making done badly. Add them back and it stops being naive scalping.

The relationship is exact. Market making earns the spread, then subtracts an inventory-risk cost and an adverse-selection cost. Naive spread scalping fixates on the first term and ignores the other two. A real maker quotes around an inventory-aware reservation price that leans away from inventory, and widens or skews when flow looks toxic (PIN/VPIN, OFI). The "edge" people imagine lives in scalping is actually the edge in managing the two negative terms.

Market making is scalping plus the two hard terms. The profit is not in the round trip; it is in keeping the inventory and adverse-selection costs below the spread you capture.
ΠMM=spread capturedthe scalpcinvinventory riskcadvadverse selection\Pi_{\text{MM}} = \underbrace{\text{spread captured}}_{\text{the scalp}} - \underbrace{c_{\text{inv}}}_{\text{inventory risk}} - \underbrace{c_{\text{adv}}}_{\text{adverse selection}}

So who actually scalps the spread profitably? Designated or de-facto market makers with queue priority, rebates, low latency, and disciplined inventory control. For them the spread capture is real because they have engineered away the three losses. For a retail-ish operator without those, the same round trip is net negative.

Why tick size decides whether scalping can work

The spread you can scalp is bounded below by the tick size, so the tick sets the gross prize per round trip. The minimum profitable scalp is "earn at least one tick net of fees", and the tick size determines whether that prize is fat or razor-thin, and, perversely, both extremes work against the naive scalper.

If the tick is large relative to volatility, the spread is wide and the prize per round trip is fat, but every passive order joins a deep queue, your fill probability is low, and the fills that do come are the adverse ones. If the tick is tiny, spreads are razor-thin and queues are short, but the gross per scalp barely clears fees. This is the tick-size trade-off, formalised in the literature and tested in real policy experiments: the US Tick Size Pilot (2016–2018) and the ongoing SEC tick/access-fee reforms (finalised 2024, phasing in through 2025–2026). A coarser tick widens spreads and deepens queues; a finer tick does the reverse.

Net per round trip is the tick you can capture, less fees and the price moving against your fills, and only realised on the fraction of quotes that fill passively.
net/RT(tick×nticks-in-spread)fees2cadvcinv,spread capturedtick×nticks\text{net/RT} \approx (\text{tick} \times n_{\text{ticks-in-spread}}) - \text{fees}_{2} - c_{\text{adv}} - c_{\text{inv}}, \qquad \text{spread captured} \le \text{tick} \times n_{\text{ticks}}
Show the derivation optional

Per quote, your expected P&L is the half-spread you capture when you fill, weighted by fill probability, less the adverse move on the fills that arrive precisely because the price is turning against you.

E[P&L/quote]=Pr(fill)12spreadPr(filladverse)E[ΔSadverse]E[\text{P\&L/quote}] = \Pr(\text{fill}) \cdot \tfrac12\,\text{spread} - \Pr(\text{fill} \mid \text{adverse}) \cdot E[\Delta S_{\text{adverse}}]

The trap is the coupling between the two terms. Joining a busier level to raise Pr(fill)\Pr(\text{fill}) also raises Pr(filladverse)\Pr(\text{fill} \mid \text{adverse}): the extra fills you win are disproportionately the toxic ones. "Just get filled more" therefore raises both the good and the bad term, and beyond a point the bad one dominates.

aggressivenessPr(fill)  >  0,aggressivenessPr(filladverse)  >  0\frac{\partial}{\partial\,\text{aggressiveness}}\,\Pr(\text{fill}) \;\gt\; 0, \qquad \frac{\partial}{\partial\,\text{aggressiveness}}\,\Pr(\text{fill} \mid \text{adverse}) \;\gt\; 0

Why it is marginal after costs

Account for the full cost stack and the naive scalp is usually net-negative. The captured spread is reduced by fees on both legs, by the fact that only one side often fills (leaving you holding inventory you must exit by paying the spread), and by adverse selection that systematically routes the worst fills to you. Without rebates, queue priority, and inventory discipline, the sum is negative.

The cost stack, item by item: transparent costs (commissions, exchange fees, clearing); maker-taker economics (you must be the maker to earn the spread; if you ever take, you pay it); implicit costs (the half-spread you cross to flatten unbalanced inventory, plus slippage); and adverse selection (the structural tax on passive fills).

The decisive item is the "only one leg fills" problem. Scalping assumes both legs fill at your prices. In practice the side that fills is the side the market is moving toward you on, so you are left holding inventory and must cross the spread to flatten, converting an earned spread into a paid one. This asymmetry, not fees alone, is what kills naive scalping.

Stated plainly for 2026: as a standalone idea, spread scalping is commoditised and mostly dead. On the most liquid names the game is owned by firms with rebates and front-of-queue priority, running razor-thin per-trade margins at enormous volume and near-zero latency. For everyone else it is a tuition payment. As a disciplined market-making kernel it is alive, but it is no longer "scalping" in the naive sense. What AI changes here is modest and off the hot path: ML can sharpen the which-quote-to-place and when-to-pull decisions (toxicity prediction, OFI), trimming adverse selection, but it cannot conjure spread where the tick and the queue do not allow it (what AI changes for HFT).

Worked example

A single round trip on a tick-constrained large-cap, illustrative and dated to 2026 (synthetic). Stock at £40.00; tick 1p; quoted 39.99 / 40.00, a one-tick spread. The gross prize if you capture the full spread is 1p, about 2.52.5 bps.

You rest a buy at 39.99. The level holds 8,000 shares ahead of your 500, so at the prevailing trade rate it takes a while, and crucially it clears mostly when sellers are pressing, i.e. when 39.99 is about to become the new fair value. Suppose you do fill at 39.99. You now want to sell at 40.00. But the same selling pressure that filled you has pushed fair value to about 39.99; resting at 40.00 you mostly do not fill, and to flatten you must hit 39.98, paying 1p to exit.

Intended +1p; realised about −1p because you crossed to exit, then fees on two legs on top. The "free" spread became a loss because of which fills you got.
net=+1pintended    1pcrossed to exit0.10.3bpsfees, 2 legs1.1p to1.3p\text{net} = \underbrace{+1\text{p}}_{\text{intended}} \;\longrightarrow\; \underbrace{-1\text{p}}_{\text{crossed to exit}} - \underbrace{0.1\text{–}0.3\,\text{bps}}_{\text{fees, 2 legs}} \approx -1.1\text{p to} -1.3\text{p}

The other path. A designated market maker on the same level (paid a maker rebate, holding front-of-queue priority, running a model that skews its quote the moment OFI turns negative) captures a fraction of a tick net and survives, because it engineered away the adverse fills and got paid to provide the quote. That is the whole difference, in one example. The figures are synthetic; the fill and queue dynamics are what generalise. The sibling tactic where the rebate, not the spread, is the prize is rebate capture.

Where this fits