Solvers

How a poker solver actually works

A solver is not an oracle that knows the right answer. It is a machine that plays a spot against itself several million times, regrets its mistakes in a very specific arithmetic sense, and stops when neither side can find a way to gain. This is what happens inside it, why the output looks the way it does, and where it stops being useful.

What a solver is actually computing

A poker solver takes a fully specified spot — both players’ ranges, the board, the pot, the effective stack, and the bet sizes each player is allowed to use — and searches for a Nash equilibrium of that spot. An equilibrium is a pair of strategies where neither player can improve their expected value by changing their own strategy alone. That is the formal definition of GTO: not "the best play", but "the play that cannot be beaten by any counter".

The distinction matters more than it sounds. A solver never asks what your opponent is likely to do. It assumes the opponent is also playing perfectly and will punish any imbalance immediately. That is why solver output so often looks strange — a check with the nuts, a river bluff with a hand that could have won a showdown. Those plays are not there because they are individually profitable. They are there because removing them would make the rest of the strategy exploitable.

A solver answers one question: what would I have to do so that a perfect opponent gains nothing from knowing my whole strategy in advance? Every odd-looking output is an answer to that question and to no other.

Counterfactual regret minimisation, in plain language

Almost every modern solver, including the one that runs in this site’s browser solver, uses some variant of counterfactual regret minimisation — CFR, or in its faster modern form, CFR+. The algorithm is easier to understand than its name.

Start with a strategy that is pure noise: at every decision point, split your range evenly across the legal actions. Then play the entire game tree out, for every hand in both ranges at once, and record for each decision what would have happened if you had always taken some other action instead. That difference — what the alternative would have earned minus what your current strategy earned — is the regret for that action.

  1. Walk the whole game tree with the current strategy and compute the expected value of every action at every decision point.
  2. For each action, add the difference between its value and the value the current strategy actually achieved to a running regret total.
  3. Build the next iteration’s strategy by weighting each action in proportion to its accumulated positive regret — actions you wish you had taken more get taken more.
  4. Repeat. The *average* of all strategies played so far provably converges on a Nash equilibrium.

The last line is the whole trick, and the part most explanations skip. The strategy on any single iteration is not the answer and can be wildly wrong. It is the running average across every iteration that converges. CFR+ improves on plain CFR mainly by clamping negative regrets to zero and weighting later iterations more heavily, which in practice cuts the number of iterations needed by an order of magnitude.

Exploitability: the number that says when to stop

A solver never reaches a perfect equilibrium. It gets close and then has to decide it is close enough. The measure it uses is exploitability, usually quoted in big blinds per 100 hands or as a percentage of the pot.

Exploitability is computed by asking a simple question of the current strategy: if an opponent knew this strategy exactly and played the single best response to it, how much would they win? A true equilibrium has an exploitability of zero. A solve quoted at "0.3% of pot" means a perfect opponent with full knowledge of your strategy could extract three tenths of one percent of the pot from you — far below the noise floor of any decision you will ever make at a table.

ExploitabilityWhat it meansGood enough for
Above 2% of potThe strategy still has visible holes; frequencies will shift materially with more iterations.Nothing. Keep solving.
0.5%–2% of potAction frequencies are broadly right; marginal hands may still move between actions.Getting the shape of a strategy.
Below 0.5% of potStable. Further iterations move frequencies by less than the rounding you apply at the table.Study, and any decision a human will make.
What an exploitability figure is worth in practice

Chasing exploitability far below that last row is largely vanity. The gap between a 0.4% solve and a 0.05% solve is real mathematics and irrelevant poker: no human plays a strategy accurate to five hundredths of a percent, and the preflop charts you memorise are rounded far more coarsely than that on their way into your head.

The abstractions every solver makes

No solver solves poker. Every one of them solves a simplified model of one spot, and the simplifications are where the errors live. Four of them matter:

  • Bet sizing. Real poker allows any bet from one big blind to your whole stack. A solver is given a handful — say 33%, 75% and all-in. Every strategy it returns is optimal *within that menu* and says nothing about the sizes you left out.
  • Range assumptions. The solve is only as good as the two ranges you feed it. Give the preflop caller a range they would never actually have, and the output is a perfect strategy against an opponent who does not exist.
  • Card abstraction. Many solvers bucket similar turn and river cards together to keep the tree small. Faster, and occasionally wrong exactly where the board texture is doing the work.
  • No node locking by default. The solver assumes the opponent also plays the equilibrium. Real opponents do not, which is the entire subject of GTO versus exploitative play.

This is why two solvers can disagree about the same flop and both be right. They were asked slightly different questions.

How to read a solver output without fooling yourself

A solver hands you a grid of 169 starting hands with a colour-coded mix of actions in each cell, and a stack of expected values in big blinds. Three habits make that grid useful rather than decorative:

Read frequencies, not individual hands

That the solver bets K♦9♦ 63% of the time is close to meaningless on its own — it is an artefact of where that specific combination fell relative to the threshold. That it bets 63% of its *whole range* on this texture is the finding. Learn the aggregate first; the hands sort themselves once you know the shape.

Look at the EV gap, not the recommendation

Every action carries an expected value. If betting is worth 4.02bb and checking 3.98bb, the solver will report a bet — and the decision is worth 0.04bb, which is nothing. If betting is worth 4.0bb and checking 1.2bb, that is a real error waiting to happen. Sorting your study by EV gap rather than by frequency is the single fastest way to find the mistakes that actually cost money, which is what the leak analysis in the trainer does with your own hands.

Distrust anything at the edge of the abstraction

Strategies involving the largest allowed bet size, or the shortest allowed stack, are the ones most likely to be an artefact of where you drew the boundary. If the solver wants to jam every river, check whether it simply had no smaller size to choose.

Why a solver can now run in a browser tab

Solvers used to mean a desktop install, a licence key and a machine you left running overnight. Two things changed. CFR+ cut the iteration count enormously, and WebAssembly closed most of the gap between browser and native arithmetic. A single postflop spot with a sane bet-size menu is now seconds of work, not hours.

That has a privacy consequence worth naming: a solve that runs client-side never leaves the machine. The solver on this site runs in a Web Worker in your own browser — the hands, the ranges and the board are computed locally and are not uploaded anywhere. It is also why it needs no account and no download.

What browser solvers are still bad at is scale: full preflop trees with many sizes and deep stacks remain a job for a big machine and a lot of RAM. The standard division of labour is to precompute preflop — which is what the preflop chart shelf serves — and solve postflop spots on demand.

From solver output to something you can actually do

Reading solves is not the same skill as playing them, and the gap between the two is where most study time is wasted. A solver output is a reference; it becomes a strategy only after it survives contact with a decision made in a few seconds with no grid in front of you.

The reliable method is narrow and repetitive: take one spot, learn its aggregate frequency, then play that spot repeatedly and have each decision priced against the solve immediately, while the hand is still in your head. That is exactly the loop the seven-chapter bootcamp runs — it deals the spot, you act, and the solver tells you what the decision cost in big blinds before the next hand lands. Chapter one needs no account.

Frequently asked questions

What is a poker solver?

A poker solver is software that computes a game-theory-optimal strategy for a fully specified poker spot. You give it both players’ ranges, a board, a pot size, an effective stack and a menu of bet sizes; it iterates towards a Nash equilibrium and returns the frequency with which each hand should take each action, plus the expected value of each action in big blinds.

What does CFR stand for in poker solvers?

CFR stands for counterfactual regret minimisation. It repeatedly plays a spot against itself, records how much better each alternative action would have done (the regret), and reweights the next iteration towards the actions it regrets not taking. The average of all iterations provably converges on a Nash equilibrium. CFR+ is a faster variant that clamps negative regrets to zero.

Is there a free poker solver?

Yes. GTO Academy’s solver runs entirely in your browser with no download and no account, and its preflop chart shelf is free for everyone. Free solvers are typically limited in tree size rather than in accuracy — a single postflop spot with a small bet-size menu solves in seconds, while full deep-stacked preflop trees remain a job for precomputed charts.

How accurate does a solve need to be?

Below about 0.5% of the pot in exploitability, further iterations move action frequencies by less than the rounding a human applies when memorising them. Anything below that threshold is stable enough for study and for any decision made at a real table.

Why does the solver make plays that look wrong?

Because it is not maximising the value of one hand — it is making its whole range impossible to counter. A river bluff with a hand that could have won at showdown, or a check with the nuts, exists to keep a different part of the range safe. Removing it would make the strategy exploitable, which costs more than the individual play gains.

Where to go next

Run a solve yourselfA CFR+ solver in your browser. No download, no account.What is GTO?The strategy the solver is converging on, from the ground up.Train against itSeven chapters, every decision priced in big blinds. Two are free.