Every cell in the lab answers one of four questions about the same solved decision: what does the solve do here (Strategy), which hands actually get here (Range), what would a fixed habit cost (Cost), and how does the play shift between two spots (Compare). The table gives all four at a glance; the sections below take them one at a time — formula first, then a figure of real solved cells drawn with the lab's own components.
The four views at a glance
| View | What the number shows | Formula | For your game |
|---|---|---|---|
| Strategy | each action's share of the mix — the color bands; the printed number is the biggest slice | When a cell mixes, so should you: a fixed habit in a mixing spot is exactly what a reader exploits. | |
| Range | each holding's share of the acting player's arriving range; shading tracks the heaviest cell | Ranges are earned, not dealt — every action a player survives filters what they can still be holding. | |
| Cost | how much the priced habit gives up against the best available action, per holding | Dark cells are where discipline pays; pale cells forgive almost any habit. | |
| Compare | how far the same decision drifts between two solved spots — accept gap at bids, total variation elsewhere | If Compare lights up, the score changed the play — don't carry one chart across scoreboards. |
Strategy — the mix itself
Fix one holding and the solve's answer is not a card but a probability for every legal action: σ(a | h), the average strategy at this decision. A cell draws that mix as color bands, each as wide as its action's share, and prints only the biggest slice as its number. The full mix is always one hover away — the tooltip and the hand panel spell out every action; the number alone never does.
- one exact holding (a hand)
- how often the solve takes action a holding h
The printed number is the modal share of the displayed mix. Every cell is one exact holding, so the bands are that hand's own σ — nothing is averaged.
When a cell mixes, so should you: a fixed habit in a mixing spot is exactly what a reader exploits.
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 | A | K | J | Q | 7 | 6 | 4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5♣ | 50 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 51 |
| 5♥ | 50 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 86 | |
| 5♠ | 50 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 91 | ||
| 5♦ | 94 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 93 | |||
| 3 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 97 | |||
| 2 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 97 | ||||
| A | 100 | 98 | 100 | 100 | 100 | 100 | 97 | |||||
| K | 100 | 96 | 100 | 100 | 100 | 97 | ||||||
| J | 100 | 65 | 100 | 100 | 96 | |||||||
| Q | 100 | 99 | 100 | 87 | ||||||||
| 7 | 100 | 70 | 59 | |||||||||
| 6 | 78 | 99 | ||||||||||
| 4 | 100 |
Housekeeping, so tiny slices don't read as noise: an action displayed under 3% that also loses more than 1 pp of match equity is dropped and the rest renormalized. The export keeps the raw mix — the chart is just tidier than the raw decimals.
Range — who actually arrives
A range is every hand a player could still hold at a decision, each weighted by how often it is actually held here. That weight is Bayes' arithmetic: start from how often the deal produces the holding, then multiply in σ for every observed action along the line. The chart normalizes those weights into shares of the arriving range.
- how often the deal produces h
- the observed line of play so far
- one observed decision along ℓ
- h's reach weight — shipped per node in the export
The export ships w(h) precomputed per node — the lab only normalizes and shades.
This is why ranges move as you walk. Each decision multiplies in another σ, and holdings that would rarely have played the observed line quietly drain out of the picture — fold-happy hands vanish after an accept, weak hands vanish after a confident lead. The toy tree in the solving chapter is the smallest case: one truco from pé instantly reweights his range to two-thirds manilha.
Ranges are earned, not dealt — every action a player survives filters what they can still be holding.
| hi \ lo | 5♣ | 5♥ | 5♠ | 5♦ | 3 | 2 | A | K | J | Q | 7 | 6 | 4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5♣ | 0.2% | 0.2% | 0.2% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.2% | 0.3% | |
| 5♥ | 0.2% | 0.2% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.2% | 0.3% | ||
| 5♠ | 0.2% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.2% | 0.3% | |||
| 5♦ | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.6% | 0.2% | 0.3% | ||||
| 3 | 1% | 3% | 3% | 3% | 3% | 3% | 3% | 1% | 1% | ||||
| 2 | 1% | 3% | 3% | 3% | 3% | 3% | 1% | 1% | |||||
| A | 1% | 3% | 3% | 3% | 3% | 1% | 1% | ||||||
| K | 1% | 3% | 3% | 3% | 1% | 1% | |||||||
| J | 1% | 3% | 3% | 1% | 1% | ||||||||
| Q | 1% | 3% | 1% | 1% | |||||||||
| 7 | 1% | 1% | 1% | ||||||||||
| 6 | 0.2% | 0.5% | |||||||||||
| 4 | 0.2% |
Cost — the price of a habit
Cost prices mistakes instead of describing the mix. For each holding it lines up what the available actions are worth — v(a) — and charges the gap between the best action and the one your habit takes. WORST ACTION prices the biggest blunder on offer; MOST-PLAYED prices the milder habit of always taking the solve's most-played action instead of mixing.
- the action pool: every action, or open plays only under IGNORE HIDES
- an action's value in the chosen currency (points or win pp)
- the solver's match equity after the action, on the ±1 scale (50 pp per unit)
- the mix's most-played action
Two currencies: hand points — the 1 · 3 · 6 · 9 · 12 at stake this hand — or match-win percentage points, where the solver's equity q (±1) converts at 50 pp per unit: win % = 50 + 50 q.
Dark cells are where discipline pays; pale cells forgive almost any habit.
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 | A | K | J | Q | 7 | 6 | 4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5♣ | 0.9 | 7.7 | 15 | 17 | 31 | 36 | 35 | 29 | 22 | 17 | 15 | · |
| 5♥ | 0.4 | 7.3 | 11 | 26 | 33 | 32 | 27 | 21 | 16 | 14 | · | |
| 5♠ | 0.2 | 4.5 | 22 | 29 | 30 | 26 | 20 | 15 | 13 | 0.1 | ||
| 5♦ | 2.0 | 17 | 26 | 27 | 24 | 19 | 14 | 13 | 0.1 | |||
| 3 | 13 | 3.6 | 12 | 17 | 17 | 14 | 10 | 9.4 | 0.2 | |||
| 2 | 9.5 | 2.3 | 7.2 | 9.9 | 8.9 | 6.9 | 6.5 | 0.1 | ||||
| A | 6.8 | 1.7 | 4.2 | 5.4 | 4.5 | 4.3 | 0.1 | |||||
| K | 4.6 | 1.1 | 2.3 | 2.5 | 2.6 | 0.1 | ||||||
| J | 2.7 | 0.5 | 1.0 | 1.4 | · | |||||||
| Q | 1.4 | 0.3 | 0.5 | · | ||||||||
| 7 | 0.5 | · | · | |||||||||
| 6 | · | · | ||||||||||
| 4 | · |
Compare — same decision, another spot
Compare loads the same decision from a second solved spot and colors the disagreement. At bid decisions — the mão de onze, a pending raise — each cell shows the signed accept gap: green where the other spot accepts more, red where it folds more. At card decisions it shows total-variation distance: the share of play that would have to move to turn one mix into the other, from 0 (identical) to 100 (opposite).
- the same decision's mix in the compared spot
σ′ is the other spot's mix. The cell picks Δaccept exactly when the decision offers accept / fold; otherwise TV.
If Compare lights up, the score changed the play — don't carry one chart across scoreboards.
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 | A | K | J | Q | 7 | 6 | 4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5♣ | · | · | · | · | · | · | · | · | · | · | · | 89 |
| 5♥ | 1 | · | · | · | · | · | · | · | · | · | 82 | |
| 5♠ | 5 | · | · | · | · | · | · | · | · | 65 | ||
| 5♦ | 45 | · | · | · | · | · | · | · | 55 | |||
| 3 | · | · | · | 77 | 4 | 22 | 28 | 33 | 25 | |||
| 2 | · | 14 | 1 | 18 | 13 | 15 | 15 | 8 | ||||
| A | · | 36 | 22 | 3 | 27 | 4 | 2 | |||||
| K | · | 35 | 13 | 24 | 1 | 1 | ||||||
| J | · | 22 | 25 | · | · | |||||||
| Q | 12 | 79 | 87 | 6 | ||||||||
| 7 | 19 | 82 | 83 | |||||||||
| 6 | 5 | 73 | ||||||||||
| 4 | · |
The toolbar’s selectors
The toolbar's selectors don't change the machinery — they change which question Cost answers, and which actions count.
- Points
- prices COST in hand points — the 1 · 3 · 6 · 9 · 12 at stake this hand — instead of match equity. Good for feel; equity stays the real yardstick, since the same points matter differently at different scores. ·
- Ignore hides
- keeps face-down plays out of Cost's best/worst pool whenever an open play exists, so the number prices which card you pick rather than whether you hide it. Toggle it off to price the hiding decision itself. The mix's most-played action can still be a hide — only the pool is filtered.
- Most-played
- the default COST baseline: what you give up by always taking the single most-played action instead of the true mix.
- Worst action
- the adversarial baseline: what the most expensive available action gives up — the size of the worst mistake on offer at each cell.
The header numbers
Two numbers ride above every chart, and both come from the same weights as Range.
- Equity · win %
- the acting player's match-win chance from this decision if both sides follow the solve — the range's reach-weighted average of each holding's mix value, mapped to a percentage.
- Reach
- how often a match in this band walks exactly this line — the node's total weight over the band root's. Low-reach corners earn little training, which is where the ≈ flag lives (see the trust chapter).
- h's reach weight — shipped per node in the export
- h's value under its own mix: Σₐ σ·q
- a node's total weight — the sum of its w(h)