OllinDocs
Using the product

Strategy browser

Reading the 13×13 matrix — cell fills, action colors, combo search, per-hand EVs, and pot geometry.

/study/{spotId}/{boardId} is the deepest screen: the solved mixed strategy of the acting player (OOP at the root) on one flop, down to individual combos.

Reading the matrix

The 13×13 grid follows the standard convention: AA top-left, pairs down the diagonal, suited hands above the diagonal (AKs row A, column K), offsuit below (AKo row K, column A).

Each in-range cell encodes two things at once:

  • Action mix — the cell is filled with horizontal bands, one per action, each band's width equal to that action's probability for the class. Bands are painted in display order: biggest bet leftmost, then smaller bets, then check/call, with fold always at the right edge.
  • Reach weight — a class that arrives with less than full weight is darkened from the top: the top 100 − weight% of the cell drops to the void color. A cell not in the range at all stays void entirely.

Hovering previews a class in the side panel and shows a tooltip with the exact mix; clicking pins it (click again to unpin).

Action colors

One palette product-wide (preflop and postflop):

ActionColor
Fold #3d72d9
Check / Call #3aa657
Bet < 45% pot #e56a4b
Bet 45–90% pot #cc3d31
Bet ≥ 90% pot, jams, all-in #93261f

The red family darkens with size, so aggression escalation reads at a glance. Preflop raises tint by escalation level instead (open → 3-bet → 4-bet+).

The search box in the side panel accepts:

QueryMeaning
AhKsA concrete combo (any order, spaces/dashes/10 tolerated: ah ks, KS-AH, 10h9h). Pins its class and spotlights the combo.
AKs / AKoA suited / offsuit class. Bare AK is ambiguous and rejected.
77A pair class.

Invalid input gets an inline hint: Not a combo or class — try "AhKs", "AKo" or "77".

Per-combo drilldown

The pinned class shows its per-action rows (frequency + EV in bb per action), then a mini-card per combo: the two cards, a vertical mix bar, and each action's percentage — tooltips carry the per-action EVs. Combos differ within a class because of card removal (e.g. a spade in hand on a two-spade board).

EV columns are meaningful on postflop boards, where the solver publishes per-combo EVs. The preflop packs carry no EVs yet — that column arrives with the preflop EV exports (see Roadmap).

Header and geometry readouts

  • Action summary — one bar per root action with range-wide frequency and combo count (e.g. Bet 55% (28.4bb) · 16.9% · 223.5 combos).
  • Pot geometry — at the root: pot, effective stack, SPR. Facing a bet (arrives with the tree tier): Facing X into Y, pot odds bet / (pot + 2·bet), MDF pot / (pot + bet), and stack behind if called. Node EVs (OOP/IP) show when the solve publishes them.

Locked tree slots

The node breadcrumb shows the root chip — Root · OOP to act — followed by each root action as a visibly disabled slot, tooltip: "Node navigation unlocks with the full-tree extraction campaign", and the trailing note "full tree: extraction campaign".

This is deliberate contract-first UI: the API already fixes the endpoint and document shape for non-root nodes (GET …/node?path=root.bet_55 returns a typed 501 TIER_NOT_AVAILABLE today), so when the Tier-A extraction campaign publishes tree packs, these slots light up without a redesign. See Roadmap — serving tiers.

On this page