# One-chip rule: constructed chip-action casebook

Created and source-checked September 6, 2026. All amounts are exact integer tournament chips. These ten examples were constructed for the GTO Gecko article; they are not observed hands, an app test, a probability simulation, strategy advice or official rulings.

## Check the files

Download `cases.json`, `cases.csv` and `verify.py` into one folder. Use Python 3.9 or later; no packages or network access are needed.

```text
python verify.py
```

Expected report: ten reviewed cases, seven boundary checks, 22 invalid/tamper rejections and CSV byte parity. This default command does not rewrite files. The casebook contains literal expected answers reviewed separately against the rules before the checker was written.

To deliberately regenerate the CSV after editing supported JSON inputs and independently reviewing their expected answers:

```text
python verify.py --write-csv
python verify.py
```

The first command verifies JSON, runs controls and then writes CSV with explicit UTF-8/LF bytes. It does not generate or silently repair the JSON expected answers. Changing public files will invalidate the separately supplied `MANIFEST.sha256`; preserve an original copy when experimenting. The manifest covers release integrity, while the checker covers the restricted model and JSON/CSV agreement.

## What the examples establish

The study question is whether the same total physically moved can describe different actions under one declared tournament profile. Cases C01–C03 vary chip composition or the opening bet. C04–C05 straddle the half-minimum-raise threshold. C06–C08 distinguish the last-chips exception from single-chip and all-chips-needed calls. C09 supplies an earlier explicit declaration. C10 removes the opposing wager.

Each fixture states no-limit Hold'em, a postflop street, an in-turn single motion, full raise rights, no prior street chips, a 200-chip minimum bet, the opposing opening bet, the actor's stack before moving chips, individual denominations and exact words/timing. Non-all-in examples start with 5,000 chips. C06 starts with 525, and C07–C08 with 1,000.

`final_wager` is this actor's established total on the street; it is not the pot or a raise increment. `change` is the amount returned from the pushed chips. `add_required` is the further amount required to complete the action. `stack_after` includes returned change and deducts any required completion. `full_raise` is true only when an increase over the opposing opening bet reaches a full raise; an opening bet is not a raise. C06's 525 all-in over 400 is therefore not a full raise. The CSV is a compact projection; the JSON preserves the full scope inputs.

The checker applies this order:

1. Validate every required context field and the declared restricted scope.
2. Apply the explicit, clear raise-to declaration where supplied.
3. For silence, distinguish a legal single-chip opening from facing a wager.
4. When facing a wager, resolve the single-chip rule or the multiple-chip all-needed test before examining whether the moved chips were the entire stack.
5. In the surplus multiple-chip branch, distinguish last chips from chips behind; only then apply the incomplete-raise threshold and completion.

These are rule-application checks. Agreement between the literal oracle and implementation cannot establish which facts occurred in a disputed hand, whether another event adopted this profile, or what a tournament director would decide from additional facts.

## Boundaries and explicit exclusions

The seven literal boundary checks cover just below, exactly at and just above the halfway increase; a full minimum raise; a larger full raise; and both sides of the smallest-chip-removal equality. Twenty-one invalid-input controls reject prior chips, out-of-turn action, multiple motions, unavailable raise rights, another game/street, a short opening wager, missing/contradictory opening status, empty/nonpositive/noninteger/boolean/excessive/insufficient chips, ambiguous or mistimed words, contradictory declaration fields, an unfundable completion and an unknown field. A separate tampered-oracle control must fail, making 22 rejections overall.

Only a full opening wager is supported: there are no earlier raises on the street. Consequently the required full increment equals the wager faced. Do not use that shortcut when a hand already contains raises. The implementation explicitly rejects cases where the actor cannot fund a required full completion rather than extending the model to another short-stack procedure.

Other exclusions: preflop blinds, prior chips and pulling them back, undercalls, unclear or simultaneous words, multiple movements, earlier raises, unavailable raise rights, pot-limit/fixed-limit, incomplete opening all-ins, arbitrary declarations, live video interpretation, reopening rights for later actors, pot settlement, penalties and house exceptions. A single silent chip opening below the table minimum is also outside scope. The declared-raise example requires a full legal raise and a matching physical chip total.

The fixture's `before_chips_move` declaration is deliberately clear. TDA Rule 44's actual timing boundary concerns the chip reaching the table surface; this checker does not infer timing from video or claim that every declaration after release is late. Silence is represented by empty words and timing `none`, not an inferred intention.

## Primary source and attribution

The profile is [Poker TDA 2024, version 1.0](https://www.pokertda.com/view-poker-tda-rules/), Rules 40 and 43–45. Rule 46 identifies prior-chip situations excluded here; Rule 61 explains why seeking change through an ambiguous wager is a poor substitute for declaring the intended action. Sources were accessed September 6, 2026. The [TDA rules page](https://www.pokertda.com/poker-tda-rules/) and [TDA home page](https://www.pokertda.com/) should be checked for subsequent releases and the event's adopted version. The site had announced a planned mid-September 2026 rules release at the access date; this casebook does not implement a later version.

TDA rules used by permission of the Poker TDA, Copyright 2026, http://www.pokertda.com, All rights reserved. Examples and illustrations are original. This attribution does not claim TDA endorsement of the article or independent verification of the software.

GTO Solutions publishes GTO Gecko. This bundle contains original teaching examples and standard-library code; it contains no private source extracts, customer records, proprietary ranges or app outputs. No random seed, sample-size estimate or gambling-return claim applies.
