Heads-up 5-Card PLO: 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.
- Spot ARiverK♠9♥6♦3♣2♥Pot 20 big blinds, 80 behind0.0064%of the pot after 1,000 iterations
- Spot BRiverQ♥J♥8♥4♠3♦Pot 20 big blinds, 80 behind0.0026%of the pot after 1,000 iterations
- Spot CRiver10♠9♠8♦7♣2♥Pot 20 big blinds, 80 behind0.0045%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. 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
| Spot | River | Hands: button / big blind | 100 | 250 | 500 | 1,000 |
|---|---|---|---|---|---|---|
| A | K♠9♥6♦3♣2♥ | 36,011 / 32,029 | 0.256% | 0.058% | 0.019% | 0.0064% |
| B | Q♥J♥8♥4♠3♦ | 37,503 / 36,294 | 0.144% | 0.026% | 0.0081% | 0.0026% |
| C | 10♠9♠8♦7♣2♥ | 36,391 / 37,134 | 0.183% | 0.036% | 0.013% | 0.0045% |
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.
Spot Exploitable: checker solver Button’s share: checker solver A 0.0064% 0.0064% 7.764352 7.764352 B 0.0026% 0.0026% 11.663918 11.663918 C 0.0045% 0.0045% 11.360246 11.360246 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♠Q♠) or air that loses to the aces (8 hands, such as 10♠8♦6♥5♣4♠); the button holds aces, A♥A♣Q♥J♣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:
Figure Theory HydraSolver Air that bluffs 18.750% 18.763% Aces call 50.000% 50.002% Big blind’s share of the pot 0.409091 0.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.2% of the pot; after 4 million, under 0.05%.
| Spot | River | 250k | 500k | 1M | 2M | 4M |
|---|---|---|---|---|---|---|
| A | K♠9♥6♦3♣2♥ | 0.175% | 0.121% | 0.075% | 0.048% | 0.033% |
| B | Q♥J♥8♥4♠3♦ | 0.160% | 0.097% | 0.070% | 0.044% | 0.028% |
| C | 10♠9♠8♦7♣2♥ | 0.298% | 0.179% | 0.122% | 0.075% | 0.049% |
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 5-Card PLO
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.