# Zone Table: training method

## Guide-defined zones

Rank values run from 2=0 through A=12. For reference values `a` and `b`, use the set:

`{a, b, (a+b) mod 13, |a-b|}`

Distance is circular modulo 13. A rank is near when its minimum distance to any reference is at most one. The reference pair is **LIKELY** when at least seven of the thirteen ranks are near; otherwise it is **UNLIKELY**. This threshold follows the executable LRO implementation, including its treatment of seven-rank coverage where some printed examples differ.

Pocket references use the two hole cards. Dynamic references use the last two revealed board cards after the flop: flop cards two/three, then flop card three/turn, then turn/river. Both maps, remaining-card distance buckets, mean distance, standard deviation and transitions enter the model. Rank coverage is a geometric classification, distinct from estimated winning equity and model confidence.

The 169 reference-rank pairs are checked against the source definition. The public provenance receipt contains guide filenames and hashes, not the original PDFs or private filesystem paths.

## Training and adaptation

The requested experiment plays **3,000,000 complete hands**, split into six 500,000-hand rounds. Every episode begins with a fresh shuffled deck and finishes by folds or showdown. Internal equity runouts are not counted as training hands.

Both button positions appear at both 40 BB and 100 BB starting depths. Blinds are 0.5/1 BB and there is no rake. Chips are integer half-big-blind units. Training checks chip conservation after every action.

Actual `pytoolzx.wsrf.WSRFRegressor` models have twelve trees per street × dynamic-zone pool, depth at most twelve and minimum leaf size 45. The model receives 55 public-decision/action features. It learns completed continuation returns from the current exploratory policy; guide performance claims are not reward labels.

The chosen-action target is:

`(final stack − stack before this action) / (pot + callable effective stack)`

The denominator is at least one big blind. Contributions already made are sunk for this decision. Folding has exactly zero continuation value, so it is handled directly when ranking actions.

Each worker keeps a uniform reservoir of its collected non-fold decisions. A fit uses replay reservoirs from the most recent three rounds. Decisions along a hand share an outcome and are correlated; the stored row count is not a count of independent hands. The model is a Monte Carlo policy-value approximation, not an equilibrium solver.

After each round, the candidate is evaluated against TAG and LAG on a fixed validation namespace. The candidate with the highest mean BB/100 across those opponents becomes the champion. The next round plays that champion with a decreasing random-action exploration rate. Three of four worker allocations can emphasize the currently harder opponent. This is adaptive offline learning and opponent scheduling.

Fresh final-test deals are reserved until checkpoint selection finishes. The exported checkpoint may come from an earlier round; its own training-through count is recorded separately from the experiment's total hand count.

## Conventional opponents

Fern is tight-aggressive; Rook is loose-aggressive. Both use:

- Monte Carlo equity against a smoothed range inferred from public actions and observed participation.
- Pot odds, position, effective stack-to-pot ratio and progressively stronger reraising thresholds.
- Value sizes influenced by strength and board texture.
- Randomized bluffs and semi-bluffs, with different frequencies for TAG and LAG.

Their policy functions do not read any distance-zone feature. Tests change the zone columns while preserving conventional features and verify unchanged seeded actions.

Range sampling proposes unknown pockets with bounded rejection weighting and draws remaining boards without replacement. It uses a smoothed approximation based on public preflop raises, current-street aggression and the last action. It is not an exact Bayesian posterior over complete betting histories. Neither player receives the actual opponent pocket or future deck.

Training uses 64 range samples per decision. Final evaluation and browser play use 128. These are engineered local sparring policies whose results are measured here; professional or solved-GTO strength has not been established.

## Evaluation and the zone comparison

Each final policy plays 60,000 hands against each opponent, using paired button positions on identical decks. The final comparisons include the selected checkpoint, the final-round checkpoint, a WSRF fit without the zone representation, a conventional reference, and a call/check diagnostic. Total final evaluation volume is 600,000 hands.

The controlled zone comparison fits both versions on the same final replay data. The version without zones zeros the sixteen distance columns and uses four street pools with twenty-four trees each. The zone version has eight street × zone pools with twelve trees each. Total tree capacity is equal. This comparison removes the zone features and routing together; it does not isolate each individual feature.

The receipt includes average net BB/100, approximate 95% intervals grouped by deck pair, paired policy differences, and pocket-zone returns. HUD adaptation introduces additional dependence, so these intervals describe the particular experiment approximately. They do not establish performance against every possible opponent.

Whole-hand zone returns use the pocket zone assigned before betting. Dynamic-zone tables count decisions, chip commitments, folds, calls, raises and all-ins. A hand may contain several dynamic zones; those action counts are not independent whole-hand returns. All-in outcome sums attach the hand to its first all-in commitment zone. Zone-specific totals should be read with their sample sizes, participation and overall return.

The forest's ranking and tree spread are model outputs. The fresh complete-hand results are the performance measurements. The interface preserves that distinction.

## Verification and delivery

- Engine, legal-action, feature, range-equity and opponent-action agreement across 180 complete hands and 858 decisions.
- 4,000 evaluator fixtures; all 2,598,960 five-card category totals; 2,000 seven-card evaluations compared with the best of their twenty-one five-card subsets.
- All 169 executable guide-zone cases.
- Public-information boundary checks and conventional-opponent zone invariance.
- Exact Python/browser/compiled WSRF prediction probes, including float32 values around tree split thresholds.
- Browser checks for play, saved sessions, watch mode, optional card reveals and compact layouts.

See `training/report.json` for the actual completed run and recorded counts. Numerical results are also displayed on the Training & results page. Raw replay data, pilot logs and original guides stay outside the static deployment.

## Books and independent extension

The 300-page field guide and 16-page table-side companion are in `guide/`, with color and ink-saving PDFs. They contain reproducible rank maps, actual model forecasts, worked arithmetic and a decision notebook. Study cues link from the table to street-specific examples.

A frozen-model extension completed 1,600,000 further evaluation hands. Its main pass uses eight independent seeded match blocks per policy/opponent, with uncertainty summarized across blocks. The served checkpoint achieved +10.47 BB/100 versus TAG and +18.13 versus LAG; the controlled final-round comparison favored the zone-free WSRF fit in both matchups. These distinct findings are recorded in the books and `training/extension.json`. The original training count and served policy remain unchanged.
