Benchmarks & research
Exploitability metrics
Each engine reports accuracy differently. The numbers answer different questions and should not be compared across engines.
| Engine | Number | How it is computed | What it tells you |
|---|---|---|---|
| Preflop engine | Regret bound (headline, preflop street) | Computed from the regret tables. It is an upper bound on exploitability for 2-player zero-sum games; with more players it is used as a convergence measure. | How converged the blueprint is inside its abstraction |
| Preflop engine | Sampled best response (optional, bb/100 ± standard error) | A sampled best response per seat, seeing the same abstraction and sampled cards as training. Each seat's gain is a lower bound. | Convergence, not how faithful the abstraction is. It reads close to 0 on normal runs. |
| RangeCFR (HU) | Exploitability, % pot and bb/100 | Full best response per player against the average strategy, summed over both players, divided by the pot and halved | Distance from the equilibrium of that spot's tree, computed without sampling |
| RangeCFR (3-way) | Exploitability, % pot | Sum of (best response − EV) over players, divided by the number of players and the pot. On a flop root with a turn sample, computed over the same sampled turns. | The average gain a single player could make by deviating alone. On a sampled flop it does not include the sampling error. |
Reading the preflop accuracy bound
The preflop engine reports its accuracy in bb per hand dealt; the toolbar shows it as, for example, "Acc ≤ 0.027 bb/hand". It estimates, from the regrets the training keeps, how much a seat could still gain per hand by changing its preflop decisions while everyone else keeps the blueprint. It is built like an upper bound, so the real gain is usually smaller, and it is an estimate, because the training samples cards and the opponents' actions. Postflop play is inside the abstraction and is not part of it.
It is not on the same scale as a postflop solver's "0.3% of the pot". That figure is an exact best response in one heads-up spot, as a share of that spot's pot, such as a 6 bb flop pot or a 20 bb 3-bet pot. The preflop number covers a whole six-handed hand from the blinds, per hand dealt. As a share of the 1.5 bb in the blinds it would look large for no reason, so it is not shown that way. For scale: on the 20 bb trees in Preflop benchmarks, every preflop decision matched the reference solution at about 0.011–0.014 bb per hand heads-up and about 0.025 bb per hand six-handed.
How it falls: it roughly halves each time the number of samples doubles. In the 6-max 100 bb run it went from 0.107 bb per hand at 40,000 samples to 0.049 at 100,000 and 0.027 at 200,000, a factor of 0.55 per doubling. If it kept that pace, 0.010 would take about 650,000 samples and 0.003 about 2.6 million: at that run's speed, about one more day and about a week. Small targets cost a lot and change little: from UTG to the button that run's first-in ranges gained less than 0.0001 bb per hand between 100,000 and 200,000 samples.
What to use it for: set the accuracy stop in the run settings to the level where the ranges you care about stop changing in value, not to a postflop solver's percentage. The Convergence chart in Preflop Settings shows per position what has settled and what still moves, and the forecast on the accuracy badge says when the current run reaches a given level.
Reading the three-way number
For each player, the engine computes a best response: the most that player could win by changing its own strategy while the other two keep playing the solver's average strategy. The best response only uses what that player can see: its own hand, the board and the betting so far, never the opponents' cards. Every action in the tree is considered. The three gains are added up, averaged over the players, and expressed in % of the pot at the node.
- Zero would mean that no single player can gain by deviating alone.
- It is not a guarantee against two players deviating together (collusion).
- It is not the same guarantee as the heads-up number. In a two-player zero-sum game, low exploitability bounds how much any opponent can win; with three players an equilibrium is not unique and does not give that guarantee. The average best-response gain is a common way to measure convergence in multi-player games.
A best response computed inside the abstraction cannot see the abstraction's own error. A gain of 0 means converged, not faithful to the full game. To measure a blueprint node against the full game, re-solve it with RangeCFR and compare.
EV loss as a quality measure
For preflop ranges we judge quality by EV loss, in bb per hand at the node: what the strategy's mix gives up against the best action, valued with reference EVs. Frequency differences mislead because several mixes can be nearly equally good.
An example from a 6-max 100 bb blueprint (rake 5% capped at 3 bb, opens 2.5 bb): UTG opening K6s and K5s, averaged strategy, at each checkpoint of one run. EV is the EV of the open in bb at the decision; folding is 0.
| Samples | K6s open | K5s open | K6s EV | K5s EV |
|---|---|---|---|---|
| 60,000 | 42.3% | 28.3% | −0.002 | +0.001 |
| 80,000 | 43.9% | 37.3% | +0.001 | +0.002 |
| 100,000 | 44.4% | 44.5% | −0.002 | −0.000 |
| 120,000 | 45.0% | 47.0% | −0.000 | −0.000 |
| 140,000 | 40.4% | 39.0% | +0.000 | +0.000 |
| 160,000 | 34.5% | 36.6% | −0.001 | −0.000 |
| 180,000 | 24.2% | 37.5% | −0.001 | +0.000 |
| 200,000 | 18.2% | 41.8% | −0.001 | +0.001 |
Over the run the open frequency of K6s moves by more than twenty points, while both EVs stay within 0.002 bb of folding and within 0.003 bb of each other. Both hands are close to indifferent. As the run goes on, the averaged strategy opens K5s more often than K6s; from 100,000 samples on, K5s has the same or a slightly higher EV at every checkpoint. Comparing frequencies alone would call one of the two ranges wrong; the EV loss of opening either hand at any of these mixes is under 0.002 bb per hand.
A worked unit conversion, with the scope kept fixed
An Acc value of 0.0272 bb per hand corresponds to 2.72 bb per 100 hands. It does not mean 2.72% of a particular flop pot. Conversely, a postflop metric of 0.1% on a 10 bb pot represents 0.01 bb in the metric’s defined gain normalization, conditional on that spot. Those numbers concern different starting states.
Before comparing two runs, keep a record of player count, ranges, pot, tree, rake and future-card coverage. A small number on sampled turns does not certify the missing turns. A blueprint headline measures residual learning inside its represented model; it is not independent proof that all postflop values match a no-abstraction solve.
Two-player zero-sum guarantees require their assumptions. Rake removes money from the players’ combined payoff, and multiplayer games are a different theoretical setting. Treat the displayed metrics according to their documented definitions rather than assuming every declining number is a Nash certificate.
PulseGTO