3-way solving

A spot three players reach on the flop, turn or river can be built and solved in Solve › Build with 3 players, on your own computer or on our server, and read in the viewer here. There is no 3-way library: three ranges and their sizes make too many spots to pre-solve, so you build the ones you want to study.

Your hands never leave

A build on this computer runs in a solver process here and nothing about it leaves the machine. A build on our server sends the spot's spec, and only that: never a hand, a hand id, a screen name or anything from your database.

Building one

In Solve › Build, switch Ranges from 2 players to 3 players. It is the same builder with a third seat:

load preset… fills the three ranges, the pot and the stacks. Presets never fill sizes. They come from two places:

Greyed, with the reason on hover: rake, donk bets, merging close sizes, one size after a raise, forced bets, and added or removed lines. The 3-way engine has none of them yet.

Saved configs and the Jobs list are the heads-up builder's: a 3-way config loads back into 3 players.

What it needs, before you solve

The Tree panel asks the engine to count the tree, without building it, and states:

Then a verdict: fits easily; fits only with little else running; won't fit (Solve is off; strength groups is offered when the build is exact); and anything estimated in hours asks first: Start or Cancel, with the time and memory stated again.

How many sizes each seat has is what decides a flop. The same flop (Ks8d4c, CO open, BTN and BB call, the templates' ranges, all-in on every street, the same sizes on every street, strength groups), counted, never solved: the memory each needs at most.

Each streetEvery seat betsBB never betsBB and CO never bet
1 bet size, 1 raise size8.13 GB3.39 GB0.91 GB
2 bet sizes, 1 raise size41.3 GB15.9 GB3.54 GB
3 bet sizes, 1 raise size61.4 GB——
2 bet sizes, 2 raise sizes60.8 GB——
2 bet sizes, 2 raises a street48.6 GB——

— is not counted. Exact hands need about three times as much (25.1 GB for the first row). A turn is megabytes: the first row's turn needs about 150 MB exact. Two sizes with BB and CO never betting is under half of one size for every seat: on a 32 GB computer, a seat on no bets is what makes a second size fit.

On our server

A flop that does not fit your computer, or that would hold it for hours, can be built on a megamaster box instead. In the Solve panel, Where is This computer or Our server. With our server chosen, the Tree panel puts the two places side by side for this tree: the memory it needs against each machine, the time here, the box-hours there, and how many box-hours your month has left.

Buckets

A 3-way flop is big because every turn and river has its own strategy for every hand. Buckets group hands on the river while solving: less memory, a higher floor on the ±, never faster. The ± is always measured on exact hands, in the real game, so a bucketed solve's figure is what the grouping cost. Choose in Settings › Solver & data › 3-way buckets or in the Tree panel's select (the same choice):

On one 3-way flop (Ks8d4c, CO open, BTN and BB call, the templates' ranges, one bet and one raise a street, all-in on every street) the four need at most 25.1, 8.1, 7.2 and 6.3 GB, counted at 8 threads; the strength-groups build measured 8.0 GB. Its turn, solved 600 iterations each way, reached a worst gain of ±0.07%, ±0.28%, ±0.67% and ±1.89% of the pot. A bucketed build carries a bucketed mark wherever its numbers show.

What the ± means

A heads-up solve reports its exploitability. A 3-way solve has no single figure like that: the ± is the worst player's gain, the most any one of the three could win, as a % of the pot, by changing their own strategy while the other two keep theirs. Each player's own gain is in the mark's ⓘ and in the builder's status block. A 3-way solve is one equilibrium of possibly several, never "GTO".

The target is that figure: ±0.2% of the pot for a river or a turn and ±2.5% for a flop unless you set another, with a time cap (6 hours for a flop). While it solves, the status block shows each player's ± at every check, the worst one bold, and the checks so far. Checks are spaced out: on a flop one costs minutes. Stop keeps the tree as it stands, after one last check, so the ± always describes the tree you open.

No rake

The 3-way engine has no rake: every 3-way EV is rake-free, and carries a no rake mark. Heads-up solves take Rake % in the builder.

Reading it in the viewer

Open in Viewer opens a finished build in the viewer you know:

After a fold: heads-up

When a player folds, the two left are re-solved exactly by the heads-up engine, as trainer subtrees are, from the start of the street the fold was on: that street's actions to the fold are kept as they were, and each player bets and raises with their own 3-way sizes from there. The two ranges are the ones the 3-way solve reached. The heads-up engine keeps the folded player's cards in the deck. A river takes about a second, a turn a few. A fold on the flop goes heads-up from the turn: pick a turn card. The EV / EQ / EQR switch comes back, with heads-up and no rake marks beside it; ← 3-way, at the tree strip's right end, goes back to the 3-way build.

The 3-way solve played these lines too, so that the 3-way streets above them are right, but a save keeps none of them past the fold (Saves): what you read after a fold is always the heads-up engine's, never a stored 3-way line.

A turn of a flop build

A flop build's turns are its own (bucketed, if it was), and the viewer shows them at once, marked with the turn's own ±, measured from the turn as a % of its pot, not the build's. Under the header, Solve it exactly offers an exact re-solve of that turn, from the ranges the flop build reached, with how long it takes: it is asked for, never started for you, and leaving the viewer does not stop it. When it lands, the viewer walks on in it: its ± is the re-solve's own, and the bucketed mark goes. ← flop build, at the tree strip's right end, goes back.

Saves

A finished build is saved beside your own solves, strategies only, with its seats, sizes, buckets and ± in the file: it opens from Solve › Viewer like them, marked 3-way. It cannot be solved further; build it again with a tighter target instead.

The save is trimmed, as library saves are: it keeps every spot where all three players are still in, before the river. Everything else is re-solved when you reach it, never shown from storage:

Every EV where the build hands over is kept, so the 3-way streets read exactly as the build left them. A 3-way flop like the measured one would save an estimated 70-90 MB instead of about 0.6 GB. A turn's own ± needs the rivers under it, so on a trimmed build a turn's ± reads ± —: not measured, never 0. A line where one player is all-in for less (a side pot) is kept whole, and so is a build that starts on the river. Builds saved by earlier versions hold every node and open as they always did. A re-solved turn is saved trimmed too.

A build from our server comes down as the same trimmed save, in the server folder, and opens with your licence.

Not in Analyse

Analyse grades heads-up flops only. A hand three or more players saw the flop in is counted under Multiway flop; to study the spot, build it here.