RTP and Volatility
Theoretical RTP
The values are exact. The source is gamemath/exact_calc.py. The Excel workbook gives the same values.
| Component |
EV for each spin (credits) |
RTP |
Share |
| Base game: ways pays |
3.614598 |
36.145979% |
37.57% |
| Base game: KEY and FISH collect |
3.915200 |
39.152000% |
40.70% |
| Free spins |
2.090199 |
20.901991% |
21.73% |
| Total |
9.619997 |
96.199971% |
100.00% |
Free spins RTP for each level
| Level |
Multiplier |
RTP (exact) |
RTP (simulation) |
| 1 |
x1 |
8.2141% |
8.2140% |
| 2 |
x2 |
4.4339% |
4.4342% |
| 3 |
x5 |
4.4037% |
4.4041% |
| 4 |
x10 |
3.8503% |
3.8512% |
Simulation
The simulator plays 1,000,000,000,000 game rounds. One round is one base spin and the free spins that it starts.
These results come from the C++ simulator sim_cpp/krakensim (see "Fast simulator" on this page). It used 18 threads. Each thread started on a different seed (20261111 to 20261128).
| Figure |
Simulation |
Exact |
| RTP |
96.2015% |
96.2000% |
| RTP: base ways pays |
36.1457% |
36.1460% |
| RTP: base collect |
39.1523% |
39.1520% |
| RTP: free spins |
20.9035% |
20.9020% |
| Standard error of the simulated RTP |
0.0010% |
- |
| Difference in standard errors |
+1.48 |
- |
| Free spins trigger |
1 in 171.67 |
1 in 171.66 |
| Mean free spins win (x bet) |
35.88 |
35.88 |
Fast simulator
The program sim_cpp/krakensim is a C++ simulator for very large runs. It reads the same configuration file and plays the same game.
- It plays approximately 90 million rounds for each second on one processor core. On 18 cores, it plays approximately 1.1 billion rounds for each second.
- The JavaScript simulator plays approximately 5 million rounds for each second on 18 cores.
- One reel stop is one 32-byte record. A spin reads five records. The program examines only the pay symbols that can make a paying combination.
- The program selects FISH values only when a KEY symbol is in the window, and only for the FISH symbols in the window. The values are independent of the stop positions. Thus the win distribution is the same as in the game engine.
- The script
sim_cpp/crosscheck.py gives the same reel stops to the C++ program and to the JavaScript engine. All results of 100,000 spins were equal.
- The run for this document played 1,000,000,000,000 rounds in 1023 seconds (17.0 minutes) on 18 threads. It gave an RTP of 96.2015% with a standard error of 0.0010%. The exact RTP is 96.2000%.
- Each thread starts on a different seed. Thread 0 uses the seed of the
--seed option. Each subsequent thread uses the next number. The program prints the seeds and writes them to the result file.
- The program writes the same result file as the JavaScript simulator. Thus
--json build/sim.json puts its results into this document and into the workbook.
Volatility
| Figure |
Value |
| Standard deviation for each round |
10.17 x bet |
| Base spins with a win |
29.89% |
| Base spins with a ways win |
24.24% |
| Base spins with a collect win |
6.69% |
| Rounds with a win |
30.37% |
| KEY symbol in the base game |
1 in 8.7 spins |
| KEY symbol and FISH4 symbol together in the base game |
1 in 217 spins |
| Largest round win |
10,498.0 x bet |
The volatility is medium to high. A small number of large wins holds a large part of the RTP:
- The base game collect with FISH4 (the kraken) pays 50 or 200 x bet. It gives 32.0% RTP.
- Levels 2, 3 and 4 give 12.7% RTP. Only 33.5% of the free spins get to level 2.
Win distribution for one round
| Round win (x bet) |
RTP |
Probability |
Frequency |
Cumulative RTP (this band and above) |
Cumulative probability (this band and above) |
Cumulative frequency (this band and above) |
| No win |
0.0000% |
69.6294% |
1 in 1.4 |
96.2015% |
100.000000% |
1 in 1.00 |
| More than 0, less than 0.5 |
3.0225% |
11.6809% |
1 in 8.6 |
96.2015% |
30.370636% |
1 in 3.29 |
| 0.5 to less than 1 |
4.5238% |
6.7458% |
1 in 14.8 |
93.1790% |
18.689700% |
1 in 5.35 |
| 1 to less than 2 |
7.4602% |
5.6307% |
1 in 17.8 |
88.6552% |
11.943920% |
1 in 8.37 |
| 2 to less than 5 |
10.9248% |
3.6547% |
1 in 27.4 |
81.1949% |
6.313225% |
1 in 15.84 |
| 5 to less than 10 |
9.0789% |
1.3682% |
1 in 73.1 |
70.2701% |
2.658528% |
1 in 37.61 |
| 10 to less than 20 |
7.2581% |
0.5463% |
1 in 183.0 |
61.1912% |
1.290336% |
1 in 77.50 |
| 20 to less than 50 |
4.9848% |
0.1746% |
1 in 572.7 |
53.9331% |
0.744034% |
1 in 134 |
| 50 to less than 100 |
23.7931% |
0.4513% |
1 in 221.6 |
48.9483% |
0.569425% |
1 in 176 |
| 100 to less than 200 |
5.4906% |
0.0442% |
1 in 2,260.1 |
25.1552% |
0.118108% |
1 in 847 |
| 200 to less than 500 |
16.0379% |
0.0697% |
1 in 1,435.4 |
19.6646% |
0.073863% |
1 in 1,354 |
| 500 to less than 1000 |
2.1036% |
0.0032% |
1 in 31,451.1 |
3.6266% |
0.004198% |
1 in 23,820 |
| 1000 to less than 2000 |
0.9067% |
0.0008% |
1 in 131,495.8 |
1.5230% |
0.001019% |
1 in 98,171 |
| 2000 to less than 5000 |
0.6119% |
0.0003% |
1 in 388,498.1 |
0.6163% |
0.000258% |
1 in 387,364 |
| 5000 or more |
0.0044% |
0.0000008% |
1 in 132,696,390.7 |
0.0044% |
0.000001% |
1 in 132,696,391 |
- The column "RTP" is the part of the RTP that comes from the rounds in this band. The sum of the column is the total RTP.
- The three last columns are for a win in this band or in a higher band.
- The last column is 1 divided by the cumulative probability: one round in this number has such a win.
- The sheet
Distribution of the workbook holds the same tables.
Free spins
| Figure |
Value |
| Mean win |
35.88 x bet |
| Standard deviation |
100.3 x bet |
| 25th percentile |
3 x bet |
| Median |
8 x bet |
| 75th percentile |
25 x bet |
| 90th percentile |
81 x bet |
| 99th percentile |
424 x bet |
| Largest win |
10,498.0 x bet |
| Free spins with no win |
2.10% |
| Mean number of free spins |
14.41 |
| Mean number of KEY symbols |
2.88 |
| Free spins that play level 2 |
33.53% |
| Free spins that play level 3 |
13.08% |
| Free spins that play level 4 |
5.60% |
The percentiles are whole multiples of the bet (rounded down).
| Free spins win (x bet) |
RTP |
Probability |
Frequency |
Cumulative RTP (this band and above) |
Cumulative probability (this band and above) |
Cumulative frequency (this band and above) |
| No win |
0.0000% |
2.100% |
1 in 47.6 |
20.9035% |
100.00000% |
1 in 1.00 |
| More than 0, less than 0.5 |
0.0039% |
2.387% |
1 in 41.9 |
20.9035% |
97.90033% |
1 in 1.02 |
| 0.5 to less than 1 |
0.0131% |
3.207% |
1 in 31.2 |
20.8996% |
95.51286% |
1 in 1.05 |
| 1 to less than 2 |
0.0570% |
6.767% |
1 in 14.8 |
20.8865% |
92.30545% |
1 in 1.08 |
| 2 to less than 5 |
0.4012% |
20.367% |
1 in 4.9 |
20.8295% |
85.53809% |
1 in 1.17 |
| 5 to less than 10 |
0.8088% |
19.615% |
1 in 5.1 |
20.4282% |
65.17101% |
1 in 1.53 |
| 10 to less than 20 |
1.3066% |
15.811% |
1 in 6.3 |
19.6195% |
45.55589% |
1 in 2.20 |
| 20 to less than 50 |
2.1789% |
12.270% |
1 in 8.1 |
18.3129% |
29.74473% |
1 in 3.36 |
| 50 to less than 100 |
3.4402% |
8.923% |
1 in 11.2 |
16.1340% |
17.47456% |
1 in 5.72 |
| 100 to less than 200 |
3.7500% |
4.673% |
1 in 21.4 |
12.6938% |
8.55169% |
1 in 11.69 |
| 200 to less than 500 |
5.3374% |
3.164% |
1 in 31.6 |
8.9439% |
3.87864% |
1 in 25.78 |
| 500 to less than 1000 |
2.0840% |
0.540% |
1 in 185.1 |
3.6065% |
0.71513% |
1 in 140 |
| 1000 to less than 2000 |
0.9062% |
0.130% |
1 in 766.3 |
1.5225% |
0.17481% |
1 in 572 |
| 2000 to less than 5000 |
0.6118% |
0.044% |
1 in 2,263.2 |
0.6162% |
0.04432% |
1 in 2,257 |
| 5000 or more |
0.0044% |
0.0001% |
1 in 772,993.2 |
0.0044% |
0.00013% |
1 in 772,993 |
- The column "RTP" is the part of the total RTP that comes from the free spins features in this band. The sum of the column is the free spins RTP.
- The probabilities are for one free spins feature.
- The three last columns are for a free spins win in this band or in a higher band.
- The last column is 1 divided by the cumulative probability: one free spins feature in this number has such a win.