Lines map
The Leaks tab this page used to describe has become the Lines map: the same idea — find the spots you play differently from the solver without already knowing where to look — laid out as the key nodes of one matchup's line, by street, instead of a flat ranked list.
How to read it
Pick a matchup on the rail (pot type, in or out of position, raiser or caller). Each key node of that line — c-bet, 2-barrel, delayed c-bet, probe, facing a bet, and so on — shows your action mix, what each action is made of by hand class, the solver's equivalents, and how the pool answers every size you use.
Every node carries one verdict:
- Confirmed leak — your frequency and your range composition are both off the solver's, and the pool's response does not reward the deviation.
- Advisory — you deviate, but the pool over-folds (or over-calls) against exactly that size, so deviating is the exploit rather than the mistake. Worth knowing; not a leak.
- Inherited — the fold rate is right for the range that arrives; the problem, if any, is upstream.
- Composition / frequency — only one of the two is off. A prompt, not a finding.
The red number beside each matchup on the rail counts confirmed leaks on its main line — the raiser's first-in decisions, not sidelines like the caller's donk — so a reader who does not know what they are looking for can follow the red. Every confirmed leak proposes a drill in Train with the same line and hand strengths.
Exposure, still
The ranking principle the old tab was built on survives underneath: what matters is how much money sits in a deviation, not how big the percentage gap looks.
What the ranking means
Leaks are sorted by exposure: big blinds of pot sitting in decisions you play differently from your baseline, calculated as the number of hands at the node, times how far your frequency is from the baseline, times the average pot going into that street.
Sorting by the size of the percentage gap alone ranks badly. A forty-point deviation across eleven small pots is noise wearing a big number; a four-point deviation across nine hundred hands in fifty-blind pots is a real amount of money. Exposure is what separates those.
Exposure is not EV lost
This matters enough to say plainly. Exposure measures how much money is standing in the room where you and the solver disagree. It does not measure what the disagreement costs you. A deviation can be free, and against a population that isn't playing GTO either it can be correct and profitable. Exposure decides what is worth looking at first — nothing more.
Measured EV, where it exists
The one number entitled to say "this cost you X big blinds" comes from an actual solve. When you solve a hand, every decision you made in it is scored against the best action available in the solved tree, and that scoring is now kept rather than shown once and discarded. Leaks containing solved hands show a measured figure alongside how many of their hands have actually been solved — usually a small fraction, which is why the count is always on screen.
The headline figure at the top of the tab is the whole-database version: big blinds per 100 hands lost to identified mistakes, over the hands you have solved. Its denominator is hands solved, never hands imported. It grows more trustworthy the more you solve, and until you have solved anything it says so instead of showing a confident zero.
Coverage is always visible
Every leak card names the report behind it and how many of that report's flops fall in the texture bucket being compared. A baseline built from three flops is a single flop's strategy wearing a category's name, and you should be able to see that at a glance rather than having to go and check. Nodes where the report covers too few flops, or where you simply haven't played enough hands, are skipped and counted rather than quietly included.
From a leak to actual work
Every leak opens the hands behind it, and every one of those opens in the replayer. "Train this spot" drills the same node against your own range. Copy report puts the whole ranked list on the clipboard as plain text, caveats included, for a coaching note or a session review.
Thresholds
Minimum hands at a node and minimum deviation are both adjustable, because the right floor depends on how much you've played. Thirty hands is a sensible minimum over a forty-thousand-hand database and far too strict over two thousand. Lowering them surfaces more; it also surfaces more variance.
Hands — your real decisions, scored against the library
Leaks › Hands is the other half of the tab. Where Leaks compares frequencies, Hands prices decisions: every postflop action you actually took, evaluated against the library's solved tree for that spot and board. Nothing is solved — the tree is already on disk (the 1,755-flop library exists for exactly this), so scoring is a walk: find the template for the hand's spot, find the package's board for the flop (suits are matched up to isomorphism, so every flop of a covered texture finds its tree), replay the hand's real line through the tree, and ask the engine for your hand's EV under each action you could have taken. Rivers on trimmed library saves are re-solved on the fly, as the trainer does.
"Score new hands" runs over everything not yet looked at; "Rebuild all" re-scores after installing a package. Each hand gets a status — scored, or why not — and the breakdown under the tiles is the honest coverage figure: template not in the library and board not in the library are the list of what the library still needs for your game. Multiway pots and hands without your cards are out of scope and say so.
The table is sorted by what each hand cost. Each decision is a chip: street, what you did, and either the EV lost against the best action or a tick. Click a chip to open that exact node in a viewer window; the play button replays the hand. Filters narrow by street, pot type and the trainer's mistake taxonomy (bad fold, bad call, missed bet, missed raise, over-aggression, wrong size), and the global date / stake / position row applies as everywhere.
Off-tree decisions
Real players deviate. Once you take an action your hand never takes in the solution — calling a flop with a combo that only folds or raises — your hand's reach at every later node is zero. The solver's average strategy there is own reach × strategy, which is zero for your hand: undefined. Its EVs walk that average strategy, so every downstream number for your hand, and the EV of the deviating action itself (computed through that same undefined continuation), is not something we can put a bb figure on.
So decisions from the deviation onward are recorded as off-tree: shown in the row, faded, openable in the viewer, and excluded from every total, every leak's measured EV, and the headline bb/100. The deviation itself still counts as a frequency mistake (a 0% action is a 0% action); only the bb claim is withheld. Pricing those lines honestly means computing your hand's best response against the solver's fixed strategy in that subtree — a small engine addition planned in DESIGN-mobius-parity.md. Until then the number is withheld rather than invented.