Approx. win % vs the base algorithm. 50% = level with the base algorithm, above 50% beats it. The trainer logs an average place score (+1 best place, -1 worst) and the page converts it with (score + 1) / 2; that is a literal win rate only at a 2-player table. Solid line (population): not one net and not the generation's best. It is the average over all the nets of that generation, which take turns in random seats against the base algorithm. Until generation 200 that is many hundreds of rounds a point; after 200 it is the benchmark rounds only (240 rounds, each a different deal, for runs started after 2026-11-01; the older runs used 60 rounds that were only 5 different deals, so a single point could swing from 0% to 98% by chance). The line is smoothed over the generations picked above (50 by default); the raw points jump a lot. Dashed (kept net): the one best net found so far, tried alone against the base algorithm over 300 fixed rounds the training never plays. The best of many tries reads higher than the net really plays, so only a fresh-deal head-to-head counts as proof. Base algorithm: the game's own built-in bot at the tier a run's label names ("base: hard"; no mention means the medium tier). The trainers' logs print the word medium for it whatever the tier.
Approx. win % vs the base algorithm: 50% is level, above 50% (green) beats the base algorithm. Converted from the logged average place score as (score + 1) / 2, which is an exact win rate only for a 2-player table. The row marked * is where each run is now.