How we measure

Solver Accuracy

Every spot in the library is solved exactly, then graded exactly. The grade travels with the spot: open any solve in the app and it tells you its own measured accuracy, not an average or a claim about the library in general.

Target
0.3% of pot

Library and custom solves

Spots measured
501,655

Every solved spot, individually

Median accuracy
0.27% of pot

Measured by best response

What the number means

Accuracy here is exploitability, and it answers one question: if somebody knew this strategy in advance and played the single best counter to it, how much would they win?

We write it as a share of the pot, because the pot is the natural unit — the same mistake costs the same share whether the blinds are $1 or $100. At 0.3% of pot, a perfect opponent beats the strategy for about 0.3 cents on every dollar in the middle. In a $100 pot, roughly 30 cents a hand.

Two things follow. Lower is better, and zero is the ideal nobody reaches. And the figure is an upper bound on the error, not a typical case: it assumes an opponent who already knows what you will do and never misplays. Real opponents do worse than that, which means the real gap is smaller still.

It is also worth keeping the scale in mind. A gap of 0.3% of pot is far below the cost of any decision a person gets wrong at the table. The residual error in these solutions is not what is costing you money.

How it is measured

Every spot is solved with counterfactual-regret minimisation on the real game tree — the actual hands, the actual bet sizes, rake included. No neural network is asked to guess a value, in the library or in a custom solve.

When a solve finishes, we run an exact best response against the strategy it produced. That is a full walk of the tree that finds, for every hand and every decision, the most profitable answer to what the strategy actually does. The difference between what the strategy earns and what that perfect counter earns is the exploitability, and it is the number you see.

Nothing about that is sampled or extrapolated. It is not inferred from how many iterations the solve ran or how long it took. Each spot is graded on its own, and its grade is written into its own solution file — which is where both the badge in the app and the chart below read it from. If a spot has no measured number, the app shows no number.

The target, and what happens when a solve misses it

Every library spot and every custom solve is run to 0.3% of pot. The solver keeps iterating and re-measuring until it gets there.

If it cannot get there, the solve fails and reports the miss. It does not quietly ship a looser answer under the same label. That is a deliberate trade: a failed solve is visible and fixable, whereas a solve that silently relaxed its own standard would look exactly like a good one.

The same rule applies to anything shown before a solve has finished. If the app can put something useful in front of you while the exact answer is still running, it says so in as many words and carries its own measured number — an interim answer is labelled an interim answer, never presented as the finished one.

All of that is why the chart below can show the whole distribution. Nothing enters the library without a measured number, so there is no hand-picked subset to show instead.

The measured distribution

Here is every solved spot in the catalog, bucketed by the exploitability measured for it. The worst spot in it sits at 0.30% of pot — no solved spot in the catalog is looser than the target, and the typical one is comfortably inside it.

Measured exploitability across the library

Every one of the 501,655 solved spots in the catalog, measured by exact best response. Lower is better.

  • 0.10% or better36,263 spots · 7.2%
  • 0.10% - 0.20%69,909 spots · 13.9%
  • 0.20% - 0.30%395,483 spots · 78.8%
  • Worse than 0.30% (missed the target)0 spots

Median 0.27% of pot · worst spot 0.30% · 501,655 of 501,655 spots at or inside the 0.30% target · measured 2026-08-30.

A further 17 spots produced no usable measurement, so they are not in the chart and carry no number in the app either.

The number on a spot in the app is that spot’s own measurement, taken from this same source. Open any plan and every solve you look at carries its own figure in the header.

Frequently asked questions

What does exploitability as a percentage of the pot mean?

It is how much a perfect opponent — one who knows the strategy in advance and plays the single best counter to it — would win per hand against it, expressed as a share of the pot. At 0.3% of pot in a $100 pot, a perfect counter-strategy beats the solution for about 30 cents a hand. That is the whole error, and it is an upper bound: no real opponent does better.

Is the number measured or estimated?

Measured, for every spot, one spot at a time. After a solve finishes we run an exact best response against the strategy it produced and read the answer off. Nothing is sampled, extrapolated from a subset, or inferred from how long the solve ran. The number is written into the solution file itself, which is where the badge in the app and the chart on this page both read it from.

Does a neural network approximate any of these solves?

No. The library is solved with counterfactual-regret minimisation on the real game tree, and it is graded by an exact best-response walk of that same tree. No network is asked to guess a value anywhere in the library or in a custom solve.

Why is a lower number better?

Exploitability is the distance between a strategy and an unbeatable one. Zero would mean literally nobody could win a chip from it in the long run. A solve is never exactly zero, so the honest question is how close it got — and the smaller the gap, the less any counter-strategy can take from it.

How does that compare to the mistakes I make at the table?

A 0.3%-of-pot gap is far smaller than any decision a human gets wrong. A single misjudged river call or a bet sized one street too small costs whole percentages of the pot, sometimes tens of them. The residual error in these solves is not the thing costing you money.

What happens if a spot cannot reach the target?

The solve fails and says so. It does not round down its own standard and ship a looser answer under the same label, and no spot enters the library without a measured number attached. That is why the chart on this page can show the whole distribution rather than a hand-picked slice of it.