# Figuring out algorithm/formula for item scaling in WoW

I am trying to figure out the algorithm/formula for item stat scaling in WoW. If you play in battlegrounds or arenas, your item's stats increase to the highest possible level in that bracket. So if you're level 10 your items will be boosted to level 19 in that bracket. 20 will be 29 and so on.

I have an example here:

This item is level level 20 and has 10 armor, 7 agility, and 7 stamina. When you join the arena or battleground, it will increase to this:

I am trying to figure out this algorithm/formula, so I can enter any item's item level and stats, which will then figure out the stats when in a battleground or arena. How would I approach that? I've tried a few isolation equations, but it won't really work :( Thanks in advance!

• Isn't it also a bit random? Jul 27 '15 at 11:17
• I don't know. Define random, though. Most items have predefined stats :) Jul 27 '15 at 11:20
• I'm not sure, I never was a wow pro but i thought it's like 10+ random number between 1-4 for example, so you can get 11-15. But could be wrong of course! Jul 27 '15 at 11:22
• Oh nope not this way. There are some items which can have like either 5, 6 or 7 agility, but these are not it. Neither would it matter ;) Jul 27 '15 at 11:27
• Hi again. While I was at SU I noticed you "migrated" this question to here. I did search a bit about this yesterday... although I don't have any concrete data, from what I've read on the wiki, the item's iLevel is increased to match the BG/Arena you are on. Item Stats have a relationship with iLevel, that has been found by some WoW players. If you look a little more into this, you might detect how the scaling algorithm works. Jul 27 '15 at 15:36

## 2 Answers

The best method I can think of to determine the scaling factor is by using a piece of heirloom gear since it scales at every level, giving you the most datapoints to use when calculating the scale factor; this is of course assuming the factor is the same for the pvp scaling as it is for the heirlooms.

The good news for this method is that for a given piece of heirloom gear you can bring it up on www.wowhead.com where there is a drop down to change the level you are viewing it at.

The hard part here will be the math involved as each level of the heirloom will be multiple iLvls apart but given all 100 points and the right formulae* a fairly accurate calculation should be possible.

*Depending on your math skill a question on mathematics should help determine how to derive the factor.

I have put together a spreadsheet with all the data points for one piece of heirloom with some simplistic formulas that look to show some patterns but not accurately enough to derive a formula, maybe this sheet will give you an idea how to proceed with the data you have.

Spreadsheet

Note: The formula for Stat Increase Per Ilvl needs improvement to be more precise, rather than only comparing at each point where often there was no increase from the previous it needs to include all iLvls where the stat didn't change. I will work on this, but if some one else beats me to it please let me know.

• Yeah using a heirloom to check the scaling factor would be a good idea, but I already have a great list of items from their original state to their scaled up version. However, how to get started on the math is something I don't understand. Jul 28 '15 at 19:20
• @Snorlax, check out the spread sheet i linked, it may point you in the right direction. If not try to put a similar sheet together for the items you have and I will have a look to see if I can help.
– user73272
Jul 28 '15 at 19:37
• Great sheet! Thank you very much. I will try to look further at that. Jul 29 '15 at 12:06

From your comments, you already have some data to analyse.

First of all, even just from Phaeze's spreadsheet, we can add a chart and see a couple of interesting things

1. iLvl per level has a bunch of discontinuities that correspond to expansion level caps
2. Each stat has a per iLvl gain which is roughly constant within an expansion

I would also suggest instead of modelling on Str, Stam, Crit etc. you instead use StatHighest, Stat2nd, ... StatLeast. This will hopefully let you generalize between gear for different classes

Having done this, you can use your favorite spreadsheet to chart StatNth against iLvl for each of the ranges you are interested in. Adding a best fit line will give you a Linear Regression (in one predictor, but that is all we need), which basically means you have an equation `Stat = iLvl * some#`

For armour, you will want to split Cloth / Leather / Mail / Plate as that difference amounts for all the variation within an iLvl. Similarly for weapons splitting by 1-Hand / 2-Hands for base DPS ( although there may be variations between weapon types, I can't recall off hand )

I have a feeling that you will find that there are a small number of patterns of stat distributions, and that you can get an exact prediction from finding which pattern an item is, and looking up what values that pattern has at the desired level ( This is my ulterior motive for suggesting the StatHighest, Stat2nd... analysis )

• I see. Thank you for your answer! By looking at the items I provided, my x (some#) variable changes exponentially. It would be nice to reverse engineer the formula, because I'm sure they're just multiplying with some constant based on the item's item level. Don't you think? Jul 29 '15 at 12:06
• To your point around highest stat instead of str, stam my line of thinking was that different stat types would have different factors, like str, int and agi would all use the same factor and haste, crit would use another. And tracking the stats specifically across different slots and armor or weapon classes would point this out.
– user73272
Jul 29 '15 at 16:16
• You are probably right in grouping them like that, but my approach will consider Str>Agi gear the same as Agi>Str gear if it has the same relative numbers. You could also look at Str+Agi+Int+etc and Haste+Crit+etc totals, which will probably leave you with even fewer distinct stat patterns Jul 29 '15 at 17:26