MoP Block Calculations – Part 3

Last time, we painfully ground through the necessary calculus to develop relationships between different stats – armor, avoidance rating, block rating, hit, expertise, and haste. In this installment, we’re going to bring all of that together and start comparing those stats to see how they affect our damage intake.

First, we need to recap the equations we’ll need to proceed. There are a lot of them, but I don’t want to make readers sift through the last few blog posts just to find the definition of a term, so we’ll summarize them here. If you’ve been following along the whole time, feel free to skip to the next section.

The damage taken formula is:

$D = D_0 F_{a} F_{\rm av} F_{b}$

where $D_0$ is the pre-DR incoming damage, and the armor, avoidance, and block factors are defined as:

$F_a = K/(Ar + K)$,
$F_{\rm av} = (1 – A)$,
$F_b = 1 – GB_v” – (1-G) B_c S B_v’ – (1-G)B_c(1-S)B_v$.

$K$ is the armor constant, $Ar$ is the player’s armor, $A$ is the player’s total avoidance, $B_v”$ is the player’s block value for the guaranteed block from SotR (75%), $B_v’$ is the block value during the SotR buff (50%), $B_v$ is the default block value (30%), and $B_c$ is the player’s block chance as read off of the character sheet. $G$ and $S$ are variables that describe SotR mechanics as defined in the first installment:

$G = R_{\rm SotR}/R_{\rm att}$
$S = R_{\rm SotR}(R_{\rm att}T_{\rm buff} – 1)/(R_{\rm att}-R_{\rm SotR})$

$T_{\rm buff}$ is the duration of the SotR increased block value buff. The SotR cast rate $R_{\rm SotR}$ and incoming blockable attack rate $R_{\rm att}$ are:

$R_{\rm SotR} = R_{\rm HPG}/3(1-\alpha_{\rm DP})$
$R_{\rm att} = (1-A) R_{\rm att}^{(0)} = F_{\rm av}/T^{(0)}_{\rm att}$

where $\alpha_{\rm DP}$ is the divine purpose proc chance (0.15) and $T^{(0)}_{\rm att}$ is the boss’s swing timer. $R_{\rm HPG}$ is our Holy Power generation rate from all sources:

$R_{\rm HPG} = [1 - (m-h) - (d+p-e)](1+\alpha_{\rm GC})(1+s)R_{\rm CS} \\ + [1 - (2m-h-e)](1+s)R_{\rm J}+ R_{\rm BL}.$

Here, $m$, $d$, and $p$ are miss, dodge, and parry caps, respectively, and $h$, $e$, and $s$ are our hit, expertise, and haste percentages. $R_{\rm CS}$ and $R_{\rm J}$ are our CS and J cast rates, and $\alpha_{\rm GC}$ is the Grand Crusader proc rate. $R_{\rm BL}$ is the HPG rate from Blessed Life, or from any other non-rotational sources.

Last week, we defined the differential of $D$, which represents the change in damage intake:

$dD/D_0 = dF_a F_{\rm av} F_b + F_a dF_{\rm av} F_b + F_a F_{\rm av} dF_b\large$

And calculated the differentials of each factor implicitly to find their dependence on ratings:

$dF_a – dAr F_a / (Ar+K)\large$
$dF_{\rm av} =- dr_d (1-A_d/C_d)^2/(k_d f_d)\large$
$dF_b = -\left (\frac{dr_h}{f_h}+\frac{dr_e}{f_e}\right ) \beta_h – \frac{dr_s}{f_s}\beta_s – \frac{dr_d}{f_d}\beta_d -\frac{dr_m}{f_m}\beta_m\large$

where $A_d$ is our character’s post-DR dodge chance (ignoring base dodge), $k_d$ and $C_d$ are the avoidance diminishing returns formula coefficients, and $f_i$ is the rating-to-percentage conversion factor for stat $i$ (i.e. $f_s$ for haste, $f_d$ for dodge, etc.). The block factor was particularly ugly, so we defined the following additional quantities to make things a little easier to work with:

$\beta_h = \frac{(1+s)[(1+\alpha_{\rm GC})R_{\rm CS}+R_{\rm J}]}{3(1-\alpha_{\rm DP})} \left [ \frac{F_{bG}}{R_{\rm att}}+ \frac{S F_{bS}}{(R_{\rm att}-R_{\rm SotR})R_{\rm SotR}} \right ]\large$
$\beta_s = \frac{(R_{\rm HPG}-R_{\rm BL})}{3(1-\alpha_{\rm DP})(1+s)} \left [ \frac{F_{bG}}{R_{\rm att}} + \frac{S F_{bS}}{(R_{\rm att}-R_{\rm SotR})R_{\rm SotR}} \right ]\large$
$\beta_d = \frac{(1-A_d/C_d)^2}{k_d T^{(0)}_{\rm att}} \left [ \frac{R_{\rm SotR} F_{bG}}{R_{\rm att}^2} + \frac{(1-R_{\rm SotR}^2T_{\rm buff}) F_{bS}}{(R_{\rm att}-R_{\rm SotR})^2} \right ]\large$
$\beta_m = \frac{(1-B^{\rm (DR)}_c/C_B)^2}{k_B}F_{bB}\large$

$F_{bG} = B_v” – B_cSB_v’ – B_c(1-S)B_v\large$
$F_{bB} = (1-G)[S B_v' - (1-S)B_v]\large$
$F_{bS} = (1-G)B_c(B_v’-B_v)\large$

where the only new variable we’ve introduced is $B^{\rm (DR)}_c$, which is the portion of our post-DR block chance that was subject to DR (in other words, $B^{\rm (DR)}_c = B_c – B^{(0)}_c$, where $B^{(0)}_c$ is our base block chance at 0 mastery.

Developing Relationships Analytically

The next step is to start generating relationships between the different stats. If we substitute in our new expressions for $dF_a$, $dF_{\rm av}$, and $dF_b$ into the expression for $dD/D_0$ and group terms according to rating type, we get the following expression:

$\frac{dD}{D_0} = dAr\frac{F_a F_{\rm av} F_b}{(Ar+K)} – \frac{dr_d}{f_d} F_a \left [\frac{(1-A_d/C_d)^2}{k_d} F_b + \beta_dF_{\rm av} \right ] \\ – \left (\frac{dr_h}{f_h}+\frac{dr_e}{f_e}\right )\beta_h F_a F_{\rm av} – \frac{dr_s}{f_s}\beta_s F_a F_{\rm av} – \frac{dr_m}{f_m}\beta_m F_a F_{\rm av}\large$

In the past, we’ve then set $dD/D_0$ equal to zero and explicitly worked out formulas that equate one stat to another. For example, if we wanted to see how much haste rating gives as much damage reduction as a given amount of mastery rating, we’d set all of the other $dr_i$ to zero and solve:

$\frac{dr_s}{f_s}\beta_s F_a F_{\rm av} = \frac{dr_m}{f_m}\beta_m F_a F_{\rm av}\large$

which gives the simple solution

$dr_s = dr_m \left (\frac{f_s \beta_m}{f_m \beta_s}\right )\large$

I chose that particular combination because a lot of factors cancel and make it easy on us, but you could do the same for any of the different combinations and get a similar (albeit uglier) expression.

That was fine in Cataclysm, because we were only looking at three major stats: avoidance, mastery, and armor. With N stats, there’s $\text{N choose k} =\frac{N!}{k!(N-k)!}$ different combinations, which for N=3 and k=2 is just three: avoidance vs. mastery, avoidance vs. armor, and mastery vs. armor. However, now we’re looking at six stats: armor, avoidance, hit, expertise, haste, and mastery. For N=6, there are 15 different combinations. At that point it becomes less efficient to derive explicit relationships between each pair of stats, and more efficient to find some way to normalize the contribution of each stat so we can look at their relative weights numerically.

In other words, it will make a lot more sense to choose realistic character stats and calculate the factors $\beta_s F_a F_{\rm av}/f_s$ and $\beta_m F_a F_{\rm av}/f_m$, and see which one is bigger. Not only will those tell us how haste and mastery compare, but if we want to compare either to a different stat (say, avoidance) we only need to calculate the equivalent factor for that stat, and we instantly know how it stacks up to both.

So we define the normalized damage reduction factors $\gamma_i$ as follows:

$\gamma_{ar} = F_a F_{\rm av} F_b / (Ar+K)\large$
$\gamma_d = F_a\left [ \frac{(1-A_d/C_d)^2}{k_d}F_b + F_{\rm av} \beta_d \right ]/f_d\large$
$\gamma_h = F_a F_{\rm av}\beta_h / f_h\large$
$\gamma_e = F_a F_{\rm av} \beta_h / f_e\large$
$\gamma_s = F_a F_{\rm av} \beta_s / f_s\large$
$\gamma_m = F_a F_{\rm av} \beta_m /f_m\large$

What do these factors $\gamma_i$ represent? Well, each one is the net damage reduction $dD/D_0$ that you gain from one point of rating $dr_i$. So $\gamma_m$ tells you the damage reduction of one point of mastery rating, $\gamma_s$ one point of haste rating, and so on. The nice part about this is we can simply write a program that does the annoying work of evaluating the messy expressions in the first section of this post. We feed the program a few easily-understood input parameters like armor, avoidance, and so on, and it spits out the six $\gamma_i$ values we’re interested in. So let’s do that.

Developing Relationships Numerically – Inputs

First, we need to define our inputs. Since we don’t have stats at level 90 yet, let’s make some estimates based on stats at level 85 fighting a level 88 boss. We’ll assume that the player has 30% avoidance 15% of which is from dodge. We’ll also assume they have 55% block chance, 40k armor, 2% hit, 2% expertise, and 10% haste. That gives us the following variables:
$A_d = 0.1$
$B_c = 0.55$
$B^{\rm (DR)}_c = 0.5$

Based on the level difference, we have the following values for the hit/expertise caps and armor coefficient:

We also have the block value tiers we defined earlier:
$B_v’ = 0.5$
$B_v = 0.3$

And we know the rating->percentage conversion factors for each stat (noting that the percentages are in decimal form):
$f_d=176.71890258/0.01 = 17672$

The diminishing returns coefficients for avoidance and blocking are also necessary:
$k_d = k_B = k = 0.9560$
$C_d = 0.65631440$ (~65%)
$C_B = 1.351$ (~135%, courtesy of Pagezero at Tankspot)

And we have some assorted constants to define:
$\alpha_{\rm DP} = 0.15$
$\alpha_{GC} = 0.2$
$T_{\rm buff} = 6$

Finally, we need to assume a boss swing timer. Let’s choose 2 seconds:
$T_{\rm att}^{(0)} = 2$

Developing Relationships Numerically – Outputs

I’ve written a MATLAB script file that defines all of these values and then calculates the expressions we’ve worked out. First, we need to pick a rotation, because that determines $R_{\rm CS}$ and $R_{\rm J}$. For this example, we’ll choose “SotR>CS>J>AS>Cons>HW,” which tends to maximize holy power returns (thus giving the best results possible for hit/exp/haste). In this model, you cast CS on cooldown, so

$R_{\rm CS}=1/4.5=0.2222$

Judgment gets pushed back every so often, however, which gives it an effective cooldown of 6.75 seconds (which you can work out by hand as well). Thus,

$R_{\rm J} = 1/6.75=0.1481$.

To see how accurate our HPG modeling is, let’s compare it to the matlabadin FSM code, which gives very accurate rotation information. Plugging those values into our formula with 10% haste gives us a HPG rate of

$R_{\rm HPG} = 0.3841$,

in perfect agreement with the FSM code. Thus, we can feel certain that our formula for $R_{\rm HPG}$ is correct. So far so good. Based on the HPG rate, our model says we should have a SotR cast rate of

$R_{\rm SotR} = 0.1506$,

or one SotR every 6.64 seconds, again in agreement with the FSM code.

Our formulas for $G$ and $S$ give us the following uptimes:


That’s pretty incredible – 43% of the incoming attacks that we don’t avoid are guaranteed to be blocked by SotR at 75%, and we’ll have the +20% block buff up for 83% of the ones that aren’t avoided or guaranteed.

But I know what you’re really interested in is the normalized damage reduction factors $\gamma_i$. So let’s jump right to them. Since the values come out to be pretty small, let’s define

$\Gamma_i =100000 \gamma_i$

which is the net benefit of 100000 rating instead of 1 rating. Note that we’re not really trying to model stacking $10^5$ of any of these ratings – we’re just multiplying the results by $10^5$ so they’re easier to compare (otherwise we’d need to use scientific notation). The results are:

$\Gamma_{ar} = 0.2299\large$
$\Gamma_d = 1.8572\large$
$\Gamma_h = 1.4717\large$
$\Gamma_e = 1.4717\large$
$\Gamma_s = 1.0564\large$
$\Gamma_m = 0.4346\large$

Wait, hold on, is that right? These results are saying that mastery is in dead last place, behind hit, expertise, haste, and even armor (remember that we get 4 armor per itemization point, so it’s actually got a per-itemization value of $4\Gamma_{ar}=0.9196$.

Yes, sadly, it’s correct. I’ve double-checked it a few times now, and I think I’ve caught and fixed all of the errors in the derivation. Unless something about our mastery changes significantly between now and release, mastery is going to be our dump stat in MoP.

O Mastery, Why Hast Thou Forsaken Us?

To understand why mastery performs as badly as it does, we need to drill down a little farther. Let’s look at the values that go into $\gamma_i$:

$F_a = 0.4488$
$F_{\rm av} = 0.7$
$F_b = 0.5312$
$\beta_h = 0.5626$
$\beta_d = 0.7398$
$\beta_m = 0.1102$

So there’s part of the problem: $\beta_m$ is smaller than the others by a factor of 4 to 7, depending on what we’re comparing it to. Note that all of the $\gamma_i$ have an armor factor (i.e. $F_a$), an avoidance factor (i.e. $F_{\rm av}$), and a block factor (either $F_b$ or one of the $\beta_i$). So the fact that $\beta_m$ is at least four times lower explains why block performs so poorly.

But why is $\beta_m$ so low? And not just in the mathematical sense – what mechanically is going on that causes $\beta_m$ to lag the others so much? To see that, we need to drill down further. Let’s look at the “block prefactors,” or the factors that go into the expression for $dF_b$:

$F_{bG} = 0.4936$
$F_{bS} = 0.0627$
$F_{bB} = 0.2656$

What do these tell us? $F_{bG}$ is the multiplier that relates a small change in $G$ to a small change in $F_b$. $F_{bS}$ serves the same purpose for $S$, and $F_{bB}$ for $B_c$ (and thus mastery). From this vantage point, it looks like block isn’t faring so badly. We can see that SotR’s guaranteed blocks have a fairly large effect, but good old block seems to be OK. Of course, the devil is in the details – it’s not the $F_{bi}$ that are the problem; the problem is that a fixed amount of rating gets you a much bigger change in $G$ than it does in $B_c$.

To see why, let’s look back at our equations for $\beta_i$, which I’ll repeat here:

$\beta_h = \frac{(1+s)[(1+\alpha_{\rm GC})R_{\rm CS}+R_{\rm J}]}{3(1-\alpha_{\rm DP})} \left [ \frac{F_{bG}}{R_{\rm att}}+ \frac{S F_{bS}}{(R_{\rm att}-R_{\rm SotR})R_{\rm SotR}} \right ]\large$
$\beta_s = \frac{(R_{\rm HPG}-R_{\rm BL})}{3(1-\alpha_{\rm DP})(1+s)} \left [ \frac{F_{bG}}{R_{\rm att}} + \frac{S F_{bS}}{(R_{\rm att}-R_{\rm SotR})R_{\rm SotR}} \right ]\large$
$\beta_d = \frac{(1-A_d/C_d)^2}{k_d T^{(0)}_{\rm att}} \left [ \frac{R_{\rm SotR} F_{bG}}{R_{\rm att}^2} + \frac{(1-R_{\rm SotR}^2T_{\rm buff}) F_{bS}}{(R_{\rm att}-R_{\rm SotR})^2} \right ]\large$
$\beta_m = \frac{(1-B^{\rm (DR)}_c/C_B)^2}{k_B}F_{bB}\large$

Now, just look at the parts in brackets, because it turns out the factors out front are almost identical for dodge and mastery, and about half that size for haste and hit. For hit/exp $(\beta_h)$, haste $(\beta_s)$, and dodge $(\beta_d)$, they contain a term with $F_{bG}$ (which is large) over $R_{\rm att}$ (which is small), which subsequently makes the first term very large. This first term is characteristic of the effects of that stat on the SotR portion of block mitigation – that factor of $R_{\rm att}$ comes from $G$ (or $dG$, depending on how you look at it).

These $\beta$ factors also have a second term that represents the effect on the 6-second block value buff, with $F_{bS}$. Even though $F_{bs}$ is small, it turns out the second term is actually larger than the first due to the other factors. For hit and haste, the first term evaluates to around 1.4, the second is about 1.73. For dodge, the first term is around 0.6 and the second is 1.36.

So hit, expertise, dodge, and even haste are all strong stats because they feed into our active mitigation, both by increasing the amount of guaranteed blocks we get and increasing the uptime of the SotR block value buff. Hit, expertise, and haste all do this in the obvious way – they increase Holy Power generation, which lets us use our active mitigation tool more often. Dodge does it a little more subtly, by reducing $R_{\rm att}$ – essentially, the more you dodge, the fewer incoming attacks you have that are eligible for block, increasing the percentage of them that become guaranteed blocks.

But look at $\beta_m$. It’s just got a lonely factor of $F_{bB}$, which is 2x-4x smaller than any of the individual factors inside the brackets in the other $\beta_i$. It’s propped up a little by having a better rating->percentage factor $f_m$, but not nearly enough to let it catch up to the other stats. And the reason is because it has only a very weak interaction with our active mitigation. In fact, our active mitigation actively undermines mastery by making it less useful. The more guaranteed blocks we get, the less important mastery becomes. If you bump up the hit and expertise values used in the calculation, you increase the importance of $G$ and the value of $\beta_m$ goes down by a few percent.

That said, we can’t blame it all on active mitigation. Certainly diminishing returns plays a part, as does the two-roll system itself. The diminishing returns on block are about twice as bad as the diminishing returns on avoidance; $(1-B_c/C_B)^2/k_b$ is almost half as large as $(1-A_d/C_d)^2/k_d$, because we’re much higher on the DR curve for block than we are for avoidance (partly because avoidance is split between two DR mechanisms – dodge and parry). And the two-roll system reduces the effectiveness of block chance inherently, like we’ve discussed before.

But the dominant factor in mastery’s demise as a damage mitigation stat is our active mitigation. It introduces an interesting feedback mechanism between avoidance and our active mitigation that allows avoidance to double-dip (hence the second term in $\gamma_d$ – note that each term of $\gamma_d$ is larger than $\gamma_h$, $\gamma_s$, or $\gamma_m$). The more we avoid, the stronger SotR’s guarateed blocks get, so adding dodge rating gives us less damage due to avoided attacks and less damage due to a higher percentage of 75% blocks.

Where do we go from here?

I’ve already been advocating a change in our mastery, partly because I was worried it would be too weak (little did I know – even I didn’t expect it to be this bad), and partly because block chance isn’t really all that exciting. It wasn’t exciting in Cataclysm either, but the presence of a block cap made for interesting gearing choices, much like the hit or expertise cap does for a DPS. Mastery in MoP fails to even have that level of “interesting.” It’s just another passive total damage reduction stat, like dodge or parry, but less efficient.

The solutions I’ve been advocating on maintankadin have all included mechanisms that couple mastery with our active mitigation. At the time, I didn’t realize how critical that coupling would be, but the number-crunching we’ve done in this post shows that it’s even more important than I could have guessed. It’s essential, in fact, because our active mitigation accounts for a much larger part of our survivability than our “last resort” block chance does. In a future blog post, I’ll look at some of the possible ways we could introduce this coupling and make mastery an interesting and useful stat.

In the next and final part of this series of blog posts, we’re going to build a numerical Monte-Carlo simulation to validate our analytical model and figure out how reasonable the various approximations we’ve made along the way really are. That may not happen until Friday, though, both because I’ve yet to write the simulation and because I’ve been monopolizing the blog for the better part of a week.

This entry was posted in Tanking, Theck's Pounding Headaches, Theorycrafting and tagged , , , , , , , , . Bookmark the permalink.

29 Responses to MoP Block Calculations – Part 3

  1. Pingback: [Prot 5.0 Beta] - Code Monkey - Page 2 - Elitist Jerks

  2. Omega says:

    Can you crunch some warrior numbers? :)

    • Theck says:

      It’s on the list. I may have a lot of free time this weekend, and if I do, I’ll probably work out the formulae for warriors. That said, I don’t expect it to be that much different. Mastery is probably going to be better for warriors because crit block helps your active mitigation. But I’d still expect that hit/exp/haste increasing SB uptime (essentially block-capping you more of the time) to be stronger. But that’s just a guess at this point.

  3. Rasmfrackn says:

    Wow, the expected refresh time on SotR is a lot faster than I was expecting… 6.6 seconds on a 6 second buff? I think that and the effect of haste are the 2 things that really threw me. I’ll be very interested to see the monte carlo approach, because while I can see how haste scales the formulas in an analytical sense, having its value bounded by discrete multiple of the GCD seems like it would take away it’s HoPo generating value and only leave its DPS value. Also, with only 2% hit and 2% exp assumed, is that 6.6 second refresh on SotR including the ~15% non-connect rate on the generators?

    Now I see why you checked in about my project, but I’m sure your model will be much more exacting than mine would’ve been. :)

    • Theck says:

      Yes, the refresh rate does include the hit/exp interaction. At hit/exp cap, you exceed 100% uptime on the buff (SotR refresh time drops below 6 seconds).

    • Meloree says:

      With Sanctity of Battle, the GCD and cooldown of HPG generating moves is reduced. If one is strictly prioritizing HPG, haste should scale roughly linearly. Unless I misunderstood what you’re saying.

  4. Angelflavor says:

    I wonder if protection warrior Shield Block fairs the same. Also while on the topic of Masteries and Survival “Finishers” I wonder how it compares to other tanks in general. Guardian Druids Mastery gives bonus armor and finisher gives 40% dodge. Blood Death Knights seem to be on a completely different level than the other tanks with Death Strike and Mastery both being very proactive. Their Mastery and Survival right now seem to effortlessly work together. As for monks; I currently don’t think there is enough information about brew master monks.

    I would at least understand if all other tank classes’ masteries were poor, but then what’s the point of having tank masteries in the 1st place. When I use SotR want to feel like a bad ass that prevents tons of damage and it’s only that good because my mastery stat is high. Right now it sounds like I will be storing Holy Power till I need a Word of Glory.

    While on the survival topic I can’t wait to see theory crafting on selfless healer, sacred shield and eternal flame. The latter two will involve the tank having to change the rotation to keep them up at all times.

    (Sorry if my grammar and spelling is horrible)

    • Theck says:

      We’d still be using SotR over Word of Glory. The point of this post wasn’t that SotR is bad (it isn’t). The point is that SotR is very *strong*, which makes mastery a weaker stat for us.

    • Ohgodbees says:

      I posted a basic rage/s equation in the MoP warrior thread on the tanking forums, which ties directly into shield block up time. The main difference I see between warriors and pallies is that avoidance reduces the value of shield block, while it increases the value of a paladins gauranteed block. Warriors also have the issue where shield block and mastery fight each other over hit coverage, which isn’t quite the same for pallies. Since SB up time is pretty high without any hit, expertise or haste, mastery is probably severely devalued for warriors, too.

      Tanks need mastery overhauls. The active mitigation reduces the value of block chance way too much for the current masteries to be useful. I think they should move tanks more towards DKs where mastery boosts the effectiveness of active mitigation abilities.

      Also, great as always, Theck!

      • Theck says:

        Thanks, and I completely agree with you about mastery being tied to active mitigation. Which will be the topic of a later blog post (next week, maybe?).

        What concerns me about Shield Block is that it’s essentially giving warrior’s block-cap for a limited period, which is what they went out of their way to eliminate with the two-roll system and DR on block. That means they need to tune very carefully, because if they give Warriors the resources to reach nearly-100% uptime on SB – or for that matter, 15+ continuous seconds of uptime during a danger period – we’re going to run into exactly the same balance problems we did in Cata.

        I know people don’t always like homogenization, but I’d much rather see both paladin and warrior AM work similarly – Shield Block could grant 1 guaranteed *critical* block and a 6-second block chance buff, which would keep the two fairly equal. Our masteries could then tie directly into that by increasing our block value during the effect.

        Also, would you mind linking me to the rage/s equation for warriors? It will save me some time when I adapt this to repeat the calculation for warriors.

        • Ohgodbees says:

          Someone pointed out that berserker rage would have a 20% up time if used on CD, which I mistakenly calculated as 10%. I also forgot to add that using a shout on CD is 1/3 rage per second.

          The main thing I didn’t work out was an equation for enrage up time. Each time you crit block or crit with a special attack, you are enraged for 6 seconds, increasing rage from white attacks by 25%. So I went the lazy route by assuming berserker rage on CD. :)

          It would take about 3800 haste rating at 85 in addition to hit/expertise hard capped to get 100% SB up time, but that’s assuming only 20% enrage up time, which glyph of incite would help up that quite a bit. That amount of haste seems unreasonably high and would probably mean forgoing mastery and avoidance stats completely. It definitely appears to be much harder for warriors to get full up time on shield block than pallies on SotR.

  5. Dan Paladin says:

    Thanks for all the work you did on this model, Theckhd. It is greatly appreciated by the community, I am sure.

    I was wondering when you think we are gonna get a post regarding a new mastery scheme. You have said (and the model clearly shows) that we need a big change to mastery, and the discussion over at MT has been pretty solid; a few good ideas, particularly the last few you had regarding SotR block value increases and WoG absorb effects depending on health %. I think the very near future is a really solid time to get the dev’s attention and have an impact on the mastery redesign, assuming and hoping we are gonna get one.

    • Theck says:

      “Soon.” I only have so much time to theorycraft/write. It probably won’t happen until next week, at the earliest.

  6. Weebey says:

    I believe there is a typo: in the big expression for dD/(D_{0}), for the second term in the square brackets giving the derivative with respect to avoidance, it should be F_{Av}, rather than F_{A}. There may be others, but that one caught my eye, since there is no way to get an F_{A}^2 term here.

    Here is an interesting tidbit from this information: suppose you want to compare avoidance with hit respect to their effect on active mitigation. This would involves taking the ratio of the coefficient of the second term for dr_{d} (the first term just corresponds to the direct effect of dodge in reducing damage taken) and the coefficient of dr_{h}. Canceling terms, we find that this ratio is

    /beta_{d} * f_{h} / (/beta_{h} * f_{d})

    Plugging values, this comes out to around .89, i.e. dodge is 89% as effective in increasing our active mitigation as hit. Why is this interesting? Well, Theck already told us the value of hit; it is around 1.47 (divided by 10^5). So the value of this part of avoidance is around .89*1.47= 1.31. But we also know that the TOTAL value of avoidance is 1.86. So this part is over 70% of the total value of avoidance!

    I’m going to repeat that in words: over 70% of the TDR value of avoidance comes, not from the “direct” effect of avoided attacks obviously dealing less damage than unavoided ones, but from the fact that avoidance increases the strength of SotR. This is a rather long-winded way of reiterating the point: our active mitigation, in its current form, is extremely powerful, so much so that effects that make it stronger are dwarfing other sources of damage reduction. Not only do I agree that Mastery should somehow be related to our AM, but I don’t think it would even be possible to make it competitive without doing so (or alternatively significantly altering our active mitigation.)

    • Ohgodbees says:

      I could see this also leading to scaling issues. For warriors and DKs, avoidance works against their active mitigation and reduces the value of all of their other stats. The opposite is true for paladins.

    • Theck says:

      Yep, that is definitely a typo. Thanks.

      Regarding your observation on avoidance: It’s not so much that avoidance strengthens SotR as that it doesn’t negate it. If, for example, SotR only blocked the next attack, that second term wouldn’t exist, and avoidance would be 70% weaker, because you’d just be replacing a 25% hit with a 0% hit. The fact that SotR persists means that we never waste an avoid, so we get a much larger value (100%->0%, or more technically something like (70%*Bc + 100%*(1-Bc))->0%).

      Of course, the expressions in this case would be a lot different, because we’d have to change the expression for $latex G$, so it’s hard to draw direct comparisons. The avoidance dependency via $latex R_{rm att}$ would disappear, which eliminates the second term in the $latex beta_i$, which significantly affects the ratios.

      Also, the trick for typing latex in wordpress is to use $latex ${rm latex~expression} $$

  7. Lakhesis says:

    Interesting. I wasn’t expecting anything like that shift in values. When bliz nerfs stuff, they don’t certainly don’t screw around. I think I’ve followed most of it but I had a couple of half questions half comments that I’d like to hear more about.

    1) What if Bliz removes the guaranteed block portion? We’re left in a situation where hit+exp+haste+avoidance+block value+mastery are being balanced against mastery, yeah? So presumably mastery would still be devalued so significantly it’s bottom of the pile, but would it still be as badly out-of-sync? Bliz doesn’t seem set on the guaranteed block portion considering it wasn’t in at the start of beta.

    2) Having avoids use up the guaranteed block would simply remove avoidance as a boost from the first portion, while leaving it as a inverse factor to mastery for the boosted/normal block portions, leaving the end result ‘mostly’ unchanged, yeah?

    3) This means we have a haste softcap as well as an expertise softcap, so we’d be aiming for a hit, expertise and haste softcaps, then increasing whichever of haste or expertise achieved a higher flow of holy power generation(?). While still trying to get avoidance+stam of course.

    4) This greatly boosts the theory that using holy power on anything other than SotR is an absolutely terrible idea(?)

    5) You’re forced into making the (imo reasonable) assumption that weights will remain proportionate at a higher level, plus you only covered one gear setup. I’m assuming this breakdown is still relatively similar at different points, with marked shifts at softcaps & as avoidance DR kicks in? How badly does avoidance DR need to kick in for mastery to start going up, once we’re hit/exp/haste softcapped? Could we see some graphs?

    • Theck says:

      1) Losing the guaranteed block will massively nerf hit/exp/haste/dodge and increase mastery. It wouldn’t necessarily leave mastery at the bottom of the pile – it may even be competitive in that situation. That said, it would also get rid of the “active” part of our active mitigation.

      2) No, the guaranteed block has a much larger effect than the 6-second buff. Avoids using up the guaranteed block should boost mastery compared to the other stats (and again, nerf the other stats pretty significantly).

      3) Possibly, but haste soft-caps are tricky. It will basically depend on “close packing” type considerations – once you start getting enough haste to get CS-J-CS-AS-CS-etc you’d start getting clashing which reduces the value of haste.

      4) Insofar as SotR is a huge amount of mitigation, yes. If WoG healed for more than SotR mitigated, it would probably be a different story.

      5) I haven’t really tested it over a wide range of variables yet. But just plugging in different avoidance values, your intuition is a little backwards. Low avoidance (20% total) reduces the relative value of $latex Gamma_d$ (=1.5592) and increases $latex Gamma_m$ (=0.6594). Higher avoidance (40%) increases the value of $latex Gamma_d$ (=2.2130) and reduces $latex Gamma_m$ (=0.3222). Note however that as avoidance goes up, the likelihood of clashing and $latex G$ attrition goes up, which means that dodge becomes a slight over-estimate.

      I’m not keen on doing a completely exhaustive analysis of this model until we’re sure it’s sticking around. I think that, given these results, change is likely. Plus, I’d like to write the Monte Carlo sim to validate the model first.

  8. Palabulous says:

    First I would just like to thank you for the large amount of work you have put in over the years.
    With regards to mastery you are assuming a baseline block of 55%. This means you are reaching block cap when you have the SotR buff (present a lot of the time). So obviously mastery pushing you above 50% block is much less useful. It would be interesting to know the importance of mastery under the 50% “soft cap”. Sorry if I’m missing something.

  9. RichoDemus says:

    Is this calculated for 3s CD or 4.5s CD on Crusader strike/HotR? because it seems like blizzard removed the hidden 1.5 CD reduction on those abilities in mop:

  10. Hamsda says:

    Again thanks for all the work you do and have done, Theck.
    I’d like to ask mainly two things:
    1.) If I read the formula for $R_{HPG}$ correctly, haste and expertise/hit are scaling multiplicatively with each other, which should further decrease the value of mastery with the current implementation of SotR. Am I correct in that assumption and is it possible to say of what magnitude these impacts will be?
    2.) Could you change $T^{(0)}_{att}$ to inspect the case of tanking multiple smaller hitting mobs and their effects on a faster consumption of the guaranteed block? I’m not sure if this would increase mastery by much, but I guess it would decrease the value of dodge/parry because they won’t contribute to the high coverage of guaranteed blocks as much, and increase the value of expertise/hit and haste to the point where one can keep up the buff 100% of the time.

    • Theck says:

      1) They do indeed scale multiplicatively, so more haste makes hit/exp better and vice versa (and both make mastery worse). The coupling is pretty weak though – working at 7.5% hit/exp boosts $latex Gamma_h$ to 1.499 (from 1.452) and $latex Gamma_s$ to 1.217 (from 1.042), while $latex Gamma_m$ drops to 0.303 (from 0.322). Note also that at those hit values you reach 100% uptime on the buff (S=1), at which point I’m not sure my code will properly model everything (I wasn’t rigorous about enforcing bounding).

      2) Certainly. The case of multiple mobs is where mastery does shine. If you drop $latex T^{(0)}_{rm att}$ to 1.5, not much changes:
      $latex Gamma_d = 1.8713$, $latex Gamma_h = 1.1129$, $latex Gamma_s = 0.7988$, $latex Gamma_m = 0.4103$. Mastery is definitely gaining on the other stats, though.

      Drop $latex T^{(0)}_{rm att}$ even further, say to 0.5s, and mastery pulls ahead:
      $latex Gamma_d = 1.5069$, $latex Gamma_h = 0.3801$, $latex Gamma_s = 0.2729$, $latex Gamma_m = 0.5863$.
      At that attack rate, the guaranteed block just doesn’t cover much of the incoming damage (G=0.125), and increasing hit/exp/haste just can’t increase it enough to make it matter, so the stochastic stats (dodge, mastery) dominate.

  11. Pingback: MoP Block Calculations – Part 4 | Sacred Duty

  12. Pingback: Warrior Block Calculations – Part 1 | Sacred Duty

  13. Pingback: Radio Silence and SotR Musings | Sacred Duty

Leave a Reply