This is regarding the invigorate and Impunity runes of Barbarian's warcry. In short, impunity gives +50% to resistance, while invigorate gives +10% life (+ some regeneration).
Many people come to rely on this EHP (Effective Health Pool) calculator to compare the effect of these two runes. According to this calculator, impunity is the clear winner.
However, I started doing some calculations myself from the information and links taken from [this question], specifically the Diablo III formula list.
Here is the effective health fomula:
Effective Health = Health Pool * Total Damage Reduction,
i.e. Health * (1 - ((1 - DR from Armor) × (1 - DR from Resistance) × (1 - other DR)))
DR means "damage reduction"
Let's simplify the formula:
A = DR from Armor (for example 75%, but we are not using numbers)
R = DR from Resistance (for example 66%, but we are not using numbers)
O = DR from Other
For the sake of this example, let's say "DR from Other" is zero. This means that only health, armor and resistance is being taken into account.
So the effective health becomes:
x = Effective Health = Health * (1 - ((1 - A) × (1 - R)))
= Health * (A + R - AR)
Also, this is how damage reduction from resistance is calculated:
Elemental damage reduction = Resistance / (5 × Monster Level + Resistance)
Due to the hyperbolic shape of the resistance formula, +50% in the Resistance when converted to damage reduction doesn't increase as the resistance goes up, but actually the increase in damage reduction decreases. For example with monster level 63 (taken from this answer):
Resistance = 600 --> Reduction = 65.6%
+ 50% = 900 --> Reduction = 74.1% (which is 65.6% + 8.5%)
Resistance = 1200 --> Reduction = 79.2%
+ 50% = 1800 --> Reduction = 85.1% (which is 79.2% + 5.9% (less increase))
This means that while invigorate adds 10% to health, impunity adds a smaller value to the damage reduction. This means that in the formula for effective health, invigorate replaces Health
by 1.1 * Health
while impunity replaces R
by (R + y)
where y
is the increase in damage reduction (in the two examples above, 8.5%
5.9%
respectively).
Adding 10% to Health:
Invigorate Health = (1.1 * Health) * (A + R - AR) = 1.1 * (Health * (A + R - AR)) = 110% x
which means 10% increase in health is equal to 10% increase in effective health.
Adding
y
to the value of reduction from resistance:Impunity Health = Health * (1 - (1 - A) × (1 - (R + y))) = Health * (1 - (1 - A) * (1 - R - y)) = Health * (1 - (1 - R - y - A + AR + yA)) = Health * (A + R - AR + y (1 - A)) = x + y * Health * (1 - A)
So with invigorate, you get 10% * x
bonus, while with impunity you get y * Health * (1 - A)
.
To get an idea which one is better, let's put numbers from my build in to see which is worth what. My base life is 50k. Resistances are at 56% reduction. Armor is at 78% reduction. 50% increase in my resistance gives about 65% reduction. This means y
is 9%.
Bonus from invigorate:
10% x = 10% * Health * (A + R - AR)
= 0.1 * 50k * (0.75 + 0.56 - 0.75 * 0.56)
= 0.089 * 50k
Bonus from impunity:
y * Health * (1 - A)
= 0.09 * 50k * (1 - 0.75)
= 0.0225 * 50k
As you can see, the bonus from impunity is about one fourth of that of invigorate.
My question is then, in what way is impunity superior to invigorate? How does the other calculator calculate effective health that the numbers are different?