HydraSolver

← All proofs

Proof · Pot-Limit Omaha

Heads-up Pot-Limit Omaha: 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.007% of the pot.

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

Each spot: the button holds the top 10% of starting hands, the big blind the top 5% to 15%, 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. 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♥18,945 / 19,8820.082%0.016%0.0050%0.0017%
BQ♥J♥8♥4♠3♦18,369 / 16,7900.234%0.054%0.018%0.0065%
C10♠9♠8♦7♣2♥21,100 / 19,5930.186%0.042%0.013%0.0046%

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, and the pot. Then it computes its own best responses.

    SpotExploitable: checkersolverButton’s share: checkersolver
    A0.0017%0.0017%13.77631913.776319
    B0.0065%0.0065%10.26709610.267096
    C0.0046%0.0046%9.0687409.068740

    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.

  • 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 (3 hands, such as K♥K♦6♠5♠) or air that loses to the aces (8 hands, such as 10♠8♦6♥5♣); the button holds aces, A♥A♣Q♥J♣, which beat the air and lose to the set. 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 group similar hands while they solve. 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.05% of the pot; after 4 million, under 0.03%.

SpotRiver250k500k1M2M4M
AK♠9♥6♦3♣2♥0.040%0.035%0.028%0.021%0.021%
BQ♥J♥8♥4♠3♦0.068%0.059%0.042%0.025%0.019%
C10♠9♠8♦7♣2♥0.082%0.089%0.048%0.039%0.027%

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.

The turn sims, by the turn test

A turn sim groups similar hands on the river while it solves. Its turn strategy gets the standard test for one street, the one postflop solvers quote for their flops: lock one seat’s turn strategy, solve the river exactly with the lock in place, and count what the locked seat gives up against the whole spot solved exactly. The river is played perfectly in the test, so it grades the turn alone.

On the same boards a card earlier, the same ranges and bets, the app’s turn sims at High detail after 2 million iterations: on all three, each seat’s turn strategy gives up between 0.048% and 0.255% of the pot.

SpotTurnSeat lockedGives upCertainly between
AK♠9♥6♦3♣Big blind0.048%0.002%–0.095%
AK♠9♥6♦3♣Button0.086%0.046%–0.126%
BQ♥J♥8♥4♠Big blind0.154%0.049%–0.259%
BQ♥J♥8♥4♠Button0.213%0.105%–0.321%
C10♠9♠8♦7♣Big blind0.255%0.186%–0.324%
C10♠9♠8♦7♣Button0.180%0.105%–0.255%

Each seat’s turn locked in turn, the river solved exactly for 300 iterations. “Certainly between” is what the exact solves’ own accuracy allows: the true figure lies inside it.

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.

By the turn test: the turn sims

Turn sims group similar hands on the river. The turn test grades their turn strategy, not how well they play the river; flop sims are not measured here.

What HydraSolver gives you for Pot-Limit Omaha

  • 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 15, 2026), the turn sims with HydraSolver 1.1.98 (October 18, 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.