All Projects

The collusion problem in poker

Poker is built on incomplete information. You can see your own cards and the shared cards on the table, but not what your opponents are holding. That hidden information is the entire game. Collusion happens when two or more players at the same table secretly share that information with each other, or coordinate their decisions to move money in a direction that benefits their group. It is cheating, and it is surprisingly hard to prove.

It's hard to catch because the behavior looks completely normal. Players fold, call, and bet all day long. Most of the time those decisions are completely legitimate. The question is how you tell the difference when the data looks the same either way.

01 · The Problem

The problem with looking at individuals

If you pull up a player's stats and they look normal, you move on. That is the natural instinct. Win rate is fine, fold frequency looks right, nothing jumps out. The problem is that collusion does not always show up in individual profiles at all. Two players can look completely unremarkable on their own while quietly and consistently benefiting each other across hundreds of hands.

The problem only shows up when you look at both of them together.

That's what makes it genuinely hard to catch. Most fraud leaves a clear trail: unusual login locations, a transaction that doesn't fit the account's history, a withdrawal that trips a rule. In poker, the colluding player is doing legal things: calling, folding, betting. The only thing wrong is the reason behind those decisions, and that reason doesn't appear in any per-player report.

Volume is the first wall

A moderately busy online poker room generates tens of thousands of hand histories a day. Two to nine players per hand, multiple decisions per player per street. Add that up over a month and you're looking at millions of individual records. Nobody's reading that manually.

The hard part is knowing which suspicious things are actually worth pursuing. Cast too wide and you're chasing noise. Too narrow and real cases stay hidden. The data has to narrow things down first, or the work becomes impossible.

The same data, two lenses
As individual players, P3 and P7 look completely ordinary. Switch to pair view to see what their relationship actually looks like.

02 · Why It's Hard

Why simple signals fail

The first thing most people look at is how often two players share a table. They keep sitting together, and you'd think that means something. Usually it doesn't. Players have preferences: specific stakes, specific hours, specific game types. In a smaller pool you naturally run into the same faces over and over. Co-play frequency alone is noise.

Chip flow is more useful, but it still falls apart on its own. Variance is real. You can run badly against one person for weeks through pure bad luck. You need enough hands before any concentration in flow starts to mean something, and even then it's not proof. It gives you a reason to look harder, but that's it.

No single signal is enough. Each question just narrows the field. A pair only becomes worth pursuing when three separate questions all point to the same two people, for different reasons, at the same time.

One signal at a time
Each lens flags dozens of pairs. None of them alone tells you anything useful. Pick a signal to see why.
Co-play frequency: P3–P7 share 312 sessions together, but so do 14 other pairs at similar stakes. High co-play is normal. This signal flags the whole room.

03 · The Approach

You need more than one signal

The target here is a pair of players, not an individual. Two people whose combined history points to something neither of their own profiles would show. Getting there means cutting through a lot of ordinary data, and the only reliable approach is to ask several separate questions and flag a pair only when more than one raises a concern.

Three questions do the work. Where is the money going? Does this player act differently when that specific person is at the table? Do the decisions make sense, or do they quietly go against the player's own interest?

None of them settles anything alone. Together, they're hard to explain away.

Layer one: follow the chips

The most concrete thing you can measure in poker is chip flow. At the end of every hand, money moves from some players to others. Over thousands of hands, you can map exactly how much each player won or lost against every specific opponent they faced.

In a normal game, a player's chips spread around the table. Win some here, lose some there. What stands out is when one player sends a disproportionate share of their losses consistently to the same person. That alone doesn't prove anything, but it's a meaningful filter. At this volume, any good filter matters.

What matters is whether that concentration is unusual given how many opponents they faced and how many hands they actually shared. You have to account for how much they actually played against each other — otherwise you're just flagging pairs who sat together a lot, which tells you nothing.

Layer two: behavior changes at the table

Once chip flow looks unusual, the question becomes whether the player's decisions actually change when that specific person sits down.

Take a specific situation type (a particular position, a certain stack depth, a bet size) and compare how a player acts in that spot against everyone versus against one specific person. If the numbers shift meaningfully, that's worth attention.

A player might call bets aggressively everywhere, then fold far more often in identical spots when one specific person is betting. Or stop raising their strong hands when that person is in the pot. Neither thing is impossible by chance. But when the gap is large and holds across hundreds of hands, chance becomes a hard argument to make.

Layer three: are the decisions defensible?

The third layer is the most precise. Solver software can calculate the mathematically correct play for any given situation. Good players still make mistakes, but their mistakes follow a predictable pattern — nothing too far off in any one direction, nothing too consistent against one opponent.

When someone's decisions against one specific opponent consistently fall short of what the math would suggest, and the chips they lose keep going to the same place, the picture gets hard to dismiss. Money flowing one way. Behavior that changes around one person. Decisions that quietly work against their own interest. Three separate observations. One pattern.

04 · The Signals

Seeing it in the data

You can describe a pattern in words. The charts below use made-up data: no real players, no real hands. But the structures they show are real.

Why network methods work

Think of the table as a map: each player is a dot, and every time chips move at the end of a hand, an arrow is drawn between those two players, sized by how much moved and pointing in which direction. Run that over thousands of hands and you have a complete picture of who sent money where. That's something a per-player stat sheet can't show.

  • Concentrated losses: in a fair game, a player's losses spread across many opponents. When a large share consistently goes to one specific person, that stands out.
  • Pair patterns: what a player does against one specific opponent can look completely different from how they play overall. The relationship between two players matters more than either player's total numbers.
  • What a map shows that stats don't: a per-player stat table averages everything out. A network diagram keeps the direction, the pairing, and the volume. Those are the exact things that reveal collusion.
01
Chip flow between players
Each line shows money moving between two players over time. In a normal game, those flows spread around the table. The amber line is where the money kept going one way.
Regular players
Flagged pair (P3, P7)
Concentrated edge (P3 → P7)

In a healthy game, losses are spread around. You lose a little here, win some there, and over time nothing stands out. In the network above, seven of the eight players have roughly balanced, low-volume flows between them. One pair does not. One edge is thick, directional, and consistent enough that it reads differently from everything around it.

02
How decisions shift by opponent
How this player normally acts in a given situation, compared to how they act in that same situation against one specific opponent. The difference in shape is the problem.
vs All Opponents
vs Player of Interest

The blue shape shows normal behavior: the mix of decisions this player makes across all opponents in comparable situations. The amber shape is the same player, the same situation types, but a different opponent. The shape collapses. They fold far more often, stop betting into pots, and almost never raise. That shift does not happen by itself.

03
Value departure from optimal play
Each point is one situation type, one sample window. The y-axis shows how far each decision fell from what the mathematically correct play would have earned. Two clusters emerge: one for normal matchups, one for the flagged pair.
vs All Opponents
vs Player of Interest

Nobody makes the right decision every time. Variance, pressure, and fatigue all take a toll, and that's expected. What's harder to explain is when the worst decisions cluster around one specific opponent, and all the chips lost keep going to the same player. At some point, bad luck stops being a satisfying answer.

05 · Reflection

What it does well

Each signal works independently. Chip flow doesn't know what the behavior comparison found, and the decision scoring doesn't know what the network showed. When all three land on the same pair anyway, it's hard to write off as coincidence. That's what makes the results worth acting on.

Looking at players individually averages everything out and misses the point. A network view keeps the direction, the pairing, and the volume — exactly what collusion relies on staying hidden.

Where it falls short

These signals surface cases worth reviewing. They don't prove anything. Every flagged pair still needs a human to look at it. The method narrows the field, but it doesn't close the case. That distinction matters, and any real use of this should make it clear.

A few things it doesn't catch well:

  • Short-session colluders. Pairs who keep their cooperation to brief, high-stakes bursts without generating enough data for a pattern to show up. You need enough hands to see anything reliable.
  • Rotating partners. If colluders switch who they're helping each session, the flow patterns spread thin enough that no single pairing stands out.
  • Genuine bad luck against one opponent. Variance is real. You can run badly against the same person for weeks through pure misfortune. The method cuts down on wrong flags but can't eliminate them entirely.
  • Three-way or larger groups. This method only looks at pairs. Organized rings of three or more players can hide in the noise. Catching those requires a different approach entirely.

What this is an example of

Poker works as a test case because the rules are precise and every decision gets logged. But the same problem shows up in financial fraud, money laundering, and network security: people who look fine on their own and only give themselves away through their relationships. This kind of analysis isn't specific to poker. It applies anywhere the cheating only becomes visible in how two people relate to each other, not in what either one does alone.