It’s been almost two months since we took a close look at damage smoothing and gearing strategies. In that post, we definitively concluded that the “control” gearing scheme, which focuses on reaching hit and expertise caps before other stats, was better at eliminating spike events than more traditional gearing methods. However, that benefit comes at a price: increased overall damage intake.
There were a few things I wanted to clean up about those simulations, however. The first and least technical issue was the formatting of the output. It was a pain to figure out what was going on in the tables, even for me, because they were labeled with a gear set number rather than a descriptive title. I found myself constantly looking back at the gear set list to figure out which set was which, especially when coming back to the post after a few weeks. While this isn’t a hard thing to fix, it’s something that sorely needed to be done, so I’ve corrected that problem for the current round of simulations.
The second issue I wanted to address was the actual stat allocations of those gear sets. For starters, I was pretty cavalier about allocating stats as I saw fit in the last round, especially with mastery (lol @ a gear set with 58 mastery rating?). However, we’re rarely going to be able to pick up ideal gear. On Theck, I’m “stuck” with about 2500 dodge rating and 3000 parry rating, as well as about 1700 mastery rating. I’d love to convert all of that to haste, but there’s just no way to do it. Thus, instead of having complete freedom with the allocation of the secondary stats, this time I’ve enforced a minimum amount of mastery, dodge, and parry.
In addition, none of them were actually hit- or expertise-capped. They all stopped at least 30 points shy of each cap. Initially, I meant to do this so that I had some head room to test adding additional amounts of each stat – for example, to see whether adding 30 mastery or 30 hit was a better choice when you were very close to hit cap. Unfortunately, I never got around to doing those simulations at the time. And there’s a further problem with that plan which would have emerged had I tried: in a Monte-Carlo simulation such as this, 30 points worth of stat is a small enough change that the effect tends to be smaller than statistical variations.
However, it’s definitely a point we need to address as there’s an ongoing debate about how critical it is to reach or exceed hit and expertise caps. The arguments against strictly enforcing caps are generally that being a few tenths of a percent under cap isn’t a problem because those events are so statistically rare that they’re not worth worrying about. The arguments for strict capping focus on the fact that the entire point of the control strategy is to eliminate those events, and that it isn’t worth giving up the certainty that your resource generators will hit just to gain a tiny amount of extra damage reduction from TDR stats.
To try and answer this question, I’ve re-worked most of the gear sets to make them more useful, as well as updating them to reflect a more realistic gear level for entering heroic content. I modeled them off of my stats on Theck, but adjusted them slightly by choosing nice round numbers. The gear sets all have 11k strength, and then have 17150 rating worth of secondary stats, which is approximately what you have at an average gear level of 496. That amount of rating is enough to hit and expertise cap and still have 9500 left over to distribute amongst avoidance, mastery, or haste.
We’re also going to look at results for two different encounter situations. The first is our gold standard: a Patchwerk boss with a 1.5-second swing timer that just beats the hell out of us. This is our best model for a boss whose melee attacks are the most threatening element of the encounter for us as tanks. However, Schroom brought up an interesting question over at maintankadin about whether avoidance gearing might still be preferable in multi-mob situations, such as phase two of Grand Empress Shek’zeer.
So we’ll also analyze data for the case of a Patchwerk boss with a 0.25-second swing timer, which approximates having 6 mobs on you at a time, each of which has a 1.5-second swing timer individually. This also assumes that they’re all hitting you at a staggered pace, which is a middle-of-the-road situation. However, if all of their timers were aligned, careful timing of SotR would allow you to preferentially cover the high-spike situations, making it even more powerful. Of course, the converse is true: if you time SotR badly, you might take worse spikes in that situation. However, that situation ends up just being a close approximation to the usual Patchwerk model, so it doesn’t tell us anything new either. If we’re hoping to be fair about things, the staggered-attack case is a more realistic “worst case” situation for a talented tank, so we’ll stick with that.
The gear sets I’ve worked out are shown in the table below. I’ve ignored the case of expertise soft-capping, as our last round of simulations have sufficiently convinced us that there’s no advantage to stopping there. Instead, we’ll look at a variety of Control and Avoidance gear sets.
| Set: | C/Ha | C/Ma | C/Av | C/Bal | C/Bal-NC | Avoid | Av/Mas | Mas/Av | | Str | 11000 | 11000 | 11000 | 11000 | 11000 | 11000 | 11000 | 11000 | | Parry | 2000 | 2000 | 4000 | 2375 | 2375 | 7325 | 6000 | 4000 | | Dodge | 2000 | 2000 | 4000 | 2375 | 2375 | 7325 | 6000 | 4000 | | Mastery | 1500 | 5500 | 1500 | 2375 | 2575 | 1500 | 4150 | 8150 | | Hit | 2550 | 2550 | 2550 | 2550 | 2450 | 500 | 500 | 500 | | Exp | 5100 | 5100 | 5100 | 5100 | 5000 | 500 | 500 | 500 | | Haste | 4000 | 0 | 0 | 2375 | 2375 | 0 | 0 | 0 |
The first three are control/haste, control/mastery, and control/avoidance, which are almost exactly what you’d expect. They all have 2000 dodge rating, 2000 parry rating, and 1500 mastery rating standard thanks to our enforced minimums, and then allocate stats for hit and expertise caps. The leftover 4000 rating then goes into the appropriate stat, split evenly between dodge and parry in the Control/Avoidance case.
The next two are what I call a “control/balance” gear set. In this case I instead split that 9500 rating evenly amongst parry, dodge, mastery, and haste, such that each gets 2375 rating. The goal is twofold: one, to have a reference set that’s a more realistic estimate to what most players will be using, and also to determine whether it’s better to focus heavily on one secondary stat or to spread that itemization over different areas. The second set is a “flawed” control/balance gear set that doesn’t quite reach hit or expertise caps. It’s 100 rating below each cap, with that excess itemization shifted into mastery. Again, the goal here is to see whether there’s any significant advantage to strictly observing the caps, or whether it’s OK to sit ~0.3% below each cap.
The remaining three gear sets are avoidance- and mastery-based sets. We have an avoidance set that drops our hit and expertise ratings to 500 each, and puts all 14650 of the leftover rating into dodge and parry. We also have an avoidance/mastery set that shifts a little of that avoidance back into mastery. And finally, we have a mastery/avoidance set that focuses on beefing mastery up while still keeping an above-average amount of avoidance itemization. Hopefully, these sets will span the space of cases we’re interested in.
Damage Smoothness Analysis – Regular Boss
The table below lists the results for our simple Patchwerk boss, arranged by gear set and the number of attacks over which we perform the moving average. Each entry is the percentage of all events that fall into that window: so for example, the “80%” line contains data that tells us the percentage of all spikes that exceed 80% of max theoretical throughput (i.e., none of the attacks being mitigated or avoided).
| Set: | C/Ha | C/Ma | C/Av | C/Bal | C/Bal-NC | Avoid | Av/Mas | Mas/Av | | S% | 0.4543 | 0.4152 | 0.4151 | 0.4379 | 0.4358 | 0.3534 | 0.3544 | 0.3538 | | mean | 0.5799 | 0.5478 | 0.5595 | 0.5678 | 0.5670 | 0.5351 | 0.5312 | 0.5261 | | std | 0.1319 | 0.1300 | 0.1431 | 0.1337 | 0.1340 | 0.1669 | 0.1612 | 0.1542 | | ------ | ------ | --- 2 | Attack | Moving | Average | ------ | ------ | ------ | | 80% | 10.1583 | 12.6313 | 11.5818 | 10.9463 | 11.2483 | 15.4707 | 16.2007 | 17.6840 | | 90% | 6.8462 | 7.5065 | 7.7990 | 7.1493 | 7.3093 | 10.3928 | 10.0268 | 9.6502 | | ------ | ------ | --- 3 | Attack | Moving | Average | ------ | ------ | ------ | | 80% | 10.7928 | 9.4153 | 11.4168 | 11.0675 | 11.3118 | 12.5280 | 11.2655 | 11.5750 | | 90% | 0.9430 | 1.1973 | 1.2717 | 1.0898 | 1.1250 | 3.3348 | 3.1488 | 2.9970 | | ------ | ------ | --- 4 | Attack | Moving | Average | ------ | ------ | ------ | | 80% | 2.4950 | 3.5423 | 3.2400 | 2.8768 | 3.0308 | 6.0340 | 6.5250 | 5.5388 | | 90% | 0.0000 | 0.0193 | 0.0163 | 0.0000 | 0.0778 | 2.0045 | 2.1345 | 2.3832 | | ------ | ------ | --- 5 | Attack | Moving | Average | ------ | ------ | ------ | | 80% | 2.3895 | 1.4245 | 2.3105 | 1.5755 | 1.6275 | 4.2990 | 3.8393 | 3.2715 | | 90% | 0.0000 | 0.0110 | 0.0128 | 0.0000 | 0.0462 | 1.2333 | 1.2523 | 0.7850 | | ------ | ------ | --- 6 | Attack | Moving | Average | ------ | ------ | ------ | | 80% | 0.3575 | 0.0168 | 0.0290 | 0.1855 | 0.3030 | 2.3022 | 2.4695 | 2.2470 | | 90% | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0080 | 0.4150 | 0.3663 | 0.3828 | | ------ | ------ | --- 7 | Attack | Moving | Average | ------ | ------ | ------ | | 80% | 1.2565 | 0.0000 | 1.3030 | 0.7735 | 0.7867 | 2.4328 | 1.8857 | 1.1427 | | 90% | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.1210 | 0.1348 | 0.1515 |
There’s a lot of data here, and we could spend days comparing and discussing different features. However, I’m going to try and summarize the major points and leave the nitty-gritty discussion for later, either in the comments or a future blog post if it’s warranted.
First, we see the same features that we observed last time. Control builds are better at reducing the frequency of spikes than the avoidance or mastery builds are, and within the control subset the haste sub-build does the best job of eliminating 90% spikes. For strings of 4 or more attacks, 90% spikes are all but non-existent (<0.0001%) in the control/haste build. The haste sub-build is also best at reducing “short” 80% spikes (2-4 attacks) while the mastery sub-build is significantly better at removing “long” 80% spikes (5+ attacks).
In fact, we see a resurgence of 80% events in the control/haste build at 7 attacks – this is a feature that existed in the old data as well, but I didn’t discuss it at the time. Because of the periodic on/off nature of SotR’s coverage, the representation of 80% spikes will slowly oscillate as it decays with increasing number of attacks.
We also see that the control/avoidance build isn’t significantly worse than the haste or mastery sub-builds, but it also doesn’t appear to have any clear advantage either. My advice here is similarly unchanged: control/avoidance is less dependent on player skill than the other sub-builds, so it might be a good stepping stone between Avoidance and control/haste for a tank that’s not as confident in their rotation.
The avoidance builds, including the mastery-focused version, are all inferior for spike prevention. There is literally no case where an avoidance build can keep up with a properly-played control build. The mastery/avoid build outperforms its peers, somewhat predictably, but it’s still far behind the control offerings. The only thing that the avoidance builds excel at is total damage reduction (TDR): the mastery/avoidance build takes between 4% and 10% less damage than the control builds (relatively DR – in absolute terms it’s ~2%-5.5%).
For the more graphically/visually inclined, here’s another way to see those results. Below are the histograms of all 5-attack spike events for the control/haste and avoidance gear sets:
Again, the point here is that while the Avoidance set gives you a lower mean, the distribution is much broader and includes plenty of dangerous spikes in the 80%-100% range. The control set sacrifices some of that raw TDR to preferentially eliminate those high-damage spikes and narrow up the damage distribution, resulting in smoother and less threatening damage intake.
None of that is news, though – we knew all of that. What is news is what we learn from the control/balance gear sets. First of all, they generally lag control/haste slightly, but perform almost as well. That’s in large part due to their similarity – they have almost the same amount of avoidance (barely above the minimum), about 800 more mastery, and still have almost half the haste that control/haste does. In short, the performance of the Balance gear set is still primarily dominated by the generous amount of haste and mastery it contains. This just emphasizes that you don’t need to stack 6000 haste to get the sort of benefits we saw in the last round of simulations. It’s an excellent control stat even in small amounts, so feel free to stack it early and stack it often, because it will pay great dividends.
Furthermore, the un-capped version of the balance set shows us exactly what hit- and expertise-caps give us. By dropping below the cap, even by as little as 0.3%, we have a significant increase in spikes in the 4- to 6-attack region. Whereas the default balance set effectively eliminates 90% spikes for 4+ attack strings, those strings still show up in the uncapped versions until we get to 7-attack strings. Admittedly, their representation is small: generally on the order of tenths or hundredths of percent. But it’s still several orders of magnitude worse than the capped case, and the benefit is less than 0.14% less damage taken overall.
In my opinion, that’s a bad trade-off. I’m not going to notice that amount of overall damage reduction, and while I’m not terribly likely to take a 4-attack 90% spike either (0.0778%), that’s still high enough to happen once every 1-2 hours, on average. I’d rather avoid that potential wipe entirely and eat the extra damage. I think this data supports the argument that it’s better to be a little over the caps and waste a few points of itemization than try to maximize your numerical “score” and chance running into those potentially-deadly spike situations.
Damage Smoothness Analysis – AoE Tanking
We can repeat this for the 0.25-second swing timer, but in this case we want to average over more attacks. Averaging over 2 attacks is sort of pointless, as that’s only half a second, and you’re not likely to be taking enough throughput damage to die in such a short period while AoE tanking. The concept is that overall damage taken per second is similar to the first situation, but it’s split amongst more mobs – thus, since we have 6 mobs, each attack is only 1/6 the size of our regular model. What we’re concerned about is spike lengths on the order of those used in the earlier model, so we look at groups of 15, 20, 25, and 30 swings. These correspond to 3.75-, 5.00-, 6.25-, and 7.50-second spike windows.
| Set: | C/Ha | C/Ma | C/Av | C/Bal | C/Bal-NC | Avoid | Av/Mas | Mas/Av | | S% | 0.4537 | 0.4152 | 0.4155 | 0.4381 | 0.4358 | 0.3543 | 0.3544 | 0.3544 | | mean | 0.6333 | 0.6105 | 0.6114 | 0.6238 | 0.6227 | 0.5756 | 0.5775 | 0.5805 | | std | 0.1932 | 0.2079 | 0.1996 | 0.1977 | 0.1982 | 0.2065 | 0.2099 | 0.2186 | | ------ | ------ | --- 15 | Attack | Moving | Average | ------ | ------ | ------ | | 80% | 8.7618 | 8.7283 | 7.1310 | 8.4270 | 8.4127 | 4.4684 | 5.3790 | 7.0031 | | 90% | 1.1410 | 1.0177 | 0.8511 | 1.0665 | 1.1059 | 0.4231 | 0.4815 | 0.5841 | | ------ | ------ | --- 20 | Attack | Moving | Average | ------ | ------ | ------ | | 80% | 3.8405 | 3.9843 | 3.3426 | 3.7652 | 3.8137 | 2.3411 | 2.7956 | 3.7285 | | 90% | 0.1936 | 0.2284 | 0.1825 | 0.1965 | 0.2323 | 0.1147 | 0.1550 | 0.2055 | | ------ | ------ | --- 25 | Attack | Moving | Average | ------ | ------ | ------ | | 80% | 1.0867 | 1.2077 | 1.0433 | 1.0653 | 1.1755 | 1.0666 | 1.3407 | 1.9188 | | 90% | 0.0010 | 0.0174 | 0.0183 | 0.0083 | 0.0197 | 0.0245 | 0.0406 | 0.0627 | | ------ | ------ | --- 30 | Attack | Moving | Average | ------ | ------ | ------ | | 80% | 0.1583 | 0.1771 | 0.2115 | 0.1528 | 0.2231 | 0.4740 | 0.6308 | 0.9288 | | 90% | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0027 | 0.0053 | 0.0085 | 0.0097 |
The main thing to notice here is how much avoidance improves. By using a much shorter swing timer, we’re closer to the stochastic situation that favors avoidance. Avoidance does a crappy job when it’s got one chance to work in a 1.5-second period, but when you give it six chances to trigger in that same time period, statistical averaging works to its benefit. The avoidance sets not only give lower overall damage taken, but tend to do a better job with the shorter (15- and 20-attack) spikes.
However, as we move to longer time scales the control sets start to pull ahead. By the time we reach a 25-attack sequence (6.25-second window), control/haste has pulled solidly ahead in all categories, and beats avoidance by a factor of 20 or more in spikes above 90%.
So it depends on what you’re trying to optimize. Avoidance will give smoother overall intake for periods of <4 seconds, control/haste will generally equal or outperform avoidance at 5+ seconds. Note that this analysis is also ignoring cooldowns, which would tend to favor control strategies since you can optimize your SotR coverage by banking HP during cooldown effects and burning it between cooldowns. For example, you could alternate cooldown-SotR-SotR-cooldown-SotR-SotR-, so that you have 6 seconds of SotR uptime in-between other DR cooldowns to stretch out your coverage window.
Mostly, this post has been re-confirming results we already had. The big news is that reaching or exceeding hit and expertise caps is just as important as many had surmised. Sitting 0.3% below hit and expertise caps is basically admitting that about once per raid night, you’re going to take a big spike event due to missed generators, and the only benefit is a negligible amount of overall damage reduction. That’s rare enough that you probably can get away with it, but there also doesn’t seem to be much point in risking it. Better to slightly over-cap and be sure than to duck the cap and risk causing an unnecessary wipe.
In addition, it looks like the AoE scenario isn’t all that different from the basic Patchwerk model. Control builds still perform strongly over long enough time periods, as expected. However, an argument can definitely be made for avoidance gearing if you’re concerned with high throughput in short time periods – i.e. a 3-4 second burst window from a large amount of adds. I don’t think it’s necessarily worth overhauling your gear for such a situation, especially if the encounter also has single-target sections, but if we end up with an extremely difficult fight that relies on us AoE tanking a lot of dangerous mobs (heroic Nefarian adds come to mind), it might be an avenue we’d consider.
Finally, since I know we get a fair number of warriors wandering through here, I want to mention that these results aren’t strictly applicable to warriors, as your mechanics are slightly different. I expect that the same sorts of trends will exist (i.e. hit/exp for smoothness, avoidance for TDR), but it’s impossible to estimate numbers based on the paladin results. It would just be guesswork, at best. Luckily for you, I’m working on an identical set of simulations for Warriors, so hopefully I’ll have results for you within the next few weeks.