Same high card, different game

Continuation-bet frequency at the first decision, single-raised pots BTN vs BB in position · 2.0M decisions

Board has a 4-rank gap ("dry")No big gap ("connected")
0%20%40%60%80%structure effectK-highK82 · 79.2% c-betK82 · 79.2%KJ9 · 63.8% c-betKJ9 · 63.8%15.4 ptsQ-highQ95 · 64.8% c-betQ95 · 64.8%QJ9 · 57.4% c-betQJ9 · 57.4%7.4 ptsJ-highJ63 · 72.7% c-betJ63 · 72.7%J98 · 48.3% c-betJ98 · 48.3%24.4 ptsT-highT52 · 70.7% c-betT52 · 70.7%T98 · 40.9% c-betT98 · 40.9%29.8 pts
Each pair keeps the same top card and changes only the structure underneath. The lower the top card, the more the structure takes over: by T-high the gap between T52 and T98 is 30 points — more than twice the spread of the entire high-card ladder on dry boards.
In one minute
  • 1.2 billion real decisions drew this map. No theory, no assumptions — a boundary only counts if it shows up in every spot, at every stake, in two independent halves of the player pool.
  • The first thing that matters is the gap, not the high card. K82 and KJ9 share a king — and play 15 points apart.
  • Kings, not aces. Kxx is the most c-bet texture in poker (76%). Axx is the least c-bet of the dry boards — your opponent has aces too.
  • J98 is not a J-high board. It plays like T98 (7 points away), not like J63 (24 points away). Below the queen, connection beats rank.
  • Defenders answer texture with check-raises, not folds. Folding barely moves (38–46% everywhere); check-raising triples, from 6% on AKQ to 19% on 432.

What are texture classes for?

There are 22,100 possible flops. Every study workflow — human or software — compresses them into texture classes so that stats, drills, and reads have workable units. A class map has one job: boards inside a class should be played the same way by the population, and boards in different classes differently — with few enough classes to think in, and definitions a player can hold in their head.

Most texture taxonomies are drawn from intuition: high card first, then “wet or dry” by feel. We wanted to know what the map looks like when nobody draws it — when the data draws it.

How we let the data draw the map

For every flop rank pattern (952, KJ9, A84 … there are 455 of them, plus suit states), we measured the population’s continuation-bet frequency at the first decision, regulars only, in three aggressor spots: 3-bet pots from both sides, and single-raised pots in position. On the other side of those pots we measured the defender’s fold and check-raise frequencies against the c-bet. Then we handed a decision tree the raw ingredients — high card, middle card, low card, the gaps between them, paired-ness, suits — and let it split the flop space greedily, one boundary at a time, wherever population behavior separated most.

Two safeguards keep this honest. Every boundary must replicate: we grow the tree on a random half of the player pool and score it on the other half, many times — boundaries that don’t survive the split are noise and get no vote. And every claim must hold everywhere: in all three spots, and at both ends of the stakes range (NL50–100 and NL200–1000 populations agree on the class ordering at rank correlation 0.93+). The numbers below cleared both bars.

The first cut is the gap, not the high card

Ask a player to sort flops and they’ll start with the high card. The tree doesn’t. Its first split — chosen in 16 of 16 player-halves, with three times the explanatory power of any alternative — is: does the board contain a gap of four or more ranks anywhere?

The map's first three decisions, as the tree drew them

Share of flops · typical c-bet range (single-raised pots, IP)

Is there a 4-rank gap anywhere?the first split — chosen 16/16yes · ~74% of flopsno · ~26%DRY boardsc-bet 60–79%CONNECTED boardsc-bet 40–64%high card?Axx / Kxx / Qxxpaired?TT4-typemonotone?own classhigh card familyKJ9 → JT9 → 987rag structurewheel · spread
K82 has a gap (K→8). So does A84 (8→4), and 952 (9→5). KJ9, T98, and 654 don't. Roughly three flops in four are gapped. Only after separating gapped from compact — and paired from unpaired — does the high card start to matter.

It makes poker sense the moment you see it. A gap is where calling ranges miss. Suited connectors, middling broadways, pocket pairs — the hands that continue preflop cluster in adjacent ranks. A board with a hole in it connects with fewer of them; a compact board connects with almost all of them. The high card tells you who holds top pair. The gap structure tells you how much of the range whiffed — and that, it turns out, is the first thing population behavior keys on.

On dry boards, the ladder is real — and the king rules, not the ace

Here’s the part that vindicates tradition: once the tree is working inside gapped boards, it re-invents the high-card ladder on its own — splitting off ace-high, king-high, queen-high, exactly the classes players already use. But the order it finds isn’t the one in most players’ heads:

The dry side, sorted by aggression

C-bet% by class, single-raised pots BTN vs BB IP · dry = contains a 4-rank gap, unpaired, not monotone

0%20%40%60%80%KxxKxx · 76.4% c-bet76.4%J/TxxJ/Txx · 71.4% c-bet71.4%QxxQxx · 71.1% c-bet71.1%HHx DisconnectedHHx Disconnected · 70.7% c-bet70.7%HHHHHH · 68.7% c-bet68.7%AxxAxx · 68.6% c-bet68.6%ABxABx · 68.4% c-bet68.4%Mid DisconnectedMid Disconnected · 62.5% c-bet62.5%Low DisconnectedLow Disconnected · 60.0% c-bet60.0%
Kxx (K82, K64…) is the most c-bet texture in poker — in every aggressor spot we measured. Axx and ABx sit at the bottom of the dry group: on ace-high boards the caller still holds plenty of aces, so the ace works for the defense too. And J/Txx — a lone jack or ten above two rags (J32, T53) — plays like a queen-high board, not like a mid one: the isolated top card does the same job an ace does.

Below the broadways, structure beats rank

The ladder stops working underneath the queen. J98 and T98 sit 7 points apart — but J98 and J63 sit 24 points apart. Sorting these boards by their top card puts J98 and J63 in the same bucket, which is exactly backwards. What actually organizes this region is a connected staircase that cuts across the rank classes, falling in three tiers: HHx Connected (KJ9, QT9 — 63%), Mid Connected (JT8, T98, 987 — 47%), and Low Connected (876, 654, 432 — 40%):

The connected staircase

Root c-bet% by family, single-raised pots BTN vs BB IP · all boards compact (no 4-rank gap)

0%10%20%30%40%50%60%70%KJ9KJ9 · 63.8% c-bet63.8%QJ9QJ9 · 57.4% c-bet57.4%J98J98 · 48.3% c-bet48.3%T98T98 · 40.9% c-bet40.9%987987 · 38.3% c-bet38.3%876876 · 35.7% c-bet35.7%765765 · 33.4% c-bet33.4%654654 · 32.8% c-bet32.8%432432 · 41.9% c-bet41.9%
From KJ9 down to 654, aggression falls one step at a time as the connection zone drops through the calling range’s heart. Note the twist at the bottom: 432 rises back to 42% — the wheel zone is built from cards so low they miss the caller almost entirely.

What suits are — and aren’t

The tree had suit information available at every step. It used it exactly once: monotone boards split into their own class (they suppress aggression by roughly ten points). The flush draw — two-tone versus rainbow — was never chosen as a boundary, at any map size up to 20 classes. Measured directly, two-tone shifts the root decision by 2–7 points; rank structure shifts it by up to 30. Flush draws matter for later streets and range composition, so they belong in filters you layer on top of classes — but building class walls out of them mixes boards that play 20+ points apart. Data closed that debate.

The defender answers with check-raises, not folds

Here is the finding we didn’t expect. Facing a c-bet, the population’s folding is nearly texture-blind: from the wildest connected board to the driest ace-high, fold-vs-c-bet spans just 38–46% — an 8-point range against the attacker’s 42-point range. But their check-raising is anything but blind:

Check-raise vs c-bet, by texture

BB defending vs BTN's flop c-bet, single-raised pots · 1.1M decisions

DryConnectedPairedMonotone
0%5%10%15%20%Paired LowPaired Low · 18.8% check-raise18.8%Low ConnectedLow Connected · 18.3% check-raise18.3%Low DisconnectedLow Disconnected · 16.5% check-raise16.5%J/TxxJ/Txx · 16.4% check-raise16.4%Paired HighPaired High · 14.4% check-raise14.4%Mid DisconnectedMid Disconnected · 14.4% check-raise14.4%Mid ConnectedMid Connected · 14.4% check-raise14.4%QxxQxx · 13.8% check-raise13.8%KxxKxx · 13.3% check-raise13.3%AxxAxx · 12.0% check-raise12.0%MonotoneMonotone · 11.3% check-raise11.3%HHx ConnectedHHx Connected · 9.6% check-raise9.6%HHx DisconnectedHHx Disconnected · 9.2% check-raise9.2%ABxABx · 6.3% check-raise6.3%HHHHHH · 6.2% check-raise6.2%
A threefold range: defenders check-raise HHH boards 6% of the time and low or paired boards up to 19%. Texture-response on the defense side is real — it just lives in the raise, not the fold. If your barrels feel safe on AKQ and keep getting raised on 654, this is why.

How many classes does the data want?

Each added class buys less than the one before. Measured on held-out halves of the player pool, the curve climbs steeply to ~8 classes, keeps paying to ~14–16, and flattens after. We shipped 16 classes under 8 parent groups — and every parent is itself a queryable texture, so you can read the map at whichever altitude fits the question. Where the data agreed with tradition, we kept tradition’s names; where it didn’t, tradition already had the right word: mid.

The map: 16 classes, drawn by the data, named like a poker player

Anchor rates: root c-bet% (single-raised BTN vs BB IP) · fold% and check-raise% (BB vs that c-bet) · x = any low card

ClassDefinitionExamplesShareC-betFoldX/R
HHH
HHHthree broadwaysAKQ, QJT2.7%68.744.56.2
HHx — two broadways
ABxace + broadway + ragAT2, AQ48.9%68.445.86.3
HHx Connectedcompact, no aceKJ9, QT93.0%63.145.39.6
HHx Disconnectedgapped, no aceKQ2, QJ29.4%70.746.39.2
Hxx — one high card
Axxlone aceA72, A937.7%68.645.812.0
Kxxlone kingK82, K647.7%76.443.213.3
Qxxlone queenQ72, Q657.4%71.142.713.8
J/Txxlone jack or ten above ragsJ32, T534.4%71.441.016.4
Mid
Mid Connectedcompact, 9-high to J-highJT8, T98, 9875.0%46.537.814.4
Mid DisconnectedJ/T-high, gappedJ84, T738.4%62.541.214.4
Low
Low Connectedcompact, 8-high or less876, 654, 4325.6%40.241.918.3
Low Disconnected9-high or less, gapped852, 9437.4%60.041.916.5
Paired
Paired Highpair of tens or betterQQT, TT46.6%79.144.914.4
Paired Lowpair below tenK88, 33210.4%69.443.618.8
Monotone · Trips
Monotonethree of one suitKQ5♠♠♠5.1%58.344.511.3
Tripsthree of one rank8880.2%82.451.05.2
Definitions are pure functions of the three ranks (plus the monotone/trips checks) — no suit ever decides between two rank classes. The parents (HHH · HHx · Hxx · Mid · Low · Paired · Monotone · Trips) are textures too: filter at parent level for the broad read, at class level for the sharp one. ABx earns its own class less for its c-bet (which matches its HHx siblings) than for its defense signature: with HHH, it is the least check-raised board in poker.
Data table — all classes, attack and defense
ClassC-bet SRP IPFold vs c-betCheck-raise
HHH68.744.56.2
ABx68.445.86.3
HHx Connected63.145.39.6
HHx Disconnected70.746.39.2
Monotone58.344.511.3
Axx68.645.812.0
Kxx76.443.213.3
Qxx71.142.713.8
Paired High79.144.914.4
Mid Disconnected62.541.214.4
Mid Connected46.537.814.4
J/Txx71.441.016.4
Low Disconnected60.041.916.5
Low Connected40.241.918.3
Paired Low69.443.618.8
Trips82.451.05.2
Method note. Sample: 94.6 million 6-max online cash hands (1.24 billion logged actions), regulars only, NL50–NL1000. Measured stats: first-decision c-bet frequency per flop rank pattern × suit state in three aggressor configurations (3-bet pot out of position, 3-bet pot in position, single-raised pot in position), and the defender’s fold and check-raise frequencies versus that c-bet. Map construction: greedy binary partition (CART-style) over pure rank features + suit flags, minimum class size 0.8% of volume; every boundary validated by fitting on one random half of the player pool and scoring on the other (16–32 resamples), and checked for transfer between the NL50–100 and NL200–1000 populations (class-order rank correlation 0.93+). Final naming follows player conventions wherever the data allowed it. No solver output was used anywhere in this article — this is what the population actually does. Part of an ongoing series on how Pokalab is built.