Skip to main content

F011 — Bet Placement

Business Rule

Players may place one or more chip-value bets on any live hand during each of the three betting windows (hole, flop, turn). Bets are accumulated per hand per stage. A hand is live if its current odds are > 1. Once a hand dies (odds = 0, not a winner) it cannot be bet on. No bet may cause a hand’s cumulative stake to exceed £50.00 (5000 pence). The payout at resolution is:
Only bets on the winning hand are paid. The odds are locked in at the time the bet is placed (not the river odds). Bets on losing and dead hands yield £0 regardless of the odds at bet time. See F015 for the full payout calculation spec.

JavaScript Reference

JS Source: hedgeem-v4/odobo/src/js/ JS Live: hedgeem.qeetoto.com — verified working reference

Key JS data structures

JS betting gate

JS payout formula

JS credit deduction timing

Credits are not deducted when a bet is placed. They are deducted in one batch at CC_DEDUCT_BETS (after the turn betting window closes, immediately before river reveal):

JS cancel

A single global CANCEL button calls ClearRoundBets(), which zeros bets for the current deal stage across all hands. It does not refund credits (because credits haven’t been deducted yet).

TypeScript Implementation

File: standalone_reference_client/src/engine/GameEngine.ts

Fixes applied (F011 audit)

Design differences (intentional)

TS placeBet() after fix

TS resolveBets() after fix

Dead Hand Logic

A hand is considered dead when oddsRounded === 0 AND statusIsWinner === false. Both approaches yield 0 payout for dead hands because bets can only be placed when odds > 1, so oddsAtBet will always be > 1 for any valid bet.

Maths

Payout identity

Max bet capacity

House edge

The odds presented at each stage are computed from simulation data (percentWinOrDraw). The payout odds (oddsRounded) are set slightly below the inverse of true probability, providing the house margin. Example from coredata game 1, hand 2 at hole:
  • percentWinOrDraw = 0.3311 → true odds = 3.02
  • oddsRounded = 3 → payout odds = 3.00
  • House margin ≈ 0.7%

Acceptance Criteria

Version Parity

Test Coverage