# Missing solver bet size: reproducible accounting worksheet

Created September 7, 2026 by GTO Gecko. Original teaching materials, not app output. Units are big blinds (bb). No personal data, observed hands or proprietary ranges.

## Use the worksheet

Open [worksheet.html](worksheet.html) in a browser or print it. It supplies a blank two-ledger review sheet and the worked case. It has no scripts, uploads or saved form data; write on the printed sheet or copy its fields into your notes.

## Reproduce the exact example

Download every file in this directory into one folder:

- [inputs.json](inputs.json): declared pot, stack and fractions.
- [generate.py](generate.py): standard-library Python generator.
- [verify.py](verify.py): independent checker.
- [results.json](results.json): exact rational results.
- [ledger.csv](ledger.csv): same rows in a spreadsheet-readable format; fraction strings preserve exactness.
- [state-map.svg](state-map.svg) and [hero-source.svg](hero-source.svg): source visuals.
- [worksheet.html](worksheet.html): printable comparison sheet.
- [SHA256SUMS](SHA256SUMS): file integrity manifest.
- [README.md](README.md): this method.

With Python 3.10 or later, run from that folder:

```text
python verify.py
python generate.py
python verify.py
python -O verify.py
```

The supplied inputs generate results.json and ledger.csv byte for byte. If you intentionally change inputs, original checksums and fixture oracles no longer describe your new experiment; preserve the original folder first. This is a bounded teaching model, not an arbitrary hand-history parser.

## Question and assumptions

What state is implied when a recorded 60%-pot flop bet is replaced with 50% or 75%, then each branch bets 75% of its own turn pot?

At flop start, pot 20 bb; each player has 100 bb behind and no current-street contribution. Heads-up no-limit Hold'em; OOP checks, IP bets and OOP calls each street. Fixed occupancy, no rake, side pots, unmatched bets or rounding. Flop and turn bets are fully matched; the river bet is the remaining stack and is called for the final-pot calculation. No cards or ranges are assigned because this checks accounting only. No sample size or random seed applies: three exact constructed branches.

After each bet/call: P'=P+2B and S'=S-B. SPR=S/P. River break-even expected pot share is C/(P+2C), with P before the shove. Tie shares are included in expected pot share. It is a chip-EV threshold relative to folding, not a call recommendation or measured equity. No betting remains after the final call.

The three final called pots equal 220 bb because initial pot+two full starting stacks=20+200. Their river call costs differ: 55, 60, 47.5 bb. Display percentages rounded to two decimals: 25.00%, 27.27%, 21.59%. Exact fractions in JSON/CSV: 1/4, 3/11, 19/88.

## What this does not establish

The substitute lines are illustrations, not a named tool's translation algorithm. Some tools display mismatches, change sizes, or recompute later states. The results do not rank algorithms, bound strategic error, infer range arrivals, or prove that neighboring-node frequencies interpolate to a valid strategy. Rebuilding public state does not reconstruct hidden ranges. Board, positions, action history, rake, ranges, abstraction and accuracy remain relevant to any actual solver study.

Primary concept: Ganzfried and Sandholm, Endgame Solving in Large Imperfect-Information Games (2015), section 3.4: https://www.cs.cmu.edu/~sandholm/Endgame_AAAI15_workshop_cr_1.pdf#page=4 . Current tree configuration: https://piosolver.com/docs/viewer/postflop_tree_building/ . Accessed September 7, 2026. The idea is established; this worksheet and the numerical fixture are newly authored.

## Reuse and assets

Original generator, verifier, inputs, outputs, worksheet and SVGs: GTO Gecko, 2026. Reuse these original teaching materials with attribution under CC BY 4.0: https://creativecommons.org/licenses/by/4.0/ . This permission does not extend to third-party papers, documentation or trademarks. No external fonts, image resources, tracking or scripts are embedded in the assets.
