# Sacréd bleu!

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.

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

### 33 Responses to Sacréd bleu!

1. Lakh says:

“Do you react after one big hit, or does it take two of them before you notice the dip in your health bar?”

Neither really, but more the second of those two if I had to pick one. My timing is based off my health bar, with banked SotR’s being used up somewhere in the 50-75% HP range (assuming there’s no encounter specific timing involved).

As a side note, I question if we really should be calling Sacred Shield overpowered. Assuming our damage profile is comparable to other tanks when played properly, which has certainly been my impression in play, it seems to me that what Blizzard has actually created is a Nub Trap.

If we don’t take Sacred Shield – which plenty of inexperienced tanks won’t – and if we don’t keep it up 100% – which’ll be even more common – then are we under-mitigating? It’s not quite DKs-without-deathstrike (which I have seen done btw – heartstrike ftw? lol), but it does seem like what you’ve really proved is that Sacred Shield is a disproportionately important part of our mitigation.

• Theck says:

I think that’s a fair assessment. The question is whether we’re balanced around having SS, or around not having SS. Eternal Flame does a comparable amount of healing, but as a result wastes more in overhealing and does a worse job of mitigating spikes (making it inferior IMO). Selfless Healer seems weaker yet. If we’re balanced around, say, having EF or SH, then I’d say SS is overpowered; conversely, if we’re balanced around SS, then I’d agree that it’s a nub trap situation.

2. Ratayu says:

So whats the balance between haste and mastery? Is there a haste percentage we shouldn’t past say 12%? Then dump everything else into mastery?

• Theck says:

It’s not clear from this data. Going all-out haste is still very strong, and a 50/50 mix of haste and mastery performed pretty well (as described in the post). I need to run more simulations to see if there’s any sort of optimum mix, but it’s unlikely that a mix will truly “beat” haste.

3. Zoroth says:

You almost got to my big concern for the tier, but stopped short of addressing it. I’m not worried about choosing between a poorly itemized thunderforged or a well itemized normal; that’s a good problem to have. What I’m worried about is choosing between poorly itemized Tier and well itemized Thunderforged normal (Or well itemized Ret T15 chest if you’d like). Without some way to model the 4 piece, it’s impossible to figure out if we should be pushing ilvl or collecting set pieces. UGHHHHHHH MATH.

• Theck says:

I think it would be possible to model the 4-piece in this simulation without too much modification, I just haven’t coded it yet. I’ll put it on the to-do list.

• Zoroth says:

Yay! *furiously banking thunderforged ret gear*

4. Duncan says:

T,

Always a good read, but I still have a laymen’s question re: gearing strategy.

If say, you were to take a tank and make the following assumptions:
– He knows (for the most part) how to Pally tank, i.e. press his buttons correctly and bank HP
– He’ll only be doing 10s, unless invited to a 25 run
– He also knows that he’ll (for the most part) never tank a Heroic Tier

Would that simplify a gear strategy?

You know the type/amount of damage each boss does given the above (Normal 10s), so could you simply say, “Go for Control/Master!” or “Control/Haste is your friend” or “Put on your Zoot Avoidance Suit”?

I do enjoy the reading, but was wondering if you’re not on the bleeding edge of raiding is there a particular BiS tanking strategy per “raid set” if you will.

As always, thank you for all the free time you donate to this site.

-Duncan

• Theck says:

I think 10-man raiding disproportionately rewards control/haste. The survivability threshold is much lower, so you need less stamina, and haste gives you both mitigation and high DPS. So yes, if you’re limiting your focus to 10N, I think that Control/Haste is the unambiguous winner.

• Newsom says:

What Theck said. Tank DPS also matters a lot more in 10s, making control/haste even more favorable.

• Duncan says:

Thank you both for the 411. I was hoping ARM, might be able to have a, “What are you tanking the most” option when choosing your Stat Weights.

Appreciated! =)

5. Ark says:

Ok, so something that I thought of today that requires a question. If we pushed a complete Avoidance build, used the 2pc T15 so that the buff was up for the maximum amount of uptime; could we hit the “block cap” and if so, would it be worth shooting for? I only ask because with my current gear set (C/Ha build), the 2pc, and the avoidance on the gear, I can sit around the 98-99% range for Avoidance + Block.
There is probably something I’m totally missing in the equation and I’ll smack myself later but I had to ask…

• Rhandric says:

Remember, avoidance and block are 2 separate tables. So 98% A+B would require, for example, 50% A + 96% B, or 70% A + 6.66% B, or some other combination

• Rhandric says:

That 6.66% B was supposed to be 93.4% (100-6.66%…), oops

• Theck says:

As Rhandric said, avoidance and block aren’t additive anymore, they’re on separate rolls. To get block-capped you’d need 104.5% block, which is very very hard to hit even with the set bonus thanks to diminishing returns.

6. Ulrik says:

I’m starting ToT heroic modes and am just tripping 12k haste, 3500 mastery, ~1k dodge and 0 parry on top of hit/exp capping with a mix of 522 / 517 / 509. I use Haste/Armor Elixir mix and raid buffed this puts me over the 50% spell haste mark for the 8th Sacred Shield ‘tick’ (12695 * SoI 10% * raid 5%). This makes the buff duration about 32s and shield ticks just under 4s each.

Since I doubt anyone will ever reach the next tick point (~20k) passively, I think this 12.7k mark might be a convenient place for haste stackers to shift it into mastery. I don’t have any idea what the math might look at with those numbers, it just seems like a nice shifting point and where my current gear is driving me towards.

• Newsom says:

Sacred Shield doesn’t really have haste caps, you’ll still benefit from the haste point by point by getting your ticks quicker. Not to mention the DPS increase from haste.

7. Wrathblood says:

Sigh. Maybe I’ll just change the gearing section at EJ to say “Do whatever you want, it all works decently well and whatever I tell you will just be proven wrong in a week or two anyway.”

That having been said, I wonder if the Haste is helping Mastery more than the Mastery is helping the Haste. I think asking for a 75/25, 25/75 plot for Mastery vs Haste would be overdoing it.

• Jackinthegreen says:

I’d expect at least the 100/75/50/25/0 setup to compare haste and mastery, but going with every 10% to 20% is a possibility too. Theck does have the tools to be extremely thorough after all.

• Theck says:

I think the point is that all of the gearing strategies work. None are so far behind the others as to be unplayable. But Control/Haste is definitely still the strongest choice for an advanced player, and I think that’s probably the most relevant recommendation for the EJ thread. Control/Haste focusing on haste/mastery gear (and reforge mastery to reach hit/exp caps), with the caveat that you should still take large-ilvl upgrades to avoidance/(hit or exp) gear.

8. vehlin says:

How come you’re using 2 on use Mastery Trinkets? Did the SotR buff snapshotting mastery get changed?

• Theck says:

Because those are the best two stamina trinkets I have. One gets used in conjunction with Holy Avenger, the other ends up being a freebie cooldown.

9. Bram says:

Great stuff! When I last time commented on middle field between C/Ma and C/Ha, I did not notice that C/Bal set hat been spreading stats into avoidance too. And I actually wondered how it is with this C/HM set as that is what effectively most of us have. But it is nice to see, how well it performs.

10. Ratayu says:

In the control/mastery build is there a point where you stack to much mastery that it is wasted…and i should focus on haste/stam?

• Theck says:

Not particularly. We’re not hitting the 80% SotR cap, nor are we anywhere close to the block cap (though diminishing returns are starting to eat into the mastery->block% conversion).

11. Wellandus says:

After adding SS to the simulation, should you be thinking about adding SoI (might be there already) and the legendary meta gem? I suspect both of those will also pull haste ahead. Neither is reliable, but SoI proc so often in any 3-4 boss swing time frame I’d expect to see at least 1 or 2 procs. Since the legendary meta is on the RPPM system, having more haste means more average uptime. So while we can’t control it, I think we can imagine 40% coverage of the 20% physical damage reduction proc.

• Theck says:

I gave some thoughts on SoI here:
http://sacredduty.net/2013/03/22/is-nothing-sacred/#comment-3959

Certainly haste will help the uptime of the legendary meta gem, which should add even more value to the control/haste gear set. It might be something to add when I get time, though I imagine a lot of people are still fairly far off of it (I only have 8 Secrets of the Empire so far, so I’m probably another 2-3 weeks off).

• Weebey says:

Theck, I like the idea of using a probability distribution to determine the overheal % of SoI. I have one small suggestion, which I believe would make the model a little more accurate, and shouldn’t be terribly hard to implement (I say from my armchair, not having to actually code anything :))

You are proposing using a fixed probability distribution for the overheal percentage of SoI, i.e. the distribution is the same for all procs. Of course, in the real world (of Warcraft), not all SoI procs are equally likely to translate into (effective) overhealing: procs when near full health are likely to almost entirely overhealing, while procs at low health have a much greater chance to provide real healing.

Now, your model does not include tank health, but it does (obviously) track damage spikes. In any situation where the tank is going to threatened by relatively short bursts of damage–which, given the paltry mana cost of healing throughput tank damage, is essentially the only situation where one would even CARE about any sort of survivability analysis–the size of the recent “spike” is going to be reasonably good proxy for the tank’s health, which, in turn, should affect the SoI overheal distribution.

So my proposal is this: instead of a single distribution $P(x)$, consider a collection $P_1(x), P_2(x),\dots P_M(x)$, which go from skewing heavily towards $0$ (i.e. very little overhealing), to being roughly symmetric, to skewing towards $1$, and for each SoI proc, one selects the distribution on the basis of how severe the previous $N$ attack damage spike is, i.e. the worse the spike, the lower the index selected. One possible choice of distributions supported on $(0,1)$ would be $Cx^m(1-x)^n$, with mean $\frac{m}{m+n}$, and $\latex C$ is a normalization factor equal to $\sum_{i=1}^{i=n}(-1)^i\frac{n!}{i!(n-i)!(m+i+1)}$. You could probably capture the effect well enough with $\latex M=4$, and $P_j(x)=Cx^k(1-x)^{5-j}$.

I realize that this does add some complication, but I think the effect is sufficiently important that it should be accounted for. There is a sort of “mean reversion” aspect to SoI healing–the overhealing percentage is negatively correlated with damage taken–which certainly seems quite relevant for a smoothness analysis. A pure constant overheal chance is likely to underrate SoI.

• Jackinthegreen says:

One of the interesting tie-ins to this is that as the boss’s damage increases, so does the healing from SoI (via Vengeance). I’m not entirely sure how they do Vengeance anymore, but one might expect spike damage to increase Vengeance slightly which would boost SoI (and Sacred Shield) at an excellent time. SoI’s proc rate now is 20 PPM, which turns into expecting a proc every 3 seconds or so and might coincide nicely with boss swings. Given that we’re using 2.6 speed weapons it’s an 86.66_ percent chance to proc per swing, so haste would have an impact as well.

• Theck says:

Weeby: I think that approach is probably overthinking it. All we need is a function $p(x)$ which is bounded by 0 and 1 and skews appropriately. $x$ is then determined based on the last few swings worth of damage (already available in the sim), and $p$ can be either the probability of overheal or the percentage of overheal. Either would work.

The function I have in mind is the Fermi-Dirac distribution (with a negative argument):
$$f(x)=\frac{1}{e^{-(x-x_0)/\sigma} + 1}$$

For example, for $x_0=2.5$ and $\sigma = 0.3$, we get something that looks like this:
Here I’m assuming that the function represents the amount of healing successfully done, such that we can just multiply $f(x)$ times the SoI base heal size to get the net healing.

$x_0$ is the 50% breakpoint, $\sigma$ determines the “rise time” of the function. For our purposes, I’d probably use something like $x_0=1.25 – 1.5$, $\sigma = 0.2$:

and $x$ would just be the sum of the lass $N$ boss attacks worth of damage (probably 2-3 attacks depending on $x_0$ – 2 boss attacks for 1.25, 3 boss attacks for 1.5.

All of those numbers are a bit arbitrary, but they should give us the desired effect.

That said, there are some other complications with adding SoI. First, I need to add tracking for the player’s swing timer. That isn’t difficult, but it is likely to make the simulation considerably slower (probably by a factor of ~2, I think). Not a game-breaker, but it does mean that instead of taking 20-30 minutes for a data set, it will be taking an hour. Second, I’d need to implement it as an absorb and determine a reasonable duration to use to model it (probably a single boss swing duration, so 1.5 seconds). And third, it’s not clear how much we can trust the results if we’ve taken such an arbitrary approach towards the modeling.

Once I finish the next post (on Stamina), I’ll probably try and implement it though.

Also note: with the new site, you can use standard TeX syntax (i.e. just surround your code with dollar signs).

• Weebey says:

Sure, I was trying maintain the idea that overhealing percentage is stochastic (which is where your thinking was in the posted link) while also having spike dependence. The only way I can think of doing that is via a family of distributions, as I discussed in the last post. The deterministic model you just described obviously works, and there isn’t any clear way of deciding which is going to be more accurate (the model arbitrariness you mention.)

I think the arbitrariness is going to be present no matter what one does; short of an incredibly detailed (and infeasible) model, you are going to be making some very stylized assumptions about SoI that will leave out factors that are potentially relevant to actual tanking. But it is a necessary evil: SoI is a large effect, and is affected differently by our stats (no benefit from avoidance/mastery, heavy benefit from haste/accuracy) such that one cannot ignore it. I think the only option is to do the best you can, and simply admit that the result is perhaps not as air-tight as other results.

By the way, very much looking forward to the stam post.

12. blizzhoof says:

I just want to reiterate something I posted on another one of your blogs: I really think you should consider adding the 3000 mastery raid buff to your simulation. Considering the synergistic effect that Haste and Mastery have, I think it would make C/Ha and C/HM perform even better.

• Theck says:

Yeah, that’s an easy change to make. It’s just a matter of me remembering to do it next time I work on the code.