Solver accuracy
Every number the app presents as "the solver" rests on a solve that stopped at some accuracy. This page says which, and how to check it yourself. (For how megamaster's own engine compares to PioSolver on identical trees, see the head-to-head accuracy page.)
Accuracy targets
Accuracy is measured the way PioSolver measures it: exploitability as a fraction of the starting pot. A lower number is a tighter target.
- Library solves: 0.1% of the pot per board for the pilot subsets, 0.2% for production (
accuracy_fracin the sweep). A board whose recorded exploitability is more than twice that target is re-solved rather than shipped. - Baselines (Lines map, Preflop): a package is bridged into your baselines only if its boards hit that same 2× gate. A refused package is shown as refused in the app, with the reason — "no baselines" and "your solves aren't converged" must look different.
- Priced rules (EV loss by sizing): 0.25% of the pot per solve. Two solves' combined noise has to sit under the 0.5% "fine" band edge or the classification would be noise. A candidate whose cost is provably above the kill threshold (3% of pot) is killed early and reported as a lower bound; a cost inside the two solves' combined exploitability is reported as "within noise", never as a precise number.
- Per-hand EV scoring (the Replayer's "this cost you X"): a decision only counts as a mistake when its EV loss exceeds 0.1bb — deltas below that read as solve noise. Each scored decision keeps the template and accuracy it was scored at, so aggregates can say what they rest on.
Representative boards
You cannot solve every exact board. A library package covers a template with a weighted subset of the 1,755
canonical flops (rank pattern plus suitedness), generated to represent the full board universe with the right
balance of textures; each board stands in for the boards it represents, and every aggregate — a texture
bucket's frequency, a sizing cost, a leak's baseline — is weighted by that representation. The weights are in
the package (boards.subset_weight) and travel with every number derived from them. The Lines map
additionally shows, per baseline, how many of the report's boards fall in the bucket being compared, and
what share of the report's weight that is.
Reading a package in the app
Solve › Library lists every package with its board count and engine. The report table shows each
board's recorded exploitability (solved_expl) beside its rows, so a suspicious frequency can be
traced to a loose solve. The trainer says in its header when a save is trimmed (frequency-graded above
unsolved streets, EV-graded where the engine can answer).
Trees
Postflop trees are heads-up with the template's sizes; templates are named by pot type, positions, open
size and stack (srp_bb_btn_2.5x_100bb). The template's sizes are the full menu the sizing report
prices simplifications against. No preflop solver ships; preflop baselines are imported reports.