Note: This is not an "armor is bad" screed. Armor is exceptionally good, as covered in section III. However, it's also good to know where your limitations are. I also think that it's good to have a complete picture of what's going on, even if in practice you use a rule-of-thumb rather than the full equations. The point of this post is simply that - to have the "full" derivation written down somewhere.
Note #2: I've updated the values for patch 4.0.1, and rerun the graph. However, I have not modified the entire derivation to include the new block mechanic. Keep this in mind when using this math for anything practical - shaving 30% off of every melee hit via block effectively adds 30% mitigation to all physical damage, in essence adding a factor of (1-Mb)=0.7 anywhere you see (1-Ma).
I. Basics of Effective Health Theory
EH theory isn't very complicated fundamentally. The basics are outlined here and here, but I'll try and present a slightly more accessible derivation:
Consider a boss that hits for purely physical damage. His hits deal raw damage D. If your physical mitigation is M, then the damage that shows up in the combat log is d:
- Code: Select all
d = D*(1-M)
In other words, if the boss hits for an unmitigated D=20k, and I have M=50%=0.5 mitigation (from all sources, but primarily armor), then I take d=10k damage.
We can re-arrange this into a useful quantity I'll call E, for effectiveness (or efficiency if you like):
- Code: Select all
E = D/d = 1/(1-M) (1)
E is the ratio of raw damage taken to actual damage taken. Viewed another way, it represents the effectiveness of each point of health we have, because to take d=1 point of damage we'd need to be hit for a raw damage of D=E. Since we can arguably take as much damage as we have health, this means we have an "effective health" of
- Code: Select all
EH = E*H = H/(1-M) (2)
where H is our maximum health. This is the formula we all have come to know and love.
To go further, we need to know M more explicitly, so we need to know the player's Armor A. M can be calculated as:
- Code: Select all
M = A / (A+K) (3)
where K is given by K = L*2167.5 - 158167.5 for an attacker of level L. There's no intuitive explanation for this, it's just how the game is coded.
Given these three equations, we can figure out how much armor is equal to one point of health for EH purposes. First, we plug equation (2) into eq. (3) to get
- Code: Select all
EH = H*(K+A)/K = H*(1+A/K) (4)
We then differentiate both sides, using differentials to represent small changes in quantities:
- Code: Select all
d(EH) = dH*(K+A)/K + H*dA/K
Let's say an amount of health dH increases our Effective Health by d(EH). To find the amount of armor dA that would give us the same EH increase, we set the two terms on the right hand side equal to one another:
- Code: Select all
dA = (K+A)/H * dH (5)
which is exactly the form given in Satrina's derivation.
To convert this to stamina S, we have to recognize that H=f*S, where f is a different constant for each class. Since for paladins, talents, plate specialization, and BoK give us f=17.7502, then:
- Code: Select all
dH = f*dS = 17.7502*dS (6)
and
- Code: Select all
dA = 17.7502*(K+A)/H * dS (7)
again, exactly the form that Satrina gets.
Thus the amount of armor dA we'd need to get the same EH contribution as dS = 1 point of stamina is dA = 17.7502*(K+A)/H.
II. Total Effective Health - Including other forms of damage
The major weakness with this theory is that it's focused on purely physical damage. It can cover purely magical damage by substituting a magical mitigation factor for M (which would be a complicated formula based on talents and resistance). However, it doesn't accurately reflect fights that contain both magical and physical damage, which means "nearly every fight in the game." I will now suggest a fairly simple way to extend EH to cover any fight. Taking our cue from Satrina, we'll call this "Total Effective Health" or TEH.
Proof:
To fully incorporate other types of damage, we need to be more careful. First of all, there are three basic types of damage we want to consider:
1) "Regular" damage - physical damage mitigated by armor
2) Bleeds - physical damage that is not mitigated by armor
3) Magical damage
In section I, we assumed that physical damage was just mitigated by armor. This isn't technically true, there's also talented mitigation to consider. This becomes especially important once we add other damage types into the mix, because the talented portions can apply differently to each damage type. Some talents add only magic mitigation, while others add to all mitigation.
Let's return to the beginning. Now, instead of taking damage D per hit, let's talk in aggregate. The boss puts out D raw damage in a period of time T, broken down into Dp "regular" physical damage, Db bleed damage, and Dg magical damage. T and D could represent the entire fight, but a more realistic estimate of tank death is a small window of 5-10 seconds where we take burst damage. For the moment, let's assume we're talking about a small burst window, so that D and the Di represent the broken down components of the burst (i.e. Dg from a magical attack followed by a melee for Dp and a bleed tick of Db).
To get a general form, we express the damage you take d by:
- Code: Select all
d = Dp*(1-Ma)*(1-Mt) + Db*(1-Mt) + Dg*(1-Mg)(1-Mr) (8)
Where we've used the following mitigation factors:
Ma is the mitigation due to armor, defined as M is in section I.
Mt is the mitigation applied to physical damage due to talents
Mg is the mitigation applied to magical damage due to talents
Mr is the mitigation applied to magical damage due to resistances
In this form, we can account for everything, and can raise or lower physical and magical talented mitigation independently from armor and resistances if we want to.
At first, this looks like it will be hopelessly complex. We want to solve for D/d, but we don't have Dp, Db, or Dg, nor do we know what percentage of D any of those represent. Luckily, we won't need any of this information in the final result.
we can define values P, B, and G to represent the relative percentages of the boss's total raw damage output D as follows:
- Code: Select all
P = Dp/D (9a)
B = Db/D (9b)
G = Dg/D (9c)
P + B + G = 1 (10)
As we said, we don't actually have access to this information, but it turns out we won't need it, and it will help simplify the math in the meantime. This notation lets us re-write equation (8) as:
- Code: Select all
d = D*[P(1-Ma)(1-Mt) + B(1-Mt) + G(1-Mg)(1-Mr)] (11)
and re-arranging this to express TEH we have
- Code: Select all
H
TEH = H*D/d = ----------------------------------------- (12)
P(1-Ma)(1-Mt) + B(1-Mt) + G(1-Mg)(1-Mr)
Before we go any further, let's consider what we see on a WoL parse. The damage that we read off of the parse is post-mitigation. In other words, we don't have Dp directly, we have Dp*(1-Ma)(1-Mt), and similarly for Dg and Db. We can represent what we see on a combat log parse as X and Y:
- Code: Select all
B(1-Mt)
X = ----------------------------------------- (13a)
P(1-Ma)(1-Mt) + B(1-Mt) + G(1-Mg)(1-Mr)
G(1-Mg)
Y = ----------------------------------------- (13b)
P(1-Ma)(1-Mt) + B(1-Mt) + G(1-Mg)(1-Mr)
Here X is the percentage of our damage intake that's from bleed effects, Y is the amount of damage taken from magical sources, and 1-X-Y is the "leftover" amount due to regular physical damage.
We want to be able to express EH in terms of X and Y; to do that we need to eliminate some variables. To do this, we re-write equations (13) in a different form:
- Code: Select all
X*P(1-Ma)(1-Mt) - (1-X)*B(1-Mt) + X*G(1-Mg)(1-Mr) = 0 (14a)
Y*P(1-Ma)(1-Mt) + Y*B(1-Mt) - (1-Y)*G(1-Mg)(1-Mr) = 0 (14b)
If we multiply (14b) by (1-X)/Y and add it to (14a), we have
- Code: Select all
P(1-Ma)(1-Mt) = (1-X-Y)*G(1-Mg)(1-Mr)/Y (15a)
Similarly, (14b) multiplied by X/(1-Y) and added to (14a) gives us
- Code: Select all
P(1-Ma)(1-Mt) = (1-X-Y)*B(1-Mt)/X (15b)
Using this, we can re-write B(1-Mt) + G(1-Mg)(1-Mr) as
- Code: Select all
B(1-Mt) + G(1-Mg)(1-Mr) = (X+Y)*P(1-Ma)(1-Mt)/(1-X-Y)
and equation (12) becomes
- Code: Select all
H*(1-X-Y)
TEH = H*D/d = --------------- (16)
P(1-Ma)(1-Mt)
This still has a P in it though. To eliminate that, we substitute eqns (15) into (10) and solve for P:
- Code: Select all
X (1-Ma)(1-Mt) Y (1-Ma)(1-Mt)
1 = P + B + G = P + P*---------*-------------- + P*---------*--------------
(1-X-Y) (1-Mt) (1-X-Y) (1-Mg)(1-Mr)
(1-Mt)(1-Ma)
(1-X-Y) = P*[(1-X-Y) + X(1-Ma) + Y*--------------]
(1-Mg)(1-Mr)
(1-X-Y) = P*[(1-X-Y) + X(1-Ma) + YZ]
(1-X-Y)
------- = (1-X-Y) + X(1-Ma) + YZ (17)
P
Where I'm using Z = (1-Mt)(1-Ma)/(1-Mg)(1-Mr) as an temporary variable to simplify the expression slightly. Plugging (17) into (16) gives us the final form of the expression for effective health:
- Code: Select all
H*[(1-X-Y) + X(1-Ma) + YZ]
TEH = H*D/d = ---------------------------- (18)
(1-Ma)(1-Mt)
We can write equation (18) in a slightly more intuitive form:
- Code: Select all
(1-X-Y) X Y
TEH = H*D/d = H*-------------- + H*-------- + H*-------------- (19)
(1-Ma)(1-Mt) (1-Mt) (1-Mg)(1-Mr)
The first term is our EH against "regular" physical attacks (or PEH) multiplied by the percentage of our damage intake that those attacks represent. The second term is our EH against bleeds (BEH), multiplied by the percentage of our intake due to bleeds. And the third term is our EH against magical damage (MEH) multiplied by the percentage of our intake that's magical.
In other words, TEH is properly calculated as the weighted average of our EH against all damage sources, with the weight factors simply being the percentages of our intake that those sources represent (during the burst event we want to consider).
Just to check that this makes sense, let's consider some special cases:
Y=0, X=0: Second and Third terms disappear, and TEH simplifies to H/((1-Ma)(1-Mt)), exactly the form the simple version took once talented mitigation is included.
Y=1, X=0: The first and second terms disappear, and TEH simplifies to H/(1-Mg)(1-Mr). This is exactly what we'd expect for a purely magical fight - our only mitigation here is from talents.
Y-0, X=1: The first and third terms vanish, leaving TEH = H/(1-Mt). Again, exactly what we'd expect - the mitigation from armor disappears, and we're left with only physical mitigation from talents.
To find the armor:stamina EH relation, it's simpler to start from equation (12). Differentiating gives us
- Code: Select all
dH d(Ma)*H*P(1-Mt)
d(TEH) = ------------------------------------- + -----------------------------------------
P(1-Ma)(1-Mt)+B(1-Mt)+G(1-Mg)(1-Mr) [P(1-Ma)(1-Mt)+B(1-Mt)+G(1-Mg)(1-Mr)]^2
d(Ma) evaluates to:
- Code: Select all
dA A*dA dA*K dA*(1-Ma)
d(Ma) = ------- - --------- = --------- = ---------- (20)
(K+A) (K+A)^2 (K+A)^2 (K+A)
Which substituted into our expression for d(EH) gives
- Code: Select all
dH dA*H*P(1-Mt)(1-Ma)
d(TEH) = ------------------------------------- + ---------------------------------------------
P(1-Ma)(1-Mt)+B(1-Mt)+G(1-Mg)(1-Mr) (K+A)*[P(1-Ma)(1-Mt)+B(1-Mt)+G(1-Mg)(1-Mr)]^2
Again, we equate the first and second terms, and solve for dA:
- Code: Select all
(K+A) P(1-Ma)(1-Mt) + B(1-Mt) + G(1-Mg)(1-Mr)
dA = -------*-----------------------------------------*dH
H P(1-Ma)(1-Mt)
It should be clear by inspection that the second fraction in that expression is simply 1/(1-X-Y), giving us the final forms of dA:
- Code: Select all
(K+A) 1
dA = -------*---------*dH (21)
H (1-X-Y)
17.7502*(K+A) 1
dA = --------------*---------*dS (22)
H (1-X-Y)
Here we finally have an equivalence that accurately relates armor to stamina for a multi-faceted fight. We see that as Y->1 (P->0), the second factor blows up. The other way to understand this is that the second term in the differentiated equation goes to zero, removing dA from the equation. This is as expected, since no amount of armor will give you any TEH for Y=1.
Alternatively, solving for dS:
- Code: Select all
H
dS = --------------*(1-X-Y)*dA (23)
17.7502*(K+A)
So to find out how much stamina an amount of armor is equivalent to, we simply divide by the conversion factor (K+A)/H and multiply by the percentage of damage the armor will help mitigate (1-X-Y). What this means practically is that armor loses effectiveness linearly with the amount of physical damage in the fight. For a fight with 50% physical damage, armor will only be worth 50% as much EH.
Let's see what happens as Y varies from 0 to 1 for a tank with H=150k, A=40k. In other words, how the Armor:Stamina ratio changes as the amount of armor-mitigated physical damage decreases:

I've truncated the graph at 70% since it blows up as Y gets larger. However, here are a few representative points:
- Code: Select all
Y(%) Armor 1/(1-Y)
0 8.59 1.0000
10 9.54 1.1111
20 10.73 1.2500
30 12.27 1.4286
40 14.31 1.6667
50 17.18 2.0000
60 21.47 2.5000
70 28.63 3.3333
So for a purely physical fight, armor seems like a pretty good deal. But for a fight with 20% magical damage, Armor's EH contribution drops by 20%. This will generally be enough to make a Stamina trinket provide more EH than an armor trinket.
For an example, let's look at the Glyph of Indomitability, since that's what started this thread. It gives 1792 armor, which is equivalent to 209 stamina. However, for a fight with Y=20%, we get only (1-Y)=80% of that, or 167 stamina. For a fight with 30% magical damage, it's only worth 146 stamina, and so forth.
III. A note on healing
Traditionally, healing is not included in the EH metric. This is by design, since healing isn't going to be consistent from encounter to encounter or even between attempts. In essence, healing is out of the scope of the question being asked by EH ("How much raw damage will it take to kill me in the worst-case scenario").
But what if we asked, "How much raw damage does it take to kill me given h points of healing?" While this wouldn't be a true EH metric, we can obtain some insight by considering the effect that this would have on the result.
The answer is surprisingly simple. Every point of healing acts exactly like every point of health, in that it is worth one point of damage after mitigation effects. To see how receiving h points of healing affects the formulas, one needs only to replace H with (H+h) in the formulas.
So adding healing is sort of like adding health. If you receive one full HP bar's worth of healing during a burst scenario, it's mathematically equivalent to having twice as much health as far as the formulas are concerned. It's clear from equation (23) that if you double your health, you also double the effectiveness of armor - if 10 armor was worth one point of stamina, it's worth two in that healing scenario.
While you're not guaranteed to receive a particular amount of healing during a burst scenario, you're fairly likely to receive some. In practice that means that armor is more valuable for survival than the EH equations predict. Unfortunately, the only way to generate something quantitative from this intuition is to examine a lot of data: look at your parses, and see what your deaths look like. If you're receiving healing and die a slow, "trickle-down" death, then armor is going to be much stronger than the EH equations suggest. If you're dying in only a few seconds with almost no incoming heals, then the EH equations will be a fairly accurate representation of the two stats.
IV. Conclusion
It is quite simple to extend the Effective Health calculation to incorporate non-physical sources of damage. The result is simply a weighted average of one's effective healths vs. "regular" physical (PEH), bleed physical (BEH), and magical damage (MEH). The weighting is determined by the percentages of one's damage intake from bleed and magical sources X and Y respectively. The formulas are:
- Code: Select all
(1-X-Y) X Y
TEH = H*D/d = H*-------------- + H*-------- + H*-------------- (19)
(1-Ma)(1-Mt) (1-Mt) (1-Mg)(1-Mr)
17.7502*(K+A) 1
dA = --------------*---------*dS (22)
H (1-X-Y)
H
dS = --------------*(1-X-Y)*dA (23)
17.7502*(K+A)
where Mt and Mg represent talented mitigation factors for physical and magical damage respectively, Mr is the mitigation due to resistances, Ma is the mitigation due to armor (defined below), K is the armor decay factor (also defined below), H is the player's fully raid-buffed max health, and A is the players raid-buffed armor.
- Code: Select all
Ma = A/(A+K)
K = L*2167.5 - 158167.5 (for an attacker of level L)
And here are the definitions of Mt and Mg for a paladin:
Mg = 0.1
Mt = 0.1
I think Mr should be 0.1 with an aura up, but I haven't looked up the exact resistance binning mechanisms at level 85. If it's anything like level 80, 0.1 is the guaranteed value, and ~0.2 is the average value.
The take-home message of these formulas is that Armor loses effectiveness linearly with the percentage of "regular" physical damage intake for a given fight. In other words, for a fight with only 50% non-bleed physical damage, armor is reduced in effectiveness by 50%. If an armor trinket is worth 100 stamina on a purely "regular" physical fight, it will only be worth 60 stamina on a fight with 15% bleed damage and 25% magic damage (60% "regular" physical).
However, Armor also interacts with healing in such a fashion that its survival benefit can be greatly increased. Incoming healing can (for example) double or triple the survival effectiveness of armor, but has no effect on stamina. Thus, using EH as a hard-and-fast rule for choosing between Armor and Stamina likely won't give an accurate representation of which is more likely to save your life.
Also note that the old Ardent Defender, the "Strength of Wrynn" buff in ICC, and other multiplicative stamina bonuses have no effect on the armor-stamina relationship.

