How these numbers are produced

Nothing on this site is transcribed from someone else's chart. Every figure comes from dealing real cards out of a 52-card deck, ranking the best five-card hand out of seven, and counting who wins — repeated hundreds of thousands of times for each pairing. The evaluator and the simulator were written for this site and live in the repository.
Every calculation assumes the opponent holds a random hand. Real opponents hold ranges, so these numbers are not the same thing as equity against a range, and this site deliberately does not publish opening ranges or GTO recommendations. It answers one question only: if these cards go all the way to showdown, how often does each side win?
What was run, and how many times
| Dataset | Contents | Trials | Entries |
|---|---|---|---|
| equity-data.json | Each of the 169 hands vs one random opponent | 400,000 | 169 |
| matchup-data.json | All 169×169 hand-vs-hand pairings (every suit layout enumerated) | 200,000 | 14,365 |
| multiway-data.json | Each hand against one to eight random opponents | 50,000 | 1,352 |
| vs-data.json | Matchup pages: split by shared suits, plus three-way | 200,000 / 200,000 | 321 |
For pairings whose equity depends on how the suits fall (AKs vs QQ, for instance) the suits are not re-dealt at random. Every concrete two-card combination belonging to each hand class is enumerated, and only the non-colliding pairs are used, each with equal weight (precompute-matchups-v2.mjs). That removes the sampling noise of the suit draw itself, leaving only the board-level Monte Carlo error, and the two directions of a pairing always sum to exactly 100. Matchup pages go a step further and publish the zero-, one- and two-shared-suit cases separately.
Checked against exact enumeration
| Pairing | Full enumeration | Boards | Published here | Gap |
|---|---|---|---|---|
| AA vs KK | 81.95% | 61,642,944 | 81.99% | 0.04pt |
| AKo vs AQo | 74.39% | all suit layouts × all boards | 74.41% | 0.02pt |
| AKo vs AKo | 50.000% | symmetry test | 50.0% | 0.00pt |
Two scripts do the checking. node test.mjs compares six well-known equities against the simulator, and node verify.mjs enumerates AA vs KK across all 61,642,944 boards to produce an exact figure. Feeding the evaluator identical hands (AKo vs AKo) and confirming it returns exactly 50.000% is the symmetry test that catches asymmetric bugs.
Figures are published to one decimal place. The standard error is roughly 0.08 points at 400,000 trials and 0.11 points at 200,000, so the first decimal is stable — though it can sit 0.1 to 0.3 points away from another site's number. This dataset was generated on 2026-09-06.
Take the data
The equity of all 169 hands against one to eight opponents is available as a CSV. Use it in an article or a video however you like, as long as you credit 169hands.com.
FAQ
Are these numbers copied from another chart?
No. They come from a seven-card hand evaluator written for this site (engine.js) and simulated here. The source is in the repository, and node test.mjs / node verify.mjs reproduce and cross-check the figures.
How much error does Monte Carlo introduce?
At 400,000 trials per hand the standard error on an equity figure is about 0.08 points. Measured against full enumeration, AA vs KK over all 61,642,944 boards is exactly 81.95% and the simulation returns 81.99%; AKo vs AQo enumerates to 74.39% and simulates to 74.41%. Trust the first decimal place; anything beyond it is noise.
Why simulate at all if enumeration gives exact answers?
A single heads-up pairing takes up to 60 million board evaluations, and doing that for all 169×169 pairings is not finishable in reasonable time. Enumeration is used for verification (verify.mjs); everything published on the site is simulated so that all the numbers are produced the same way.