HydraSolver

← All proofs

Proof · Big O

Heads-up Big O: the river, solved exactly

Any solver can print a strategy. The real question is whether it’s right. On the river there is a hard test: no card is left to come, so a perfect opponent’s best counter-play to each seat’s strategy can be worked out exactly, hand by hand, and what it wins counted. We ran that test on three river spots, solved the way the app solves a heads-up river sim: exactly, every hand by itself. After 1,000 iterations, the most a perfect opponent can take: under 0.002% of the pot.

  1. Spot ARiverK♠9♥6♦3♣2♥Pot 20 big blinds, 80 behind0.0013%of the pot after 1,000 iterations
  2. Spot BRiverQ♥J♥8♥4♠3♦Pot 20 big blinds, 80 behind0.00042%of the pot after 1,000 iterations
  3. Spot CRiver10♠9♠8♦7♣2♥Pot 20 big blinds, 80 behind0.00050%of the pot after 1,000 iterations

Each spot: the button holds the top 2% of starting hands, the big blind the top 1% to 3%, and the big blind acts first. Every bet and raise is half the pot or the pot, and pot raises go on until the stack is in. Every showdown splits the pot: half to the best high hand, half to the best low of eight or better, the high taking it all when neither has a low. Exploitability measured exactly after 100, 250, 500 and 1,000 iterations.

What the number means

A strategy pair is solved when neither player can win more by changing their play. How far a strategy is from that has a name: exploitability. Let an opponent see the strategy, play the best possible response to it, and count what they win; average that over both seats. Zero means nobody can beat it.

We compute that number exactly, not by sampling. The best response is worked out over every pair of hands the two players can hold (two hands meet only when they share no card) and every betting line of the river, each hand by itself. It’s the same yardstick researchers used when they declared heads-up limit hold’em “essentially solved” (Bowling et al., Science, 2015).

The result

Exploitability by iterations For each of the three rivers, the share of the pot a perfect counter-strategy wins as the exact solve runs, on log scales. 5% 1% 0.1% 0.01% 0.001% 25 50 100 200 400 1,000 iterations share of the pot a perfect opponent wins A B C
Exploitability falls as the solve runs (both axes on log scales), measured exactly each time. Each spot covers 24 decisions, each hand by itself.
SpotRiverHands: button / big blind1002505001,000
AK♠9♥6♦3♣2♥34,942 / 35,1470.063%0.013%0.0040%0.0013%
BQ♥J♥8♥4♠3♦36,159 / 34,8610.019%0.0039%0.0012%0.00042%
C10♠9♠8♦7♣2♥39,225 / 38,5410.033%0.0057%0.0017%0.00050%

Exploitability as a share of the 20 big blind pot. The hands: each seat’s range on that board.

Checking the check

A number from a solver about its own strategy is only as good as the code that computed it. So we checked it two separate ways.

  • Matches

    A second program, written separately

    An independent checker in a different language reads only the solve’s saved strategy, each seat’s hands and each node’s chips. It rebuilds the river from the rules: the betting (a fold only facing a bet, every raise at least the last one or all in and at most the pot, the round closing on a call or a second check), two hands meeting only when they share no card, each hand’s best five cards from exactly two of its own and three of the board’s by its own hand evaluator (its best low as well, the same way), and the pot: half the pot to the best high hand and half to the best low of eight or better (five different ranks, eight or under, aces low, straights and flushes not counting), the high hand taking it all when neither has a low. Then it computes its own best responses.

    SpotExploitable: checkersolverButton’s share: checkersolver
    A0.0013%0.0013%11.23918611.239186
    B0.00042%0.00042%10.75603410.756034
    C0.00050%0.00050%10.24388210.243882

    The three spots above, after 1,000 iterations, in big blinds. All 24 decisions of each matched the rules as the checker rebuilt them. Its hand evaluator holds to the exactly-two rule on known hands and agrees with checking every five-card hand on 2,000 random deals, highs and lows.

  • Matches

    A spot with a textbook answer

    The river, the board K♠7♦2♣9♥3♦, with as much behind as the pot, so the one bet, the pot, is all in. The big blind holds a set of kings with ace-four, which takes the high and the low (3 hands, such as K♥K♦A♠4♣Q♠), or air with no low that loses to the aces (8 hands, such as Q♠J♦8♥7♣J♣); the button holds aces with no low, A♥A♣10♥10♣10♦. Every showdown goes to one hand whole, so the theory is the high game’s. Theory: bet every set and bluff 1.5 of the 8 air hands, so the aces call half the time, worth exactly 9/22 of the pot to the big blind. HydraSolver’s exact solve, after 1,000 iterations:

    FigureTheoryHydraSolver
    Air that bluffs18.750%18.763%
    Aces call50.000%50.002%
    Big blind’s share of the pot0.4090910.409091

The river sims, for every other river

The exact solve takes a heads-up river with no strategy locked, when it fits in your computer’s memory. Every other river, three or more players among them, the app solves with its river sims, which play each hand by itself but solve from sampled deals. On the same three spots, heads-up, at High detail and measured the same way, every hand by itself: after a million iterations, under 0.06% of the pot; after 4 million, under 0.03%.

SpotRiver250k500k1M2M4M
AK♠9♥6♦3♣2♥0.147%0.096%0.058%0.037%0.025%
BQ♥J♥8♥4♠3♦0.042%0.025%0.016%0.0096%0.0063%
C10♠9♠8♦7♣2♥0.090%0.049%0.028%0.017%0.0098%

Exploitability as a share of the pot after so many iterations. The same checker matched the river sims’ figures after a million and 4 million iterations.

What’s measured, and what isn’t

Exact: heads-up rivers

The app solves a heads-up river sim exactly when it fits in your computer’s memory, and that is the solve measured above: every pair of hands that can meet, each hand by itself. The figure is computed, not estimated.

Not measured here: the flop and turn

Sims that start on the flop or turn group similar hands and boards on the streets after it. This proof says how close the river comes to perfect play, not how good a flop or turn sim is.

What HydraSolver gives you for Big O

  • Flop, turn and river sims

    Pick the board, the ranges and the bet sizes, and the app solves the spot from the street you choose. A heads-up river solves exactly.

  • Every Omaha game

    Four, five and six cards, high and hi-lo, pot limit or fixed limit, heads-up to multiway.

  • Your own trees

    Set the stacks, bet sizes and raises for every street in the Tree Wizard. Pot-limit trees raise pot until the stack is in.

  • Saved, on your machine

    Sims save and reopen like every other HydraSolver solve. It all runs on your own computer.

The exact solve measured with HydraSolver 1.1.98 (October 18, 2026), the river sims with HydraSolver 1.1.97 (October 16, 2026). Exploitability is the average of what a best response wins against each seat’s strategy, as a share of the pot at the start of the spot.