The comments section of last Friday’s post hosted some interesting discussions. Wrathblood pointed out that some of the avoidance gear sets were performing about as well as the Control/Haste set, and Kihra cautioned against counting out Control/Mastery entirely. There was a lengthy discussion about whether Holy Avenger or Divine Purpose was a better choice for DPS (Holy Avenger holds a steady-state lead until somewhere around 22%-25% haste rating, but in practice the threshold is much higher on an average boss thanks to tank swaps). And I posted a short derivation explaining how Sacred Shield scales with Vengeance.
Perhaps most importantly, though, Weeby noticed I was using the wrong formula for Sacred Shield! I can’t figure out exactly how that happened – most of my formulas are rigorously tested in-game, after which I use curve-fitting in MATLAB to accurately determine the formula. In some cases, this ends up being slightly different from the tooltip, and occasionally drastically different. During beta, in fact, there was a long period of time when WoG’s tooltip was off by a noticeable amount (and when the tooltip was fixed, people reading the MMO-Champion spell diff cried loudly about a “nerf” that never happened!).
I can’t find a current data set for Sacred Shield, which means the last time we empirically tested it was in beta. My best guess at this point is that the tooltip was incorrect in beta (like WoG), so I used my empirically-determined formula. And then somewhere along the way (likely before beta ended, even), the spell formula was updated to match the tooltip, thus not triggering an entry in the MMO-Champion spell diff. That would explain why we never thought to re-check it.
There’s also the distinct possibility I just goofed up, either via a copy/paste error or something else entirely. It happens. Oops?
In any event, I did some in-game testing earlier this week to confirm the new formula. Believe it or not, the old formula was actually weaker than the new formula. Yes, we were undervaluing Sacred Shield. Rather than absorbing ~40% of a boss attack per tick like it did in the earlier model, it’s actually absorbing over 50% of a boss attack. It’s even more overpowered than the last blog post suggested.
That value will get larger for weaker bosses and smaller for harder-hitting bosses thanks to Vengeance. Note that the total amount absorbed will always be larger at higher Vengeance, but it will be a smaller percentage of a boss attack due to the base absorption value from the AP on your gear. The plot below shows how this scales with Vengeance to give you a clearer idea of how that works:

Sacred Shield absorption as a function of Vengeance. As Vengeance increases, each Sacred Shield tick absorbs a smaller percentage of a boss attack, saturating somewhere above 45% at high Vengeance.
For the mathematically-inclined, the formula for the size of a Sacred Shield absorb is
${\rm SS~Absorb} = 342.5 + 0.585\times AP$
and when normalized to the size of a boss attack, it looks like this:
$\LARGE {\rm \%~Absorb} = \frac{342.5+0.585 \times (1.1 \times (AP_0+V))}{4.1667 M V} $
where $V$ is your Vengeance AP, $AP_0$ is your character sheet AP (with Kings, but without the AP raid buff), the factor of 1.1 is for the 10% AP raid buff, and $M=0.362$ is your total mitigation factor from armor, spec, and Weakened Blows (in the gear set used for the simulations).
In today’s post, I’d like to briefly address some of the points raised in the comments and present updated data using the correct formula for Sacred Shield (SS). Since we’re only concerned with SS, I’ll be skipping the data sets that don’t use it.
Gear and Simulation Details
As before, here are the gear sets. the only notable change is that I’ve added a “C/HM” gear set, which stands for Control/HasteMastery. The idea here is to see if the synergy between haste and mastery makes a gear set that splits its attention between haste and mastery preferable to one that focuses on either in isolation. I have a more detailed simulation that does this in smaller steps along the continuum, but that will have to wait for a later date.
The stats of the gear sets we’re using are listed in the table below. Each set has 65k armor, 15k strength, and 24150 rating to distribute amongst the secondary stats. This is roughly equivalent to an average equipped ilvl of 522. For more details on the choices I’ve made, you can consult the original 5.2 Smoothness Simulations post.
| Set: | C/Ha | C/Ma | C/Av | C/Bal | C/HM | Ha | Avoid | Av/Mas | Mas/Av | | Str | 15000 | 15000 | 15000 | 15000 | 15000 | 15000 | 15000 | 15000 | 15000 | | Parry | 1500 | 1500 | 7500 | 4125 | 1500 | 1500 | 10825 | 7717 | 4000 | | Dodge | 1500 | 1500 | 7500 | 4125 | 1500 | 1500 | 10825 | 7717 | 4000 | | Mastery | 1500 | 13500 | 1500 | 4125 | 6750 | 1500 | 1500 | 7716 | 15150 | | Hit | 2550 | 2550 | 2550 | 2550 | 2550 | 500 | 500 | 500 | 500 | | Exp | 5100 | 5100 | 5100 | 5100 | 5100 | 500 | 500 | 500 | 500 | | Haste | 12000 | 0 | 0 | 4125 | 6750 | 18650 | 0 | 0 | 0 |
I’m using the standard Monte-Carlo code, updated with the 5.2 mechanics. Just as last time, here’s the copy/paste summary of how the simulation works:
To better understand the data below, here’s a rough overview of how it’s generated: I run a Monte-Carlo sim that simulates 10k minutes of combat (think Simcraft, but paladin-specific and more limited in scope), making all combat rolls and logging all damage events. I take the resulting string of attacks (something like “1, 0, 0.7, 1, 0, 0, …” where 0 is an avoid (no damage), 1 is a full hit, 0.7 is a block, and so on) and do some calculations on it. I calculate the average damage intake normalized to 100% possible throughput (i.e. “1, 1, 1, 1, 1, …”), and report that in the “mean” row, representing mean damage intake (lower is better, represents better TDR). “std” is just the standard deviation of that mean as averaged over 5 attacks. “S%” is SotR uptime.
The rest of the rows are smoothing data for strings of N attacks. For now, let’s just consider the first gear column (C/Ha). I take the damage event sequence and perform a moving average on it (i.e. an N-attack moving average). I then calculate how many of those N-attack averages exceed a certain threshold of maximum throughput. So for example, if we look at a 3-attack moving average, the “70%” row tells me how many of those 3-attack averages exceed 70% of the maximum throughput. Max throughput for 3 attacks is “1, 1, 1″ or 3 normalized damage, so the 70% row tells me how many exceed 2.1 damage. And so on for 80% and 90%. Note that they’re cumulative, so if 5% of attacks exceed 90% max throughput those attacks are also being counted in the 80% and 70% rows (thus, if 17% of attacks exceed 80% max throughput, the percentage between 80% and 90% is 17%-5%=12%). I should add that the repeatability on these simulations is quite good thanks to the long integration time – results usually fluctuate by less than +/- 0.1% (absolute, i.e. 5% +/- 0.1%).
I do this for a bunch of different gear sets, i.e. “C/Ha” for Control/Haste, etc. The first table lists all of the gear configurations so you get a rough idea of what they look like. They’re roughly equivalent to stats in ilvl 496 gear.
The code can be found in the matlabadin repository, as usual. The two files in particular are pally_mc.m and pally_mc_smooth.m.
SotR Spam Queue (“S”)
First, the data for the simple “S” queue. I’m going to limit the commentary on this one, since it’s the least relevant.
| Set: | C/Ha | C/Ma | C/Av | C/Bal | C/HM | Ha | Avoid | Av/Mas | Mas/Av | | S% | 0.522 | 0.411 | 0.419 | 0.452 | 0.472 | 0.499 | 0.366 | 0.362 | 0.357 | | mean | 0.346 | 0.335 | 0.312 | 0.328 | 0.327 | 0.349 | 0.284 | 0.307 | 0.311 | | std | 0.132 | 0.129 | 0.146 | 0.138 | 0.126 | 0.139 | 0.152 | 0.151 | 0.141 | | ---- | ------ | --- 2 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 41.366 | 43.036 | 36.658 | 41.269 | 41.141 | 41.757 | 32.354 | 36.151 | 39.462 | | 50% | 32.233 | 25.217 | 28.012 | 31.354 | 18.081 | 32.616 | 24.155 | 21.041 | 23.516 | | 60% | 9.434 | 13.609 | 11.528 | 11.858 | 10.959 | 10.666 | 11.094 | 13.228 | 11.384 | | 70% | 8.817 | 11.264 | 11.136 | 10.664 | 9.843 | 10.118 | 10.809 | 12.056 | 10.585 | | 80% | 0.089 | 1.872 | 0.319 | 0.500 | 0.494 | 0.026 | 0.219 | 1.847 | 1.229 | | 90% | 0.089 | 1.159 | 0.319 | 0.500 | 0.318 | 0.026 | 0.219 | 0.835 | 0.745 | | ---- | ------ | --- 3 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 35.922 | 34.023 | 30.145 | 32.932 | 32.815 | 36.499 | 26.374 | 30.640 | 28.455 | | 50% | 22.878 | 18.430 | 17.260 | 16.832 | 12.846 | 23.620 | 13.907 | 14.291 | 16.981 | | 60% | 7.218 | 9.698 | 7.788 | 8.899 | 7.289 | 8.808 | 7.042 | 8.915 | 9.394 | | 70% | 0.907 | 3.706 | 2.283 | 2.348 | 2.160 | 2.193 | 2.360 | 3.900 | 3.829 | | 80% | 0.470 | 0.944 | 1.183 | 1.065 | 0.882 | 1.171 | 1.261 | 1.669 | 1.077 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 4 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 38.944 | 32.548 | 29.802 | 33.318 | 35.580 | 39.165 | 24.885 | 29.567 | 29.604 | | 50% | 17.340 | 14.978 | 15.669 | 17.961 | 7.437 | 18.319 | 12.282 | 12.482 | 12.271 | | 60% | 1.775 | 4.072 | 4.417 | 3.777 | 2.959 | 4.018 | 4.490 | 6.354 | 4.208 | | 70% | 0.026 | 0.656 | 0.565 | 0.493 | 0.256 | 0.668 | 1.000 | 1.439 | 1.046 | | 80% | 0.000 | 0.085 | 0.029 | 0.025 | 0.013 | 0.003 | 0.025 | 0.145 | 0.085 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 5 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 36.257 | 34.763 | 29.263 | 34.727 | 27.357 | 36.922 | 23.094 | 26.475 | 26.437 | | 50% | 15.495 | 8.955 | 13.362 | 9.598 | 7.199 | 17.292 | 10.827 | 10.570 | 9.221 | | 60% | 2.303 | 1.153 | 2.010 | 2.219 | 0.243 | 3.208 | 1.883 | 2.046 | 1.828 | | 70% | 0.000 | 0.000 | 0.168 | 0.001 | 0.000 | 0.373 | 0.371 | 0.380 | 0.330 | | 80% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 6 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 33.896 | 33.016 | 26.627 | 31.643 | 28.598 | 35.080 | 21.098 | 27.303 | 24.229 | | 50% | 9.094 | 9.050 | 8.245 | 10.490 | 5.793 | 10.828 | 6.420 | 8.540 | 7.058 | | 60% | 0.039 | 0.380 | 0.382 | 0.367 | 0.121 | 0.413 | 0.870 | 1.448 | 1.165 | | 70% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.019 | 0.068 | 0.132 | 0.081 | | 80% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.010 | 0.000 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 7 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 32.519 | 29.918 | 24.762 | 29.278 | 25.296 | 33.933 | 19.208 | 24.663 | 24.000 | | 50% | 8.412 | 7.123 | 7.436 | 6.395 | 4.647 | 10.383 | 5.726 | 7.341 | 5.930 | | 60% | 0.379 | 0.267 | 0.692 | 0.500 | 0.224 | 1.018 | 0.673 | 1.053 | 0.380 | | 70% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.012 | 0.028 | 0.024 | 0.020 | | 80% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
This data looks more or less the same as last time. Control/Haste commands a decent lead for larger spikes, but it lags a little at the lowest spike levels. There are a few subcategories where Control/Mastery ekes out a decent lead (especially at the 50% threshold), but overall it’s just not a compelling alternative. Control/Avoidance and Control/Balance both tend to lag a little bit, though sometimes show an advantage in the 40%-50% categories. That said, the 40% category is dangling dangerously close to “throughput damage” levels, so it’s not clear that it (or for that matter the 50% category) has a lot of relevance. Mel hesitates to even call these events “spikes.” It’s really the upper end of the distribution we care most about, and that is almost always dominated by haste.
The avoidance sets are actually fairly competitive with the “lazy” queue, because SotR isn’t being timed intelligently, making it a more stochastic process. And avoidance wrote the book on stochastic processes, so it gets a bit of a leg up here. We’ll see that lead erode in the shifting queues. But for the tank that’s got SotR macro-ed to CS, they’re not bad options.
The new Control/HasteMastery set is sort of lackluster for short strings of attacks, but competes rather well in the 4-attack and higher categories. We’ll talk more about that after we see the shifting queue data. For now, we’ll just say that for the novice tank, a mix of haste and mastery seems to give you a reasonable middle ground between the skill-dependent C/Ha set and the less skill-dependent C/Ma set, and in some cases improvements over both.
1-Attack Shifting Queue (“SH1″)
Next, let’s look at the SH1 data:
| Set: | C/Ha | C/Ma | C/Av | C/Bal | C/HM | Ha | Avoid | Av/Mas | Mas/Av | | S% | 0.523 | 0.410 | 0.419 | 0.452 | 0.471 | 0.499 | 0.366 | 0.363 | 0.357 | | mean | 0.345 | 0.337 | 0.312 | 0.328 | 0.330 | 0.349 | 0.284 | 0.307 | 0.312 | | std | 0.126 | 0.121 | 0.136 | 0.128 | 0.118 | 0.129 | 0.140 | 0.139 | 0.129 | | ---- | ------ | --- 2 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 41.738 | 49.026 | 37.940 | 43.039 | 42.781 | 42.377 | 33.252 | 38.972 | 43.496 | | 50% | 31.526 | 24.384 | 27.829 | 31.248 | 17.568 | 31.818 | 23.667 | 19.525 | 21.765 | | 60% | 7.751 | 10.142 | 8.998 | 9.376 | 9.169 | 8.591 | 8.746 | 11.277 | 7.569 | | 70% | 7.688 | 7.042 | 8.701 | 7.659 | 8.365 | 8.570 | 8.502 | 9.418 | 7.150 | | 80% | 0.001 | 0.404 | 0.004 | 0.006 | 0.044 | 0.000 | 0.007 | 0.500 | 0.305 | | 90% | 0.000 | 0.060 | 0.004 | 0.006 | 0.000 | 0.000 | 0.007 | 0.075 | 0.062 | | ---- | ------ | --- 3 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 35.780 | 31.965 | 29.641 | 33.155 | 34.977 | 37.087 | 25.532 | 31.383 | 23.136 | | 50% | 21.975 | 11.001 | 15.303 | 13.320 | 8.694 | 23.214 | 12.105 | 8.026 | 10.698 | | 60% | 4.793 | 5.884 | 3.787 | 4.630 | 3.644 | 5.727 | 3.479 | 4.535 | 5.831 | | 70% | 0.264 | 2.927 | 1.021 | 1.199 | 1.092 | 0.761 | 1.174 | 2.392 | 2.771 | | 80% | 0.003 | 0.525 | 0.283 | 0.251 | 0.142 | 0.185 | 0.439 | 0.667 | 0.553 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 4 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 38.255 | 31.666 | 29.111 | 31.769 | 33.885 | 39.435 | 23.317 | 27.038 | 28.159 | | 50% | 14.918 | 14.325 | 13.556 | 15.606 | 5.082 | 15.617 | 10.277 | 10.315 | 11.446 | | 60% | 0.187 | 2.530 | 1.719 | 1.176 | 1.392 | 0.900 | 2.011 | 3.825 | 2.329 | | 70% | 0.002 | 0.117 | 0.152 | 0.135 | 0.092 | 0.158 | 0.320 | 0.432 | 0.265 | | 80% | 0.000 | 0.005 | 0.000 | 0.000 | 0.000 | 0.000 | 0.001 | 0.012 | 0.007 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 5 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 34.840 | 34.111 | 27.890 | 32.981 | 25.228 | 36.018 | 21.321 | 24.834 | 26.277 | | 50% | 12.891 | 7.044 | 10.236 | 7.902 | 6.078 | 14.324 | 8.095 | 8.245 | 6.842 | | 60% | 2.020 | 0.962 | 1.463 | 1.738 | 0.288 | 2.421 | 1.161 | 0.921 | 1.204 | | 70% | 0.002 | 0.137 | 0.076 | 0.033 | 0.023 | 0.089 | 0.150 | 0.201 | 0.213 | | 80% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 6 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 32.965 | 29.506 | 25.014 | 29.625 | 26.553 | 34.328 | 19.117 | 25.345 | 21.657 | | 50% | 7.612 | 7.178 | 6.456 | 7.908 | 4.876 | 8.790 | 4.860 | 6.035 | 5.817 | | 60% | 0.004 | 0.619 | 0.271 | 0.212 | 0.104 | 0.112 | 0.429 | 0.915 | 0.783 | | 70% | 0.000 | 0.002 | 0.002 | 0.001 | 0.001 | 0.006 | 0.023 | 0.038 | 0.013 | | 80% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.001 | 0.000 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 7 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 31.488 | 28.400 | 23.381 | 27.868 | 25.298 | 33.273 | 17.354 | 22.894 | 21.964 | | 50% | 7.497 | 4.988 | 5.507 | 3.997 | 3.131 | 8.766 | 4.176 | 5.414 | 4.364 | | 60% | 0.084 | 0.094 | 0.338 | 0.159 | 0.084 | 0.395 | 0.365 | 0.464 | 0.192 | | 70% | 0.000 | 0.003 | 0.000 | 0.001 | 0.000 | 0.004 | 0.012 | 0.015 | 0.013 | | 80% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
C/Ha still does very well at suppressing the highest spikes, but trails C/Ma for long sequences of attacks and for smaller (40%-50%) spikes. C/Av and C/Bal both give pretty good showings as well, occasionally beating out both of the frontrunners. Even the avoidance sets are pretty good, to be honest. Sacred Shield seems to be the great equalizer in that regard – the synergy between avoidance and absorbs gives enough of a boost to the avoidance gear sets to make them competitive.
Avoidance sets tend to excel for long strings of attacks (again, owing to their stochastic nature) but trail in the short-attack categories. For many heroic bosses, this is a liability (example: Jin’rokh hits for around 330k on 25H without SotR active, making 3- to 4- attack strings worth considering).
It’s interesting to note that the newcomer, C/HM, often beats both the C/Ha and C/Ma sets. C/HM seems to amplify many of the benefits of the C/Ma gear set. It suppresses 40%-50% spikes more effectively and significantly improves spike suppression in the higher-threshold categories. While it generally doesn’t beat C/Ha in those higher categories, it doesn’t lose by that much either, and we’re comparing numbers that are already pretty small. If you have less than a 0.1% chance for an event to occur, it may not matter very much whether it’s 0.05% or 0.02%.
It’s also worth noting that it handily beats out all of the avoidance sets. While the Avoidance sets may show situational benefits over C/Ha or C/Ma alone, they never beat C/HM by a statistically significant margin.
With that in mind, it’s arguable that the C/HM gear set is the most balanced set to choose for overall survivability.
2-Attack Shifting Queue (“SH2″)
And finally, here’s the data for the SH2 queue:
| Set: | C/Ha | C/Ma | C/Av | C/Bal | C/HM | Ha | Avoid | Av/Mas | Mas/Av | | S% | 0.523 | 0.410 | 0.420 | 0.452 | 0.471 | 0.498 | 0.367 | 0.363 | 0.357 | | mean | 0.345 | 0.336 | 0.312 | 0.328 | 0.328 | 0.349 | 0.285 | 0.305 | 0.311 | | std | 0.132 | 0.128 | 0.146 | 0.138 | 0.126 | 0.139 | 0.152 | 0.150 | 0.139 | | ---- | ------ | --- 2 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 41.276 | 44.008 | 36.736 | 41.243 | 41.284 | 41.878 | 32.485 | 36.302 | 40.097 | | 50% | 32.197 | 25.305 | 28.077 | 31.352 | 18.239 | 32.639 | 24.245 | 20.839 | 23.389 | | 60% | 9.422 | 13.195 | 11.552 | 11.818 | 11.106 | 10.779 | 11.176 | 13.012 | 10.946 | | 70% | 8.795 | 10.712 | 11.168 | 10.620 | 10.030 | 10.223 | 10.874 | 11.740 | 10.163 | | 80% | 0.093 | 1.708 | 0.324 | 0.483 | 0.487 | 0.031 | 0.229 | 1.665 | 1.144 | | 90% | 0.093 | 1.081 | 0.324 | 0.483 | 0.309 | 0.031 | 0.229 | 0.749 | 0.694 | | ---- | ------ | --- 3 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 35.992 | 34.321 | 30.324 | 32.950 | 33.285 | 36.708 | 26.564 | 30.852 | 28.321 | | 50% | 22.890 | 18.336 | 17.386 | 16.981 | 13.163 | 23.848 | 14.039 | 14.034 | 16.854 | | 60% | 7.212 | 9.297 | 7.907 | 8.964 | 7.378 | 8.839 | 7.128 | 8.207 | 8.951 | | 70% | 0.883 | 3.096 | 2.184 | 2.186 | 1.970 | 2.100 | 2.283 | 2.997 | 3.307 | | 80% | 0.453 | 0.940 | 1.200 | 1.083 | 0.831 | 1.122 | 1.272 | 1.294 | 1.001 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 4 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 38.882 | 33.666 | 30.039 | 33.515 | 36.163 | 39.326 | 25.134 | 30.070 | 30.471 | | 50% | 17.167 | 14.259 | 15.634 | 17.740 | 7.362 | 18.552 | 12.218 | 11.486 | 11.708 | | 60% | 1.726 | 3.666 | 4.570 | 3.766 | 2.851 | 3.873 | 4.574 | 5.472 | 3.838 | | 70% | 0.013 | 0.409 | 0.527 | 0.408 | 0.228 | 0.616 | 0.979 | 1.043 | 0.762 | | 80% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.003 | 0.001 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 5 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 36.049 | 34.672 | 29.295 | 34.609 | 27.601 | 37.116 | 23.108 | 25.838 | 26.217 | | 50% | 15.356 | 8.622 | 13.507 | 9.452 | 7.314 | 17.272 | 10.928 | 9.812 | 8.924 | | 60% | 2.227 | 1.034 | 2.024 | 2.229 | 0.236 | 3.210 | 1.843 | 1.809 | 1.590 | | 70% | 0.001 | 0.056 | 0.196 | 0.004 | 0.001 | 0.340 | 0.373 | 0.328 | 0.306 | | 80% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 6 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 33.788 | 32.789 | 26.668 | 31.640 | 28.974 | 35.172 | 21.238 | 26.753 | 23.933 | | 50% | 8.891 | 8.671 | 8.309 | 10.287 | 6.049 | 10.899 | 6.364 | 7.845 | 6.687 | | 60% | 0.033 | 0.490 | 0.388 | 0.358 | 0.118 | 0.394 | 0.834 | 1.344 | 1.054 | | 70% | 0.000 | 0.003 | 0.001 | 0.002 | 0.000 | 0.022 | 0.066 | 0.101 | 0.040 | | 80% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | ---- | ------ | --- 7 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ | | 40% | 32.257 | 30.012 | 24.923 | 29.168 | 25.671 | 33.953 | 19.320 | 24.067 | 23.649 | | 50% | 8.274 | 6.811 | 7.591 | 6.405 | 4.959 | 10.420 | 5.678 | 6.757 | 5.581 | | 60% | 0.393 | 0.260 | 0.722 | 0.496 | 0.256 | 0.978 | 0.657 | 0.940 | 0.341 | | 70% | 0.000 | 0.000 | 0.001 | 0.000 | 0.000 | 0.013 | 0.027 | 0.029 | 0.019 | | 80% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | | 90% | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
The data here isn’t much different than the SH1 queue. We still see many of the same patterns, including the strength of C/HM overall. C/Ha performs a little less effectively with SH2 than with SH1, while C/Ma performs a little better, just as before. I’m not sure which is the more accurate model for a player, to be honest – do you react after one big hit, or does it take two of them before you notice the dip in your health bar?
Avoidance
First, let’s talk about avoidance. I think Wrathblood was right, in that I wasn’t giving it a fair shake. It does generally compete fairly effectively with haste, and shows a commanding lead in the long-attack and low-threshold categories. That said, I also don’t think it’s fair to toss out the high-spike categories as irrelevant. Certainly the difference between values that are less than 0.1% are of questionable relevance, but avoidance loses much more ground than that in many cases. We’re often comparing values like 0.001% to 0.3%, or 0.01% to 1%, which is well above the level of statistical relevance. One essentially eliminates that category, while the other still gives you a fair probability of seeing that sort of string in a given raid night.
Overall, I don’t think any of the Avoidance sets are that attractive when compared to the control sets. They tend to lead in categories that fall into the realm of “throughput damage” – TDR, long strings of attacks, and weaker spikes. If throughput is a problem for a given raid group, that may be a situation where switching to an avoidance set is warranted, but I don’t think that’s an accurate representation of most heroic raid groups. And given that throughput is much lower in normal-modes, I’m not sure it’s that relevant there either.
It may also be worth mentioning that one of the traditional draws of the avoidance paradigm was its passiveness. The thought was that a beginner raider might have an easier time with an avoidance set because it’s less dependent on timing their Active Mitigation. But much of the power that the avoidance gear sets gained since 5.2 is caused by Grand Crusader. So while a sloppy player may still do better with an avoidance set than with a haste or mastery gear set, the lead may not be as large as it was previously.
Don’t Count Mastery Out Yet!
Khira’s comment about the Control/Mastery gear set is worth considering as well. For a large and predictable boss attack C/Ma gives you the most on-demand mitigation to throw at that effect. And there are a lot of bosses that have this sort of effect in Tier 15. One could reasonably assume that by blunting that large special attack, you get the smoothest damage profile. Right?
Well, not necessarily. Certainly it gives you the lowest chance of dying from that special attack. But it isn’t necessarily the best overall. This is a case of local and global minimization problems – blunting the big attack may be a local minimum, but not the global minimum. The boss attacks that bookend the special attack matter, and those can change the outcome. It’s easy to imagine that getting 60% mitigation on the boss special and one melee attack (immediately before or after) from a buffed C/Ma SotR may not be as effective as covering the special and 2-3 attacks before and/or after with a 45% SotR from a haste-stacked set. It’s harder to do that amount of HP pooling without haste (or a cooldown like Holy Avenger).
Also note that there are ways to artificially improve mastery on-demand, mainly trinkets. Both of my trinkets have an on-use mastery effect right now, and both are on a one-minute cooldown. That means that I have a lot of on-demand mastery at my disposal already, so I can have large coverage uptime via haste and large mitigation from SotR at the same time, in the same gear set. There aren’t any tanking trinkets with on-use haste that I’m aware of – most of them seem to be on-equip proc effects (this is also another point in Holy Avenger’s favor, by the way – SotR isn’t recalculated on cast, so if you use a mastery trinket, you get to keep the bonus mitigation for as long as you can keep SotR refreshed, often up to 30 seconds).
There’s also the concept of “minimally sufficient cooldowns” to consider. Mel talked about this briefly a long long time ago, and I would love nothing more than to convince him to come out of the woodwork and talk about it again sometime. But the short version is that extra mitigation above what you need to survive the attack, while helpful, isn’t always necessary. This is the same logic that goes into his rationalization for haste over mastery: once SotR is large enough to make a dangerous attack less dangerous, making that SotR larger is worth less than simply getting more of them to spread around. SotR’s base mitigation is pretty high already, so it’s not clear that buffing it from 45% to 60% is always going to be a net gain. Sometimes it will be, heroic Sha of Fear being one particular example that stands out. But I think it will always come down to the details of a specific fight, namely whether a 45% SotR is a “sufficient” cooldown to survive the burst or not.
Conclusions
The real surprise in this data was the performance of the C/HM set. We’d expect that such a set would lie on a rough linear interpolation between the C/Ha and C/Ma data. But the strong synergy between haste and mastery throws a wrench into the works, creating a set that can out-perform both of those sets in many cases. It isn’t always as good as C/Ha in suppressing the largest spikes, but it’s rarely far behind, and to be fair, it wins in that category almost as much as it loses. The real benefit comes from its strong suppression of mid-range spikes, doing a better job at suppressing spikes that fall just below the peak of the distribution. And for longer strings of attacks, it has a very strong effect on the low-end spikes in the 40%-50% range.
The appealing part of this is that you’re getting broad-spectrum suppression without giving up very much at the high end. Avoidance performs much the same way, but does it less efficiently, permitting a higher number of large spikes. C/HM gives you the same effect at a fraction of the cost. And to boot, it should give you more DPS thanks to the haste stacking going on.
What does this mean for our gearing choices? Tanks at the bleeding edge may continue to go haste. Both for the DPS boost on certain fights and because it still does the best job of suppressing the highest spikes. They’re making a careful and calculated survivability-for-DPS trade-off by doing that. They’re mentally categorizing 40% and 50% “spikes” as throughput that their healers can keep up with, and for a guild clearing heroics that’s a pretty safe bet. So they focus their attention on eliminating the spikes that will cause their healers to panic, and get a nice DPS boost to help beat those enrage timers.
For players that are not on the bleeding edge – for example, players still progressing towards a normal-mode Lei Shen kill – the situation is more varied. You’re presented with a lot of gearing options, and to be honest, none of them are terrible. You can make it work with an avoidance gear set, even if it isn’t really optimal. I’d argue that the only real mistake you can make is to not take Sacred Shield. Or gem spirit, that would be bad too.
But there does seem to be a noticeable advantage to focusing on haste and mastery. The C/Av, C/Bal, and C/HM data sets show that while having some avoidance isn’t going to kill you, it’s also less effective than channeling that itemization into haste and mastery. So unfortunately, I think we’re back to the paradigm of marginalizing avoidance and trying to grab as much hit/exp/haste/mastery gear as possible.
Of course, if an item is a big upgrade, that’s a different story – the raw survivability gained by jumping 20 ilvls is going to trump stat allocation most of the time. A 522 dodge/mastery item will almost always be preferable to a 496 haste/mastery item, and potentially even a 509 haste/mastery item. But I’d argue that, for example, a thunderforged item with worse itemization may not always beat a non-thunderforged item with better itemization. This is particularly relevant to our choices of chest armor, since the T15 Retribution chest is perfectly-itemized and none of the off-set tanking options are. And dodge/parry items are probably still at the bottom of the pile, but that’s not news.
Coincidentally, the stat weights I provided AskMrRobot are already well-suited for a haste/mastery paradigm. For example, the Control/Haste preset gives haste a value of 1.0 and mastery a value of 0.9, while dodge and parry drop to 0.5 each. It looks like they’ve tweaked the mastery value down to 0.8 (and similarly for haste in the Control/Mastery preset), but that still should promote a decent balance of haste and mastery. Based on the data in this blog post, I think you could argue that mastery could be bumped back up to 0.9.
You could ask yourself whether there’s an ideal balance of haste and mastery to be had. In the C/HM set, we split the itemization equally between the two stats. In a future blog post, I’ll show data for a larger continuum of states between full haste and full mastery so we can see how the results change as we go from one extreme to the other.



