Lines map
The first thing the Lines tab shows. It finds the spots you play differently from the solver without you already knowing where to look, laid out as the key nodes of one matchup's line, by street. It replaced the old Leaks tab.
How to read it
Pick a matchup on the rail down the left: pot type, in or out of position, raiser or caller. Blind vs blind single-raised pots get rows of their own. Each row shows how many flops you have played in it; matchups with fewer than 20 flops are left off and counted underneath. Preflop sits at the top of the same rail.
The map then lays out the key nodes of that line in three columns, Flop, Turn and River — c-bet, 2-barrel, delayed c-bet, facing a probe, triple barrel, and so on. Each card shows your action mix with the solver's as a thin strip underneath, and how often the opposition folds to the size you use most. Click a card to open it:
- What you do — your mix against the solver's, and the pool's or population's when one is selected.
- What each action is made of — your range for each action by hand class, with the solver's underneath, as bars or as numbers. Click a segment to list the hands in it.
- How they answer every size here — every size the solver's tree offers at the node, used or not, with how often the opposition folds and raises against it and what the solver does.
- Your defence, by the size they use — on nodes where you face a bet: your fold rate against each size, the solver's, and the solver's own per-class rule applied to the range you actually arrive with.
Composition is yours and the solver's, both exact — never the pool's. The map shows frequencies and composition only; it claims no EV. On the river, open cards also show the weak share of the range behind your most-used size beside the solver's. Where "weak" stops is set in Settings › Training › Hand strength.
Your pool or the population
The toggle at the top says whose answers the map reads. Your pool is the opponents in your own database. Population is the shipped population baseline in your opponent's seat, which you can narrow by stakes, years, sites and cohort (reg, fish, unknown; regs by default). Comparing a texture bucket against Population needs the population board detail, which the map offers to download when it is missing.
Donk lines — the preflop caller leading into the raiser — are rare, so they stay off the map until you choose donk lines: shown.
Verdicts
A card may carry one verdict:
- Suspected leak — your frequency and your range composition are both off the solver's, and the opposition's response to that size does not reward the deviation. Suspected, not proven: how they play later streets is not measured, and it can still pay for it.
- Possible leak — the same evidence as a suspected leak, on too few hands to call it one. A lead worth watching, never counted on the rail.
- Advisory — you deviate, but in the direction their response rewards: over-bluffing a size they over-fold to, or the reverse. That is the exploit rather than the mistake. Worth knowing; not a leak.
- Inherited — the frequency is off the solver's headline but right for the range you arrive with. The fix is upstream, and the card names the node.
- Composition — the frequency is right; the hands you are doing it with are not.
A frequency gap on its own is reported in words, without a badge. Verdicts are gated on sample size: under 50 hands at a node the map says nothing at all, and a suspected leak needs 100. Below that it reads as a possible leak. A card under 30 hands is marked thin. The numbers are always shown; the gates decide only whether the map makes a claim on top of them.
The red number beside each matchup on the rail counts suspected leaks on its main line — not sidelines like the caller's donk — so a reader who does not know what they are looking for can follow the red. Any card with a verdict has Train this, which creates a drill on that spot, focused on that street, with the same line and hand classes, against the same solve the map compared you with.
What the solver side is
The solver figures come from the library's solve packages for the matchup: one per pair of seats (in position as the raiser: the button, cutoff, hijack and UTG opens against the big blind). The header says how many it read and their boards in the current texture bucket, and offers Update when the library has a newer or bigger version. A matchup the library does not cover yet has no solver rows, and the map says so.
Each of your hands is compared with its own seats' solve, and only when it fits that solve: a preflop raise within 20% of the tree's size, and starting stacks of 75–150bb in a single-raised pot (Settings › Single-raised stacks) or within 25% of 100bb in a 3-bet or 4-bet pot. The seats are then added up in your own proportions, node by node: if 40% of your turn barrels come from the button, the solver's turn figure is 40% the button's solve. The population basis is weighted the same way. So the solver and the population never mix positions differently from you.
The position chips above the map choose the seats: all of them to start with; click one to leave it out (or back in). A seat with no solve installed shows no solve and its hands are left out, never counted as zero. A line under the chips always says how many of your flops in the matchup that leaves. If some of your flops start with a line the map has no card for, it says that too, rather than letting the map look like the whole matchup.
The hands behind a card
hands on any card lists the hands it was counted from. Where the Analyse tab has graded them, the list shows each of your decisions coloured by grade and the EV lost over the hand, biggest losses first. Any hand opens in the replayer. Pricing decisions in big blinds is the Analyse tab's job, not the map's: it scores your real hands against the library's solved trees.
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 is not something we can put a bb figure on.
So decisions from the deviation onward are recorded as off-tree: shown, labelled, and excluded from every total. The deviation itself is still graded — it is the mistake; only what comes after it is withheld. The analyser applies the same rule to an action the solution takes less than 0.5% of the time with your hand: below it, the solver's strategy is noise rather than a price. In the trainer an off-tree decision is left ungraded and the hand plays on. Until your hand's best response in that subtree can be computed, the number is withheld rather than invented.