Can You Round Poker Solver Frequencies? An Exact River Test

Fine lime and violet poker chips flow through a dark geometric gate and emerge as four coarse stacks on charcoal felt.

日本語で読む

A 25-percentage-point grid is neither automatically safe nor automatically bad. In this exact river test it reproduces equilibrium at a one-third-pot bet and a pot-sized bet, but not at five other tested sizes. With a 75% pot bet, Q's 42.86% bet frequency and K's 57.14% call frequency round to 50%/50%. The rounded profile increases the bettor's head-to-head payoff by only 0.4464 chips, yet either seat can gain 3.125 chips by best-responding.

The practical lesson is about the test, not the threshold: a rounded strategy can look harmless when played against its rounded counterpart and still leave a larger one-sided opening. Check both players' best responses, preserve the unit and node reach, and do not promote one toy-game grid into a rule for a real solve.

Disclosure: this is a synthetic experiment designed by GTO Gecko. It is not GTO Gecko product output, a Hold'em solve, population evidence, a benchmark of another solver, or a recommendation to use a particular grid. Every static article and data value is generated with exact rational arithmetic and recalculated by a separately implemented Python verifier.

The test uses one small river game

The pot is 100 chips before betting. The bettor holds A or Q with equal probability; A always beats the defender's K, while Q has zero showdown value. A always bets. Q bets as a bluff with conditional frequency f. After seeing a bet, K calls with frequency c. The bet size is b.

  • If the bettor checks, A wins the 100-chip pot and Q wins zero.
  • If K folds, either betting hand wins the 100-chip pot.
  • If K calls, A's payoff is 100 + b; Q's payoff is −b.
  • There is no rake, tie, future street, card removal, tournament payout or hidden population model.

Here, “Q-bet frequency” means the probability of betting after receiving Q. It is not the bluff share inside the betting range; because A and Q start with equal mass and A always bets, that share is f / (1 + f). At a 75% pot bet, for example, f = 3/7 but the betting range's bluff share is 3/10.

This A/Q-versus-K fixture is an established teaching game, including in the cited Japanese AKQ discussion. The new work here is the seven-size, five-grid rounding benchmark, the one-sided controls, and the reproducible public bundle—not the underlying game.

Making K indifferent between call and fold fixes Q's bet frequency. Making Q indifferent between bet and check fixes K's call frequency:

Equilibrium Q-bet frequency: f* = b / (100 + b)

Equilibrium call frequency: c* = 100 / (100 + b)

For each tested grid, we round f* and c* independently to the nearest grid point. Each player's other action receives the complement, so its two actions still sum to 100%. An exact half-grid tie rounds upward. That deterministic rule matters on tie cases and is included in the downloads.

This is a family of local river fixtures, not a full Hold'em strategy. It deliberately removes everything except the relationship between a mixed bluff, a mixed bluff-catch, a payoff scale and a rounding rule.

Four numbers answer four different questions

Let uB(f,c) be the bettor's gross return at this node when the declared Q-bet and K-call frequencies face each other. Contributions made before reaching the node are sunk. Every terminal pair sums to the starting pot P, so the defender's return is uD = P − uB:

uB(f,c) = ½(100 + c·b) + ½f[(1−c)·100 − c·b]

The rounded-profile payoff change compares that value with the equilibrium value. It asks how the two rounded policies perform against one another. It does not ask what happens after either player adapts.

The bettor best-response gain lets the bettor alone switch Q to always bet or always check, whichever is better against the rounded K-call frequency. The defender best-response gain lets K alone switch to always call or always fold against the rounded Q-bet frequency. Their sum is NashConv.

We report exploitability = NashConv / 2, matching the two-player constant-sum convention in OpenSpiel's pinned implementation. It is the average worst-case loss across the two seats. Some tools display NashConv instead, so the label without the formula is not enough.

The 25-point result depends on the bet size

The following table changes only b. Every row begins from its exact equilibrium, rounds both mixes to 0/25/50/75/100%, and evaluates the resulting profile. Values are chips per reached toy-game deal; the initial pot is 100.

On a narrow screen, scroll horizontally. “Profile Δ” is the bettor's rounded-profile payoff minus the equilibrium payoff; it is not exploitability.

Nearest 25-point rounding in seven exact river fixtures
BetExact Q bet / K callRounded Q bet / K callProfile ΔBettor BR gainDefender BR gainExploitability
25% pot20% / 80%25% / 75%+0.15632.34380.78131.5625
⅓ pot25% / 75%25% / 75%0000
½ pot33.33% / 66.67%25% / 75%+0.52081.56254.68753.1250
¾ pot42.86% / 57.14%50% / 50%+0.44643.12503.12503.1250
Pot50% / 50%50% / 50%0000
1.5× pot60% / 40%50% / 50%+1.25006.25006.25006.2500
2× pot66.67% / 33.33%75% / 25%+1.04173.12509.37506.2500

The zeros at one-third pot and pot do not make the grid intrinsically sound. Their equilibrium frequencies happen to land on quarter points. At 1.5× pot and 2× pot, the same grid produces 6.25 chips of exploitability—6.25% of the initial pot—under the same metric.

Line chart for bet sizes from 0.1 to 2 times pot. Exploitability repeatedly returns to zero where equilibrium frequencies land on a tested grid and rises between those points; coarser 25- and 50-point grids generally have higher peaks than 5- and 10-point grids.
The 955-row sweep changes bet size in one-point increments and tests 1-, 5-, 10-, 25- and 50-point grids. It maps this toy family; it is not a tolerance curve for real solver nodes.

One-sided rounding exposes the profile-payoff trap

The half-pot fixture gives the cleanest diagnostic. Its equilibrium is ⅓ Q bet and ⅔ K call. If only Q's bet frequency is rounded to 25% while K's call remains exact, the bettor's profile payoff stays exactly 66.6667 chips—the equilibrium game value. Yet K can gain 4.1667 chips by changing alone. Under our two-seat average convention, exploitability is 2.0833 chips.

If only the call frequency is rounded to 75%, the profile payoff again stays exactly at game value. This time the bettor can gain 2.0833 chips by changing alone, giving 1.0417 chips of exploitability. A perfect aggregate payoff can therefore coexist with a non-equilibrium policy.

Half-pot controls; equilibrium Q bet / K call = 33.33% / 66.67%
PolicyQ bet / K callProfile ΔBettor BR gainDefender BR gainExploitability
Exact equilibrium33.33% / 66.67%0000
Round Q bet only25% / 66.67%004.16672.0833
Round K call only33.33% / 75%02.083301.0417
Round both25% / 75%+0.52081.56254.68753.1250

This is the same conceptual warning behind solver documentation: at a perfect equilibrium, mixed actions are indifferent against the equilibrium opponent, but moving a whole policy can give the opponent a profitable response. PioSOLVER's concept FAQ explicitly warns that near-equal action EV does not mean every mixed hand can be pushed to one action without opening an exploit.

A finer grid helps here, but it is not a guarantee

For the half-pot fixture, rounding both frequencies to the nearest 1-, 5-, 10-, 25- and 50-point grids gives exploitability of 0.125, 0.625, 1.25, 3.125 and 6.25 chips respectively. The order is intuitive in this example, but the chart's repeated zeros explain why no simple monotone rule applies across bet sizes: alignment with a grid matters.

Real solver outputs add another problem. A range contains many hands with different reach weights and blockers. Rounding every cell independently can change total action mass and range composition. Deliberately assigning nearby hands to pure actions while preserving aggregate frequency is a different procedure from the cell-by-cell rule tested here. Neither procedure inherits this toy game's numbers.

A practical audit for a simplified strategy

  1. Freeze the baseline. Save the game definition, ranges, board, stack, rake or ICM model, allowed sizes, convergence measure and units.
  2. Write the simplification rule. Record the grid, tie behavior, whether actions are rounded independently, and how probabilities are renormalized.
  3. Measure the whole changed range. Compare the simplified profile with the baseline; do not infer range cost from one hand's close action EV.
  4. Evaluate both seats. Keep each unilateral best-response gain as well as any aggregate metric. A cancellation in the profile payoff is not protection.
  5. Weight by reach and repeat across nodes. A five-chip conditional loss at a rare node is not five chips per hand. Future streets and correlated edits can change the result.

Our solver-reading guide covers the prerequisite distinction between frequency and action EV. Once you choose a frequency, the poker randomizer guide covers unbiased execution rather than simplification cost. For a full-game example of why a profile payoff and a best response answer different questions, see the Kuhn Poker convergence lab.

What this experiment cannot tell you

An exact best response assumes the opponent knows the rounded policy and adapts without error or cost. Exploitability is therefore a worst-case robustness measure, not a prediction of what a human opponent will win. Conversely, a small rounded-profile delta is not evidence that opponents cannot adapt.

The experiment is conditional on reaching one river node. It has two hand classes, one fixed bet size per fixture, no blockers, no checking range beyond the declared model and no future action. It cannot estimate the cost of rounding a multi-street Hold'em solve, establish that a particular grid is memorable, or compare simplification methods that deliberately preserve range-wide action mass.

Where GTO Gecko fits

The current US GTO Gecko App Store listing, accessed September 16, 2026, describes plan-dependent libraries of precomputed preflop, flop, turn and river spots where students can compare range composition, action frequencies and EV estimates and practice simulated decisions. GTO Gecko is a study surface for reading those quantities; it did not generate this experiment and is not presented as a rounding evaluator or arbitrary solver.

A useful workflow is to inspect a mixed action in its complete range context, state any simplification separately, and keep the original frequency and EV visible for comparison. The public calculator below is only for the synthetic A/Q-versus-K equations.

Reproduce every result

The release is deterministic and contains no private solve, hand history or customer data:

The generator uses reduced BigInt fractions. The separately implemented verifier uses Python's fractions.Fraction, recalculates 35 featured scenarios, four ablations and 955 sweep rows, then checks the fixed release allow-list and every digest. It is run in both normal and optimized Python modes.

FAQ

Is rounding every solver frequency to 25% safe?
No universal answer follows from this experiment. The grid is exact at two tested bet sizes and exploitable at five others. Real ranges, reach probabilities, blockers and future play determine the actual cost.
Why can the rounded-profile payoff be correct when the policy is exploitable?
At equilibrium, one player's mixing makes the other player indifferent. Changing the indifferent player's frequency can leave the current opponent's payoff unchanged while giving that opponent a profitable pure response. The one-sided controls isolate that cancellation.
Is exploitability the same as EV loss?
Not without a definition. Here it is the average of the two unilateral best-response gains. One seat's worst-case loss, NashConv, action EV against a fixed opponent and whole-game EV are different quantities.
Should I use a randomizer instead of rounding?
A randomizer helps execute a selected probability without bias. It does not decide whether the source frequency or a simplified replacement is strategically acceptable.

Sources

This website uses cookies to enhance the user experience. See our Privacy Policy for details.