The fraud looked normal one transaction at a time
Graph features and community detection surface coordinated fraud rings weeks before the cash-out, where per-transaction scoring sees nothing wrong.

Nineteen accounts that each looked fine
The anomaly arrived on a Monday, six weeks late. A payments platform's chargeback queue, normally a slow drip of isolated disputes, took 41 in one morning, all card-testing losses from accounts opened in a two-month window. The fraud team pulled the transactions and found the worst possible thing: nothing. Every account had passed onboarding. Every transaction had scored low risk. The model that reviewed each payment had been right, by its own lights, every single time.
A per-transaction fraud score cannot see a conspiracy, because a conspiracy is a property of the connections, not of any transaction in it.
The pattern was only visible from above. Nineteen accounts, opened on different days with different names, sharing three device fingerprints, two residential IP blocks, and a set of payout accounts that funneled, two hops out, into the same place. Each account behaved modestly: small transactions, plausible pacing, nothing that would trouble a per-transaction score. Together they were one operation, warming up a network of mule accounts for the coordinated cash-out the chargebacks were now reporting, six weeks after the money left.
Why your model misses exactly the expensive fraud
Transaction scoring looks at one event and its account's history: amount, velocity, device, geography. Organized fraud is engineered to pass precisely that inspection. Ring operators know the thresholds, keep every account under them, and distribute the behavior so no single node ever looks hot. The loss that gets through is not the clumsy stolen-card attempt your model catches all day; it is the patient, structured kind, and it arrives in bulk because the whole network cashes out at once.
The tell was never in the events. It was in the sharing: devices, addresses, payment instruments, payout destinations, the accidental reuse that operating twenty accounts at scale makes almost unavoidable. Sharing is invisible to a model that reads accounts one at a time. It is the first thing you see in a graph.
Score the network, then the node
The method is graph-based detection. Build the entity graph from your own data: accounts, devices, cards, IPs, payout accounts as nodes; every observed link as an edge. Then let two families of technique do the work single-account scoring cannot.
Community detection finds the dense clusters, the groups of accounts far more connected to each other, through shared infrastructure, than the background population ever is. A cluster of nineteen accounts touching three devices is not nineteen coincidences; it is one object, and it gets one risk assessment. Graph features then feed back into the scoring you already run: how many accounts share this device, how close is this new signup to a known-bad cluster, does this payout destination sit two hops from a confirmed mule. A graph neural network learns these patterns wholesale, but even hand-built graph features, degree counts, shared-entity ratios, proximity to confirmed fraud, move detection weeks earlier, because infrastructure reuse happens at setup time, long before the cash-out.
(The delicate part is entity resolution inside the graph: two device fingerprints that almost match, addresses one typo apart. Resolve too eagerly and innocent households merge into phantom rings; too cautiously and the ring dissolves into unconnected dots. That tuning, against your own confirmed cases, is where the specialist hours go.)
We built this layer after watching exactly one coordinated loss clear a well-tuned per-transaction model. The ring structure was in the data for six weeks before the first chargeback. Nobody was looking at the data that way.
The window you are currently giving away
Rebuilt retroactively, the platform's graph showed the ring assembled and detectable 44 days before the cash-out: dense device-sharing from week one, payout convergence by week three. Six weeks in which a routine review of the cluster would have cost the operation its entire setup investment. The next ring, flagged at signup by proximity to the first one's leftover infrastructure, never got to transact.
TensorLabs builds graph detection layers on top of the transaction scoring you already have; the two see different crimes. If your losses arrive in occasional coordinated bursts that your per-event model swears looked fine, that is the signature. Get in touch and describe your last one, and we will map what a graph over your own data would likely have surfaced, and how early.
You might also like
Keep reading from the journal.
July 27, 2026MachineLearning
Your bids are buying your cheapest customers
Censoring-aware predicted LTV points your bidding algorithm at customers worth acquiring, instead of at whichever signup event is cheapest to measure.
July 27, 2026MachineLearning
Stop ordering inventory to the average
Quantile demand forecasts combined with per-SKU margin economics pick the order point that ordering to the average forecast conceals.
July 27, 2026Analytics
The launch that took credit for the season
Structural time-series decomposition and changepoint detection separate what your launch actually did from what the calendar was going to do anyway.