At our company we are currently building a simple slot machine as a mini game for giving players incentives for our yet to be released app. After some investigation I realized that, apart from calculating the RTP percentage, it would be nice to also calculate the Volatility Index (VI).

I've seen various documents on the web that state that for calculating this VI, it's necessary first to obtain the Standard Deviation for the Slot Machine. We are able to simulate all plays on the slot machine and record all pays.

Correct me if I'm wrong please, but to calculate the Standard Deviation you have to first obtain the mean of all the machine pays for the lowest bet possible? In our case that would be 1 credit and 1 line. Is this a correct assumption?

We have tried to calculate the standard deviation using simulations with 20 credits and 20 lines, and we always get a number between 200-300 (!). When we run the simulations using 1 credit and 1 line, we get a Standard Deviation of 9, which multiplied by 1.65 (90% confidence) gives us a VI of 15, which seems a bit high but entirely reasonable.

On the other hand, I have tried dividing the 200-300 number by 40 (20 credits x 20 lines), in a surely misguided attempt at getting a reasonable number.

We are a very small independent team where I'm the only programmer and often play the part of confused mathematician.

I appreciate any help I can get.

Thanks!

When I simulate the game to get the standard deviation for more lines, I just simulate it at 1 credit per line. Track the following stats:

CI = coin in (games*lines)

CO = coin out (total win)

SS = sum of squared wins. For each game, calculate the total win and then square it.

Variance = (SS - CO^2/CI)/CI

SD = (Variance)^.5

I'm sorry but I'm not sure I follow you, please bear with me a little. You are essentialy saying that if I had a big list with all the wins reported by the simulation, I should just divide each item of that list by LINES and the proceed with regular variance calculations?

For example, simulation with 1 credit and 20 lines:

wins = [20, 100, 0, 40, ...] -> Standard Deviation = 222

Dividing each value by 20

wins = [1, 5, 0, ] -> Standard Deviation = 11.1

Which is essentialy dividing the 'original' SD by 20?

I got a little confused with your reformulation of variance. Why is SS sum of squared wins? Why are you not squaring this (SS - CO^2/CI)?

Could you please explain how would you perform your calculations assuming I had a big list with all the wins from the simulation with 20 lines and 1 credit?

Thanks

If you are a programmer but have never done slot mathematics before, you don't do it by simulation. You create a complete and exact solution using Excel. You can check your PAR excel spread sheet work by simulation. Also, 20M spins is pitifully low - don't use VBA or Java. Use C or C++ (or something similar). Aim for 1B spins.

You are heading for a disaster. These have happened many times before and there are plenty of people here who are waiting to eat your mistakes for dinner.

Cheers.

I'm aiming for people here to actually notice my surely evident mistakes, I don't think there's anything wrong with trying to learn something new? I'm just wondering how to accurately calculate the volatility index for bets other than 1 credit x 1 line.

Thanks.

IMO, this is exceedingly cheap. Learn new stuff on your own. Hire a mathematician for this project.Quote:BagariousI'm aiming for people here to actually notice my surely evident mistakes, I don't think there's anything wrong with trying to learn something new? I'm just wondering how to accurately calculate the volatility index for bets other than 1 credit x 1 line.

Look, I've got a Ph.D. in mathematics and am a former professor of both mathematics and computer science. That background didn't keep me from knowing I needed a professional mentor. For my first slot I hired the former lead mathematician at Bally's to mentor me. I paid a lot for that. I created the PAR and she double-checked it and gave me advice on certain parts as well as the programming. Above all else, I learned what the industry standard PARs looked like, what features they have, how they are laid out. After the first, she also helped me with tricks on more difficult issues (two-ways, exploding and expanding, etc.). It took several months for me to feel comfortable with most of the standard features that would get thrown my way. I have done dozens of PARs as an independent mathematician. Thinking you can do this yourself by asking a few questions here is different than "learning something new."

Hire someone here (NOT ME) to do this for you, or to mentor you directly on your work. There are plenty of professionals here. You are an employee of a company that is making a commercial product for profit. It is not just *you* the curious guy. So don't play that game.

Is it wrong for hobbyists to post here? Is this forum a freelancer-like site?

Quote:BagariousContrary to what you may have assumed from my posts, we are not a company with funding, we are actually three friends trying to make a Unity app completely unrelated to slot machines on our free time, but with a slot feature. I do not intend to leech from anyone here. I was not aware that this forum frowned upon this sort of questions unless the poster intended to hire someone. If that's the case, my apologies. I'm obviously not going to get on your level by getting a silly question answered, but I admit that the slot math design subject is really interesting and I would love to learn more.

Is it wrong for hobbyists to post here? Is this forum a freelancer-like site?

There are people on here who would do the work for you. I used to be one of them, but I still answer an occasional question. Currently, I just don't accept work from independent game inventors, with some exceptions.

Quote:BagariousHi there, thanks for your help!

I'm sorry but I'm not sure I follow you, please bear with me a little. You are essentialy saying that if I had a big list with all the wins reported by the simulation, I should just divide each item of that list by LINES and the proceed with regular variance calculations?

For example, simulation with 1 credit and 20 lines:

wins = [20, 100, 0, 40, ...] -> Standard Deviation = 222

Dividing each value by 20

wins = [1, 5, 0, ] -> Standard Deviation = 11.1

Which is essentialy dividing the 'original' SD by 20?

I got a little confused with your reformulation of variance. Why is SS sum of squared wins? Why are you not squaring this (SS - CO^2/CI)?

Could you please explain how would you perform your calculations assuming I had a big list with all the wins from the simulation with 20 lines and 1 credit?

Thanks

In your example (and I'm just going to use the 4 numbers you provided):

CI = 80 (20 credits per game * 4 games)

CO = total win = 160

SS = 20^2 + 100^2 + 0^2 + 40^2 = 14,000

Variance = (14000-160^2/80)/80

Standard Deviation = Variance ^ .5

This is a super easy method of calculating the standard deviation because you just keep a running tally of CI, CO, and SS, rather than storing a list of outcomes.