external image

96% Isn’t 96%

Joined
Feb 24, 2014
Location
spain
we see 96.[x]% on nearly every slot for the theoretical RTP

I wanted to dig into that as I’ve been developing slots, to see how our games would actually play. What emerged was quite the eye-opener: 96% doesn’t hold up. It doesn’t work like that for real players. It’s theoretical for a reason; only based on a player with an infinite bankroll who plays billions of spins.

What I Did

I wanted to see what “96%” actually looks like when real human behaviour gets involved.

So I built a simulator that runs tens of thousands of player sessions across different play styles (see list of personas at the end).

Each persona decides how much to bet, when to cash out (by profit or spin count), and whether to change stake. Everything else is just a normal spin simulator using standard game maths.

What Came Out

cm_2.webp


The “official” tRTP of the test game was 96.7%.

The real average player return, across 900,000 spins and 54,000 simulated personas, came out at 94.97%. (in the uploaded screen shots, this theme continues over millions of spins)

That’s a consistent 1–1.5% drop; the hidden behavioural edge that favours the casino even when everything’s mathematically fair.

WTH?

It’s because the tRTP ignores the short sessions, limited bankrolls and time, stop-losses, and chasing patterns all pull the RTP downward. It’s not that it’s rigged (is it ?), it’s just what happens when real people play in finite time with finite funds.

The Non-Linear Twist

When I expanded the test to game setups with higher and lower theoretical returns, the pattern got stranger
tRTP Player Reality (avg) Shift
82% ~72% –10%
96% ~94.5% –1.5%
105% ~108% +3%

The behaviour is amplifying the maths, the human limits distort the baseline numbers.

Real players live in short sessions, with balances that end.

When the math is tight, losses hit faster and harder; when it’s generous, a few lucky streaks get locked in before balance decay catches up.
Which is why the curve bends : time and money run out.


What It Means

tRTP is only the casino’s side of the story.
The player’s story doesn’t follow lab conditions or endless-spin simulations.
It’s shaped by variance, psychology, bankroll, and habit.

A play session is really a convergence of between maths, randomness, and behaviour and that changes the equation :: It makes 96% not 96%

Does this chime with your experience?
Do you think this could be a more honest way of seeing RTP?
Any personas I’ve missed?

Would love to hear your thoughts. 🙂

cm_1.webp

Player Personas

Here’s the line-up of archetypes I tested each a simplified model of real player behaviour:

  • Conservative Gambler: 20¢ bet, cashes after 1000 spins
  • Balance Builder: 20¢ bet, cashes at +50%
  • Patient Player: 20¢ bet, cashes after 3000 spins
  • Long Haul: 20¢ bet, cashes after 10,000 spins
  • Normal Bettor: $1 bet, cashes at +50%
  • Quick Session: $1 bet, cashes after 100 spins
  • Moderate Player: $1 bet, cashes after 5000 spins
  • Profit Seeker: $1 bet, cashes at +100%
  • High Roller: $1 bet, cashes at +200%
  • Feature Chaser: $1 bet, doubles after features, cashes after 1000 spins
  • Bonus Profiteer: $1 bet, doubles after features, cashes at +100%
  • Bonus Marathon: $1 bet, doubles after features, cashes after 10,000 spins
  • Strategic Adjuster: 20¢ bet, doubles after feature, halves after 100 dry spins
  • High Stakes Quick: $5 bet, cashes after 100 spins
  • Bonus Hunter Pro: $5 bet, cashes right after bonus
 
I can precis all this in one simple paragraph:

If less than 100%, the RTP will always bust the player eventually the longer they play and if they don't cash out. The number of players, their stake and play or cash-out habits is irrelevant as far as tRTP is concerned. This is a number relevant mainly to the casino itself, as aggregate play over time will demonstrate it to be accurate. The player is simply taking a small spin sample at any given point in time, therefore is subject to the game's short-term volatility. A player is unlikely ever to play enough spins to see the effects of permitted deviation (for that particular game's maths model) from the designated tRTP. Therefore the player will seldom hit the tRTP themself. It'll be below in the majority of cases, substantially better if they learn to walk away when ahead. It's called gambling.
 
Ah, and if anyone wants to play the WIP game, it's up here

*snip*
And please be as diligent when you read the forum rules concerning posting external links without permission as you are with your numbers! :)
 
I can precis all this in one simple paragraph:

If less than 100%, the RTP will always bust the player eventually the longer they play and if they don't cash out. The number of players, their stake and play or cash-out habits is irrelevant as far as tRTP is concerned. This is a number relevant mainly to the casino itself, as aggregate play over time will demonstrate it to be accurate. The player is simply taking a small spin sample at any given point in time, therefore is subject to the game's short-term volatility. A player is unlikely ever to play enough spins to see the effects of permitted deviation (for that particular game's maths model) from the designated tRTP. Therefore the player will seldom hit the tRTP themself. It'll be below in the majority of cases, substantially better if they learn to walk away when ahead. It's called gambling.
Kind of, but that's not what the maths say. The cashout early guys don't out perform every other persona over a million spins. This was one o the things which surprised me about the data.
 
Kind of, but that's not what the maths say. The cashout early guys don't out perform every other persona over a million spins. This was one o the things which surprised me about the data.
Well naturally they wouldn't if they repeatedly revisited the game, as the effect overall would eventually then be the same as that of the player who spins until bust. But if they walk away forever after winning, their personal RTP would be permanent.

If the model is playing a million spins regardless of cash-out habits, then by that time deviation would be in effect so you'd expect nearly all players to be close together in overall RTP.

RTP is not a guarantee and sadly some players see it as such. Sure, I could make a slot whereby every 1.00 spin would return 0.967 so every player regardless of spins undertaken would have the same RTP.

RTP is a near-guarantee to the operator that they will get their house edge as they are on the side of volume and indeed millions of spins. The player is merely a sampler who is on the opposite side of the maths and subject to far more uncertainty which is what makes them a gambler.
 
Well naturally they wouldn't if they repeatedly revisited the game, as the effect overall would eventually then be the same as that of the player who spins until bust. But if they walk away forever after winning, their personal RTP would be permanent.

If the model is playing a million spins regardless of cash-out habits, then by that time deviation would be in effect so you'd expect nearly all players to be close together in overall RTP.

RTP is not a guarantee and sadly some players see it as such. Sure, I could make a slot whereby every 1.00 spin would return 0.967 so every player regardless of spins undertaken would have the same RTP.

RTP is a near-guarantee to the operator that they will get their house edge as they are on the side of volume and indeed millions of spins. The player is merely a sampler who is on the opposite side of the maths and subject to far more uncertainty which is what makes them a gambler.
We're mainly in agreement, but I think I've not presented the data very well, or not described it properly. The session lengths are all based on the personas, who all start with $100 balance, but have different session end criteria. It is a million spins overall, but there's not any persona instance / player session that will play anything like 1,000,000 spins.

It's interesting that the "cash-out when even slightly ahead" player archetypes DON'T end up on the best average RTP.

Totally in agreement that the tRTP headline number is exactly a description of the minimum house edge for the Casino's. I was just thinking of a way which gives a more player centric number.


cm_3.webp
 
The only way to have equitable simulations to compare or sum is to have the same number of spins at the same stake or the same amount of $$ put through the RTP grinder. Cashing out doesn't affect return in an equitable simulation. The only thing cashout strategies do is reduce session length which reduces money put through a slot RTP which reduces overall accuracy due to lower spins.
1761684180226.webp

94.97% seems to stem from the session balances.
96.26% is the actual average of the personas. But averaging these are flawed because you they are not the same as each other.
97.24% is the average of the RTPs after you apply weighting based on spin amounts. this is still flawed due to different amounts of money being exposed to the RTP.
96.72% is the average of the RTPs after you apply weighting based on money spent. This number can also be arrived at by simply dividing the total money spent by the total money returned.

The entire thing has a bunch of flaws, with the main one being a conflation of the session balances with return to player:
  • the way you've summarised the data above the table implies 900,000 spins overall despite it being 13,500,00 (or atleast should have been). For a while I was thinking it was 240 sessions of 60,000 spins until it clicked for me.
  • because you equated the sessions rather than the spins, the personas don't have equity. Equating spins would be fine if the stakes were the same but as they differ, equity would require the money spent to be equated.
  • if the bet size is 0.2, your bust and cashout percentages are 0, why do your sessions only last 250 spins on average. Something is awry because the only thing that would limit the average spins like this is a spin per session limit. If you only ended a session on a bust or cashout, they would be much longer than 250 spins in those cases.
  • conservative gambler, patient player and long haul are the exact same persona due to the spin per session gaffe. Bonus marathon and feature chaser are also identical for the same reason.
  • something is odd about the fact that the matching personas still got the exact same stats despite being an entirely different runs. You could argue that it the variance balanced out at that point but if that was the case the average would be -1.65 not -0.85.
  • adding onto the above point, the peak balance shouldn't be identical either as theoretically the max win hit would have happened at a different point. I also find it weird that the peak balances are so close together and that it never goes above basically a max win plus starting balance. My guess is something to do with the seeding, perhaps each persona started with the same seed? Same reason the strategic adjuster only hits he max win on 0.2 perhaps.
  • Is it 9ish bonuses per session or one every 26 or so spins?

Speaking of flaws, the numbers I presented at the top are still inaccurate due to the fact that stake doubling has been ignored for any $$$ inferences. I am unable to properly approximate average stake without knowing a little more about the bonuses (confirming 9.6 per 250 spins?) and if for some reason the way you define doubling is somehow weird or different do how I would assume. If I remove the personas with doubling involved, I get a weighted average RTP of 96.84%

In conclusion, the properly weighted numbers are very much near to the advertised RTP but there is lots of weird stuff going on with the data and slot behaviour.
1761685728066.webp


Strategy wise, playing with small cashout targets on volatile games and/or stakes is inherently bad due to low exposure to law of large numbers (i.e. RTP) whilst, in most cases, not benefiting from the upside of volatility in most sessions (bust or small cashout). This low cashout strategy is more suitable for low volatility games/stakes.

If you have enough sessions it'll all balance out as per, but from a player POV doing a normal amount of sessions, you'll see a lot of busts and some cashouts (mostly minimum target). This can lead to lopsided RTPs over statistically negligible spin amounts.
 
Last edited:
Just another point, what ever your using to simulate the spins, is it a certified RNG as built in ones of various computer languages are flawed etc but as @mulven points out there are other multiple issues with your testing. Where is the proof of the game you was testing was indeed 96.7% was that verified?
 
It may not be relevant to what you're trying to prove but I thought I would throw this out there anyhow.

>> "Do you think this could be a more honest way of seeing RTP?" <<

Let's call it NRTP. That is >> “Not Returned To Player” That 4% of every wager (spin) NRTP adds up very quickly with the speed that spins can be made.

Bottom line, it takes a lot of losers to make even one winner.

And, the looser the slots, the more $$ the casinos make from the “churn”.
 
I was gonna start a new thread with the following, but I searched and found this one, so I figured I'd say it here.

RTP should be rephrased because it actually applies to the entire player base of a game, not a single player. Even just adding an S to "player" would make it more accurate.

RTP is is the result of the RNG, right? That will never truly apply to one person on one game unless they run a billion spins through it.

I understand how it matters to the casino hosting the game though.
 
The only way to have equitable simulations to compare or sum is to have the same number of spins at the same stake or the same amount of $$ put through the RTP grinder. Cashing out doesn't affect return in an equitable simulation. The only thing cashout strategies do is reduce session length which reduces money put through a slot RTP which reduces overall accuracy due to lower spins.View attachment 212792


The entire thing has a bunch of flaws, with the main one being a conflation of the session balances with return to player:
  • the way you've summarised the data above the table implies 900,000 spins overall despite it being 13,500,00 (or atleast should have been). For a while I was thinking it was 240 sessions of 60,000 spins until it clicked for me.
  • because you equated the sessions rather than the spins, the personas don't have equity. Equating spins would be fine if the stakes were the same but as they differ, equity would require the money spent to be equated.
  • if the bet size is 0.2, your bust and cashout percentages are 0, why do your sessions only last 250 spins on average. Something is awry because the only thing that would limit the average spins like this is a spin per session limit. If you only ended a session on a bust or cashout, they would be much longer than 250 spins in those cases.
  • conservative gambler, patient player and long haul are the exact same persona due to the spin per session gaffe. Bonus marathon and feature chaser are also identical for the same reason.
  • something is odd about the fact that the matching personas still got the exact same stats despite being an entirely different runs. You could argue that it the variance balanced out at that point but if that was the case the average would be -1.65 not -0.85.
  • adding onto the above point, the peak balance shouldn't be identical either as theoretically the max win hit would have happened at a different point. I also find it weird that the peak balances are so close together and that it never goes above basically a max win plus starting balance. My guess is something to do with the seeding, perhaps each persona started with the same seed? Same reason the strategic adjuster only hits he max win on 0.2 perhaps.
  • Is it 9ish bonuses per session or one every 26 or so spins?

Speaking of flaws, the numbers I presented at the top are still inaccurate due to the fact that stake doubling has been ignored for any $$$ inferences. I am unable to properly approximate average stake without knowing a little more about the bonuses (confirming 9.6 per 250 spins?) and if for some reason the way you define doubling is somehow weird or different do how I would assume. If I remove the personas with doubling involved, I get a weighted average RTP of 96.84%

In conclusion, the properly weighted numbers are very much near to the advertised RTP but there is lots of weird stuff going on with the data and slot behaviour.
View attachment 212793

Strategy wise, playing with small cashout targets on volatile games and/or stakes is inherently bad due to low exposure to law of large numbers (i.e. RTP) whilst, in most cases, not benefiting from the upside of volatility in most sessions (bust or small cashout). This low cashout strategy is more suitable for low volatility games/stakes.

If you have enough sessions it'll all balance out as per, but from a player POV doing a normal amount of sessions, you'll see a lot of busts and some cashouts (mostly minimum target). This can lead to lopsided RTPs over statistically negligible spin amounts.
Some amazing points here, thank you. Will factor them in to the next iteration. The personas do start with the same seeds ( the code starts a new player session for all personas at the same time - every 500 spins IIRC )

I see your point about the inflated bet amount of the double up strategy distorting the overall RTP as a different amount is wagered. Will have to factor that in, but also, this experiment wasn't just about the baseline RTP number, it was more focussed on what a real(ish) player might experience.
 
Just another point, what ever your using to simulate the spins, is it a certified RNG as built in ones of various computer languages are flawed etc but as @mulven points out there are other multiple issues with your testing. Where is the proof of the game you was testing was indeed 96.7% was that verified?
The RNG comes from Node's crypto.randomBytes lib, which I believe that yes, it is certified as properly random.
 

Users who are viewing this thread

Accredited Casinos

Read about our rating system and how it's done.
Back
Top