Surveillance
A profitable client is not automatically a problem
Some are simply good, some are lucky, and some are trading against a quote that was already stale. Only the third is your problem, and profit and loss cannot tell you which is which.
Which way the market moved immediately after the fill
Consistent adverse drift suggests the fill was already stale
How long positions are kept before closing
Very short holds paired with high win rates rarely reflect a market view
Where in the spread the trade landed, repeatedly
Systematically favourable fills point at the quote, not the trader
Whether activity concentrates around specific events
Trading only in the seconds around a data release is a pattern, not a strategy
Three explanations
For the same set of profitable trades
The whole job is separating these. Getting it wrong in one direction costs you a client; in the other it costs you the spread, every day, quietly.
Genuinely skilled
Longer holds, mixed fill quality, a real market view and a distribution of outcomes that looks like skill rather than certainty. Expensive to you and entirely legitimate.
Exploiting your quote
Very short holds, consistently favourable fills and adverse drift immediately after. This is a pricing and connectivity problem wearing the costume of a trading strategy.
Just variance
A good month on a small sample. The most common cause of an unnecessary restriction, and the one that requires patience rather than a new detection method.
See it live
The signal, next to the status it produced
Post-trade drift and fill quality feed into a queue of flagged accounts, each carrying its status so a classification can be reviewed rather than assumed.

FAQ
Toxic flow: common questions
6 short answers to what teams ask before a demo.
No, and treating them as one costs you customers. Profitability alone cannot distinguish skill from a structural issue in your own pricing, which is why detection is built on timing and fill characteristics instead.
Post-trade drift. If the market consistently moves against you immediately after a client's fills, the fills were already stale when they were given — which is a problem with your quote rather than with the client.
Enough for the pattern to separate from variance, which is more than most desks apply before acting. Restricting a client on a small sample is the most common and most avoidable error in this area.
Usually route it rather than restrict it. Passing that flow on externally removes the structural cost while keeping the client, and it is a better commercial outcome than a restriction that loses them.
Yes, down to the individual trades and the measurements taken on each. A classification you cannot open and examine is not something you can defend to a client who asks why they were restricted.
Only if you configure it to. Most desks start with detection feeding a review rather than an automatic restriction, because the cost of a false positive here is a lost client rather than a small operational annoyance.
Still have a question?
A specialist will answer it directly, with your set-up in mind.
Ask a specialistSend us a month of your fills
We will run the detection against it and show you which clients look like a pricing problem rather than a trading one.