# PLO6 suit patterns: exact reproduction

Created September 6, 2026 by GTO Gecko. Original code, constructed inputs and graphics: CC0-1.0. No third-party code or media is included.

Question: how many distinct same-suit hole-card pairs and flush-capable suits does each suit pattern contain, and how often is each shape dealt before conditioning on other information?

Model: one uniformly random unordered 4-, 5- or 6-card hand from a complete 52-card deck with 13 ranks in each of four suits. Every raw hand is equally likely. No known/dead cards, board, opponents, betting-action filter, selected range, short deck or alternative hand-construction rules. No player data or random simulation is used; a seed is not applicable.

## Files

- `examples.json`: seven independently constructed full-card inputs. Examples are separate hands; cards overlap across examples.
- `results.json`: model, method, all twenty census rows and all example pair witnesses.
- `suit-patterns.csv`: the same twenty census rows: 5 four-card shapes, 6 five-card shapes, 9 six-card shapes.
- `generate.py`: standard-library generator using labeled suit-count vectors.
- `verify.py`: standalone independent checker using ordered suit sequences; it does not import the generator.
- `pairs-and-suits.svg`: original two-example diagram; textual equivalent in the article and this guide.
- `hero.svg`: original article hero source, rasterized to WebP for the site.
- `SHA256SUMS`: file integrity hashes (excludes the checksum file itself).

Download all files from the links in the article or append each filename to `https://gtogecko.com/data/plo6-suit-patterns/`. Put them in one directory. Python 3.10 or later is required; this bundle was tested with Python 3.11. No packages need installing. From that directory:

```text
python verify.py
python generate.py
python verify.py
python -O verify.py
```

The first check validates the supplied output. Generation rewrites only `results.json` and `suit-patterns.csv` next to the script; it does not write in the shell's working directory. The following checks validate the regenerated output. Both scripts can also be called by absolute path from another directory. Verification includes exact counts, fixture/card consistency, CSV byte parity and thirteen deliberate tamper rejections. A checksum match checks file integrity, not the correctness of the mathematics.

## Counting method

For each labeled four-suit count vector summing to n, count hands by the product of C(13, count) over its four suits. Sort the vector, omit zeroes and accumulate its weight under that shape. All row counts must sum to C(52, n): 270,725; 2,598,960; and 20,358,520 for n=4,5,6 respectively.

Each group of k cards contributes C(k,2) same-suit pairs; each group of at least two contributes one flush-capable suit. The latter means only that the hole cards satisfy Omaha's two-card flush requirement. The board must supply three cards of that suit. Neither measure estimates a flush draw, winning flush, equity, strategy EV or profitability.

The independent verifier enumerates all 4^n ordered suit sequences for n=4,5,6 (5,376 sequences altogether). At each position it multiplies by the number of that suit's cards still available, then divides each shape's accumulated count by n! to remove order. It also uses literal fixture oracles alongside derived card checks. This is a second counting implementation, not a proof that external data are complete or that an app is correct.

## Interpreting output

CSV percentages are decimal strings rounded to six places; the article rounds to two. Exact probabilities are the integer `hands` divided by `total_hands`. Counts for different shapes are disjoint and exhaustive within each card count; rounding can prevent displayed percentages from summing to precisely 100.

For six cards, 2-2-2 has 1,898,208 hands, three same-suit pairs and three flush-capable suits. Shape 3-3 has 490,776 hands, six pairs and two suits. Exactly two capable suits cover 14,289,288 hands; three cover 1,898,208. At least two cover their sum, 16,187,496, or 79.512145…%. These are raw-deal counts, not probabilities after ranks or other information are fixed.

Cards use uppercase ranks `2`–`9`, `T`, `J`, `Q`, `K`, `A` and lowercase suits `s`, `h`, `d`, `c`. For example, `As` is the ace of spades. Duplicate cards or other notation are rejected. The sorted shape omits suit names and rank identities; preserve the original cards alongside it. Each fixture's pair witnesses list all same-suit unordered pairs.

## Accessible figure equivalent

The first separate example is As Ks Qs Ah Kh Qh, shape 3-3. Spades supply AK, AQ, KQ; hearts supply AK, AQ, KQ. Six pairs belong to two suits. The second is As Ks Ah Kh Ad Kd, shape 2-2-2. Spades, hearts and diamonds each supply one AK pair. Three pairs belong to three suits. The two examples share cards and are not opponents in a single deal. No strength comparison is made.

## Limitations

The census counts raw standard-deck hands and suit structure only. It is not a simulation, solver, range-selection model, hand evaluator or app benchmark. Seven examples are selected teaching cases, not a sample of player behavior. Suit labels differ across publications/tools; the numeric shape and explicit group-count definitions control these files. No import compatibility is asserted.
