[Derivation] Armor/Mastery/Avoidance Calculations
Moderators: Fridmarr, Worldie, Aergis, theckhd
[Derivation] Armor/Mastery/Avoidance Calculations
This is a cleanedup version of this derivation thread. The point is to present the general expression for damage intake, and use that expression to derive useful relationships between avoidance, mastery, and armor.
The types of questions we're trying to answer are, "How much armor does it take to reduce damage intake by the same amount as 1 mastery rating?" We're only going to consider blockable damage in this derivation. Obviously for unblockable (and unavoidable) damage, block and avoidance are useless and armor is the strongest of the three. Since none of them help against magical damage, we can ignore it entirely (since we're not trying to relate mastery to stamina).
Each relationship will get its own post, to make it easier to link back to individual calculations. I'll reserve some posts for future use as well. If you have a question that you think we can answer with this framework, feel free to post it and I'll take a crack at it.
Table of Contents
In addition, I've written a MATLAB script that performs all of the calculations in this thread. It doesn't use anything too fancy, so it should work in the free MATLAB alternatives (FreeMat, Octave, etc.). You can download it here if you want to fool around with it or plug your own values in.
The types of questions we're trying to answer are, "How much armor does it take to reduce damage intake by the same amount as 1 mastery rating?" We're only going to consider blockable damage in this derivation. Obviously for unblockable (and unavoidable) damage, block and avoidance are useless and armor is the strongest of the three. Since none of them help against magical damage, we can ignore it entirely (since we're not trying to relate mastery to stamina).
Each relationship will get its own post, to make it easier to link back to individual calculations. I'll reserve some posts for future use as well. If you have a question that you think we can answer with this framework, feel free to post it and I'll take a crack at it.
Table of Contents
 Damage Taken Formula
 Holy Shield Model
 Mastery & Armor
 Avoidance & Armor
 Avoidance & Mastery
 Meta Gems
 Reforging an Avoidance/Threat combination item
 Conclusions (TLDR summary)
In addition, I've written a MATLAB script that performs all of the calculations in this thread. It doesn't use anything too fancy, so it should work in the free MATLAB alternatives (FreeMat, Octave, etc.). You can download it here if you want to fool around with it or plug your own values in.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
I. Damage taken formula and problem setup
For a boss melee swing of damage Do, the actual damage we take is
Where Av is your decimal avoidance (i.e. 30%=0.3, the sum of parry and dodge from your character sheet), Bv is your decimal block value (the amount of an attack you block, or 30%=0.3 baseline in 4.2), Bc is your decimal block chance, S is the Sanctuary damage reduction factor (S=0.9), and Fa is your armor mitigation factor. The armor mitigation factor is defined as follows:
where Ar is your armor, K is the armor coefficient for a level 88 boss (K(88)=32573), and I've evaluated the derivative of Fa with respect to armor for future use.
Differentiating the expression for D, we get:
From this expression, we can start making comparisons between the different types of avoidance/mitigation.
For a boss melee swing of damage Do, the actual damage we take is
 Code: Select all
D = Do*Fa*S*[0*Av + (1Bv)*Bc + 1*(1.024AvBc)] = Do*Fa*S*[1.024AvBv*Bc] (I.1)
Where Av is your decimal avoidance (i.e. 30%=0.3, the sum of parry and dodge from your character sheet), Bv is your decimal block value (the amount of an attack you block, or 30%=0.3 baseline in 4.2), Bc is your decimal block chance, S is the Sanctuary damage reduction factor (S=0.9), and Fa is your armor mitigation factor. The armor mitigation factor is defined as follows:
 Code: Select all
Fa = 1  Ma = 1  Ar/(Ar+K) = K/(Ar+K) (I.2)
dFa = dAr*Fa/(Ar+K) (I.3)
where Ar is your armor, K is the armor coefficient for a level 88 boss (K(88)=32573), and I've evaluated the derivative of Fa with respect to armor for future use.
Differentiating the expression for D, we get:
 Code: Select all
dD/Do = dFa*S*[1.024AvBc*Bv] + Fa*S*[dAvBv*dBcBc*dBv]
= dAr*S*Fa/(Ar+K)*[1.024AvBc*Bv] + Fa*S*[dAvBc*dBvBv*dBc]
= dAr*S*Fa/(Ar+K)*[1.024AvBc*Bv]  Fa*S*[dAv+Bc*dBv+Bv*dBc] (I.4)
From this expression, we can start making comparisons between the different types of avoidance/mitigation.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
II. Holy Shield Model
Before we go any further, we need to briefly discuss Holy Shield. To get anything useful out of these equations, we'll need to assume a value for Bv, the timeaveraged block value, which means we need to decide on a model for Holy Shield. There are a few easy models we can try, and together they should give us a fairly complete picture.
Model A: The first is to ignore it entirely, and assume a static value of Bv=0.3 (or 0.31 with the block meta gem). This will give us a set of "worstcase" values that tell us how things look when HS is on cooldown.
Model B: The second is to us a simple model where we use it on cooldown, and use the timeaveraged block value Bv=0.3667. This serves as a model for a "sloppy" tank, but will also give us more reasonable values than ignoring it.
Model C: Another way is to use the 4.1 value of Bv=0.4. This is probably an optimistic estimate of the upper bound that a tank could reasonably achieve by precisely timing Holy Shield to maximize its effectiveness. It also gives us a reference point for comparing prepatch to postpatch.
Model D: Finally, we could consider the case where Holy Shield is always on, or Bv=0.5. While this is definitely an overestimate of a timeaveraged block value, but it does give us values representing the period while the new HS is active. This might be useful for players trying to optimize the survivability boost of HS at the expense of average damage reduction.
In the subsequent derivations, I'll be evaluating expressions for all three of these block values and displaying the results in a table to show the variation with block value model.
Before we go any further, we need to briefly discuss Holy Shield. To get anything useful out of these equations, we'll need to assume a value for Bv, the timeaveraged block value, which means we need to decide on a model for Holy Shield. There are a few easy models we can try, and together they should give us a fairly complete picture.
Model A: The first is to ignore it entirely, and assume a static value of Bv=0.3 (or 0.31 with the block meta gem). This will give us a set of "worstcase" values that tell us how things look when HS is on cooldown.
Model B: The second is to us a simple model where we use it on cooldown, and use the timeaveraged block value Bv=0.3667. This serves as a model for a "sloppy" tank, but will also give us more reasonable values than ignoring it.
Model C: Another way is to use the 4.1 value of Bv=0.4. This is probably an optimistic estimate of the upper bound that a tank could reasonably achieve by precisely timing Holy Shield to maximize its effectiveness. It also gives us a reference point for comparing prepatch to postpatch.
Model D: Finally, we could consider the case where Holy Shield is always on, or Bv=0.5. While this is definitely an overestimate of a timeaveraged block value, but it does give us values representing the period while the new HS is active. This might be useful for players trying to optimize the survivability boost of HS at the expense of average damage reduction.
In the subsequent derivations, I'll be evaluating expressions for all three of these block values and displaying the results in a table to show the variation with block value model.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
III. Mastery and Armor
To determine an equivalency between Armor and Mastery for damage taken, we want to set the two terms of equation (I.4) equal to one another and solve for either dBc or dAr. dBc is both easier and slightly more logical, so let's do that. We'll ignore dAv and dBv for now by setting it equal to zero.
Thus, we get
dBc is linear in mastery, at 2.25 percent per point of mastery, or 0.0225/Cm percent per point of mastery rating, with Cm being the mastery rating conversion factor (Cm=179.28 @ level 85). In other words, dBc = dRm*0.0225/Cm for mastery rating dRm. So we can write an exact expression for how much mastery rating it takes to see an equal amount of damage reduction as dAr points of armor:
Now, let's plug in some simple numbers. Let Ar=40k, Av=35%=0.35, Bc=55%=0.55. With the values given above for Cm and K, this evaluates to
In other words, it takes 1/0.1863=5.37 armor to give you the same damage reduction as one point of mastery rating without Holy Shield, 7.1 armor with the "simple" model, 8.0 with the old 4.1 Holy Shield, and 11.4 with 50% block value. That works out to 961, 1268, 1439, or 2046 armor per one point of mastery skill, respectively. Note that the exact values will vary as we change armor, avoidance, or block.
In any event, given the simple model, 1 armor should be equivalent to ~1/7 a point of mastery, or about 14% as effective. In terms of itemization, we only get 4 armor for every ipoint (trinkets give 1285 armor, 321 mastery/agi/etc., or 482 stam), making it only about 57% as effective as mastery in terms of raw itemization. Thus, a mastery trinket should be better than an armor trinket in most cases (i.e. for blockable damage), ignoring onuse effects. Note that this is true even for the worstcase HS model, in which armor is only 74% as effective as mastery.
Considering the 160 armor shield enchant in this light, it's worth about 160/5.37 = 29.8 mastery, which is less than the 50 afforded by the Mastery enchant. The value drops even further in the models with higher Bv.
To determine an equivalency between Armor and Mastery for damage taken, we want to set the two terms of equation (I.4) equal to one another and solve for either dBc or dAr. dBc is both easier and slightly more logical, so let's do that. We'll ignore dAv and dBv for now by setting it equal to zero.
Thus, we get
 Code: Select all
Bv*dBc = dAr*[1.024AvBv*Bc]/(Ar+K) (III.1)
dBc is linear in mastery, at 2.25 percent per point of mastery, or 0.0225/Cm percent per point of mastery rating, with Cm being the mastery rating conversion factor (Cm=179.28 @ level 85). In other words, dBc = dRm*0.0225/Cm for mastery rating dRm. So we can write an exact expression for how much mastery rating it takes to see an equal amount of damage reduction as dAr points of armor:
 Code: Select all
dRm/dAr = (Cm/(0.0225*Bv))*[1.024AvBv*Bc]/(Ar+K) (III.2)
Now, let's plug in some simple numbers. Let Ar=40k, Av=35%=0.35, Bc=55%=0.55. With the values given above for Cm and K, this evaluates to
 Code: Select all
Bv 0.3 0.3667 0.4 0.5
dRm/dAr 0.1863 0.1414 0.1246 0.08761
dAr_1r 5.368 7.071 8.025 11.41
dAr_1s 962.4 1268 1439 2046
160/dAr_1r 29.81 22.63 19.94 14.02
In other words, it takes 1/0.1863=5.37 armor to give you the same damage reduction as one point of mastery rating without Holy Shield, 7.1 armor with the "simple" model, 8.0 with the old 4.1 Holy Shield, and 11.4 with 50% block value. That works out to 961, 1268, 1439, or 2046 armor per one point of mastery skill, respectively. Note that the exact values will vary as we change armor, avoidance, or block.
In any event, given the simple model, 1 armor should be equivalent to ~1/7 a point of mastery, or about 14% as effective. In terms of itemization, we only get 4 armor for every ipoint (trinkets give 1285 armor, 321 mastery/agi/etc., or 482 stam), making it only about 57% as effective as mastery in terms of raw itemization. Thus, a mastery trinket should be better than an armor trinket in most cases (i.e. for blockable damage), ignoring onuse effects. Note that this is true even for the worstcase HS model, in which armor is only 74% as effective as mastery.
Considering the 160 armor shield enchant in this light, it's worth about 160/5.37 = 29.8 mastery, which is less than the 50 afforded by the Mastery enchant. The value drops even further in the models with higher Bv.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
IV. Avoidance and Armor:
You can do a similar calculation for avoidance instead of block. To do so, we need to employ the diminishing returns equation, which applies to dodge and parry separately. The DR equation is
a and A are the preDR and postDR avoidance percentages, respectively, and k and C are the avoidance constants found here (k=0.9560 and C=0.65631440 at level 85 in our notation). By convention, lowercase variables indicate a value before diminishing returns is applied, uppercase represents a value that's already had diminishing returns applied.
Thus if we're considering dodge, a is the preDR dodge percentage from dodge rating, which can be read off of the character sheet tooltip. Similarly, if we were working out diminishing returns for parry, a would be the preDR parry gained through all parry rating sources. If we wanted to specify which type of avoidance we're talking about, we could put subscripts on A and a  i.e. Ad and ad for dodge and Ap and ap for parry. To get Av from these values, we'd need to add the Ad value for dodge and the Ap value for parry to our base miss, dodge, and parry chances. In other words,
This also means that if we differentiate Av, we simply have dAv=dAp+dAd. Generally we'll only be varying one of the avoidance sources at a time, which means that we will usually drop the subscripts on A and a, and can equate dAv and dA directly in these calculations. For the rest of these derivations, we'll assume that A and a represent dodge for clarity.
We start our derivation by differentiating the diminishing returns equation and solving for dA in terms of da, A and a:
And if we solve the DR equation for A/a and plug in we can eliminate a:
Now that we have the postDR dodge percentage dA gained by adding da preDR dodge percent to our existing A postDR dodge, we can plug dA in for dAv in (I.4) to get the equivalent to equation (III.1) for avoidance. The goal is to relate dAr to da here since we're going to use the preDR values to convert to rating:
Reminder:
A is only our postDR dodge, so it's (char_sheet_dodge_%  5).
Av is our total avoidance, including base avoidance (char_sheet_dodge%+char_sheet_parry%+char_sheet_miss%).
da is simply equal to 0.01*dRv/Ca, the added avoidance rating divided by the avoidance rating conversion factor (Ca=176.7189) times 0.01 to put it in decimal notation. So plugging in for da, we get:
This is the equivalent to equation (III.2), with all of the same definitions for Av, Bc, and Ar. Plugging in Av=0.35, Bc=0.55, Ar=40k, A=0.1 (i.e. 15% dodge minus the base 5%) and the constants k,C, K, and Ca, we get:
Which is the avoidance equivalent to the Mastery/Armor table in section III. dAr_1r is the armor required to match the average damage reduction of one point of avoidance rating, which falls between 6 and 7. dAr_1% is how much armor it takes to match 1% avoidance.
You can do a similar calculation for avoidance instead of block. To do so, we need to employ the diminishing returns equation, which applies to dodge and parry separately. The DR equation is
 Code: Select all
1/A = k/a + 1/C (IV.1)
a and A are the preDR and postDR avoidance percentages, respectively, and k and C are the avoidance constants found here (k=0.9560 and C=0.65631440 at level 85 in our notation). By convention, lowercase variables indicate a value before diminishing returns is applied, uppercase represents a value that's already had diminishing returns applied.
Thus if we're considering dodge, a is the preDR dodge percentage from dodge rating, which can be read off of the character sheet tooltip. Similarly, if we were working out diminishing returns for parry, a would be the preDR parry gained through all parry rating sources. If we wanted to specify which type of avoidance we're talking about, we could put subscripts on A and a  i.e. Ad and ad for dodge and Ap and ap for parry. To get Av from these values, we'd need to add the Ad value for dodge and the Ap value for parry to our base miss, dodge, and parry chances. In other words,
 Code: Select all
Av = 5% + [5% + Ap] + [5% + Ad].
This also means that if we differentiate Av, we simply have dAv=dAp+dAd. Generally we'll only be varying one of the avoidance sources at a time, which means that we will usually drop the subscripts on A and a, and can equate dAv and dA directly in these calculations. For the rest of these derivations, we'll assume that A and a represent dodge for clarity.
We start our derivation by differentiating the diminishing returns equation and solving for dA in terms of da, A and a:
 Code: Select all
1/A = k/a + 1/C
dA/A^2 = k*da/a^2
dA = k*da*(A/a)^2 (IV.2)
And if we solve the DR equation for A/a and plug in we can eliminate a:
 Code: Select all
dA = (da/k)*(1A/C)^2 (IV.3)
Now that we have the postDR dodge percentage dA gained by adding da preDR dodge percent to our existing A postDR dodge, we can plug dA in for dAv in (I.4) to get the equivalent to equation (III.1) for avoidance. The goal is to relate dAr to da here since we're going to use the preDR values to convert to rating:
 Code: Select all
dAr*[1.024AvBv*Bc]/(Ar+K) = dAv = dA
dAr*[1.024AvBv*Bc]/(Ar+K) = (da/k)*(1A/C)^2 (IV.4)
Reminder:
A is only our postDR dodge, so it's (char_sheet_dodge_%  5).
Av is our total avoidance, including base avoidance (char_sheet_dodge%+char_sheet_parry%+char_sheet_miss%).
da is simply equal to 0.01*dRv/Ca, the added avoidance rating divided by the avoidance rating conversion factor (Ca=176.7189) times 0.01 to put it in decimal notation. So plugging in for da, we get:
 Code: Select all
dRv/dAr = (100*k*Ca)/(1A/C)^2*[1.024AvBv*Bc]/(Ar+K) (IV.5)
This is the equivalent to equation (III.2), with all of the same definitions for Av, Bc, and Ar. Plugging in Av=0.35, Bc=0.55, Ar=40k, A=0.1 (i.e. 15% dodge minus the base 5%) and the constants k,C, K, and Ca, we get:
 Code: Select all
Bv 0.3 0.3667 0.4 0.5
dRv/dAr 0.1649 0.153 0.1471 0.1293
dAr_1r 6.064 6.535 6.798 7.735
dAr_1% 1072 1155 1201 1367
Which is the avoidance equivalent to the Mastery/Armor table in section III. dAr_1r is the armor required to match the average damage reduction of one point of avoidance rating, which falls between 6 and 7. dAr_1% is how much armor it takes to match 1% avoidance.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: [Derivation] Armor/Mastery/Avoidance Calculations
V. Avoidance and Mastery:
This is easy, because since dAr=0, the first term in equation (I.4) is zero. We only need to solve:
Plugging in the same numbers as before, we find that dRv = 1.082*dRm for the simple HS model at this level of diminishing returns, indicating that we're above the crossover point where mastery becomes better than avoidance. We can explicitly calculate the crossover point A=Ax by letting dRv = dRm = 1 and solving for Ax:
For the simple HS model, that's 12.76% on your character sheet, corresponding to 1487 rating. This increases to 18.29% if we don't use Holy Shield at all, and drops to 10.19% with the 4.1 Holy Shield model (952 rating). While Holy Sheld is active, however, the crossover point is below zero, and mastery is strictly superior.
Finally, it might be handy to have a comparison of avoidance and mastery for combat table coverage. This one is even easier, since we just have to solve
Again, using (IV.3) and the equations for dRm and dAv, we have,
Plugging in our values, we get dRv = 2.95*dRm. In other words, one point of mastery rating is worth about 3 points of either avoidance rating for combat table coverage.
This is easy, because since dAr=0, the first term in equation (I.4) is zero. We only need to solve:
 Code: Select all
dAv = Bv*dBc
 Code: Select all
(0.01*dRv/Ca)/k*(1A/C)^2 = Bv*0.0225/Cm*dRm
dRv = (100*Ca)*(0.0225*Bv/Cm)*k/(1A/C)^2*dRm
dRv = (2.25*Bv*Ca*k/Cm)/(1A/C)^2*dRm (V.1)
Plugging in the same numbers as before, we find that dRv = 1.082*dRm for the simple HS model at this level of diminishing returns, indicating that we're above the crossover point where mastery becomes better than avoidance. We can explicitly calculate the crossover point A=Ax by letting dRv = dRm = 1 and solving for Ax:
 Code: Select all
Ax = C*[1  sqrt(2.25*Bv*Ca*k/Cm)] (V.2)
 Code: Select all
Bv 0.3 0.3667 0.4 0.5
dRv/dRm 0.8853 1.082 1.18 1.476
A_x 13.29 7.76 5.19 1.945
A_x+5 18.29 12.76 10.19 3.055
R_x 2815 1487 952 319.1
For the simple HS model, that's 12.76% on your character sheet, corresponding to 1487 rating. This increases to 18.29% if we don't use Holy Shield at all, and drops to 10.19% with the 4.1 Holy Shield model (952 rating). While Holy Sheld is active, however, the crossover point is below zero, and mastery is strictly superior.
Finally, it might be handy to have a comparison of avoidance and mastery for combat table coverage. This one is even easier, since we just have to solve
 Code: Select all
dA=dBc (V.3)
Again, using (IV.3) and the equations for dRm and dAv, we have,
 Code: Select all
(da/k)(1A/C)^2 = dBc
(0.01*dRv)/(k*Ca)*(1A/C)^2 = (0.0225/Ca)*dRm
dRv = (2.25*k*Ca)/(Cm*(1A/C)^2)*dRm
Plugging in our values, we get dRv = 2.95*dRm. In other words, one point of mastery rating is worth about 3 points of either avoidance rating for combat table coverage.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
VI. Meta Gem Comparison
Let D be our damage intake without either meta, Da be our damage intake with the Armor meta, and Db be our damage intake with the block meta.
D is given by equation (I.1). Da and Db are straightforward modifications:
Where I've plugged in Fa = K/(Ar+K) in each case, and let the block meta have value x (just in case they decide to toy with its value again). The damage reduction of each meta is 1Di/D:
To compare the two meta gems, we'll calculate the Armor crossover point  in other words, the value of Ar does it take for the two gems to mitigate the same amount of damage. To do this we solve 1Db/D = 1Da/D for Ar and plug in x=0.01:
Something interesting happens once we reach block cap. In that circumstance, Bc=1.024Av; in other words, your block chance Bc fills up the full remainder of the 102.4% CTC that Avoidance hasn't covered already. Plugging that in, we find that block chance and avoidance completely drop out of the equation:
As usual, we'll evaluate these equations at several values of Bv for Av=0.35. For (VI.5), we'll also use two different values of Bc (0.45 and 0.55). These will give us the armor break points we're interested in:
These armor values are given in thousands, and the average raidgeared tank should have around 40k armor. So in other words, the 1% block meta is almost identical to the 2% armor meta in the absence of Holy Shield for a tank sitting at 55% block and 35% avoidance, a little over 10% below block cap. It also gives that tank more net damage reduction against blockable damage than the armor meta does with almost any model of Holy Shield.
However, the results are fairly sensitive to B and Av. Dropping Av or Bc (in this case, setting Bc=0.45) is enough to push the armor meta is back ahead of the block meta. This is shown in the third line of the table.
On the other hand, once you reach block cap the armor break point goes up dramatically. Even without using Holy Shield, a blockcapped tank would need over 85k armor before the armor meta would end up mitigating more damage. Factoring in any model of Holy Shield usage inflates that above 130k; worse yet, during the period where Holy Shield is active, there's literally no amount of armor that will allow the armor meta to catch up.
Given this, your choice will probably depend on your gear level. For a tank that's far from block cap, the armor meta is the stronger choice. If you're only about 10% away, then the two are pretty close and it's a tossup. But once you're homing in on blockcap (<5% away), the block meta becomes far and away the better choice, especially during your Holy Shield uptime.
Let D be our damage intake without either meta, Da be our damage intake with the Armor meta, and Db be our damage intake with the block meta.
D is given by equation (I.1). Da and Db are straightforward modifications:
 Code: Select all
D = Do*S*K/(Ar+K)*(1.024AvBv*Bc)
Da = Do*S*K/(1.02*Ar+K)*(1.024AvBv*Bc) (VI.1)
Db = Do*S*K/(Ar+K)*(1.024Av(Bv+x)*Bc) (VI.2)
Where I've plugged in Fa = K/(Ar+K) in each case, and let the block meta have value x (just in case they decide to toy with its value again). The damage reduction of each meta is 1Di/D:
 Code: Select all
1Da/D = 1  (Ar+K)/(1.02*Ar+K) = 0.02*Ar/(1.02*Ar+K) (VI.3)
1Db/D = 1  (1.024Av(Bv+x)*Bc)/(1.024AvBv*Bc)
= x*Bc/(1.024AvBv*Bc) (VI.4)
To compare the two meta gems, we'll calculate the Armor crossover point  in other words, the value of Ar does it take for the two gems to mitigate the same amount of damage. To do this we solve 1Db/D = 1Da/D for Ar and plug in x=0.01:
 Code: Select all
0.01*Bc/(1.024AvBv*Bc)=0.02*Ar/(1.02*Ar+K)
(1.02*Ar+K) = 2*Ar*(1.024AvBc*Bv)/Bc
Ar*[2(1.024AvBc*Bv)/Bc  1.02] = K
Ar = K/[2(1.024AvBc*Bv)/Bc  1.02] (VI.5)
Something interesting happens once we reach block cap. In that circumstance, Bc=1.024Av; in other words, your block chance Bc fills up the full remainder of the 102.4% CTC that Avoidance hasn't covered already. Plugging that in, we find that block chance and avoidance completely drop out of the equation:
 Code: Select all
Ar = K/[2*(1.024Av(1.024Av)*Bv)/Bc  1.02]
= K/[2*(1.024Av)(1Bv)/Bc  1.02]
= K/[2*(Bc)(1Bv)/Bc  1.02]
= K/[2*(1Bv)  1.02] (VI.6)
As usual, we'll evaluate these equations at several values of Bv for Av=0.35. For (VI.5), we'll also use two different values of Bc (0.45 and 0.55). These will give us the armor break points we're interested in:
 Code: Select all
Bv 0.3 0.3667 0.4 0.5
AR(55%B) 39.2 46.7 51.63 75.59
Ar(45%B) 23.68 26.22 27.71 33.39
Ar(cap)= 85.72 132.1 181 1629
These armor values are given in thousands, and the average raidgeared tank should have around 40k armor. So in other words, the 1% block meta is almost identical to the 2% armor meta in the absence of Holy Shield for a tank sitting at 55% block and 35% avoidance, a little over 10% below block cap. It also gives that tank more net damage reduction against blockable damage than the armor meta does with almost any model of Holy Shield.
However, the results are fairly sensitive to B and Av. Dropping Av or Bc (in this case, setting Bc=0.45) is enough to push the armor meta is back ahead of the block meta. This is shown in the third line of the table.
On the other hand, once you reach block cap the armor break point goes up dramatically. Even without using Holy Shield, a blockcapped tank would need over 85k armor before the armor meta would end up mitigating more damage. Factoring in any model of Holy Shield usage inflates that above 130k; worse yet, during the period where Holy Shield is active, there's literally no amount of armor that will allow the armor meta to catch up.
Given this, your choice will probably depend on your gear level. For a tank that's far from block cap, the armor meta is the stronger choice. If you're only about 10% away, then the two are pretty close and it's a tossup. But once you're homing in on blockcap (<5% away), the block meta becomes far and away the better choice, especially during your Holy Shield uptime.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
VII. Reforging a combination Threat/Avoidance item
If an item has Rv avoidance rating and Rt threat rating, which one is better to reforge into mastery? The answer depends on whether you want to minimize damage taken or maximize combat table coverage (i.e. minimizing the chance to take an unblocked hit).
To minimize damage taken, we need only consider the second term of equation (I.4), as dAr=0 in this comparison. We can also ignore Fa and S, giving us only:
We can express dAv, the postDR avoidance gain, in terms of da and A using equation (IV.3). Once again, note that A is only our postDR dodge, so it's (char_sheet_dodge_%  5).
For this derivation, it's worth noting that we can treat avoidance diminishing returns as modifying Ca, the rating to avoidance conversion factor. If we define Ca' as the "effective" conversion factor postDR, we can rewrite equation (10) in terms of ratings and express Ca' in terms of Ca, k, C, and A:
We will also define Cm' = Cm/2.25 because it simplifies later expressions. Cm' can be interpreted as the amount of rating required for 1% block. We can represent dBc and dAv as:
Thus, we can rewrite expression (VII.1):
We want to compare two specific configurations; one with Rv avoidance and 0.4*Rt mastery (reforged from threat rating), and one with 0.6*Rv avoidance and 0.4*Rv mastery. The change in avoidance rating between the two situations is dRv=(Rv0.6*Rv), while the change in mastery is dRm=0.4*(RtRv):
We can set this expression equal to zero and solve for Rt to find the breakeven points:
Plugging in the value of A=0.1 that we used earlier, we can calculate the ratio Rt/Rv:
The negative sign in the first column means that it's always better to reforge the threat stat in the absence of HS. For the simple HS model, the breakeven point occurs when the amount of threat rating on the item is 7.6% of the avoidance rating on the item. For an item with less threat rating, you would be better off reforging the avoidance rating to mastery. Since this should not be the case for nearly all (all?) items available right now, you will in general get a larger reduction in damage intake by reforging the threat rating to mastery. In the 4.1 implementation of HS the breakeven point is 15.3%, and model D gives 32.23%.
To maximize combat table coverage, the relationship is a little different. The breakeven point is found by minimizing
We again use equations (33)(34) to express this in terms of rating (dRv,dRm) in a similar fashion to equation (36) and plug in our two configurations:
Solving that equation, we find that
If you ignore diminishing returns (A=0), this gives you (1Cm/(2.25*k*Ca)) = 0.5284, or about 53%. Using a more realistic value of A=0.1, we get
or 66%.
So for most practical purposes, if the threat rating on the item is less than about 66% of the avoidance rating on the item, you get better combat table coverage by reforging the avoidance rating. This value will increase as our avoidance goes up due to diminishing returns on avoidance.
If an item has Rv avoidance rating and Rt threat rating, which one is better to reforge into mastery? The answer depends on whether you want to minimize damage taken or maximize combat table coverage (i.e. minimizing the chance to take an unblocked hit).
To minimize damage taken, we need only consider the second term of equation (I.4), as dAr=0 in this comparison. We can also ignore Fa and S, giving us only:
 Code: Select all
dAv + Bv*dBc (VII.1)
We can express dAv, the postDR avoidance gain, in terms of da and A using equation (IV.3). Once again, note that A is only our postDR dodge, so it's (char_sheet_dodge_%  5).
For this derivation, it's worth noting that we can treat avoidance diminishing returns as modifying Ca, the rating to avoidance conversion factor. If we define Ca' as the "effective" conversion factor postDR, we can rewrite equation (10) in terms of ratings and express Ca' in terms of Ca, k, C, and A:
 Code: Select all
dA=dRv/Ca' = dRv/(k*Ca)*(1A/C)^2 (VII.2)
Ca' = k*Ca/(1A/C)^2 (VII.3)
We will also define Cm' = Cm/2.25 because it simplifies later expressions. Cm' can be interpreted as the amount of rating required for 1% block. We can represent dBc and dAv as:
 Code: Select all
dBc = dRm/Cm' (VII.4)
dAv = dRv/Ca' (VII.5)
Thus, we can rewrite expression (VII.1):
 Code: Select all
dRv/Ca' + dRm*Bv/Cm' (VII.6)
We want to compare two specific configurations; one with Rv avoidance and 0.4*Rt mastery (reforged from threat rating), and one with 0.6*Rv avoidance and 0.4*Rv mastery. The change in avoidance rating between the two situations is dRv=(Rv0.6*Rv), while the change in mastery is dRm=0.4*(RtRv):
 Code: Select all
(Rv0.6*Rv)/Ca' + (RtRv)*0.4*Bv/Cm' (VII.7)
We can set this expression equal to zero and solve for Rt to find the breakeven points:
 Code: Select all
(Rv0.6*Rv)/Ca' + (RtRv)*0.4*Bv/Cm' = 0
(RtRv)= Cm'/(Bv*Ca')*Rv
Rt = [1Cm'/(Bv*Ca')]*Rv
Rt/Rv = [1Cm/(2.25*k*Bv*Ca)*(1A/C)^2] (VII.8)
Plugging in the value of A=0.1 that we used earlier, we can calculate the ratio Rt/Rv:
 Code: Select all
Bv 0.3 0.3667 0.4 0.5
Rt/Rv (TDR) 0.1295 0.07591 0.1528 0.3223
The negative sign in the first column means that it's always better to reforge the threat stat in the absence of HS. For the simple HS model, the breakeven point occurs when the amount of threat rating on the item is 7.6% of the avoidance rating on the item. For an item with less threat rating, you would be better off reforging the avoidance rating to mastery. Since this should not be the case for nearly all (all?) items available right now, you will in general get a larger reduction in damage intake by reforging the threat rating to mastery. In the 4.1 implementation of HS the breakeven point is 15.3%, and model D gives 32.23%.
To maximize combat table coverage, the relationship is a little different. The breakeven point is found by minimizing
 Code: Select all
dAv + dBc (VII.9)
We again use equations (33)(34) to express this in terms of rating (dRv,dRm) in a similar fashion to equation (36) and plug in our two configurations:
 Code: Select all
(Rv0.6*Rv)/Ca' + (RtRv)*0.4/Cm' = 0 (VII.10)
Solving that equation, we find that
 Code: Select all
Rt = (1Cm'/Ca')*Rv (VII.11)
If you ignore diminishing returns (A=0), this gives you (1Cm/(2.25*k*Ca)) = 0.5284, or about 53%. Using a more realistic value of A=0.1, we get
 Code: Select all
Ca' 235.1
Cm' 79.68
1Cm'/Ca' 0.6611
or 66%.
So for most practical purposes, if the threat rating on the item is less than about 66% of the avoidance rating on the item, you get better combat table coverage by reforging the avoidance rating. This value will increase as our avoidance goes up due to diminishing returns on avoidance.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Reserved
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Reserved
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Reserved
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
VII. Conclusions (aka TLDR)
 Mastery & Armor
 1 mastery rating ~ 7 armor for damage reduction
 The 160 armor shield enchant is only worth ~30 mastery at best, so the 50 mastery enchant is better for blockable damage.
 Avoidance & Armor
 1 avoidance rating ~ 67 armor for damage reduction at projected avoidance levels for T12
 Avoidance & Mastery
 1 mastery rating is better than 1 dodge or parry rating for total damage reduction at 1487 parry rating, or 12.76% on the character sheet, based on a simple model of HS that assumes 33% uptime. The crossover point is 18.29% (2815 rating) in the absence of HS.
 Meta Gems
 At 35% total avoidance and 55% block, the block meta and armor meta are roughly equal in the absence of HS. Increasing HS uptime pushes the block meta ahead, as would blockcapping.
 At lower avoidance/block (30%/50%), the armor meta is more effective than the block meta.
 Reforging threat/avoidance items
 For reducing damage taken, reforge the threat rating into mastery.
 For maximizing combat table coverage, reforge the threat rating if it's at least 66% of the avoidance rating. Otherwise reforge the avoidance rating to mastery.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Would the Effulgent Shadowspirit Diamond be up for consideration?
 ck5uperman
 Posts: 24
 Joined: Mon Apr 20, 2009 1:10 pm
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Most of the contents of this post were made obsolete with the change to agility with patch 4.2. Agility no longer provides dodge.
Strength provides parry rating at a rate of 27%, i.e. 27% of your strength will appear as parry rating in your parry rating total. When evaluating gear, remember that the printed strength will be increased by 5% with Blessing of Kings, so for gear evaluation use 28.35% of strength as parry rating.
Strength provides parry rating at a rate of 27%, i.e. 27% of your strength will appear as parry rating in your parry rating total. When evaluating gear, remember that the printed strength will be increased by 5% with Blessing of Kings, so for gear evaluation use 28.35% of strength as parry rating.
Last edited by Digren on Sun Jun 19, 2011 10:48 pm, edited 3 times in total.
Paladin of the Argent Dawn since 2004
Tankadin Stages and Gear Guide  Gem, Enchant, Reforge Guide
My AddOns at WoWInterface
Tankadin Stages and Gear Guide  Gem, Enchant, Reforge Guide
My AddOns at WoWInterface

Digren  Moderator
 Posts: 2139
 Joined: Sat Jul 26, 2008 2:41 pm
Re: [Derivation] Armor/Mastery/Avoidance Calculations
ck5uperman wrote:Would the Effulgent Shadowspirit Diamond be up for consideration?
Not especially, for two reasons:
 Large magical attacks don't seem to be as frequent or large as they were in the first few tiers of Wrath. In most cases, we seem to be dying to a string of melee attacks, and the vast majority of damage taken is physical. Both of those make the Effulgent diamond less attractive.
 This derivation is only valid for blockable physical damage. Magical damage is neither of those, obviously. So to do a rigorous derivation that includes multiple sources of damage, we'd need to go back to the methodology used in the Total EH thread. I'm not sure it's worth going to that much trouble, given #1
Digren wrote:This seems to fit best in this thread.
I agree. I'll see if I can incorporate it in a logical manner. The takehome message seems to be, "1 STR gives 0.25 Parry Rating, 1 AGI gives 0.61 Dodge Rating. Converting an item with X STR to an item with X agility is roughly equivalent to adding 0.36*X avoidance rating, provided that your character sheet dodge and parry percentages are about the same."
It's tough to come up with anything more accurate than that, since it changes with dodge and parry DR.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Call to Arms 5.x, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7655
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Return to Advanced Theorycraft and Calculations
Who is online
Users browsing this forum: No registered users and 1 guest