[Derivation] Armor/Mastery/Avoidance Calculations
Moderators: Fridmarr, Worldie, Aergis, theckhd
Re: Re:
Digren wrote:Doesn't giving an exact rating for parry ignore the contribution from strength?
No, because strength gives parry rating directly on the character sheet.
Digren wrote:If you had a day with nothing better to do, could you standardize the equations on a single set of variable names?
Av and A are not the same thing:
Theck wrote:Note: A' is only our postDR dodge or parry (depending on which one you're considering for dA'), so it's either (char_sheet_dodge_%  3.9705) or (char_sheet_parry_%  5):
In other words, Av is your total postDR avoidance from all sources. A and A' are placeholder variables in the diminishing returns equation, and thus represent only one type of avoidance at a time (i.e. only dodge or only parry) and only the portions of that avoidance that are subject to DR (so excluding base dodge and base Agi, for example).
That said, my wording is a bit unclear when I first define A and A'. I'll try and find time to edit that post to clarify what those variables actually mean.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7747
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: [Derivation] Armor/Mastery/Avoidance Calculations
There, see if that rewording is clearer.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7747
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re:
theckhd wrote:I. Damage taken formula and problem setup
For a boss melee swing of damage Do, the actual damage we take is
 Code: Select all
D = Do*Fa*S*[0*Av + 0.6*B + 1*(1AvB)] = Do*Fa*S*[1Av0.4*B] (1)
Where Av is your decimal avoidance (i.e. 30%=0.3), S is the Sanctuary damage reduction factor (S=0.9), B is your decimal block chance, 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) (2)
dFa = dAr*Fa/(Ar+K) (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*[1Av0.4*B] + Fa*S*[dAv0.4*dB]
= dAr*S*Fa/(Ar+K)*[1Av0.4*B] + Fa*S*[dAv0.4*dB]
= dAr*S*Fa/(Ar+K)*[1Av0.4*B]  Fa*S*[dAv+0.4*dB] (4)
From this expression, we can start making comparisons between the different types of avoidance/mitigation.
Why is the avoidance portion of the damage formula:
 Code: Select all
D = Do*Fa*S*[0*Av + 0.6*B + 1*(1AvB)] = Do*Fa*S*[1Av0.4*B]
Shouldn't it be
 Code: Select all
D = Do*Fa*S*[1.024Av0.4*B]
To account of the 0.2% decay to dodge, parry, miss, and block per level the attacking mob has on the player? Is it so trivial that it does not need to be included or am i misunderstanding something?
"When I was ten, I read fairy tales in secret and would have been ashamed if I had been found doing so. Now that I am fifty I read them openly. When I became a man I put away childish things, including the fear of childishness and the desire to be very grown up." C.S. Lewis

Celyn  Posts: 28
 Joined: Mon Feb 22, 2010 12:50 pm
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Technically it would be
where Av'=(Av0.018), bounded by 0 (i.e. you can't have less than 0% avoidance), and similarly for B'=(B0.006). And even there, it would be still more accurate to break it down into individual components and bound each by zero  i.e. Av'=((dodge0.06))+((parry0.06))+((miss0.06)), where I've used ((x)) to indicate max(x,0).
That said, since it's fairly unrealistic for any of these values to drop below zero, the simple fix would be to change 1 to 1.024 for a bosslevel mob.
Also note that it's an irrelevant correction for most of the calculations performed, since it either cancels or differentiates away.
 Code: Select all
D = Do*Fa*S*[1Av'0.4*B']
where Av'=(Av0.018), bounded by 0 (i.e. you can't have less than 0% avoidance), and similarly for B'=(B0.006). And even there, it would be still more accurate to break it down into individual components and bound each by zero  i.e. Av'=((dodge0.06))+((parry0.06))+((miss0.06)), where I've used ((x)) to indicate max(x,0).
That said, since it's fairly unrealistic for any of these values to drop below zero, the simple fix would be to change 1 to 1.024 for a bosslevel mob.
Also note that it's an irrelevant correction for most of the calculations performed, since it either cancels or differentiates away.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7747
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Thanks i was just confused by that =)
"When I was ten, I read fairy tales in secret and would have been ashamed if I had been found doing so. Now that I am fifty I read them openly. When I became a man I put away childish things, including the fear of childishness and the desire to be very grown up." C.S. Lewis

Celyn  Posts: 28
 Joined: Mon Feb 22, 2010 12:50 pm
Re:
theckhd wrote:note that A' is only our postDR dodge or parry (depending on which one you're considering for dA'), so it's either (char_sheet_dodge_%  3.9705) or (char_sheet_parry_%  5).
This is, I believe, the only difference between parry and dodge: the amount not subject to diminishing returns. Once that amount has been subtracted from the total, the remaining amounts follow the exact same curves in every way.
The amounts you list to subtract for dodge (3.9705%) and parry (5%) differ by approximately 1.03%.
theckhd wrote:[*]Avoidance & Mastery
 1 mastery rating is better than 1 parry rating for total damage reduction at 952 parry rating, or 10.1896% on the character sheet.
 For dodge, this happens at 8.9705% on the character sheet. A rating equivalence is unreliable due to agility raid buffs.
Why then does the breakeven point for dodge/mastery differ from the breakeven point for parry/mastery in your summary by 1.22%?
The breakeven point for dodge as I calculated it was closer to 9.16%, using the 3.9705% notsubjecttoreturns you provided.
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
That's almost certainly a typo on my part, considering the decimals are identical to those in the undiminished portion (X.9705).
I'll fix the original post, though it's sort of a moot point since everything changes once the 4.2 Holy Shield and meta gem changes go live.
I'll fix the original post, though it's sort of a moot point since everything changes once the 4.2 Holy Shield and meta gem changes go live.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7747
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re:
A note on the PTR change: While I'm fairly certain this isn't the whole story, here's what you get if you apply that change to the avoidance/mastery relationship (0.4>0.3):
this gives dRv=0.8108*dRm, indicating that avoidance is better at minimizing overall damage taken at this level (A'=7.5%, or 12.5% total dodge).
The crossover is then
Note that this is only the contribution from diminishing returns, so it's 18.29% total dodge or 17.26% total parry. This makes avoidance superior for reducing overall damage, while mastery will be better at smoothing out damage intake.
If you include the new block meta (which is reasonable, it should now be significantly stronger than the armor meta for both block tanks), that 0.657 becomes 0.7425, and the crossover shifts to 10.73% (15.73% dodge, 14.7% parry). Those are probably reasonable levels to hit for a tank in Firelands, even if trying to block cap.
<edit> Handy table format!
 Code: Select all
(0.01*dRv/Ca)/k*(1A'/C)^2 = 0.3*0.0225/Cm*dRm
dRv = (Ca/0.01)*(0.00675/Cm)*k/(1A'/C)^2*dRm
dRv = (0.675*Ca*k/Cm)/(1A'/C)^2*dRm (14)
this gives dRv=0.8108*dRm, indicating that avoidance is better at minimizing overall damage taken at this level (A'=7.5%, or 12.5% total dodge).
The crossover is then
 Code: Select all
A' = C*[1 sqrt(0.675*Ca*k/Cm)] = 13.29%
Note that this is only the contribution from diminishing returns, so it's 18.29% total dodge or 17.26% total parry. This makes avoidance superior for reducing overall damage, while mastery will be better at smoothing out damage intake.
If you include the new block meta (which is reasonable, it should now be significantly stronger than the armor meta for both block tanks), that 0.657 becomes 0.7425, and the crossover shifts to 10.73% (15.73% dodge, 14.7% parry). Those are probably reasonable levels to hit for a tank in Firelands, even if trying to block cap.
<edit> Handy table format!
 Code: Select all
Mastery/avoidance rating DTPS crossover points
Block% 40% 33% 30%
Av% 5.19% 10.73% 13.28%
Rating 952 2168 2815
P% 10.2% 14.7% 17.3%
D% 9.2% 15.7% 18.3%
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7747
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Looks like the PTR has been reversed, though since they clearly want to mess with it I expect to see more tinkering in the near future. Certainly they'll have to adjust something by 4.4 or else mastery will be pretty much worthless.
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
Mastery worthless in the future? I somehow don't see that happening. Atm you need to have mastery in every single slot, including 2 trinkets, 3 enchants, and at least half of your gems in mastery to reach the cap. And that's with good gear.
Considering blizzard has a terrible design for half of the tanking items, we prolly won't be able to get a mastery item in all slots in the future, especially with others raiders competing on agility gear. Also we could wear 2 stamina trinkets, and gem/enchant full stamina.
That's lot of mastery to make up for that. It might happen in 4.4, but I'm not sure.
Considering blizzard has a terrible design for half of the tanking items, we prolly won't be able to get a mastery item in all slots in the future, especially with others raiders competing on agility gear. Also we could wear 2 stamina trinkets, and gem/enchant full stamina.
That's lot of mastery to make up for that. It might happen in 4.4, but I'm not sure.

Awyndel  Posts: 672
 Joined: Sat Feb 14, 2009 8:49 am
 Location: The Netherlands
Re: [Derivation] Armor/Mastery/Avoidance Calculations
The removal of agi>dodge and buff to base dodge will only have one effect on these calculations: Since base dodge and parry will be equal in 4.2, we'll want to have equal amounts of dodge% and parry% on our character sheet while raid buffed to minimize avoidance losses due to diminishing returns.
I'm waiting to update the thread for 4.2 until we know for sure whether HS/Mastery are getting overhauled (and if so, how).
I'm waiting to update the thread for 4.2 until we know for sure whether HS/Mastery are getting overhauled (and if so, how).
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7747
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: [Derivation] Armor/Mastery/Avoidance Calculations
For nonraid buffed purposes you'd want to keep your parry rating 155 lower than your dodge rating if I'm not mistaken.
Strength/Agility buff * Kings * Strength to Parry Conversion Rate = Parry from Raid Buffs
549 * 1.05 * 0.27 = 155.6415
Strength/Agility buff * Kings * Strength to Parry Conversion Rate = Parry from Raid Buffs
549 * 1.05 * 0.27 = 155.6415

Chicken  Posts: 1597
 Joined: Fri Jun 26, 2009 2:19 pm
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Don't forget the extra strengh from kings.
e.g. 4.000 str * 0,05 * 0,27 = 54 parryrating
e.g. 4.000 str * 0,05 * 0,27 = 54 parryrating
 Cavalorn
 Posts: 18
 Joined: Tue Apr 14, 2009 4:00 am
 Location: Austria
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Dodge / Parry offset is calculated here: viewtopic.php?f=6&t=31606

RedAces  Posts: 500
 Joined: Tue Dec 01, 2009 9:39 am
 Location: Germany
Re: [Derivation] Armor/Mastery/Avoidance Calculations
I'm trying to figure something out using this thread but coming up short, probably due to the aneurysm I just suffered after trying decipher everything.
I apologize in advance if this is the wrong thread for this!
/run ChatFrame1:AddMessage(format("Unhittable at 102.4%%  you have %.2f%%", GetDodgeChance() + GetBlockChance() + GetParryChance() + 5 + 1/(0.0625 + 0.956/(GetCombatRating(CR_DEFENSE_SKILL)/4.91850*0.04))))
My question is, is this old macro to calculate total avoidance still a properly coded one now in cata, or are any of the numbers in the calculations off, i believe this one might be from TBC but i'm not sure.
I apologize in advance if this is the wrong thread for this!
/run ChatFrame1:AddMessage(format("Unhittable at 102.4%%  you have %.2f%%", GetDodgeChance() + GetBlockChance() + GetParryChance() + 5 + 1/(0.0625 + 0.956/(GetCombatRating(CR_DEFENSE_SKILL)/4.91850*0.04))))
My question is, is this old macro to calculate total avoidance still a properly coded one now in cata, or are any of the numbers in the calculations off, i believe this one might be from TBC but i'm not sure.

Lionnis  Maintankadonor
 Posts: 43
 Joined: Tue Mar 16, 2010 6:04 am
Return to Advanced Theorycraft and Calculations
Who is online
Users browsing this forum: No registered users and 1 guest