Diminishing returns shows up in many places in Battle for Azeroth: damage reduction from Armor, Stagger and blocking attacks, and chance to dodge, parry or block attacks are the most prominent. Calling it an “often misunderstood” topic isn’t quite right… most people get it. People tend to argue about it a lot more than they actually misunderstand it, because there are a lot of valid ways to look at it… it’s like the Necker cube of WoW.
We are going to talk specifically about Armor, but the same logic applies to block amount, dodge chance, etc. — they all use a fundamentally similar formula.
Armor Formula
Armor reduces physical damage taken by a percentage. The formula that the game uses is the following:
Reduction = Armor / (Armor + K)
K is a constant that depends on who is doing the damage. Check out our tank formulas article for the full details. We will use level 120 characters getting hit by other level 120 units with a K value of 6300 in this article.
For example, say I’m a level 120 Warrior with 5000 Armor getting hit by another level 120 enemy (this is what your character sheet shows in the tooltip):
Reduction = 5000 / (5000 + 6300) = 0.4425 = 44.25%
As another example, say this same Warrior only has 2500 Armor:
Reduction = 2500 / (2500 + 6300) = 0.2841 = 28.41%
Reduction Percent Diminishes
So looking at our two examples, doubling my Armor from 2500 to 5000 does not double my reduction: adding 2500 more Armor only added 15.84% reduction, not another 28.41%. This is why people say that Armor has diminishing returns: the percent damage reduction gained per point of Armor goes steadily down as you get more Armor.
Let’s stop right there for a minute and reiterate this statement as an Important Sentence:
The percent damage reduction gained per additional point of Armor diminishes as you get more Armor.
This is a fact! It’s easy to see it by inspecting your character sheet with different Armor values in-game. It is mathematically, semantically, objectively, truthfully true! So then… why do people say that Armor doesn’t actually diminish?
Time to Live
So cool, Armor makes hits against me smaller. I know intuitively that will make me live longer, and that is ultimately what I care about. But how much longer can I survive if I add a specific amount of Armor?
For easy math, we will use the following example: you have 100,000 health, and an enemy is attacking you for 10,000 damage per hit, every 2 second. You are not getting healed and have no Armor. How long will you live? Most people can do this in their heads: 20 seconds. Here’s a formula though:
T = H * F / D
- T = Time to Live
- H = Health (100,000 in this example)
- F = Frequency with which you are getting hit (2, or every 2 seconds in this example)
- D = Damage taken per hit (10,000 in this example)
Using the formula for this example instead of our super-smart brains:
T = 100,000 * 2 / 10,000 = 20 seconds
Time to Live Does Not Diminish
Now let’s bring Armor back into the picture. All that Armor does is reduce damage taken per hit, or D in our formula here. Let’s calculate what D would be with 2500 Armor and 5000 Armor:
Final D = D * (1 - R)
- Final D = Final damage taken after being reduced by Armor
- D = Raw damage taken (10,000 in all our examples)
- R = Percent reduction from Armor, using the formula in the previous Armor Formula section
With 2500 Armor:
R = 2500 / (2500 + 6300) = 0.2841 Final D = 10,000 * (1 - 0.2841) = 7159
With 5000 Armor:
R = 5000 / (5000 + 6300) = 0.4425 Final D = 10,000 * (1 - 0.4425) = 5575
And now let’s calculate our Time to Live with 2500 and 5000 Armor, and align them all nice:
0 Armor: T = 100,000 * 2 / 10,000 = 20.00 seconds 2500 Armor: T = 100,000 * 2 / 7159 = 27.94 seconds 5000 Armor: T = 100,000 * 2 / 5575 = 35.87 seconds
So let’s see… when I had 0 Armor and added 2500 Armor, I lived for an extra 7.94 seconds. When I had 2500 Armor and added another 2500 Armor, I lived for… and extra 7.94 seconds! OMG they are the same! You could do this with any amount of Armor and raw damage, you will get the same result, which we will summarize in another Important Sentence:
Your Time to Live gained per point of Armor does not diminish as you get more Armor.
This is a fact! It is mathematically, semantically, objectively, truthfully true! You can say it to your friends and they have to believe you. Another way to say this same thing is that your Time to Live has a linear relationship with Armor. When people say that, they are expressing the same concept as our Important Sentence.
So… are there diminishing returns or not?
OK Yellowfive… nice math tricks. But which is it really. Does it diminish or not? Or in other words, should I be thinking about Armor as a diminishing percent reduction to damage taken, or a linear increase in time to live? Which is more useful or better?
There’s really no right answer here — it all depends on what you are doing. But this is what I would recommend to people: even though the percent damage reduction diminishes as you get more Armor, from a practical standpoint, you want to think of the true value of Armor as linear. It doesn’t matter if you are a fresh max-level character or a totally geared-up raider, each point of Armor that you add is just as valuable as the last — your time to live against a constant damage source will increase by the same amount.
There are of course other nuances to the game that can make it a bit more complicated than that, but generally speaking you don’t want to actively avoid Armor or any other “diminishing” stat like Parry as you get more of it. Don’t let the fact that your in-game character sheet barely moves as you get more and more geared up fool you, you are in fact getting just as much value per point as you were before.
Important Note
There is a somewhat common misunderstanding that arises when talking about Time to Live. Some people look at the above and say the following:
- With 0 Armor I lived for 20 seconds.
- With 2500 Armor I lived for 7.94 extra seconds, and 7.94 / 20 = 39.7% longer than when I had 0 Armor
- With 5000 Armor I lived for 7.94 seconds longer than when I had 2500 Armor, and 7.94 / 27.94 = 28.42% longer than when I had 2500 Armor
Then they say that Armor still diminishes because going from 2500 to 5000 Armor gave me a smaller percent increase in Time to Live than going from 0 to 2500. It isn’t really a “mistake” to look at it like this… but you have to realize that you aren’t actually talking about “Time to Live” anymore. You’re talking about “Percent Increase to my Current Time to Live.” You are not talking about absolute Time to Live.
An easy way to understand the difference is to look at the “units” of the quantity being measured. The unit for Time to Live is seconds. Seconds corresponds to a real, physical quantity in the world: time. In contrast, “Percent Increase to my Current Time to Live” has no units. It does not correspond to an intuitive physical quantity. It is a purely relative quantity that is relative to your current amount of Armor. Only from this relative perspective does it seem to “diminish”. When you transform it to a physical quantity (number of extra actual seconds that I will live) it becomes linear.
So you can see how easy it is for people to argue in circles about this. Both perspectives are “correct”, you simply need to agree on which perspective to use when having a conversation. Our preference is to use the perspective of the real number of seconds that a point of Armor will increase your Time to Live. It is more concrete and intuitive, and from that perspective, Armor does not diminish.
Proof
This section is a footnote for the math nerds of the universe. The ultimate goal is to prove that Time to Live is a linear function of your Armor. In other words, we should be able to come up with a formula of the form Ax + B for Time to Live, where x is how much Armor we have, and A and B are constants. Let’s do that!
Recall our Time to Live formula:
T = H * F / Dreduced
And our formula for the value of Dreduced after Armor reduces a raw hit D:
Dreduced = D * (1 - R)
And then our formula for R, the reduction from Armor (we will use “x” for Armor in this proof):
R = x / (x+ K)
So let’s substitute that all into our Time to Live formula to get T as a function of x:
T = H * F / (D * (1 - (x / (x + K))))
Now let’s algebra the shit out of this to see if we can get something that looks like T = Ax + B. Note that H, F, D, and K are all constants in this formula.
T = HF / (D - Dx / (x + K)) distribute D T(D - Dx / (x + K)) = HF multiply by rhs denominator DT - DTx / (x + K) = HF distribute T DT(x + K) - DTx = HF(x + K) multiply by (x + K) DTx + DKT - DTx = HFx + HFK distribute DT and HF DKT = HFx + HFK combine like terms T = HFx / DK + HFK / DK divide by DK T = (HF / DK)x + HF / D cancel K and regroup T = Ax + B where A = HF / DK B = HF / D
And there we have it — Time to Live can be written as a linear function of Armor. Just to ensure that we didn’t mess up our algebra, let’s redo the Time to Live examples using the new formula:
A = HF / DK = 100,000 * 2 / (10,000 * 6300) = 0.0031746 B = HF / D = 20 0 Armor: T = 0.0031746 * 0 + 20 = 20.00 seconds 2500 Armor: T = 0.0031746 * 2500 + 20 = 27.94 seconds 5000 Armor: T = 0.0031746 * 5000 + 20 = 35.87 seconds
And there we have it, we didn’t mess up our algebra, we get the exact same results as expected.