RTP measures all staked credits, including losing rounds. A 97% RTP means about 97 gross credits returned per 100 credits staked over repeated play. It is not a 97% chance of winning. Rain is already funded inside this model.
Paris
100,000,000 paths · 10-credit stake · gross return includes the original stake
Swipe the table sideways to see RTP and confidence intervals →
| Cash out after | Base target | Reach / paid | Avg. gross win | Measured RTP | 95% interval | House edge |
|---|---|---|---|---|---|---|
| Steal 1 | 1.10× | 88.139% | 11.005 credits | 96.995% | 96.988%–97.002% | 3.005% |
| Steal 2 | 1.25× | 77.534% | 12.510 credits | 96.991% | 96.981%–97.002% | 3.009% |
| Steal 3 | 1.45× | 66.825% | 14.514 credits | 96.992% | 96.979%–97.005% | 3.008% |
| Steal 4 | 1.75× | 55.367% | 17.519 credits | 96.998% | 96.981%–97.015% | 3.002% |
| Steal 5 | 2.10× | 46.141% | 21.024 credits | 97.008% | 96.988%–97.029% | 2.992% |
| Steal 6 | 2.60× | 37.269% | 26.029 credits | 97.006% | 96.982%–97.031% | 2.994% |
| Steal 7 | 3.25× | 29.818% | 32.534 credits | 97.010% | 96.981%–97.039% | 2.990% |
| Steal 8 | 4.10× | 23.637% | 41.039 credits | 97.002% | 96.968%–97.036% | 2.998% |
| Steal 9 | 5.20× | 18.637% | 52.044 credits | 96.993% | 96.954%–97.033% | 3.007% |
| Steal 10 | 6.60× | 14.685% | 66.049 credits | 96.991% | 96.945%–97.036% | 3.009% |
| Steal 11 | 8.20× | 11.819% | 82.053 credits | 96.975% | 96.923%–97.027% | 3.025% |
| Steal 12 | 10.00× | 9.697% | 100.000 credits | 96.973% | 96.915%–97.031% | 3.027% |
Base targets are before Rain. Each row is a separate stopping policy applied to the same simulated paths; do not add the row returns together. A rare earlier 10× settlement counts as paid in later rows.
Brazil
100,000,000 paths · 10-credit stake · gross return includes the original stake
Swipe the table sideways to see RTP and confidence intervals →
| Cash out after | Base target | Reach / paid | Avg. gross win | Measured RTP | 95% interval | House edge |
|---|---|---|---|---|---|---|
| Steal 1 | 1.10× | 88.142% | 11.005 credits | 96.998% | 96.991%–97.005% | 3.002% |
| Steal 2 | 1.25× | 77.543% | 12.510 credits | 97.003% | 96.992%–97.013% | 2.997% |
| Steal 3 | 1.45× | 66.836% | 14.514 credits | 97.009% | 96.995%–97.022% | 2.991% |
| Steal 4 | 1.75× | 55.378% | 17.519 credits | 97.018% | 97.001%–97.035% | 2.982% |
| Steal 5 | 2.10× | 46.147% | 21.024 credits | 97.019% | 96.998%–97.039% | 2.981% |
| Steal 6 | 2.60× | 37.273% | 26.029 credits | 97.017% | 96.993%–97.042% | 2.983% |
| Steal 7 | 3.25× | 29.823% | 32.534 credits | 97.026% | 96.997%–97.056% | 2.974% |
| Steal 8 | 4.10× | 23.641% | 41.039 credits | 97.019% | 96.985%–97.053% | 2.981% |
| Steal 9 | 5.20× | 18.642% | 52.044 credits | 97.019% | 96.980%–97.059% | 2.981% |
| Steal 10 | 6.60× | 14.685% | 66.049 credits | 96.994% | 96.948%–97.040% | 3.006% |
| Steal 11 | 8.20× | 11.820% | 82.053 credits | 96.983% | 96.931%–97.035% | 3.017% |
| Steal 12 | 10.00× | 9.699% | 100.000 credits | 96.986% | 96.928%–97.044% | 3.014% |
Base targets are before Rain. Each row is a separate stopping policy applied to the same simulated paths; do not add the row returns together. A rare earlier 10× settlement counts as paid in later rows.
South Africa
100,000,000 paths · 10-credit stake · gross return includes the original stake
Swipe the table sideways to see RTP and confidence intervals →
| Cash out after | Base target | Reach / paid | Avg. gross win | Measured RTP | 95% interval | House edge |
|---|---|---|---|---|---|---|
| Steal 1 | 1.10× | 88.141% | 11.005 credits | 96.996% | 96.989%–97.003% | 3.004% |
| Steal 2 | 1.25× | 77.543% | 12.510 credits | 97.003% | 96.993%–97.013% | 2.997% |
| Steal 3 | 1.45× | 66.830% | 14.514 credits | 97.000% | 96.986%–97.013% | 3.000% |
| Steal 4 | 1.75× | 55.368% | 17.519 credits | 97.001% | 96.984%–97.018% | 2.999% |
| Steal 5 | 2.10× | 46.135% | 21.024 credits | 96.995% | 96.975%–97.016% | 3.005% |
| Steal 6 | 2.60× | 37.269% | 26.029 credits | 97.009% | 96.984%–97.033% | 2.991% |
| Steal 7 | 3.25× | 29.812% | 32.534 credits | 96.992% | 96.962%–97.021% | 3.008% |
| Steal 8 | 4.10× | 23.635% | 41.039 credits | 96.994% | 96.960%–97.029% | 3.006% |
| Steal 9 | 5.20× | 18.637% | 52.044 credits | 96.993% | 96.954%–97.033% | 3.007% |
| Steal 10 | 6.60× | 14.684% | 66.049 credits | 96.983% | 96.937%–97.029% | 3.017% |
| Steal 11 | 8.20× | 11.820% | 82.053 credits | 96.984% | 96.932%–97.036% | 3.016% |
| Steal 12 | 10.00× | 9.700% | 100.000 credits | 97.002% | 96.944%–97.060% | 2.998% |
Base targets are before Rain. Each row is a separate stopping policy applied to the same simulated paths; do not add the row returns together. A rare earlier 10× settlement counts as paid in later rows.
Pooled
300,000,000 paths · 10-credit stake · gross return includes the original stake
Swipe the table sideways to see RTP and confidence intervals →
| Cash out after | Base target | Reach / paid | Avg. gross win | Measured RTP | 95% interval | House edge |
|---|---|---|---|---|---|---|
| Steal 1 | 1.10× | 88.141% | 11.005 credits | 96.996% | 96.992%–97.000% | 3.004% |
| Steal 2 | 1.25× | 77.540% | 12.510 credits | 96.999% | 96.993%–97.005% | 3.001% |
| Steal 3 | 1.45× | 66.831% | 14.514 credits | 97.000% | 96.992%–97.008% | 3.000% |
| Steal 4 | 1.75× | 55.371% | 17.519 credits | 97.006% | 96.996%–97.015% | 2.994% |
| Steal 5 | 2.10× | 46.141% | 21.024 credits | 97.007% | 96.996%–97.019% | 2.993% |
| Steal 6 | 2.60× | 37.270% | 26.029 credits | 97.011% | 96.997%–97.025% | 2.989% |
| Steal 7 | 3.25× | 29.818% | 32.534 credits | 97.009% | 96.992%–97.026% | 2.991% |
| Steal 8 | 4.10× | 23.637% | 41.039 credits | 97.005% | 96.985%–97.025% | 2.995% |
| Steal 9 | 5.20× | 18.639% | 52.044 credits | 97.002% | 96.979%–97.025% | 2.998% |
| Steal 10 | 6.60× | 14.685% | 66.049 credits | 96.989% | 96.963%–97.016% | 3.011% |
| Steal 11 | 8.20× | 11.819% | 82.053 credits | 96.981% | 96.951%–97.011% | 3.019% |
| Steal 12 | 10.00× | 9.699% | 100.000 credits | 96.987% | 96.953%–97.020% | 3.013% |
Base targets are before Rain. Each row is a separate stopping policy applied to the same simulated paths; do not add the row returns together. A rare earlier 10× settlement counts as paid in later rows.
Pooled intervals describe the combined 300,000,000 paths. The simultaneous comparison family below covers the 36 individual-region rows.
What the numbers say
The 36 individual region/step estimates range from 96.973% to 97.026%. All 36 agree with the exact model within the simultaneous 95% intervals.
The table shows ordinary 95% intervals. The JSON also contains Bonferroni intervals for all 36 region/step comparisons together, using z=3.19695. Statistical agreement is evidence of consistency; it is not proof that a live RNG is fair.
Actual engine cross-check
9,080 scripted boundary and payout cases, plus 5,000 random paths and 28,731 transition checks, were compared against createDemoGame. This covers ordinary wins, failures, each Rain boundary, cent payouts, and early or final 10× caps with the same random-draw order.
One path, twelve possible exits
A full path records what would happen if play continued. Each row asks what would have been paid if the player stopped after that steal. Rows within a region therefore share random paths and are correlated. The simulation generated 300,000,000 full paths, not twelve times that many.
Quantized probabilities and rounding
Success thresholds use the game’s imported curved functions and exact Uint32 cutoffs. Rain is checked only after a successful eligible steal. Gross payouts round to the nearest cent, with half cents rounded up; rewards stop at 10×. Exact dynamic programming enumerates all reachable multiplier states.
Scope and limits
This is an offline audit of the demo’s mathematical model and transition mapping. Its deterministic AES sampler is for reproducibility. It does not certify browser entropy, server security, a competition leaderboard, regulatory compliance, or real-money suitability. Play-credit RTP uses the same returned-credits / staked-credits definition.
Exact rounding check at five stakes
These are analytical results, not extra simulations. Each entry includes quantized Rain, quantized survival, cent rounding, and the 10× cap. Tiny differences above 97% come from the Uint32 threshold rounding.
| Stake | Lowest exact RTP | Highest exact RTP | Steps |
|---|---|---|---|
| 1.00 credits | 97.000000015% | 97.000000170% | All 12 |
| 1.10 credits | 97.000000013% | 97.000000155% | All 12 |
| 2.50 credits | 97.000000012% | 97.000000157% | All 12 |
| 10.00 credits | 97.000000015% | 97.000000170% | All 12 |
| 100.00 credits | 97.000000015% | 97.000000170% | All 12 |
Reproduce this audit
npx tsx scripts/curved-payout-analysis.ts 100000000 cclg-curved-three-regions-2026-10-08-v1
Math version: demo-curved-rain-inclusive-97-12-v6
Audit seed: cclg-curved-three-regions-2026-10-08-v1
Started: 2026-10-08T09:27:11.882Z
Finished: 2026-10-08T09:27:47.298Z
{
"src/game/demo.ts": "ae96f2d002fba56cf7800f59007f47442f0c6551d42149088eb93cea777f4f1f",
"src/game/curved-math.ts": "4b0b9a8520b2e77ae2f69a12378639c6204f7754c18a2bd47f2ccda9c52e394e",
"scripts/curved-payout-analysis.ts": "2cf7f00fbd7a2bd48fe04325732a3c1254248ff6210f17f2fedc4cc72f425ff0"
}Audit sampler: SHA-256-derived AES-256-CTR key per region, zero IV, little-endian 32-bit words. Full keys, draw counts, exact tables, confidence intervals, and tail/Rain metrics are saved in report.json.
FREE-PLAY MODEL · 9 OCTOBER 2026
Crumb Cascade: 100 million complete rounds
This model now powers Crumb Cascade, the main free-credit slot. Unfinished classic Great Braai Robbery bonuses retain their original rules on a separate recovery page. These results apply to the frozen Cascade candidate, not the classic slot, and are not laboratory certification.
Play Crumb Cascade with free credits → Real server outcomes, saved bonus sequences and recoverable rounds. It shares your classic-slot practice account; credits have no cash value.
Try the Crumb Cascade animation preview → Six selected saved outcomes show falling food, growing multipliers and Buffet Raid. This is a visual review with no wagers or player accounts; it does not represent typical win frequency.
Open the separate testing page for pause, replay and recovery controls. These tools are not part of normal play.
One paid stake covers the initial board, every winning refill and all eight free sequences when the feature is awarded. The model was selected on development samples, frozen, then tested once on ten fresh streams of ten million paid rounds each.
Approximate 95% RTP interval: 97.0289%–97.1549%. The target was approximately 97%; this candidate is not claimed to have exactly 97.000% theoretical RTP.
| Part of the paid round | RTP contribution |
|---|---|
| Initial base board | 39.6204% |
| Additional base cascades | 36.9751% |
| All free feature sequences | 20.4964% |
| Complete paid round | 97.0919% |
An award is not always a profit
24.96% of rounds returned less than the stake; 0.55% broke even; 18.39% returned more than the stake. Losing rounds stay in the RTP denominator.
Cross-checks and limits
A separately written Python model matched 2,451 full transcripts. Its own statistical sample and a separate one-million-round crypto/rand smoke were consistent with the holdout. The largest observed return was 362.8×; neither the 5,000× round ceiling nor the 64-stage limit was encountered. That does not establish their probability as zero.
The holdout uses a reproducible offline PCG generator with the shared rejection sampler. It estimates this frozen model’s return; it does not certify a live random source, server security or regulatory compliance. The main game uses server-owned outcomes and balances. The saved-outcome animation preview remains available for visual review. Real-money integration and certification remain separate work.
Candidate settings and evidence
5 × 3 cells, 20 paylines, consumable Wilds, a 1/2/3/4 base ladder and 2/3/4/6 feature ladder. Each sequence resets its ladder. Three simultaneous bags can award eight free sequences once; no feature retriggers.
Model: braai-crumb-cascade-candidate-002 Configuration SHA-256: 289bddbd461534c087727845b8f4494879821a2a8eb9cfa71c2741c6922a262b Complete paid rounds: 100,000,000 Stake: 10 play credits Holdout seed: crumb-candidate-002-frozen-holdout-v1
Full holdout JSON · Frozen configuration · Internal validation checks
Payout distribution CSV · Stage contributions CSV · Chain lengths CSV · Candidate comparison CSV
