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.