What is slippage really costing me?

Asked as: what is slippage really costing me

Not what the spread figure says, and not what your average slippage says either. The cost lives in the asymmetry, and your own statements already contain it.

The short answer

Not the number in the brochure, and not the number your platform shows either — and the honest answer is that nobody can tell you what your slippage costs without your fills.

But you already hold the evidence. Your broker statement contains the fill price and the timestamp for every order you have ever sent. Measured against the quote that was published to you at that instant, and kept as a signed distribution rather than collapsed into an average, that record answers the question directly.

What it reveals is rarely the magnitude. It is the lean: whether your favourable and unfavourable slippage occur at comparable rates and comparable sizes. Symmetric slippage is noise, and noise is a cost you can budget for. A distribution that leans is a transfer, and it compounds with every trade you place. I call that asymmetry the slippage lean, and it is the quantity worth measuring.

WHAT THIS IS — AND WHAT IS NOT PUBLISHED. This article is method. I have measured and published no execution data — no broker comparison, no slippage distributions, no typical figures — and none appears on this page. Where a number would normally sit here, there is a procedure instead, because a cost figure that is not derived from your own fills describes somebody else’s account. Status of my own measurements: NOT YET PUBLISHED.

The Observable Mechanism

Every fill is a triple you can recover: the price displayed when you decided, the price you actually received, and the time between them. Signed slippage is the difference between the second and the first, oriented so that a positive value helped you and a negative value cost you. That single series — one signed value per fill, tagged with its timestamp — is the entire raw material. Everything else on this page is a statistic over it.

Why the headline numbers cannot answer the question

The spread is the advertised price, not the paid one. It describes the cost of crossing at a moment. Your fills happened at their own moments, in their own spread regimes, and an advertised average is a summary of a population you may barely have traded in.

The average slippage is the statistic designed to hide the answer. Two accounts can report the same near-zero mean: one where the trader was helped as often as hurt, and one where the favourable fills were quietly truncated and the unfavourable ones were not. The mean cannot separate them. Only the shape can.

Your fills are not a random sample of your orders. This is the subtlest of the three and the most consequential. Orders that were rejected, requoted, or held and then declined never became fills, so they never enter the statistics — and they are not a random subset. Where a counterparty holds discretion over whether a trade completes, the completed ones are disproportionately those the counterparty was content to take. That is survivorship operating on your own order flow — an analysis of fills alone is an analysis of a filtered population. Any rejection log you can export belongs in the dataset — and the procedure for reading one, conditioned on which way the market drifted while the order was held, is why do my forex orders get rejected.

The measurement, step by step

Export the order record, not the trade list. You need the timestamp of order dispatch, the price displayed at decision, the fill price, the fill timestamp, the direction, the size, and — where available — every rejection and requote. Trade lists usually give you fills only, which is exactly the filtered population above.

Fix the reference price before you compute anything. Slippage is defined against something, and the choice is a modelling decision that must be stated. The defensible reference for a retail account is the quote published to you at the moment of dispatch, because it is the price you can vouch for and the one you actually acted on. A reference taken from a different feed measures the difference between two feeds as well as the slippage, and cannot separate them.

Sign it consistently. Positive helps you, negative costs you, in both directions of trade. Half the confusion in retail discussion of slippage is an unsigned magnitude being compared to a signed one.

Keep the distribution. Report the shape. At minimum: the median, the quartiles, and both tails separately. The two numbers that matter most are the frequency and the size of favourable slippage compared with the frequency and size of unfavourable slippage. That comparison is the lean.

Partition before you pool. A single pooled figure describes no condition in particular. Cut the same distribution by session, by spread regime at the moment of execution, by order type, by proximity to scheduled events, and by size. Cost concentrates, and the pooled number is an average over concentration that you can neither act on nor budget for.

Print n on every cell. Twelve fills is a distribution with twelve points. Report it as twelve points, not as a finding. Where a partition is too thin to support a statistic, publish the honest null: “insufficient fills in this cell” is a result.

Add the markout. For each fill, record where the market went in the seconds and minutes afterwards. Under symmetric execution, post-fill drift should average near zero net of spread. A fill population that consistently drifts against you immediately after execution is the signature of adverse selection — being selected into the trades your counterparty wanted and filtered out of the ones it did not.

The Slippage Lean

The lean is the asymmetry of your signed slippage distribution, measured within a condition rather than pooled across all of them.

Naming it separates two things that the word “slippage” runs together:

  • Slippage as friction. Symmetric, roughly zero-mean, wider in volatile conditions. This is the ordinary cost of acting on a price that is already moving. It is real, it is budgetable, and it is not evidence of anything.
  • Slippage as lean. A distribution whose sides are not mirror images — favourable moves converted into fills at a different rate or a different size from unfavourable ones. This is a transfer rather than a friction, and unlike friction it does not average out with more trading. It scales with it.

The distinction is what makes the measurement worth the afternoon. Friction tells you to trade less often or in better conditions. A lean tells you something about the execution environment, and it is measurable without any accusation — the procedure requires only records, and it produces a distribution, not a verdict.

It is also the correct input to a backtest. A simulation charged a constant cost has modelled friction and erased lean entirely, which is one of the five borrowings I describe in why backtests fail in live trading. Replacing the constant with your own measured distribution — including its asymmetry and its concentration by session and regime — is the single cheapest improvement available to most retail research.

What This Does Not Establish (The Limits)

This slippage measurement covers your account, over your fills, in the conditions you traded.

It establishes nothing about what any other client of the same broker received, because execution is frequently client-specific and order-flow-specific. It does not establish intent: a lean is compatible with deliberate policy and with ordinary infrastructure — latency, hold windows, internalisation, quote-refresh mechanics — and a distribution cannot distinguish them. It cannot see what never became a fill unless you export the rejections, so an analysis of fills alone is bounded by censoring you have not measured. It cannot separate the slippage from the reference: if the quote published to you was itself stale, the measured lean partly describes the feed rather than the execution, which is why the feed measurement is a companion and not a substitute. Small samples do not support tail statistics, and per-condition cells go thin quickly. And knowing your realised cost does not make a strategy profitable — it makes one of its inputs real, which is all any measurement here is ever claimed to do.

Where the measured version publishes

The procedure above is a spreadsheet and an afternoon, and a trader who runs it once will know more about their execution than any brochure can tell them.

What I am building is the version that does it fill by fill from your own statements: signed slippage as a distribution rather than an average, each fill placed inside the spread regime that was running when it executed, session-timing structure, cost measured against the quote of record, and n printed on every figure. That instrument is the Execution Cost Auditor. Its companion for the reference-price problem is the Broker Feed Auditor, because a cost measured against a stale quote is partly a statement about the quote — the subject of is my broker’s feed honest. Both are pre-launch, and both have outputs marked NOT YET PUBLISHED.

If you want the analysis rather than the spreadsheet: read what the Execution Cost Auditor measures, and the block stating what it does not establish. It is pre-launch and nothing is for sale.

Claims examined

Claim 01§ claim-b1178f75

My average slippage is close to zero, so slippage is not costing me anything.

My reading: Misleading

A mean near zero is consistent with symmetric noise and with a distribution whose favourable side is truncated while its unfavourable side is not — the two look identical in the average and differ completely in what they cost. The mean is precisely the statistic that hides the asymmetry, and it is the one almost every platform reports.

Claim 02§ claim-8186db2c

The broker advertises a low spread, so my execution is cheap.

My reading: Misleading

Spread is the advertised price of execution, not the realised one. What you actually paid is the spread at the moment your order arrived, plus signed slippage, plus commission and financing, in the session and regime you happened to trade. A quoted average spread describes a condition that may not have obtained on any of your fills.

Each claim above has a permanent address — the § link — whose canonical home is the refutation index, where it carries its variant phrasings and the true proposition stated on its own feet; this article is the evidence behind it. If a claim's text ever changes, it becomes a new claim at a new address, and the old one stops resolving rather than silently meaning something else.

Cite This Article

Hadal Research. (2026). What is slippage really costing me?. Hadal Research. https://hadalinstruments.com/research/what-is-slippage-really-costing-me/ Version 861aa78, 2026-09-14.

Version 861aa78 identifies the commit that last changed this page in Hadal's content repository. That repository is not public, so the identifier does not resolve externally — it is published so a citation pins one specific state rather than a moving page. To obtain the exact version cited, use the press and research route.

---