Skip to the result

Two players · five board cards · one betting round

River Solver Lab

See what makes a river choice work. Start with a checked example, or build a small game of your own.

An approximate strategy for this specific finite game. It is not universal or exact GTO. Every compatible deal and showdown is counted exactly; the strategy is learned over a limited number of iterations.

Checked-in example · v3

A strategy you can inspect

Board: Ks 8s 4s 2c 9d · starting pot 100 chips

This result belongs to the settings below. Editing the form does not change it.

Exploitability
0.009075 chips
Iterations
1,000
First player’s best-response gain
0.014993 chips
Second player’s best-response gain
0.003156 chips

A best response is the best legal strategy against the saved opponent strategy, without seeing hidden cards. Exploitability is the average of the two gains above. Lower means less room to improve by changing strategy in this game.

Result settings and reproducibility
First range
AA AQs 76s
Second range
JJ ATs 65s
Stacks behind
200 / 200
Opening bets
50, 100, 200
Raise-to amounts
100, 150, 200
Raise limit
2
Deals / public states
176 / 63
First player’s net value
16.081056725 chips from hand start

Alternating CFR+, version 1, with linear averaging after 20 iterations. The same inputs and iteration count reproduce the numeric result; wall-clock time varies. Exact enumeration is used for all compatible cards and showdowns.

Reproduce the checked-in result with npm run audit:river:v3.

Rules SHA-256: 36ec8173c65b6c503a2e11636f63538a38dd65acf031d5b675abf695f521bbab

Artifact SHA-256: 320759e74808f8c5cb784b0e92c3410de02567252346d671a7b0a6eb722ea4e9

Inspect a decision

Pick who is acting, their hand, and the actions already taken. All legal decisions are available, including rarely reached ones.

Your handJh Jd
Pot on table150 chips
Cost to call50 chips

First: bet 50

Call has the highest measured chip value here. Compare the gaps below: close values can support more than one useful choice. These values assume both players follow the saved strategy after your choice.

Compare your choices

Frequency means how often the saved strategy uses an action with this hand at this decision. Choose an action to see what can follow.

EV means average chip change. “From now” counts only future payments and money received; folding is worth 0 from this point. Earlier contributions are already spent. Gaps use unrounded values.

What price are you getting?

You pay 50 chips to compete for 200 chips after the call. You need at least 25.0% of that pot on average to break even from now.

Your share against the range that reached this decision is 25.0%. A split pot counts as half a win. Any uncalled chips are returned before this calculation.

After choosing Call

EV from now
+0.029 chips
EV from hand start
-49.971 chips
Opponent folds next
Not available
Share if a showdown happens
25.0%

Showdown share counts ties as half a win and excludes hands that end in a fold. It can differ by action because different opponent hands continue.

Expected opponent responses

The hand ends with this action. There is no next response.

“Opponent folds next” is unavailable when there is no fold decision to answer, or the decision is off path.

All possible ways the hand ends
Opponent folds now or later
0.0%
You fold now or later
0.0%
You win at showdown
25.0%
You split at showdown
0.0%
You lose at showdown
75.0%

How their possible hands change

A range is a weighted list of possible hands. These chances use your hand, the board, and the actions so far. A blocker is a card you can see that removes a possible opponent hand.

Your own choice, with your hand already known, does not change this estimate. Their response can.

View all 14 opponent hands
Opponent range, given your Jh Jd
HandNow
7c 6c4.8%
7d 6d4.8%
7h 6h4.8%
7s 6s12.3%
Ac Qc3.5%
Ad Ac17.8%
Ad Qd3.5%
Ah Ac17.8%
Ah Ad17.8%
Ah Qh3.5%
As Ac2.7%
As Ad2.7%
As Ah2.7%
As Qs1.1%

Updated weight = current chance × how often that hand takes the response, then rescale to 100%. Impossible hands stay at 0%. The solver does not get to see a hidden opponent hand.

Change one thing

What happens if the opponent has different hands, a bet size disappears, or their stack gets shorter? Pin the decision above, change one assumption, and compare the same hand at the same point.

Choose a hand and history above, then pin it here. No extra solve is needed to keep the starting result.

What shapes the answer?

Price
A cheaper call needs a smaller share of the final pot to pay for itself.
Position
The second player sees the first action before choosing. That extra information changes the decisions available.
Blockers
Your cards and the board remove impossible opponent hands. Even a weak hand can remove a strong calling hand.
Ranges
A hand’s value depends on the weighted hands it faces, and on which of those hands reach this point.
Stack depth
Chips left behind limit calls and raises. A short all-in can change both the price and what can happen next.
Bet sizing
A bigger bet risks more and gives the opponent a different price. Adding or removing a legal size changes the game being solved.

This lab models two players on the river, equal prior contributions, no rake, and only the listed sizes. It does not solve earlier streets, multi-player pots, or every possible no-limit wager.