Protocol · Code · Ledger · Replay
How the experiment was built and checked
The definitions were fixed before the results were interpreted. Any change to a rule, pay table, cohort, bug or displayed definition requires a new version.
Terms used in the study
The definitions stayed fixed
Every percentage identifies its denominator. Expected values are calculated wager by wager and stored in integer cents.
- Handle
- Sum of every accepted stake.
- Player payouts
- Sum of gross amounts returned after settlement.
- GGR
- Handle minus gross payouts; allocation injections are excluded.
- Actual RTP
- Gross payouts divided by handle in the realised ledger.
- Theoretical RTP
- Stake-weighted expected gross payout from each exact wager choice.
- Net P&L
- Current bankroll minus all R10,000 allocations received.
- Ruin
- After settlement, bankroll is below the R1 minimum legal stake.
- Bankroll month
- A numbered allocation episode, separate from calendar month.
Deterministic streams
Concurrency cannot alter a draw.
Each schedule, game choice, stake variation, bet choice, and game outcome stream is addressed by stable world, player, game, and purpose identifiers. The xoshiro128** generator advances locally; SHA-256 protects commitments, manifests, checkpoints, and ledger integrity.
Changing a dashboard refresh or worker count therefore cannot shift the sequence used by another player.
Replay procedure
101 422 settlements rechecked.
npm run casino:test
npm run casino:generate
npm run casino:replay
The replay validates sequence and predecessor hashes, duplicate bet IDs, integer stakes, bankroll arithmetic, non-negative balances, allocation caps, final ledger/state hashes, and casino-to-player reconciliation.