Trainer score
Every decision you make in the trainer is graded against the solver's strategy for your exact hand at that node. The score turns those grades into one number out of 100 for any scope — everything you've played, one drill, one session, one difficulty — built from three things the solver can actually judge, and arranged so that none of them can hide another.
How a single decision is judged
The solver rarely commits to one action; it mixes. Each decision gets a tier from that mix and from the per-hand EVs: Best (the most frequent action, or the one the RNG dice landed on), Correct (mixed at 3.5% or more), Inaccuracy (barely mixed), Wrong (never taken, small EV loss) or Blunder (never taken, losing at least 3% of the pot). The EV loss itself — how much the action cost against the best one, as a share of the pot — is what the score reads first.
From decisions to a score
The score starts at 100 and points come off for three kinds of drift from the solver, each measured per street and summed on its own ledger:
- EV loss — up to 75 points. Your mean cost per decision as a percentage of the pot, past a per-street cushion (0.25% on the flop, 0.5% on the turn, 0.75% on the river — later streets are sharper and noisier), at 15 points per 1% of pot beyond it. The biggest part of the score on purpose: it is the part that is money.
- Action mix — up to 12.5 points. Whether you fold, check-or-call, and bet-or-raise about as often as the solver would have on the exact spots you played. The comparison is not an aggregate report frequency: every graded decision records the solver's own mix for your hand at that node, so "expected" is the solver replaying your sample. Nits and redliners both lose here. Hiding in passive lines to dodge blunders keeps the EV column clean and is charged here.
- Range balance — up to 12.5 points. The share of weak hands (under your strength split in Settings › Hand strength) in your bets and raises versus the solver's over the same decisions. Bets and raises are scored as two separate ledgers.
Both of the last two come with a five-point cushion, so staying within a few points of the solver costs nothing.
Leaks do not cancel
Every penalty is an absolute deviation, summed per street, per component, per ledger. Betting too much on the flop and too little on the river is two penalties, not a balanced average; betting too many weak hands never offsets raising too few. That is the property the decomposition exists for — a single clean-looking number can hide opposite problems, and this one can't.
Off-tree decisions
If you take an action your hand never takes in the solution, your hand's reach at every later node is zero and the solver has no strategy or EV there to grade against. Those later decisions are labelled off-tree, left ungraded, and kept out of the score and every tally; the hand plays on. The Leaks docs explain the mechanism.
Sample floors
A component with fewer than 30 graded decisions on a street reports "not enough data" and contributes nothing. It is shown as such rather than as a reassuring zero. Rows under the floor render faded wherever they appear.
Difficulties
Each difficulty keeps its own score. A Casual session (every hand dealt) is scored separately from a Standard one (close spots plus counterintuitive pure spots), because the decisions are not comparable. Pick the scope in Train › History.
What is deliberately missing
There is no rating ladder, no tiers and no leaderboard. Ranking players against each other means their results leaving their machines, and nothing about your play ever does — see the FAQ. The score is your own number, comparable across time for you.
Frequently asked questions
Why is my score different from my bb/100 in Results?
They measure different things. The Lines map's verdicts are EV measured against solved real hands from your imports; the score is EV plus balance measured on trainer decisions. A session can have a fine EV column and still score below 100 if it worsened your action mix or range balance.
Why can low EV loss still give a lower score?
EV is the biggest part of the model, not the whole model. Action mix and range balance measure whether your strategy is becoming exploitable even when the cost of each individual decision is small.
Do puzzles count?
No. Only trainer decisions count. Puzzles grade an ordering, not a decision, and have their own record.
Where do the constants live?
src/megamaster/spots/train_score.py — one place, documented inline.