Most quantitative approaches to fraud detection start from the same instinct: find the outliers. Rank every company on some metric — accruals, revenue growth, days sales outstanding — and flag the ones sitting in the tail of the distribution. The assumption is that fraud lives at the extremes, so the extremes are where you should look.
We think this is the wrong starting point, and we’ve built our entire detection layer around the opposite premise.
The problem with “anomalous”
An outlier is a relative statement. It says: this company looks different from its peers. But looking different is not evidence of anything. A company can have the highest revenue growth in its sector because it is committing fraud, or because it just launched a genuinely successful product, or because its sector is small and it happens to be the one that scaled. Statistical deviance is a property of the comparison set, not of the company. Change the peer group and the outlier changes with it.
Worse, ranking-based approaches quietly smuggle in a survivorship and size bias that is very hard to remove. Large, mature companies have larger everything — more transactions, more subsidiaries, more cumulative anything. If your signal is built on absolute or cumulative quantities, you will reliably “discover” that big companies are the most suspicious. They aren’t more suspicious. They’re just bigger. We’ve watched this failure mode appear in three structurally different places in our own work, and each time the lesson was identical: an absolute quantity is a proxy for scale, not a signal of wrongdoing.
What a contradiction actually is
A contradiction is an absolute statement, internal to a single company’s own disclosures. It asks a different question entirely: are the numbers this company reports about itself logically consistent with each other?
Consider a company that reports cumulative net profit across several years while simultaneously reporting negative cumulative operating cash flow over the same period. There is no peer comparison here. There is no distribution, no percentile, no tail. There is simply a logical tension inside one company’s own books: a business that has supposedly earned money but has never generated cash from operating. That tension may have an innocent explanation. It usually does. But it is a fact about that company, true or false independent of what any other company is doing, and it is the kind of fact that is worth a closer look.
This is the distinction that organizes everything we build. We are not asking how far a company sits from the average. We are asking whether a company’s account of itself holds together.
Why this matters in practice
The practical consequence is that our detection layer is fully explainable by construction. When we flag a contradiction, we can point to the two disclosed figures that are in tension and explain precisely why they are hard to reconcile. There is no model weight to interpret, no embedding to visualize, no “the algorithm found something.” There is a specific claim a company made and another specific claim the same company made, and the two do not sit comfortably together.
It also means our signals are robust to the things that break ranking systems. A contradiction does not become more or less true when you change the peer set, re-weight the sector, or add a new company to the universe. It does not drift as the market moves. It is anchored to disclosures that were filed at a specific time and that say what they say.
There is a great deal built on top of this foundation — a two-layer judgment system, the discipline of keeping every signal anchored in time, a refusal to let a machine grade its own reasoning, and the practice of walking away from a method that doesn’t hold up. But all of it rests on this one commitment: we are in the business of finding internal contradictions, not statistical surprises.
The difference sounds small. It changes everything downstream.