# Dry-side-pot river casebook

This bundle supports the GTO Gecko article **“Dry Side Pot Strategy: When Betting Still Has a Purpose.”** It publishes a compact, branch-complete river model for one all-in player, two live players, a 300-chip main pot, and no current side pot.

## What is included

- `casebook.json`: full cards, synthetic response policies, branch settlements, EVs, formulas, sources, and limits.
- `cases.csv`: one row for each of the 30 fixed Hero/Villain branches.
- `thresholds.csv`: break-even fold frequencies for three bet sizes and four conditional main-pot shares.
- `decision-tree.svg`: the accessible diagram used in the article.
- `dry-side-pot-poker.webp`: the original editorial hero used by the article.
- `generate.mjs`: deterministic JavaScript generator and seven-card evaluator.
- `verify.py`: independent standard-library Python evaluator, settlement checker, and integrity verifier.
- `verification-spec.json`: the checks expected from the two implementations; it is a specification, not an execution receipt.
- `MANIFEST.sha256`: hashes of every listed artifact except the manifest itself.

## Reproduce

From the repository root:

```text
node scripts/generate-dry-side-pot-data.mjs
node --test tests/dry-side-pot-data.test.mjs tests/dry-side-pot-article.test.mjs
python public/data/dry-side-pot-poker/verify.py
python -O public/data/dry-side-pot-poker/verify.py
```

The generator uses only Node.js built-ins. The verifier uses only the Python standard library and imports no JavaScript.

## Decision-point accounting

Earlier contributions are sunk. The published numbers are decision-point receipts minus Hero's new wager:

- **Check:** all three players reach the river showdown and contest the 300-chip main pot.
- **Bet/fold:** Villain folds; Hero's unmatched 150 is returned, so only Hero and the all-in player contest the main pot.
- **Bet/call:** the main pot remains three-way, while Hero and Villain create and contest a 300-chip side pot. Hero's 150-chip wager is a current cost.

For the special case where Hero loses every pot if called, let `M` be the main pot, `B` the bet, `f` Villain's fold probability, and `q` Hero's expected main-pot share conditional on Villain folding:

```text
EV(check) = 0
EV(bet) = f × q × M − (1 − f) × B
break-even f* = B / (q × M + B), for q > 0
```

If `q = 0`, betting is never strictly better than checking in this special river model. It ties only if Villain folds every time, because the unmatched bet returns and Hero still loses the main pot.

## Fixed casebook

All cases use board `Kc 9d 7s 4h 2c`, all-in hand `As 9c`, main pot 300, bet 150, no raises, no future cards, equal conditional Villain-combination weights, no rake, and chip EV. The fixed all-in hand is revealed to the reader for retrospective full-state analysis; it is not assumed to be visible while live betting remains. For a live decision, replace an unknown all-in hand with a conditional range and interpret `q` as the fold-branch expected main-pot share across that range.

- `dead-bluff`: Hero `Qh Jh` loses to the all-in hand and all ten Villain combinations. Four folds and six calls yield check EV `0`, bet EV `-90`.
- `main-pot-isolation`: Hero `Kh 5h` beats the all-in hand but loses to those same ten Villain combinations. The identical four folds and six calls yield check EV `0`, bet EV `+30`.
- `thin-value`: Hero `Kh Qh` beats the all-in hand and all ten weaker Kx combinations. Six folds and four calls yield check EV `300`, bet EV `360`.

The response policies are declared synthetic inputs. They are not solver outputs, population measurements, or recommended frequencies. The paired first two cases deliberately hold Villain's range and response policy fixed so that Hero's main-pot eligibility after a fold is the only payoff difference.

## Rules and source boundary

- Poker TDA, current published 2024 Rules v1.0: <https://www.pokertda.com/view-poker-tda-rules/> — accessed 2026-09-05 03:14 CEST. Used for continued action after an all-in, separate side-pot settlement, and individual-play/soft-play boundaries; it does not prescribe strategy.
- PokerStars official poker rules: <https://www.pokerstars.com/help/articles/poker-rules-master/217448/> — accessed 2026-09-05 03:09 CEST. Used for side-pot creation and contributor eligibility.
- 2026 WSOP Official Tournament Rules: <https://assets.wsopcdn.com/wsop/1a72ba28-781c-409d-a9c3-5ca13c4c5718.pdf> — accessed 2026-09-05. Used for all-in-card exposure timing, separate side pots, the uncalled-bet return statement in Rule 108's hand-protection context, and collusion/soft-play boundaries.

The rules establish settlement and conduct constraints, not the strategy result. The EV conclusions come only from the disclosed synthetic model. Actual disputes follow the applicable room or event rules.

## Scope and limits

- This is an educational chip-EV casebook, not an equilibrium solve, player-data study, or hand-history claim.
- The named all-in hand makes the published branches auditable after the fact. It is not an actionable perfect-information assumption for normal live play.
- The central model is river-only. Flop and turn betting can deny future equity or change later action and needs a fuller future-card tree.
- Raises, ties in the fixed cases, existing side pots, rake, bounties, jackpot drops, tournament payout equity, and ICM are outside the model.
- Equal branch weights and deterministic responses are sensitivity inputs. Changing the range or response policy changes the EV.
- Passing verification proves internal agreement with this frozen bundle. It does not prove optimal play, real-world fold rates, product coverage, or continuing accuracy of linked rules.
