Skip to content

GTO basics

A GTO (game-theory-optimal) strategy is one half of a Nash equilibrium: a pair of strategies, one per player, where neither player can gain by changing their own strategy while the other keeps theirs. Heads-up poker is zero-sum, so playing your half of the equilibrium guarantees you at least the value of the game no matter what the opponent does.

Two consequences shape how you should read a solution:

  • It does not try to exploit anyone. Against a specific opponent who folds too much, a different strategy would win more. GTO is the strategy that cannot itself be exploited.
  • Mixing is the point. Many hands are indifferent between two actions at equilibrium. Taking each at the right frequency is what keeps the opponent from having a profitable deviation.

Exploitability measures how far a strategy pair is from equilibrium: how much a best-responding opponent would gain per hand, expressed as a percentage of the starting pot. Zero is a perfect equilibrium.

The solver does not compute the equilibrium in one step. It plays the two strategies against each other, iteration after iteration, nudging each toward a better response to the other (the family of algorithms is Counterfactual Regret Minimization). Exploitability falls as it goes. Target exploitability on the solve form tells the solver when to stop; Max iterations caps the work either way. See New solve.

RangeFlux solves the game that begins on a fixed flop, turn, or river between exactly two players. This choice is what makes an exact answer possible:

  • With two players in a zero-sum game, “equilibrium” is well defined and every equilibrium has the same value. With three or more, neither holds.
  • With a fixed board and fixed starting ranges, the game is finite and small enough to solve to a tight exploitability in minutes.

The preflop action is not solved. It is an input: the two ranges you give the solver are your assumption about what reached this board. A solution is only as good as that assumption.

Real no-limit play allows any bet size. The solver only considers the sizes you list under Bet sizes, plus all-in. That has three practical effects:

  • Sizes change the answer. A tree with one size and a tree with three are different games, and their strategies differ. Solve both if you want to compare.
  • Frequencies are conditional on the tree. “Bet 33% with 60% of the range” means “given the only bet available is 33%”.
  • The last raise is always all-in under Max raises per street, so deep raise wars are folded into a shove.

Rake is not modeled on the web form, and the solver works in chips: no ICM, no tournament adjustments.

  • Read the shape of the strategy (which hand classes bet, check, or fold, and roughly how often), not the exact decimals.
  • Use EV to tell hands that strongly prefer an action from hands that are indifferent. See Reading the output.
  • Change one thing at a time (a size, a range, a stack depth) and re-solve to learn what drives the strategy.