My approach to that problem is

- Make a mind map following all the branches and stat changes (though that doesn’t calculate the stats for each iteration possible, it helps me show what paths the variable will affect)

And 2. use this tool to run the game thousands of times and get all the possible outputs of the variables I want to check, then copy the data to a spreadsheet and get the max and min values for each variable.

It’s kind of a brute-force way to do it but it works well enough. Especially when the project starts to grow and the number of ways one stat can change also grows exponentially, making it too inconvenient to follow and calculate it by hand, the computer can do it 50 thousand times in a couple of minutes, plus, you can run from iteration 0 to 50k in parallel to another from 50k to 100 and so on, so you can test maybe 500k or 1 million iterations in just a while if you are really afraid you’re not getting the endpoints of your stats, it all depends on the complexity and ramification of your game.