# PKO bounty branch-value evidence bundle

Generated 2026-09-04. This bundle supports GTO Gecko’s article “PKO Bounty Value: Separate Cash from Future Value.” All numbers are explicitly synthetic teaching inputs.

## Files

- `reference.json`: machine-readable formulas, exact rational fields where the integer inputs permit them, variable definitions, synthetic fixtures, sources, and model boundaries.
- `branch-scenarios.csv`: the four-row fold/call branch ledger for the worked case. Only the two outcome rows are additive; the blended call-EV row is an explicit subtotal.
- `sensitivity.csv`: four immediate-bounty values with the other branch inputs held fixed.
- `calculator.html`: keyboard-friendly, dependency-free local calculator with mandatory unit labeling.
- `generate.mjs`: downloadable deterministic JavaScript generator.
- `verify.py`: independent Python standard-library recomputation and hash verification.
- `verification-report.json`: frozen specification of the checks expected at release; its `not-executed` status deliberately does not claim a verifier ran.
- `MANIFEST.sha256`: hashes for all ten bundle-local artifacts, including the chart and hero image.
- `pko-bounty-value-branches.svg`: accessible branch-and-sensitivity graphic. The article provides the full text and table equivalent.
- `pko-bounty-value.webp`: byte-identical bundle-local copy of the article hero, hashed as binary and never rewritten by this generator.

## Reproduce and verify

From this downloaded directory:

```text
node generate.mjs
python verify.py
```

The directory is self-contained. Generation is deterministic, and `verification-report.json` is an expected-check specification rather than an execution receipt. A successful verifier process and its console output are the run record. The Python verifier neither imports nor executes the JavaScript; it independently calculates exact rational thresholds with `fractions.Fraction`, floating-point formula and fixture outputs, threshold edge cases, table rows, and hashes. It exits immediately under `python -O`, where assertions would otherwise be disabled. In the repository, `scripts/generate-pko-bounty-value-data.mjs` calls the same public generator and also publishes the byte-identical SVG to the article image path; the repository-only Node test adds further checks.

## Model

`EV(call) = q(W + B + H) + (1 - q)L`

When `W + B + H - L > 0`, the call is not worse than folding at:

`q >= (F - L) / (W + B + H - L)`

The worked case uses `F=120`, `W=165`, `B=50`, `H=0`, and `L=0` in one declared synthetic value unit. Its break-even q is `120/215 = 55.813953...%`. Removing B while holding everything else fixed moves the threshold to `120/165 = 72.727272...%`.

## Boundaries that matter

- F, W, B, H, and L must share one declared value unit. Converting cash, chip, prize-pool, or ICM values is upstream work.
- F, W, and L are complete continuation values that include all modeled future prize payouts, existing-bounty value, and later-knockout paths. W and L are already net of the call cost.
- q is the probability of the exact two-outcome win-and-eliminate branch, not automatically raw showdown equity.
- B is immediate bounty value actually paid under the specific event rules. PokerStars documents a common split and exceptions; verify the real event.
- H uses a zero incremental-transfer baseline. A declared future-state model may justify a positive or negative finite H; it is never face value or automatic cash. W still includes every other modeled future prize payout, existing-bounty value, and later-knockout path, and excludes this transfer only when it is isolated as H; if W already includes it, H must be zero.
- Ties, side pots, multiway outcomes, not covering the opponent, or winning without eliminating require more branches.
- If the threshold denominator is zero, no unique q threshold exists. If it is negative, the inequality reverses.
- Calculator ties use a unit-independent relative tolerance of 64 times JavaScript Number.EPSILON, scaled by the larger magnitude being compared (with Number.MIN_VALUE only as the exact-zero scale floor); overflow in inputs or derived values is rejected.
- This calculator checks branch bookkeeping. It does not estimate tournament-state values, solve a hand, or recommend a range.

## Sources (accessed 2026-09-04)

- PokerStars, [Poker Tournament Types — Progressive Knockouts](https://www.pokerstars.com/poker/tournaments/types/): operator-specific common split and explicit exceptions.
- PokerStars Help, [What are Knockout tournaments?](https://www.pokerstars.com/help/articles/trn-knockout/213397/): operator-specific immediate/add-on-head treatment and winner’s own bounty.
- George T. Gilbert, [The Independent Chip Model and Risk Aversion](https://arxiv.org/abs/0911.3100): primary analysis of state-dependent tournament expected value under ICM. This bundle does not implement ICM.
