# Stamina: Updated Smoothness Data

In the last post, I mentioned in passing that there was an odd thing happening when a gear set dropped from 7k to 6k haste.  I elaborated a little on what I thought was the cause: we were crossing the 33.33% spell haste mark, which dropped Sacred Shield’s tick interval to less than 4.5 seconds, thus ensuring it was up for every third boss attack.  That all made sense, and seemed like a good explanation for the strange jump in spike presence when dropping below that haste breakpoint.

What didn’t make sense was that we were getting a very large jump in damage taken at that point too.  The damage mitigation of Sacred Shield should be very continuous and slowly-varying, so that was a hint that something else was going on, and warranted further investigation.  So I did….

… and found out that it was being caused by a bug.  The code was occasionally resetting Sacred Shield a little early thanks to a debugging line that had been commented out (i.e. made inactive), but managed to get un-commented at some point along the way.  Thus, some of the time it would arbitrarily grant your next Sacred Shield bubble earlier than it should have if the previous one had been consumed.

This had a few noticeable effects on the results.  First, it exaggerated the discontinuity at the 33% spell haste threshold, which is the effect that alerted us to it in the first place.  The reason we saw the jump in damage mitigation at that point is that all of the sudden we were getting a lot more early refreshes due to a Moire-like effect.

The second effect is that it obviously made Sacred Shield stronger than it should have been.  It’s still quite powerful, but this bug was causing the code to overestimate its value.  Thus, in the corrected results I present below, we expect higher damage intake across the board as well as less effective spike prevention.

Finally, it has an odd effect on stats.  Since we’re getting free refreshes early, it actually means that it was undervaluing haste.  Haste gives you SS bubbles faster, but that advantage is reduced somewhat when the code was artificially gives you a bubble early some of the time.  Thus, we expect haste to increase in value relative to other stats in both the smoothing department and the TDR department.

Since we have a lot of data to slog through, let’s get started.  This post will be data-heavy and analysis-light, since most of the analysis given in previous posts is still accurate.  I’m going to try and highlight the things that have changed.

Secondary Stat Smoothness Analysis – Gear

First, let’s return to the secondary stat smoothness analysis.  This is the one where we try all sorts of gear sets with different secondary stat allocations.  The gear sets are the same as before, though I’ve brought back Control/Haste+Mastery and the pure Haste build just for completeness.  The stats on each gear set are given below:

|    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 |
|     Sta | 28000 | 28000 | 28000 | 28000 | 28000 | 28000 | 28000 |  28000 |  28000 |
|   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 |

Data – 150k Swings

Here’s the data for the 10N model boss:

Finisher = SH1, Boss Attack = 150k, data set smooth-10000-54

| Set: |   C/Ha |   C/Ma |   C/Av |  C/Bal |   C/HM |     Ha |  Avoid | Av/Mas | Mas/Av |
| mean |  0.370 |  0.361 |  0.354 |  0.360 |  0.362 |  0.355 |  0.323 |  0.331 |  0.341 |
|  std |  0.128 |  0.129 |  0.152 |  0.139 |  0.128 |  0.128 |  0.158 |  0.148 |  0.139 |
|   S% |  0.522 |  0.410 |  0.419 |  0.452 |  0.472 |  0.499 |  0.366 |  0.363 |  0.357 |
|   HP |   755k |   755k |   755k |   755k |   755k |   755k |   755k |   755k |   755k |
|  nHP |  5.034 |  5.034 |  5.034 |  5.034 |  5.034 |  5.034 |  5.034 |  5.034 |  5.034 |
| ---- | ------ |  --- 2 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  20% | 22.700 | 29.013 | 23.363 | 24.014 | 26.152 | 20.559 | 20.444 | 23.374 | 26.473 |
|  30% |  6.953 |  4.207 |  8.496 |  2.608 |  2.516 |  4.532 |  6.757 |  3.614 |  4.156 |
| ---- | ------ |  --- 3 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  20% | 54.132 | 57.541 | 48.624 | 52.663 | 58.336 | 49.501 | 42.242 | 48.225 | 48.747 |
|  30% | 27.413 | 19.642 | 25.915 | 14.937 | 14.729 | 23.603 | 20.554 | 16.322 | 18.614 |
|  40% |  1.513 |  3.732 |  3.881 |  2.584 |  2.450 |  1.978 |  3.709 |  3.920 |  4.283 |
|  50% |  0.000 |  0.023 |  0.274 |  0.024 |  0.000 |  0.000 |  0.280 |  0.158 |  0.122 |
| ---- | ------ |  --- 4 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  30% | 51.312 | 47.154 | 47.174 | 42.967 | 45.038 | 46.142 | 38.660 | 38.607 | 41.522 |
|  40% | 16.894 | 16.704 | 17.272 | 16.254 | 17.122 | 12.803 | 13.689 | 15.421 | 13.154 |
|  50% |  4.832 |  2.201 |  5.650 |  2.156 |  2.157 |  3.678 |  4.483 |  2.808 |  3.111 |
|  60% |  0.061 |  0.209 |  0.335 |  0.233 |  0.193 |  0.099 |  0.517 |  0.583 |  0.510 |
| ---- | ------ |  --- 5 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 39.951 | 39.884 | 35.843 | 37.449 | 40.071 | 35.061 | 28.730 | 33.249 | 33.285 |
|  50% | 16.712 | 13.088 | 18.232 | 14.927 | 13.321 | 12.918 | 13.923 | 12.362 | 12.036 |
|  60% |  1.823 |  2.506 |  4.506 |  2.852 |  2.049 |  0.612 |  3.569 |  3.563 |  2.547 |
|  70% |  0.080 |  0.230 |  0.745 |  0.200 |  0.058 |  0.128 |  0.766 |  0.540 |  0.556 |
|  80% |  0.000 |  0.009 |  0.025 |  0.009 |  0.005 |  0.000 |  0.082 |  0.062 |  0.069 |
| ---- | ------ |  --- 6 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 61.898 | 60.106 | 53.983 | 58.784 | 62.406 | 56.114 | 44.454 | 50.722 | 52.255 |
|  50% | 36.677 | 32.226 | 33.623 | 32.905 | 32.038 | 30.645 | 26.056 | 25.518 | 27.926 |
|  60% | 12.653 | 11.299 | 13.852 | 11.918 | 10.236 | 10.124 | 10.410 | 11.511 | 10.098 |
|  70% |  1.428 |  1.728 |  3.906 |  2.605 |  0.857 |  1.482 |  3.269 |  2.675 |  2.055 |
|  80% |  0.019 |  0.079 |  0.620 |  0.139 |  0.022 |  0.089 |  0.620 |  0.389 |  0.338 |
|  90% |  0.000 |  0.004 |  0.043 |  0.005 |  0.001 |  0.011 |  0.100 |  0.071 |  0.069 |
| 100% |  0.000 |  0.000 |  0.001 |  0.000 |  0.000 |  0.000 |  0.006 |  0.001 |  0.002 |
| ---- | ------ |  --- 7 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  50% | 55.597 | 52.773 | 49.689 | 52.379 | 53.030 | 49.731 | 39.605 | 41.014 | 45.659 |
|  60% | 30.524 | 26.001 | 27.718 | 28.772 | 27.060 | 25.182 | 20.731 | 23.245 | 22.259 |
|  70% |  9.065 |  8.487 | 10.887 | 10.841 |  8.191 |  6.198 |  8.438 |  7.881 |  7.726 |
|  80% |  2.241 |  1.160 |  3.455 |  2.287 |  1.667 |  1.444 |  2.748 |  2.315 |  1.705 |
|  90% |  0.076 |  0.068 |  0.489 |  0.260 |  0.103 |  0.066 |  0.578 |  0.378 |  0.262 |
| 100% |  0.000 |  0.002 |  0.005 |  0.002 |  0.001 |  0.003 |  0.039 |  0.027 |  0.034 |
| 110% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.008 |  0.005 |  0.007 |

Not a whole lot has changed here.  Haste has seen a little improvement, but not very much.  It’s still better than mastery at eliminating the highest spikes in a category until we get into the 7-attack category, where mastery’s stochastic block inches it ahead.  C/HM performs pretty well in this low-damage category as well, arguably as good as C/H, albeit at a DPS cost.

Data – 250k Swings

Now for the 10H/25N boss:

Finisher = SH1, Boss Attack = 250k, data set smooth-10000-53

| Set: |   C/Ha |   C/Ma |   C/Av |  C/Bal |   C/HM |     Ha |  Avoid | Av/Mas | Mas/Av |
| mean |  0.390 |  0.377 |  0.368 |  0.375 |  0.378 |  0.377 |  0.336 |  0.345 |  0.355 |
|  std |  0.129 |  0.129 |  0.152 |  0.140 |  0.129 |  0.129 |  0.159 |  0.150 |  0.140 |
|   S% |  0.523 |  0.410 |  0.419 |  0.452 |  0.471 |  0.499 |  0.366 |  0.362 |  0.357 |
|   HP |   755k |   755k |   755k |   755k |   755k |   755k |   755k |   755k |   755k |
|  nHP |  3.021 |  3.021 |  3.021 |  3.021 |  3.021 |  3.021 |  3.021 |  3.021 |  3.021 |
| ---- | ------ |  --- 2 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  20% | 54.327 | 57.943 | 50.704 | 54.520 | 57.903 | 52.367 | 45.420 | 51.608 | 54.981 |
|  30% | 44.852 | 39.832 | 42.398 | 43.459 | 45.381 | 42.809 | 37.786 | 39.011 | 37.803 |
|  40% | 16.688 | 18.278 | 17.627 | 17.476 | 18.118 | 14.038 | 14.979 | 16.213 | 16.977 |
|  50% |  6.991 |  4.890 |  8.450 |  2.683 |  2.680 |  4.604 |  6.693 |  3.520 |  4.838 |
|  60% |  0.156 |  0.746 |  1.021 |  0.689 |  0.527 |  0.143 |  1.103 |  1.029 |  0.644 |
| ---- | ------ |  --- 3 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  40% | 49.264 | 39.300 | 42.411 | 43.781 | 48.055 | 44.661 | 35.319 | 37.762 | 36.571 |
|  50% | 29.561 | 23.042 | 26.579 | 15.851 | 16.212 | 26.999 | 21.023 | 16.317 | 21.391 |
|  60% |  6.911 | 10.785 | 10.271 |  9.627 |  8.853 |  7.761 |  8.966 |  9.600 |  9.269 |
|  70% |  1.536 |  3.492 |  2.785 |  2.683 |  2.704 |  2.026 |  2.957 |  3.781 |  4.223 |
|  80% |  0.323 |  0.616 |  0.865 |  0.647 |  0.558 |  0.542 |  1.110 |  1.093 |  0.833 |
|  90% |  0.000 |  0.047 |  0.048 |  0.015 |  0.000 |  0.000 |  0.076 |  0.084 |  0.053 |
| ---- | ------ |  --- 4 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  50% | 56.781 | 52.448 | 49.803 | 45.523 | 48.859 | 53.922 | 40.873 | 39.346 | 46.674 |
|  60% | 33.474 | 31.087 | 31.783 | 34.582 | 33.344 | 30.369 | 25.869 | 26.871 | 25.203 |
|  70% | 17.003 | 12.678 | 16.798 | 16.233 | 14.823 | 12.906 | 13.223 | 13.225 | 13.060 |
|  80% |  8.689 |  4.933 |  9.319 |  6.910 |  4.197 |  6.643 |  7.492 |  4.765 |  4.966 |
|  90% |  1.136 |  1.688 |  1.770 |  1.271 |  1.424 |  1.058 |  1.786 |  1.850 |  1.981 |
| 100% |  0.300 |  0.414 |  0.658 |  0.327 |  0.284 |  0.281 |  0.827 |  0.654 |  0.628 |
| 110% |  0.008 |  0.061 |  0.107 |  0.077 |  0.042 |  0.029 |  0.206 |  0.186 |  0.108 |
| ---- | ------ |  --- 5 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  60% | 59.483 | 55.688 | 51.792 | 56.686 | 56.561 | 55.647 | 43.142 | 45.840 | 47.831 |
|  70% | 40.480 | 37.121 | 35.733 | 37.290 | 38.462 | 36.053 | 28.242 | 31.063 | 33.100 |
|  80% | 27.276 | 21.955 | 25.709 | 23.432 | 21.921 | 23.470 | 19.943 | 18.292 | 17.793 |
|  90% | 11.237 |  9.947 | 12.957 | 10.586 | 10.110 |  9.378 |  9.840 |  9.320 |  8.741 |
| 100% |  4.183 |  3.352 |  6.709 |  3.880 |  2.789 |  3.361 |  5.288 |  3.884 |  3.615 |
| 110% |  0.309 |  0.911 |  1.791 |  1.461 |  0.740 |  0.351 |  1.700 |  1.577 |  1.384 |
| 120% |  0.027 |  0.267 |  0.293 |  0.213 |  0.100 |  0.120 |  0.423 |  0.521 |  0.515 |
| 130% |  0.001 |  0.043 |  0.088 |  0.051 |  0.012 |  0.031 |  0.180 |  0.180 |  0.151 |
| 140% |  0.000 |  0.002 |  0.004 |  0.001 |  0.000 |  0.000 |  0.030 |  0.037 |  0.016 |
| ---- | ------ |  --- 6 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  70% | 63.681 | 58.649 | 54.080 | 58.665 | 61.755 | 58.844 | 44.043 | 49.095 | 51.853 |
|  80% | 49.886 | 42.187 | 43.512 | 43.182 | 43.426 | 44.341 | 34.345 | 34.477 | 35.127 |
|  90% | 30.485 | 27.290 | 27.892 | 26.206 | 25.868 | 26.951 | 21.186 | 21.653 | 22.258 |
| 100% | 17.015 | 14.738 | 17.648 | 14.466 | 12.701 | 15.379 | 13.362 | 12.233 | 12.433 |
| 110% |  6.924 |  5.901 |  8.643 |  7.910 |  5.064 |  6.212 |  6.617 |  6.431 |  5.914 |
| 120% |  1.512 |  1.780 |  3.449 |  2.732 |  1.066 |  1.601 |  2.830 |  2.746 |  2.187 |
| 130% |  0.344 |  0.419 |  1.454 |  0.765 |  0.076 |  0.492 |  1.336 |  1.007 |  0.882 |
| 140% |  0.019 |  0.079 |  0.349 |  0.077 |  0.018 |  0.084 |  0.424 |  0.358 |  0.300 |
| 150% |  0.001 |  0.014 |  0.091 |  0.006 |  0.001 |  0.023 |  0.163 |  0.102 |  0.103 |
| 160% |  0.000 |  0.001 |  0.005 |  0.002 |  0.000 |  0.002 |  0.035 |  0.036 |  0.025 |
| 170% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.006 |  0.005 |  0.005 |
| 180% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.001 |  0.001 |  0.000 |
| ---- | ------ |  --- 7 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  80% | 67.922 | 63.019 | 59.700 | 61.358 | 63.740 | 63.525 | 48.731 | 51.069 | 53.904 |
|  90% | 52.045 | 48.114 | 45.093 | 46.050 | 47.873 | 47.795 | 35.112 | 37.118 | 39.348 |
| 100% | 38.218 | 31.246 | 33.097 | 32.830 | 32.301 | 34.092 | 25.051 | 24.625 | 25.820 |
| 110% | 23.400 | 17.473 | 21.107 | 21.873 | 18.835 | 19.504 | 15.385 | 14.997 | 15.775 |
| 120% | 11.159 |  9.020 | 10.803 | 10.849 |  8.886 |  8.928 |  8.120 |  8.162 |  8.504 |
| 130% |  4.807 |  3.897 |  5.992 |  4.860 |  3.490 |  3.574 |  4.703 |  4.199 |  4.294 |
| 140% |  1.187 |  1.164 |  2.434 |  1.750 |  1.348 |  1.214 |  2.204 |  2.013 |  1.311 |
| 150% |  0.270 |  0.202 |  0.970 |  0.602 |  0.396 |  0.320 |  1.004 |  0.707 |  0.443 |
| 160% |  0.025 |  0.020 |  0.198 |  0.162 |  0.073 |  0.031 |  0.277 |  0.209 |  0.156 |
| 170% |  0.000 |  0.003 |  0.001 |  0.002 |  0.002 |  0.006 |  0.045 |  0.044 |  0.058 |
| 180% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.001 |  0.015 |  0.015 |  0.015 |
| 190% |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |  0.003 |  0.005 |  0.002 |

Again, we see haste continue to perform well at the higher spike categories, but there isn’t a huge difference with previous data sets.  It still falls behind in the stochastic limit, and trails in isolated spots, but does a better job of reducing spikes overall than the other options.

Data – 350k Swings

Finally, our 25H boss:

Finisher = SH1, Boss Attack = 350k, data set smooth-10000-52

| Set: |   C/Ha |   C/Ma |   C/Av |  C/Bal |   C/HM |     Ha |  Avoid | Av/Mas | Mas/Av |
| mean |  0.397 |  0.382 |  0.373 |  0.383 |  0.386 |  0.385 |  0.343 |  0.351 |  0.362 |
|  std |  0.128 |  0.130 |  0.152 |  0.141 |  0.130 |  0.129 |  0.159 |  0.150 |  0.141 |
|   S% |  0.523 |  0.410 |  0.419 |  0.452 |  0.472 |  0.499 |  0.366 |  0.362 |  0.358 |
|   HP |   755k |   755k |   755k |   755k |   755k |   755k |   755k |   755k |   755k |
|  nHP |  2.158 |  2.158 |  2.158 |  2.158 |  2.158 |  2.158 |  2.158 |  2.158 |  2.158 |
| ---- | ------ |  --- 2 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  30% | 54.184 | 57.816 | 50.504 | 54.584 | 57.929 | 52.341 | 45.553 | 51.635 | 54.312 |
|  40% | 48.931 | 43.293 | 45.537 | 48.438 | 47.393 | 46.907 | 40.798 | 41.732 | 41.059 |
|  50% | 22.808 | 28.980 | 23.253 | 24.346 | 26.366 | 20.853 | 20.356 | 23.287 | 25.939 |
|  60% | 15.162 | 15.085 | 16.635 | 17.418 | 15.120 | 13.183 | 14.506 | 15.113 | 14.394 |
|  70% | 11.912 |  8.926 | 13.651 |  7.842 |  7.404 | 11.136 | 12.303 |  8.761 |  9.103 |
|  80% |  0.161 |  1.459 |  0.999 |  0.695 |  0.506 |  0.146 |  1.126 |  1.175 |  1.483 |
|  90% |  0.127 |  0.418 |  0.844 |  0.546 |  0.348 |  0.143 |  0.990 |  0.982 |  0.639 |
| ---- | ------ |  --- 3 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  50% | 57.074 | 57.812 | 48.826 | 53.168 | 58.627 | 54.232 | 42.471 | 48.295 | 48.161 |
|  60% | 46.547 | 35.270 | 40.640 | 43.544 | 37.484 | 41.770 | 34.365 | 33.883 | 32.861 |
|  70% | 32.767 | 26.239 | 32.499 | 30.979 | 20.905 | 31.113 | 28.618 | 23.522 | 25.511 |
|  80% | 10.379 | 14.224 | 12.970 | 10.229 |  9.710 | 11.248 | 11.193 | 11.643 | 13.991 |
|  90% |  5.008 |  5.126 |  7.770 |  6.719 |  5.890 |  5.976 |  7.096 |  7.111 |  5.798 |
| 100% |  1.494 |  3.457 |  2.733 |  2.708 |  2.717 |  2.041 |  2.970 |  3.647 |  4.036 |
| 110% |  0.333 |  0.805 |  1.027 |  0.764 |  0.556 |  0.596 |  1.303 |  1.195 |  1.099 |
| 120% |  0.000 |  0.052 |  0.114 |  0.036 |  0.000 |  0.000 |  0.162 |  0.186 |  0.146 |
| 130% |  0.000 |  0.026 |  0.048 |  0.017 |  0.000 |  0.000 |  0.076 |  0.074 |  0.052 |
| ---- | ------ |  --- 4 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  70% | 59.217 | 54.900 | 54.673 | 57.632 | 53.989 | 57.008 | 48.098 | 47.227 | 50.113 |
|  80% | 40.377 | 40.341 | 37.417 | 37.736 | 38.705 | 37.945 | 31.175 | 32.140 | 36.523 |
|  90% | 30.866 | 21.198 | 27.995 | 27.665 | 27.966 | 28.556 | 22.937 | 23.090 | 19.457 |
| 100% | 13.576 | 12.627 | 14.346 | 16.291 | 14.281 | 11.201 | 12.021 | 13.097 | 10.900 |
| 110% |  8.694 |  5.762 |  9.495 |  8.043 |  8.025 |  7.142 |  7.949 |  6.898 |  6.312 |
| 120% |  5.019 |  2.807 |  5.585 |  2.410 |  2.977 |  3.928 |  4.458 |  3.110 |  3.561 |
| 130% |  0.489 |  1.368 |  1.098 |  1.254 |  1.459 |  0.585 |  1.345 |  1.720 |  1.976 |
| 140% |  0.263 |  0.429 |  0.690 |  0.357 |  0.352 |  0.385 |  0.920 |  0.782 |  0.782 |
| 150% |  0.009 |  0.092 |  0.102 |  0.086 |  0.057 |  0.030 |  0.204 |  0.202 |  0.170 |
| 160% |  0.006 |  0.044 |  0.087 |  0.068 |  0.038 |  0.028 |  0.181 |  0.177 |  0.110 |
| ---- | ------ |  --- 5 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
|  80% | 65.490 | 62.774 | 57.587 | 61.874 | 63.608 | 62.398 | 49.518 | 52.278 | 57.261 |
|  90% | 56.952 | 48.754 | 48.803 | 49.451 | 51.764 | 53.463 | 40.807 | 41.324 | 42.984 |
| 100% | 39.003 | 36.552 | 33.508 | 37.486 | 38.130 | 35.898 | 27.221 | 31.054 | 30.808 |
| 110% | 27.878 | 25.264 | 26.175 | 27.833 | 27.280 | 24.884 | 21.065 | 21.061 | 20.984 |
| 120% | 18.893 | 14.895 | 18.804 | 15.440 | 16.556 | 16.016 | 14.447 | 13.948 | 12.795 |
| 130% | 10.296 |  7.161 | 10.998 | 10.182 |  9.577 |  8.751 |  8.554 |  8.108 |  7.450 |
| 140% |  4.290 |  3.355 |  6.775 |  5.162 |  3.002 |  3.550 |  5.648 |  4.335 |  4.062 |
| 150% |  0.783 |  1.349 |  2.841 |  1.591 |  1.240 |  0.603 |  2.423 |  2.100 |  1.819 |
| 160% |  0.191 |  0.657 |  1.305 |  0.855 |  0.366 |  0.222 |  1.330 |  1.044 |  0.978 |
| 170% |  0.030 |  0.267 |  0.285 |  0.235 |  0.103 |  0.125 |  0.419 |  0.473 |  0.518 |
| 180% |  0.003 |  0.104 |  0.156 |  0.104 |  0.057 |  0.034 |  0.263 |  0.281 |  0.301 |
| 190% |  0.000 |  0.015 |  0.028 |  0.011 |  0.007 |  0.000 |  0.094 |  0.111 |  0.088 |
| 200% |  0.000 |  0.003 |  0.003 |  0.001 |  0.000 |  0.000 |  0.030 |  0.031 |  0.022 |
| ---- | ------ |  --- 6 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
| 100% | 63.532 | 58.136 | 52.739 | 58.916 | 61.791 | 59.520 | 43.661 | 49.346 | 50.626 |
| 110% | 51.860 | 46.531 | 44.403 | 50.157 | 49.884 | 47.543 | 36.245 | 37.720 | 38.793 |
| 120% | 40.761 | 35.198 | 34.973 | 33.654 | 35.808 | 36.376 | 27.296 | 28.500 | 29.747 |
| 130% | 29.361 | 23.450 | 26.015 | 25.456 | 25.301 | 25.646 | 20.029 | 19.633 | 20.487 |
| 140% | 20.548 | 14.873 | 18.660 | 18.012 | 14.284 | 18.427 | 14.605 | 13.646 | 13.831 |
| 150% |  8.730 |  8.894 | 11.042 |  9.770 |  7.942 |  8.419 |  8.660 |  8.185 |  8.265 |
| 160% |  5.244 |  4.011 |  7.239 |  5.430 |  4.020 |  5.141 |  5.703 |  5.331 |  4.196 |
| 170% |  2.411 |  1.779 |  3.834 |  2.763 |  1.053 |  2.296 |  3.101 |  2.500 |  2.371 |
| 180% |  0.483 |  0.637 |  1.808 |  1.282 |  0.511 |  0.688 |  1.701 |  1.438 |  1.123 |
| 190% |  0.265 |  0.242 |  0.989 |  0.197 |  0.067 |  0.381 |  0.964 |  0.667 |  0.584 |
| 200% |  0.004 |  0.081 |  0.190 |  0.079 |  0.016 |  0.043 |  0.296 |  0.313 |  0.281 |
| ---- | ------ |  --- 7 | Attack | Moving | Avg.-- | ------ | ------ | ------ | ------ |
| 120% | 61.023 | 57.190 | 51.807 | 54.107 | 57.313 | 57.034 | 41.765 | 45.130 | 48.563 |
| 130% | 50.736 | 44.161 | 43.401 | 44.980 | 47.764 | 46.326 | 34.243 | 34.933 | 37.238 |
| 140% | 41.940 | 31.846 | 34.947 | 37.077 | 34.785 | 38.072 | 27.156 | 27.042 | 27.614 |
| 150% | 28.043 | 22.872 | 24.477 | 26.571 | 25.060 | 24.928 | 18.812 | 18.451 | 19.944 |
| 160% | 18.939 | 14.241 | 18.328 | 17.192 | 15.452 | 15.934 | 13.799 | 13.304 | 12.601 |
| 170% | 12.203 |  9.027 | 12.248 | 10.905 |  9.212 |  9.447 |  9.056 |  8.053 |  8.848 |
| 180% |  6.625 |  4.665 |  7.329 |  7.161 |  5.257 |  4.806 |  5.649 |  5.165 |  5.066 |
| 190% |  2.948 |  2.272 |  4.421 |  3.007 |  2.739 |  2.313 |  3.694 |  3.177 |  2.467 |
| 200% |  1.079 |  1.138 |  2.061 |  1.529 |  1.395 |  1.141 |  1.834 |  1.837 |  1.281 |

As before, haste excels in the top 3 or 4 damage ranges in each category.  Not a whole lot of new information here either.  The most surprising part is that the bug didn’t seem to be overvaluing haste as much as I expected.  It may simply be that the bug wasn’t as problematic as it could have been due to other interactions that similarly affected the mastery set.  Or maybe I just over-estimated how much of an effect the bug had in the first place.

Let’s see if the stamina data has changed much.

Stamina Comparisons – Gear

We’re using the same five gear sets as the last post. C/Ha and C/Ma for our benchmarks, and then three stamina sets.  The first is the trinket conversion rate (4k haste for 6k stamina), the second is the gem conversion rate (4k haste for 3k stamina).  C/St3 just converts some of the 8000 haste of C/St2 into mastery.

|    Set: |  C/Ha | C/St1 | C/St2 | C/St3 |  C/Ma |
|     Str | 15000 | 15000 | 15000 | 15000 | 15000 |
|     Sta | 28000 | 34000 | 31000 | 31000 | 28000 |
|   Parry |  1500 |  1500 |  1500 |  1500 |  1500 |
|   Dodge |  1500 |  1500 |  1500 |  1500 |  1500 |
| Mastery |  1500 |  1500 |  1500 |  4750 | 13500 |
|     Hit |  2550 |  2550 |  2550 |  2550 |  2550 |
|     Exp |  5100 |  5100 |  5100 |  5100 |  5100 |
|   Haste | 12000 |  8000 |  8000 |  4750 |     0 |

Data – 150k Swings

Again, we’ll test our 10N boss first:

Finisher = SH1, Boss Attack = 150k, data set smooth-10000-56

| Set: |   C/Ha |  C/St1 |  C/St2 |  C/St3 |   C/Ma |
| mean |  0.371 |  0.397 |  0.397 |  0.391 |  0.362 |
|  std |  0.128 |  0.133 |  0.133 |  0.132 |  0.129 |
|   S% |  0.523 |  0.482 |  0.482 |  0.454 |  0.410 |
|   HP |   755k |   876k |   816k |   816k |   755k |
|  nHP |  5.034 |  5.843 |  5.439 |  5.439 |  5.034 |
|  has |  12000 |   8000 |   8000 |   4750 |      0 |
| ---- |  --- 2 | Attack | Moving | Avg.-- | ------ |
|  20% | 22.749 | 20.931 | 26.875 | 28.063 | 29.033 |
|  30% |  6.979 |  0.627 |  2.114 |  3.325 |  4.183 |
| ---- |  --- 3 | Attack | Moving | Avg.-- | ------ |
|  30% | 27.641 |  9.657 | 13.986 | 17.342 | 19.706 |
|  40% |  1.491 |  0.781 |  0.853 |  1.152 |  3.740 |
|  50% |  0.000 |  0.000 |  0.000 |  0.011 |  0.023 |
| ---- |  --- 4 | Attack | Moving | Avg.-- | ------ |
|  30% | 51.621 | 39.828 | 46.886 | 48.352 | 47.278 |
|  40% | 17.041 | 12.727 | 16.866 | 14.805 | 16.793 |
|  50% |  4.853 |  0.969 |  1.557 |  1.537 |  2.250 |
|  60% |  0.064 |  0.000 |  0.073 |  0.071 |  0.208 |
| ---- |  --- 5 | Attack | Moving | Avg.-- | ------ |
|  40% | 40.307 | 34.595 | 40.056 | 39.117 | 40.028 |
|  50% | 16.833 |  8.102 | 13.235 | 12.060 | 13.173 |
|  60% |  1.873 |  0.700 |  1.393 |  1.758 |  2.527 |
|  70% |  0.074 |  0.010 |  0.076 |  0.075 |  0.232 |
|  80% |  0.000 |  0.000 |  0.000 |  0.000 |  0.007 |
| ---- |  --- 6 | Attack | Moving | Avg.-- | ------ |
|  50% | 37.026 | 22.789 | 34.094 | 29.987 | 32.365 |
|  60% | 12.829 |  4.994 |  8.961 |  9.746 | 11.411 |
|  70% |  1.418 |  0.045 |  1.099 |  0.951 |  1.731 |
|  80% |  0.017 |  0.000 |  0.001 |  0.029 |  0.090 |
|  90% |  0.000 |  0.000 |  0.000 |  0.000 |  0.003 |
| ---- |  --- 7 | Attack | Moving | Avg.-- | ------ |
|  50% | 55.902 | 44.770 | 55.480 | 52.236 | 52.989 |
|  60% | 30.812 | 18.308 | 27.914 | 26.135 | 26.232 |
|  70% |  9.193 |  3.293 |  8.847 |  7.201 |  8.632 |
|  80% |  2.270 |  0.199 |  1.557 |  1.063 |  1.203 |
|  90% |  0.081 |  0.001 |  0.104 |  0.007 |  0.076 |
| 100% |  0.000 |  0.000 |  0.000 |  0.000 |  0.002 |

As before, stamina continues to come out ahead.  The trinket version (C/St1) shows a considerable margin, the gem version’s less so.  Both versions have seen their leads considerably lessened though.  We’re no longer seeing as many large order-of-magnitude gaps as before, though a few are still there.  Stamina shouldn’t have had any interaction with the bug, so this seems to confirm that we were overvaluing haste and mastery in the last few posts.

Data – 250k Swings

Finisher = SH1, Boss Attack = 250k, data set smooth-10000-55

| Set: |   C/Ha |  C/St1 |  C/St2 |  C/St3 |   C/Ma |
| mean |  0.389 |  0.415 |  0.415 |  0.407 |  0.376 |
|  std |  0.128 |  0.133 |  0.133 |  0.134 |  0.130 |
|   S% |  0.522 |  0.482 |  0.482 |  0.455 |  0.411 |
|   HP |   755k |   876k |   816k |   816k |   755k |
|  nHP |  3.021 |  3.506 |  3.263 |  3.263 |  3.021 |
| ---- |  --- 2 | Attack | Moving | Avg.-- | ------ |
|  30% | 44.835 | 27.844 | 47.965 | 48.519 | 39.834 |
|  40% | 16.695 | 16.685 | 19.379 | 20.753 | 18.229 |
|  50% |  6.928 |  0.627 |  2.096 |  3.128 |  4.911 |
|  60% |  0.147 |  0.000 |  0.466 |  0.730 |  0.751 |
| ---- |  --- 3 | Attack | Moving | Avg.-- | ------ |
|  40% | 49.074 | 49.012 | 50.430 | 51.822 | 39.107 |
|  50% | 29.299 |  9.782 | 14.358 | 18.038 | 22.977 |
|  60% |  6.939 |  2.851 |  7.055 |  8.487 | 10.796 |
|  70% |  1.529 |  0.795 |  0.848 |  1.119 |  3.533 |
|  80% |  0.306 |  0.000 |  0.000 |  0.042 |  0.626 |
|  90% |  0.000 |  0.000 |  0.000 |  0.013 |  0.042 |
| ---- |  --- 4 | Attack | Moving | Avg.-- | ------ |
|  50% | 56.611 | 43.105 | 47.910 | 51.596 | 52.273 |
|  60% | 33.395 | 22.972 | 34.675 | 34.049 | 30.926 |
|  70% | 16.869 |  9.358 | 13.501 | 14.602 | 12.670 |
|  80% |  8.617 |  1.583 |  3.025 |  3.463 |  4.923 |
|  90% |  1.115 |  0.292 |  0.967 |  1.144 |  1.731 |
| 100% |  0.268 |  0.000 |  0.066 |  0.117 |  0.433 |
| 110% |  0.007 |  0.000 |  0.000 |  0.000 |  0.072 |
| ---- |  --- 5 | Attack | Moving | Avg.-- | ------ |
|  60% | 59.442 | 48.023 | 59.659 | 58.173 | 55.535 |
|  70% | 40.213 | 32.244 | 38.413 | 38.677 | 36.919 |
|  80% | 27.083 | 12.842 | 23.219 | 20.973 | 21.773 |
|  90% | 11.140 |  2.939 |  9.958 |  9.575 |  9.918 |
| 100% |  4.097 |  0.759 |  2.364 |  2.304 |  3.380 |
| 110% |  0.298 |  0.071 |  0.233 |  0.387 |  0.955 |
| 120% |  0.028 |  0.000 |  0.038 |  0.089 |  0.281 |
| 130% |  0.002 |  0.000 |  0.000 |  0.000 |  0.045 |
| 140% |  0.000 |  0.000 |  0.000 |  0.000 |  0.003 |
| ---- |  --- 6 | Attack | Moving | Avg.-- | ------ |
|  80% | 49.834 | 34.352 | 48.294 | 43.318 | 41.953 |
|  90% | 30.239 | 17.863 | 28.385 | 25.971 | 27.184 |
| 100% | 16.774 |  6.042 | 12.333 | 11.954 | 14.625 |
| 110% |  6.853 |  1.275 |  5.252 |  4.275 |  5.820 |
| 120% |  1.466 |  0.033 |  0.828 |  1.139 |  1.777 |
| 130% |  0.333 |  0.001 |  0.017 |  0.109 |  0.429 |
| 140% |  0.017 |  0.000 |  0.001 |  0.009 |  0.086 |
| 150% |  0.000 |  0.000 |  0.000 |  0.000 |  0.013 |
| ---- |  --- 7 | Attack | Moving | Avg.-- | ------ |
|  90% | 51.853 | 39.900 | 51.290 | 48.524 | 47.951 |
| 100% | 37.961 | 22.500 | 33.930 | 31.424 | 31.089 |
| 110% | 23.201 | 10.541 | 19.930 | 16.645 | 17.281 |
| 120% | 10.984 |  3.282 |  8.909 |  7.780 |  8.934 |
| 130% |  4.684 |  1.053 |  3.053 |  2.699 |  3.845 |
| 140% |  1.168 |  0.208 |  1.050 |  0.741 |  1.172 |
| 150% |  0.249 |  0.002 |  0.189 |  0.139 |  0.223 |
| 160% |  0.021 |  0.000 |  0.001 |  0.002 |  0.018 |
| 170% |  0.000 |  0.000 |  0.000 |  0.000 |  0.003 |

Again, a solid win for stamina, but at a much reduced lead, at least for gem swaps.    Trinket swaps are still a flat-out win by a large margin.

Data – 350k Swings

Finisher = SH1, Boss Attack = 350k, data set smooth-10000-51

| Set: |   C/Ha |  C/St1 |  C/St2 |  C/St3 |   C/Ma |
| mean |  0.398 |  0.422 |  0.422 |  0.413 |  0.383 |
|  std |  0.129 |  0.133 |  0.133 |  0.134 |  0.130 |
|   S% |  0.522 |  0.483 |  0.482 |  0.455 |  0.411 |
|   HP |   755k |   876k |   816k |   816k |   755k |
|  nHP |  2.158 |  2.504 |  2.331 |  2.331 |  2.158 |
| ---- |  --- 2 | Attack | Moving | Avg.-- | ------ |
|  40% | 49.022 | 40.344 | 48.450 | 48.483 | 43.319 |
|  50% | 22.900 | 19.886 | 26.298 | 28.645 | 29.060 |
|  60% | 15.323 | 15.355 | 17.130 | 16.479 | 15.022 |
|  70% | 12.052 |  0.613 |  2.084 |  3.072 |  8.893 |
|  80% |  0.161 |  0.000 |  0.619 |  0.712 |  1.453 |
|  90% |  0.131 |  0.000 |  0.000 |  0.000 |  0.403 |
| ---- |  --- 3 | Attack | Moving | Avg.-- | ------ |
|  60% | 46.718 | 39.737 | 49.339 | 40.739 | 35.243 |
|  70% | 32.919 | 13.398 | 14.730 | 17.745 | 26.191 |
|  80% | 10.503 |  6.912 |  9.690 | 10.376 | 14.237 |
|  90% |  5.178 |  0.838 |  2.989 |  3.719 |  5.121 |
| 100% |  1.525 |  0.759 |  0.860 |  1.085 |  3.465 |
| 110% |  0.353 |  0.000 |  0.000 |  0.039 |  0.795 |
| 120% |  0.000 |  0.000 |  0.000 |  0.016 |  0.055 |
| 130% |  0.000 |  0.000 |  0.000 |  0.000 |  0.032 |
| ---- |  --- 4 | Attack | Moving | Avg.-- | ------ |
|  70% | 59.459 | 46.700 | 51.823 | 51.213 | 54.834 |
|  80% | 40.727 | 32.743 | 39.771 | 38.545 | 40.335 |
|  90% | 31.198 | 17.590 | 26.492 | 21.848 | 21.237 |
| 100% | 13.789 |  9.362 | 13.329 | 14.323 | 12.595 |
| 110% |  8.843 |  2.703 |  8.292 |  3.881 |  5.795 |
| 120% |  5.101 |  0.924 |  1.630 |  1.940 |  2.796 |
| 130% |  0.499 |  0.063 |  0.968 |  0.557 |  1.380 |
| 140% |  0.278 |  0.052 |  0.066 |  0.111 |  0.436 |
| 150% |  0.009 |  0.000 |  0.052 |  0.087 |  0.080 |
| 160% |  0.007 |  0.000 |  0.000 |  0.000 |  0.034 |
| ---- |  --- 5 | Attack | Moving | Avg.-- | ------ |
|  90% | 57.303 | 42.564 | 53.495 | 47.479 | 48.820 |
| 100% | 39.424 | 32.256 | 38.364 | 38.293 | 36.630 |
| 110% | 28.273 | 17.653 | 28.107 | 23.406 | 25.308 |
| 120% | 19.148 |  8.624 | 16.206 | 14.246 | 14.852 |
| 130% | 10.426 |  2.628 |  8.215 |  5.924 |  7.099 |
| 140% |  4.357 |  0.796 |  2.640 |  2.318 |  3.398 |
| 150% |  0.804 |  0.177 |  0.910 |  1.249 |  1.339 |
| 160% |  0.215 |  0.039 |  0.183 |  0.197 |  0.630 |
| 170% |  0.034 |  0.000 |  0.037 |  0.081 |  0.258 |
| 180% |  0.005 |  0.000 |  0.007 |  0.018 |  0.108 |
| 190% |  0.001 |  0.000 |  0.000 |  0.001 |  0.014 |
| 200% |  0.000 |  0.000 |  0.000 |  0.000 |  0.002 |
| ---- |  --- 6 | Attack | Moving | Avg.-- | ------ |
| 110% | 52.349 | 39.300 | 52.428 | 46.700 | 46.664 |
| 120% | 41.139 | 27.819 | 38.181 | 34.191 | 35.300 |
| 130% | 29.689 | 13.639 | 27.188 | 21.015 | 23.417 |
| 140% | 20.845 |  7.252 | 13.596 | 12.826 | 14.926 |
| 150% |  8.896 |  2.891 |  8.533 |  7.673 |  8.858 |
| 160% |  5.392 |  0.779 |  2.896 |  2.209 |  3.968 |
| 170% |  2.504 |  0.041 |  0.828 |  1.089 |  1.733 |
| 180% |  0.507 |  0.002 |  0.039 |  0.231 |  0.631 |
| 190% |  0.280 |  0.000 |  0.013 |  0.066 |  0.240 |
| 200% |  0.006 |  0.000 |  0.002 |  0.007 |  0.074 |
| ---- |  --- 7 | Attack | Moving | Avg.-- | ------ |
| 130% | 51.289 | 36.460 | 49.677 | 44.510 | 44.160 |
| 140% | 42.462 | 24.666 | 36.270 | 32.524 | 31.861 |
| 150% | 28.426 | 14.059 | 26.602 | 23.477 | 22.944 |
| 160% | 19.249 |  8.613 | 16.063 | 12.465 | 14.234 |
| 170% | 12.436 |  3.379 |  8.884 |  7.693 |  9.014 |
| 180% |  6.783 |  1.510 |  5.022 |  4.267 |  4.707 |
| 190% |  3.008 |  0.491 |  1.891 |  1.533 |  2.233 |
| 200% |  1.099 |  0.132 |  0.827 |  0.692 |  1.112 |

I think we can still call this one for stamina, though there are a few areas where haste is catching up to the gem swap set.  Overall though, the stamina set still outperforms C/Ha. For every category in which they tie, there are 2-3 where stamina wins.  And we’re still seeing factors of 2 or more improvement in many areas.  But relatively few of the factors of 10 that we saw in earlier sims.

Conclusions

So, the bug in the code was definitely inflating the relative value of stamina compared to haste by undervaluing the latter.  I think it’s safe to say that stamina is still the survivability king, but it’s not as head-and-shoulders above haste as the earlier simulations made it seem.  It’s still the dominant choice for trinket slots though, secondary effects nonwithstanding.

And again, this entire comparison is based on purely physical boss throughput.  In practice, a decent chunk of fights contain non-trivial amounts of magical damage, which shifts the comparison much farther towards stamina.  And on top of that, stamina doesn’t take the same sort of micromanaging that it does to get the levels of performance we’re seeing out of haste with the SH1 queue.

That said, the gem trades are getting close enough that we’re not losing that much survivability by gemming haste.  It’s still a net loss, but experienced tanks might feel more comfortable making that trade for DPS knowing that the loss isn’t as severe as previously predicted.

Mel and I discussed this over e-mail, and I felt his insight was worth quoting:

I think the sim now underrates Stamina, though – I think healing effects and healer reactions (and just general all around quality as an oops-proof stat) give a somewhat larger edge to Stam for raw survival.  While the sim probably offers an upper-bound for the value of haste/mastery, given that it plays almost perfectly, it probably offers a lower bound for stamina’s value.

…..
I suspect fairly strongly that just allowing for some incidental healing will vastly inflate the value of stamina, and somewhat inflate haste and mastery.

I think he’s probably correct in that prediction.  Apart from the differential benefits that the bug was introducing between the different secondary stats, which was a relatively small effect, the majority of what the bug did was introduce a chunk of excess passive absorption, which is basically how we’d model incidental healing.  It seems quite likely that if we implemented a passive, “dumb healer” that just cast Power Word: Shield or Renew on the tank, stamina would leap out ahead again like it did in previous sims.

Which is enough of a motivator that I think I need to buckle down and implement the one mechanic I’ve been avoiding for quite some time: Seal of Insight.  I’ve been avoiding it for a few reasons.  It will be time consuming to implement and bug-check, for starters.  And I expect it to be a large performance hit – the code will probably run about two times slower, maybe more, with the addition of melee swing tracking and another short-term buff.  And there are still a lot of unanswered questions about how to properly model the benefits of SoI.  But it’s exactly the sort of “dumb healing” that Mel wants, with the caveat that it scales with our haste as well.  The common-sense assumption is that SoI healing will inflate haste’s value, but the “dumb healing” aspect may very well provide a stronger benefit to stamina than haste.

Luckily, Weeby and I have had some good discussions in the comments that have given me a good idea how to model it effectively.  I’m still not looking forward to it, but at this point it’s one of the last puzzle pieces, and it really needs to be put in.

Before I get to that (and partly to buy myself some time to do it), I do have two more analyses I want to do with the current code, looking at haste->mastery and haste->stamina trades in finer detail.  And I still have the T15 4-piece to test now that it’s implemented.  So there’s plenty of stuff I can be simulating and posting about while I work on the new code.

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

### 54 Responses to Stamina: Updated Smoothness Data

1. Zothor says:

As far as the performance hits—is there a practical way, without redesigning the software you use into an @home model, for anyone to remotely offer up computing power to run this stuff for you?

• Theck says:

I think it’s fairly unlikely that will help. Right now we’re looking at 300-400s data runs per gear set, so it’s not of the order of magnitude that an @home model would be necessary. I’ve gotten used to generating data far in advance of writing blog posts about it anyway, it mostly becomes annoying when I’m debugging (though I can often use shorter runs for that).

2. Duncan says:

Very noob question Theck, but until I read this post, for whatever reason, I’ve been tanking in SoI and now that seems to be incorrect.

Otherwise I think you would have had this modeled all along.

What Seal do you normally tank in 10 Normal? Perhaps SoI isn’t need and more damage is?

• Theck says:

I’m not sure what makes you conclude that tanking in SoI is incorrect.

It’s a limited model. SoI is a relatively small effect compared to the other effects we’re considering, which is why it wasn’t in the model to begin with.

3. Bram says:

So it was a code bug at the end. Well, those happens whole time. But nice you were able to find it.

Speaking about code, could you put into blog repository helper functions needed by your Matlab code, please? I was trying to run it and was missing function shift, which should be hidden behind:

• Theck says:

Sure, I just uploaded shift.m to the repository. I also put a copy in the \blog\ folder with the rest of the Monte Carlo simulations just in case you aren’t working with the entire directory structure.

• Bram says:

Thank you! It is running now. I wanted to run it with my own stats to compare where I am and was interested in the code itself and how you built it up. More eyes more see.

4. Atrineas says:

So, a Death Knight question if you don’t mind, as I don’t know any other theorycrafter. A guildie and I were discussing the value of haste for Blood DKs. Our reasoning being that it’ll global cap us. It would come with the downside obviously of having smaller blood shields, but as you hit more often you’ll be able to DS more often as well. So, purely to experiment with it in 5-mans and tier 13 raids, how much haste would a Blood DK need to get global capped, and would it be worth experimenting with?

• Theck says:

Do death knights have a talent equivalent to Sanctity of Battle? The global cooldown incurred by melee abilities (i.e. Death Strike, probably most other DK melee attacks) doesn’t naturally get reduced by haste. It’s only the GCD incurred by spell abilities that does so (Death Coil is probably an example of this).

So unless you have a talent that causes haste to reduce your melee GCDs, you can’t global cap at all. If there is such a talent (as in the case for paladins), it would take 50% melee haste to global cap. It takes 50% spell haste to global cap for spells.

Due to the spell haste raid buff your spell haste is always greater than or equal to your melee haste, so you’ll hit that automatically if you get 50% melee haste.

• Atrineas says:

No, the GCD of all melee attacks is 1sec for DK. However the runeregen can’t keep up with that, so there’s death zones in your rotation where there’s nothing to press. As haste increases the runeregen it would reduce the amount of deathzone. More DS and HS give more runic, which gives more RS, which in turn gives more death runes or other runes depending on your level 75 talent. Not to mention more DS/min would refresh your bloodshield more often. Yes, the heals and shields would be smaller, but the smaller shields would stack up, evening out the loss I think. Unless I made an assumption somewhere that’s completely false.

• Theck says:

No, that makes sense. Though mastery could still just be better based on the magnitude of the effect.

5. Please don’t forget to include Glyph of the Battle Healer, it makes SoI so much more powerful, imo.

• Celendus says:

Those heals cannot hit the tanking paladin, so they don’t really fit into the sim.

• Shalcker says:

They do reduce healing required for other targets, allowing healers to focus more on tank – and stamina dominance hinges heavily on healer behaviour.

• Theck says:

I think it’s a dubious claim that GoBH has a large effect on healer patterns. By itself, it’s small heals distributed over a large amount of time. And much of it ends up as overheal or redundant with existing HoTs and AoE healing effects. In any event, it’s not likely to have a large enough effect on how much attention the healers have to pay attention to *you* to matter.

6. Weebey says:

I’m not seeing the intuitive argument Mel is making, and you are agreeing with. If anything, my intuitions would cut the other way: I would think that including “dumb” background healing would tend to improve the comparative position of haste/mastery, since those procs are a (slightly) higher percentage of our max health, and hence should have a larger impact on the size of damage spikes.

I’m not claiming there isn’t an argument here, but I would like to see it spelled out a little more clearly.

• Weebey says:

Last phrase should read “probability of damage spikes.”

• Meloree says:

The problem with trying to justify an intuitive argument – it’s intuitive. I’ll take a stab at it anyway.

It might not be obvious from what was quoted, but I was arguing that incidental healing (“dumb background healing”, hots and AoEs and SoI procs and whatnot) will tend to inflate the value of haste/mastery relative to avoidance, and stamina even further, especially when imperfect play is considered. Incidental healing will be fairly constant over any window you might choose to consider – whether you’ve taken damage or not, whether you’re full health or not. Given that, naturally spikey damage builds (avoidance) are pretty clearly going to make poor use of incidental healing. They’ll simply create a lot of overheal, and a lot of underheal situations. Haste/Mastery – the smoothness stats, will naturally make better use of incidental healing. By taking more frequent, but smaller hits, this incidental healing has less overheal – and is also insufficient less regularly. I doubt we disagree at all so far.

Now, I tend to take a pretty narrow view of these charts – I only ever really look at 3 and 4 attack columns, because a 3-5s window is the longest I consider a realistic spike window. Theck and I disagree about this a lot, but in my experience with the 25s of expansions past, by the time 5s has past, you’re either full health again, or you’re covered in cooldowns, or you’re dead. So what I consider, when looking at stamina vs. mitigation in those strings of 3-4 attacks is the healing gap: What is the minimum required healing for you to not be dead?

In the 3atk/350k column, C/Ha requires 150k healing to avoid all potential deaths. C/St1 requires 90k. In 4atk/350k, C/Ha requires 529k healing, and C/St1 requires 438k. If you add incidental healing in equal degree, the difference in the amount of intervention required between the two increases. At a glance, this is true for all attack ranges except 7, in the 350k table, just in case you dislike my narrow view of 3-4 attacks as being the critical columns.

As far as imperfect play goes – during wrath/Cataclysm the best I managed to do over the course of a full fight was roughly a 1.53s GCD average over 10 minutes. Thats roughly 98% efficient, and it’s pretty close to an upper bound – not many people ran a tighter rotation than I did. This is important, because the sim provides an upper-bound value for haste and mastery (and hit/exp) – they’re active stats that require maintenance of good rotational skills to see maximum value. I regularly saw parses from good tanks – in well progressed heroic mode guilds – who weren’t better than ~80% efficient at their rotations. Those tanks will see much less benefit from haste and control. Being more than 90% efficient in your rotation places you in the upper half a percent of tanks in WoW. Stamina does not require perfect play – I strongly suspect that the sim’s valuation of stamina (for survival, clearly other stats have ancillary benefits) is a lower bound value.

• Meloree says:

Dammit, can’t edit. Last paragraph, the sim provides an upper-bound value for HASTE and mastery, and a lower-bound value for stamina. Whoops.

• Theck says:

In any event, I’ll go back and fix it for you.

• Weebey says:

Thanks Meloree, that is precisely the kind of argument I was looking for. I think I am still right that you will see a larger (relative) impact on the size of damage spikes from incidental healing for secondary stats, but I take the point that that may not be the most important metric to judge their relative effectiveness.

The point about perfect play is a good one; in fact, I think it can be made even stronger. A common response to the argument that stamina is more effective with imperfect play is “instead of gearing to cover your problems, just gear properly and learn to play better.”

Setting aside the issue of “proper” gearing for optimal play, one response to this is Mel’s above: almost all(*) tanks, even very good ones in world first contenting guilds, are not even close to optimal play.

But now consider a very, very good tank. Even he will mess up occasionally; he will sometimes mismanage his holy power, misplan his cd usage, fail to react quickly enough to dangerous situations, get distracted by other things happening in the fight, and so on. Because he is a good tank, these things happen much less frequently than they would for most of us; but they do still happen.

Even though these mistakes are rare, they are still crucially important for thinking about tank survivability, since the occasions when his life is threatened are going to be very strongly concentrated near these mistake periods. Even in 25H, most tank deaths or near deaths occur when a mistake of some kind has been made; at the very least, the distribution is going to be far more weighted towards these times than others. So it is somewhat misleading to take the mean performance of a good tank as the benchmark for measuring the survivability benefits of different stats; the few times when it will actually matter are (more likely) going to be those times when the tank is performing below that level.

The short version: improving your play reduces the number of dangerous spike situations you encounter, but probably has a much smaller impact on the quality of your play during those situations.

(*) I would have said all, but I guess there are freaks like Meloree who do really hit a 1.53 second gcd.

• Theck says:

We like to call him the “Melbot” for that reason. He must be part cyborg. No human has the raw innate sense of timing that he does.

• Meloree says:

Or even one step further: the pulls that matter most are progression pulls. Learning attempts. When you can guarantee that all the factors you mentioned (suboptimal play, mistakes, misplanned CDs, dead/distracted healers, screaming at a DPS instead of watching for fire) will happen. On a 50+ pull boss, it’s not unreasonable to gear heavy stamina for 10-25 pulls, get a feel for your strat, and damage patterns, and work out a few kinks before you adapt your gearset to the situation.

Because, as far as my personal philosophy about tanking goes: the first job is to survive. What is optimal for the first pull isn’t necessarily (and often isn’t) what you’ll wear for the kill attempt, but no stat or gearset has ever been nearly as useful at making the first pull last longer as Stamina.

7. Tengenstein says:

Any chance we could see C/Stam vs C/mastery comparison for warriors?

• Theck says:

Yes, but not for a few weeks at least. I have a lot of work to do on the Warrior module before I generate more sims with it, and that will take some time.

8. Wrathblood says:

Ah, nice to see St3 looking like it should have. The closeness of St2 and C/HA was surprising to me and also suggests that its possible going for socket bonuses are likely still worth going for.

The biggest surprise to me, however, was the performance of the Pure Haste build, backing up your comments about Haste being under valued. It consistently takes less overall damage than the Control builds while having one of the lowest StnDev% among all builds. It seems to do best at the lower incoming damage levels, consistently beating C/HA and even C/MA start around 4 or 5 swings. At higher damage levels its still mostly (though not always) ahead of C/HA and is probably about in a tie with C/MA.

• Theck says:

I’m not sure I’d agree with your assessment of the pure Haste set. It performs adequately at low damage levels, but it frequently permits more spikes in the “long tail” than control does. And it’s not consistently ahead in the top 2-3 spike windows in any category. This is especially apparent in the 350k data. C/Ha tends to be ahead, it’s the rare event that Ha leads C/Ha in a row on the table.

I think that it’s also worth noting that hit/exp are better DPS stats than haste is. So going from C/Ha to Ha grants little survivability (actually a survivability loss, IMO) and costs a decent chunk of DPS. Not a very efficient or effective trade. And that’s before you consider the planning part of things. Real players are a little more savvy than the sim, and make choices based on what spells are coming up. Knowing that you have 3 HP coming in the next 3 GCDs affects the decisions you make, and if one of those HP generators fails when you were counting on it, you can be in a world of trouble.

• Wrathblood says:

I see the chart as being a little more one sided. Even in the 350K chart which isn’t great for HA, HA beats C/HA in multiple rows for every swing number.

Setting aside the 2,3 and 7 swing tables as being less important (HA wins 2 and 7 handily, but doesn’t do as well on 3), HA does tend to win the lower % ones while losing the top ones which isn’t great, but it wins some fairly high categories. At 6 swings, HA wins everything from 160% on down, at 5 swings it wins everything from 150% on down, and at 4 swings it wins everything from 120% on down.

I certainly agree that C/HA will do quite a bit more damage than HA and there would be issues with HoPo reliability. This is a tradeoff that I personally wouldn’t be willing to make, but its extraordinary how little survivability gain is coming from Hit/Exp and how much HA improved from where it previously stood.

9. tailias says:

I still don’t understand how this relates to those of us who recieve healing while we’re taking damage. If our maximum health is our only source of health at all, and our health is not going to go up through any means and we’re merely plodding along and extending our lives till an inevitable grisly end, then of course increasing our maximum (beginning) HP is going to be vastly inflated compared to its value in an actual raid tanking scenario.

• bryjoered says:

I’m pretty sure there is just no convincing you. It is just so engraved in your head that stacking stamina is a bad thing that even when there is mathematical evidence proving it you refuse to accept it. As Theck already mentioned, the benefit of adding more stamina has NOTHING to do with having more hit points before we die, it has everything to do with smoothing our damage income into predictable junks i.e. eliminating dangerous spikes. AKA the same benefit that stacking haste has, but just a more effective version without the DPS increase. It also isn’t as susceptible to player errors as the pure haste build is. Haste works just fine, and obviously no matter what you see you will continue to stack it, that doesn’t mean that this simulation is wrong. If your healers are having trouble keeping you up and you want to have a smoother more predictable damage income stack stamina. Otherwise stack haste for a similiar albeit not quite as effective version for the SAME exact outcome with significantly more DPS.

• tailias says:

It’s not that I’m stubborn, it’s that this model has nothing to do with reality.

I’m not saying that Stamina is a bad stat, quite the opposite. I’d love an explanation of how his models that he’s posting in these series of Stamina posts actually relate to raiding tanks.

Stamina is definitely very underrated by the general playerbase, that is definitely true, but this is not the way to go about convincing people to think otherwise. Completely desyncing our damage intake and defensive abilities from our healing intake or even our ability to heal ourselves (hey, Word of Glory at low health is a defensive ability – are you spamming ShoR like a bot? that’s bad play) tells us nothing about real raiding.

I trust math when it actually fits in to actual raiding, but I simply put have not seen any math that proves whether Stamina is or is not better or worse than Haste for anything. I will stick with my tank intuition – that Haste is a great defensive stat, a great damage smoother, and as you folks never hesitate to point out, a nice DPS boost as well, and that if I’m dying to large damage spikes that I can’t deal with via my AM abilities or via cooldowns and that my healers can’t react to or predict (and this is getting increasingly rare), I will radically alter my gearing strategy. For the time being, I will definitely not avoid Stamina, but I will not go crazy for it or consider it a default gemming strategy.

• Weebey says:

The argument as to why spike damage is the appropriate metric to look at has been made many times. Meloree was making versions of it years ago, Theck has done so repeatedly, I tried my hand at a version of it in one of the recent comment threads, and a number of other commenters here have also done so. These arguments are very much dependent on an understanding of the nature of current tank healing. Yes, they are informal arguments, and it is certainly possible to disagree with them; some druid who I believe is considered a respected theorycrafter is doing so right now on the official forums, although he is making quite a hash of it: http://us.battle.net/wow/en/forum/topic/8569309660?page=1

But claiming that looking at spike damage is “has nothing to do with reality” without even trying to address the arguments is not particularly helpful.

• bryjoered says:

I mean if spike damage isn’t the metric damage to look at what is? It’s very difficult to model a healer that has “moments of inattentiveness” I feel like. If you model a healer that is focused on you the whole time that’s totally unrealistic. I think it’s pretty widely agreed upon that TDR is not the way to go.

• Fasc says:

It isn’t that I believe that spike damage is a poor metric, I think it by itself is great. What I think warrants more discussion is how we go about quantifying a Healer’s reaction to damage. As I said in that very thread, if a Healer responds differently to the same raw damage just because it impacted a smaller percentage of overall Tank health, I question the Healer’s ability or instincts.

There is obviously a point where a Healer (or group of Healers) can indeed say “Fasc is at 80%? He can wait…” on a given fight from enough EH stacking (I say EH mostly because Druids CAN stack more with our Mastery along with Stamina). However, if you move up enough Stamina to make a 20% hit shift downward to 18%, you do the same thing to the big heal that landed for 20% of your health. If suddenly that threshold made an assumed Healer heal differently, that’s just improper reading of the percentages.

It is definitely a challenge of theorycrafting to try to work around what and how a Healer will react since we are so utterly dependent upon their performance. However, smoothing out spike events via how much percentage of our health is threatened at a time is a bit divorced from the discrete nature of incoming healing, even HoTs and smaller more incremental sources of Healing, and our need for it. Healers don’t heal by percents but by a ranged of fixed values, so if I want to make their job easier (by not surprising them as much or handing them situations they can handle or learn to handle) I don’t believe that reducing spike events alone is enough.

One challenge I had with comparing/contrasting FR and SD usage on a Guardian was the reactive aspect of it. Depending upon how on the ball a Healer team is, I could be the fastest person around and still render my own efforts or the efforts of some of my team pointless with loads of overhealing. So at first I just treated it like a sort of HoT, a Guardian spamming lots of low Rage FRs every 1.5seconds, and just threw in a flat amount of overheal. But that’s pretty far removed from reality in practice and assumes just too much with overheal. Properly modeling the ability to handle spike damage for me REQUIRES a real fight situation, or at least a generic one with built in known spikes and possibly unknown spikes.

Tortos can be handled very well at low levels of EH provided you have enough to handle a Snapping Bite and the RPS capability to have SD up and a hefty amount of Rage for a banked FR. But if you looked at just my damage profile, especially since Mastery won’t impact Snapping Bite at all, I would look exceptionally spiky. Thankfully my Healers don’t panic button external CD every time Snapping Bite actually lands, so it works just fine.

• Theck says:

Tailas, I think you’re completely misunderstanding (or at least misinterpreting) the point of these simulations.

You seem to be under the impression that we start at full health and take damage until we die, with no source of healing or anything like that. That’s simply NOT how the simulation works. If it did work that way, I’d agree with you that it would be “having nothing to do with reality.”

Of course, that’s exactly the reason it *doesn’t* work that way. Why would I code something that’s useless?

In this simulation, the tank takes damage over and over and over. The tank will NEVER die. For the purposes of the sim, you may as well have infinite hit points, because none are ever deducted. Alternately, you could pretend we have a perfect healer modeled that tops you off after every hit (ignoring absorb effects and self-healing).

All we’re doing is keeping track of how much damage you’re taking as a function of time, much like the data World of Logs displays on a graph. In fact, I could plot it on a graph just like they do, but it doesn’t add much to the understanding that the tables don’t (and having a post full of hundreds of graphs isn’t very practical either).

Now, how does that relate to a real tank in a real situation receiving real healing? In practice, your healers plan for a level of throughput damage (say, 40%-50% of a boss’s regular output). If you never took more damage per second than that, and your healers never had to move, then you’d never die, and the game would get awfully boring.

What *does* threaten your life are periods of higher-than-average damage intake (i.e. an unlucky string of no avoids or missed HP generators leading to low SotR uptime) OR lower-than-average healing intake (healers have to move, get incapacitated, tab out to watch porn, died, what have you). Or combinations of those two effects. THAT is when you die – when the short-term time-averaged damage intake exceeds the short-term time-averaged healing intake for long enough that your hit points drop below zero.

That shouldn’t be a controversial statement – in fact, it’s almost academic. I don’t think anyone will argue about the truth in “if you take too much damage and don’t get enough heals in a period of time, you die.”

Now, for the moment let’s ignore our healers since we can’t control them. What we *can* control is how we gear and how we play. And if we’re working under the assumption that it’s short-term damage spikes that kill tanks, it’s not a huge logical leap to say that we might like to reduce the frequency and/or magnitude of those spikes. Again, if we could flatten our damage intake profile so much that it was a flat, straight line, we’d never die. So that’s the ideal we work towards.

Hence the rationale of this simulation: we’re essentially calculating that plot of damage taken vs. time (or damage taken per second, DTPS), just the way Simcraft does for a DPS player’s DPS. And once we do that, we run some statistics on the result to see how many “peaks” exist on that graph, and how high those peaks are.

THAT is the data I’m presenting, and it has a very high relevance to real tanks in real situations. Because fewer peaks on that graph mean fewer high-risk situations where you’re taking a lot of damage all of the sudden, and thus a lower chance that it overlaps with a healing shortage as well. Both of those are cases where you’re in danger, so by reducing them, you’re a safer, less killable tank.

I will also note that all of this rationale is explained, several times over in fact, in earlier blog posts where we started developing and enhancing the simulations. I’ve been a bit lax on re-explaining it every time I post new data, because I’ve been assuming most readers are returning and have already seen the earlier posts. Maybe that’s not a good assumption though if it’s confusing people. It might be time for a blog post highlighting what we’re doing, explaining it in more detail, and emphasizing why it’s relevant.

• Fasc says:

“I will also note that all of this rationale is explained, several times over in fact, in earlier blog posts where we started developing and enhancing the simulations. I’ve been a bit lax on re-explaining it every time I post new data, because I’ve been assuming most readers are returning and have already seen the earlier posts. Maybe that’s not a good assumption though if it’s confusing people. It might be time for a blog post highlighting what we’re doing, explaining it in more detail, and emphasizing why it’s relevant.”

This is something I’d be most interested in. When Blizzhoof dropped on by to link the first blog (in a WoW Forum thread) on Stamina keeping you up longer (or worded similarly), it was my first time jumping in on it. I don’t generally treat special event spikes (be them known like Talon Rake or unknown like the more insidiously painful stacking DoTs or a Tank mistake with Anima Ring) any different than other sources of damage, which is to say as a Healer I strive to understand what is happening to the Tank so I can plan healing, both proactively and reactively, accordingly. If all the spike events are manageable, then reducing spike events has small value, hence the idea of the dreaded “enough” that is tossed around a lot without much else.

But I’ll wait before digging deeper or discussing anything more. I don’t want to misunderstand or assume you’re coming from somewhere that you’re not.

• Jackinthegreen says:

Complete healer reaction would be so incredibly difficult to accurately model through a program AI that it’s just not worth it, even before the quirks of each healing class are taken into account. Unless of course we could get access to a supercomputer to run the math on it, but that’s not happening.

Some simple assumptions work though. Seeing a big chunk suddenly get taken out of the tank means the healer will probably be using an expensive heal to get the tank back up. The less often those spikes happen, the more time healers have to react and use the best heal for the job. Steady damage is fine, and when I was healing I loved a steady damage tank (so long as it was manageable of course). Better to take 50% damage all of the time than 100% damage 50% of the time.

Preventing spike damage and thus smoothing it is exactly what’s being modeled.

Whether spikes have been mitigated into being manageable is something that each group will have to find out for themselves.

This blog isn’t about saying “stack X stat indefinitely.” It’s about giving people the knowledge to see how their gear affects their performance, and then let them make their gear choices for themselves.

• Fasc says:

Each Healer has only so many actions and if the Tank choices are capable of being modeled then so too can the Healers. It is a difficult problem to solve to be sure, but not an impossible one.

Your very first assumption is what I challenge with these sorts of simulations. A sudden spike in damage doesn’t not necessitate an expensive, inefficient, mega-heal response anymore than a sudden need to apply Pain Suppression or the like. But a Healer has damage spikes that are known and damage spikes that are not known, and while this simulation would be very nice for dealing with completely unexpected (although I question your Healers in this case) spike damage with only one sort of response (panic healing that drains mana and diverts attention), I don’t find that very realistic.

The Tank Healer on Tortos has to not freak out every time Snapping Bite lands on a Guardian, because provided the Tank has enough EH to eat it, there is no guaranteed way to reduce its effects. It either lands and does a ton of damage but doesn’t kill, or it is Dodged and the Healer gets to relax a bit. Panic healing shouldn’t be happening, in fact a Healer should have a big heal primed just in case and then cancels it if the Druid avoids the hit, but that assumes a very high quality Healer. A panicky Healer won’t do well on Tortos behind a Guardian because they’re going to waste massive amounts of mana and even externals every time Snapping Bite happens to connect. It doesn’t make the spikes we take horrid or us bad Tanks, it just means that how you relax as a Healer in that situation isn’t easily quantified by just how big the spikes happen or how often.

Gear obviously needs to be understood, but how information is presented greatly impacts how it will be received. Specifically in the case of this simulation, we work with the assumption that sudden spikes are bad and therefore sought out to minimize or eliminate entirely. We can debate WHAT a spike is, and perhaps that’s a better way to describe my reservations. I don’t view all spikes equally even if they impact the same percentage of my overall health. I don’t believe Healers automatically heal differently if you are taking chunks of 18% instead of chunks of 24% of damage, at least without the rest of the fight mapped out. Finally, I found the original anti-“enough” argument from the first post a bit choir-preachy, in that it isn’t actually telling anyone anything that reads this stuff regularly and most theorycrafters DO in fact know the value of Stamina and EH in general, but advise against stacking it in many scenarios where there are better options (and for many Tanks, there ARE better options). I found this discussion very interesting because of the naturally “spiky” nature of a Guardian Druid, where smoothing out our damage intake comes in the form of just more Dodge or more reactive healing in FR… which neither changes our worst cases that Healers must react to.

10. bryjoered says:

This is why theck models the “spike period” on segments of 5+ swings.Obviously, something like a talon rake on Ji-kun is a predictable damage spike that both you and your healers are prepared for. It is the period of just a normal swing segment when the healer probably isn’t watching you as closely that you are in the most danger if you take a bunch of successive big hits. This situation is where stamina is superior, when you are just doing your normal rotation. This situation is when tank deaths are more likely to occur, it is the reason you gear for stamina/haste. Just the other night, I was tanking Ji-Kun and got hit with a simultaneous cheep (the juvenile bird attack I guess) and a melee hit and it was enough to kill me at half health. You know why? Because my healers weren’t focused on me and I didn’t have any CDS up, you know what would of saved me there the most? Probably Stamina wouldn’t you think?

11. tailias says:

Cheep doesn’t hit tanks unless the nest groups are dead or not doing their job. It happens when you’re learning the fight, but Ji-Kun progression is basically all about the nest groups if I recall. The tank portion, especially as a Paladin (it’s easy enough to pool 5 Holy Power for the approximate time of the second Talon Rake application, the only difficult/dangerous tank damage of the fight), isn’t all that bad.

Yeah, Stam absolutely would have helped a lot, that’s why I never ever dismiss it as a bad stat. Only a total baddie would say “Stamina is worthless” or something ridiculous to that effect. Do we need to stack it out of every orifice because every encounter is full of dangerous spike damage that can two-shot us if we are caught unaware?

• Bram says:

The thing is, that this simulation happened as there is lots of “baddies” who indeed says ignore Stamina all together and spread those words.

However, if you read the postings carefully, there is always said that it is you who does trade-off Stamina (maximal survivability) into Haste or other stat you consider important. It is pretty well message all over the blog. Nobody here tells you to “stack Stamina as a cure for all”, but rather says “do not underestimate Stamina, it has its place”.

• blizzhoof says:

It’s not just about Talon Rakes and Hard Stares; nor is it all about you getting globaled by a Dire Call + Triple Puncture + Melee combo. You need to also take into account real in-game situations including player mistakes, lag, and healer reaction. Healers are going to spend a lot more mana if you’re at 20% hp after a hit because you stack haste, than they would if you were at 40% health from the same attacks. If this happens a lot during a fight, it ends up wasting a lot of mana. Stamina also allows a lot more room for error on your and your healers’ parts.

That isn’t even a comprehensive list of reasons why Stamina is so good, but they are very compelling reasons IMO.

12. bryjoered says:

No I don’t think it’s a bad thing to sacrifice some stamina here and there, I personally really like going for socket bonuses. I mean my second best stat is actually Mastery because I’m a warrior, but paladin’s and warriors are very similar as far as simulations go. I think mastery is very good for warriors and I don’t mind giving up a stamina trinket for it if I like it’s on use and I also go for hybrid mastery stamina gems to match sockets, but overall I just value stamina a bit more because it’s the universal damage stat. It is equally as good, most likely better, at smoothing physical damage as mastery and it is the only defense against magical damage. Like I said, I don’t think having a haste, or mastery heavy in my case, priority is a bad thing, but in terms of smoothing out damage across any type of encounter and any type of damage I think stamina’s got the edge.

13. vg365 says:

Is the diference in dps between “Stamina Comparisons – Gear” sets big?

• Theck says:

This is a pure survivability sim – it doesn’t calculate DPS at all because it’s not even modeling all of your abilities (just CS, J, AS, and SS usage). That said, in practice there will be a fairly huge difference in DPS between the gear sets. Ignoring the minute DPS increase granted by avoidance, you can just gauge the DPS gain by your haste level. A set with 30% haste will do 30% more DPS than a set with 0% haste, etc.

• vg365 says:

ok :).

I asked because my dps doesnt improve that much with haste. But maybe there are many other factors (the other tank, vengance or my gameplay).

Im using control haste set, and actualy i feel safer with stamina trinket and gems while raiding.

As far as i understand if i add 10% haste o a 0 set i gain 10% dps.
But i feel that is not the case when i have not 0 haste.

My actual set has 7.01% melee haste.
If i change one of my stamina trinkets for a haste. I go to 9,74% melee haste.

Actual set Judgement 5.61s
With Haste trinket Judgement 5.47s

I got 2.73% more haste. I got 2.50% more judgements.

Actual set AS 14s
With Haste trinket 13.7s
I got 2.73% more haste. I got 2.14% AS

• Theck says:

Adding 10% haste is only a 10% DPS gain if you start from zero, yes.

Going from a set with X% haste to a set with Y% haste will be a DPS increase (or decrease) of (1+Y%)/(1+X%) – 1

Ex: going from 7.01% to 9.74% haste nets you a gain of 1.0974/1.0701=1.0255, or a 2.55% DPS increase.

14. Frobes says:

I’ve just completed reading through this site’s pages and pages of posts and comments on the varying aspects of thoerycraft about maximizing end-game tanking, but is there any section (I probably missed it) that goes over the different (better) ways of gearing up a paladin tank? ie 476-483, 483-496, 496-522.

I find myself at ~ ilvl 496 trying to decide to LFR and buy gear for tanking, and not really knowing if I should be going as/getting dps plate (non-crit) or plate w/ avoidance stats. There so much variation and thoerycrafting for end-game raiding, that I’m at a complete loss about what I should do to be more(most) successful getting TO that point of gearing.

Any direction would be greatly appreciated!

• Zothor says:

I’m going to GROSSLY oversimplify this for you, as I took my paladin out of mothballs for 5.2 and now have him fully ToT geared as we progress into heroics. Sadly, the short answer isn’t great if you’re not in a normal/heroic raid group, because the haste pieces are not on our LFR loot tables. And because LFR is on a two roll system (X% chance to get loot, then equal chance, I believe, of getting the different pieces flagged for your spec), the much more important roll is the chance-to-get-loot-at-all. The last thing you want is to hit that loot and end up with crit DPS gear, even if there’s a great haste/mastery piece sitting there. The difference in upgrading to an avoidance piece is still a bunch of base stamina and armor, which is a much bigger deal than it not being well itemized.

After that, the first thing you need to decide is if you’re gearing haste or mastery. Much, if not most, of the conversation on this blog is about haste, since it’s (a) the “surprisingly” good stat, as it’s not actually on our tanking gear, and (b) considered by many to be optimal if you play at an extremely high level. But that latter fact is important. If, for example, you often find yourself staring at your keybinds and not knowing what to push next, or being on cooldown on all your abilities and just sitting there, or just not hitting your buttons as soon as they come up, the value of haste drops enormously. Mastery is still pretty good though, and several of Theck’s models have demonstrated that balancing mastery and haste interact quite well. And if you’re not generating and using holy power that fast, stamina is even better than ever.

The one place you CAN (and absolutely, in my opinion, should) get your hands on the more optimal re-like stuff is valor gear. The valor neck and valor cape from 5.2 are both excellent haste/mastery pieces, and pretty much regardless of what paradigm you personally fit into, if you buy the rationales of this blog (and I most certainly do) your optimal secondary stat is going to be haste or mastery. Hit and Expertise are, to be certain, higher on the priority list than either of those two—but they cap, and you can reach them by reforging, and you’ll get lots of them from actual “tanking” gear in LFR. There’s a chestpiece that’s hit/mastery, if I recall correctly, with two blue sockets; it’s better than anything short of the 522 ret-tier chest. I assume you don’t have the ludicrous amount of money the crafted ret 522s are going to cost a non-raider, but if you do, they’re both haste/mastery and utterly awesome.

Finally, what I would do is get your ilvl up and then start running as dps (or, when 5.3 comes out, selecting dps drops) to fill out your minor upgrades. Especially early in ToT (the first 3 bosses drop the pure haste/strength trinket, the haste/mastery “dps” belt of deliciousness, etc) you’ll hopefully pick up your tanking pieces early and then be able to switch to DPS. But until you have your shield (and, to a lesser extent, your 1-H) I strongly reccomend you tank LFR parts 3 and 4. Try and find an experienced tank to go with, or test them on a different character first to see the mechanics, because for LFR fights they’re pretty unforgiving on new tanks.

• bryjoered says:

The fact is, unless the melee dps in your guild are very geared or just exceptionally nice, you will not have many opportunities at ret paladin/ dps warr/ dps dk gear until you have some of those TOT bosses on farm. The best advices is to get as much haste gear as you can, but definitely TAKE dodge parry gear when it comes up, it is most likely a huge upgrade over any tier 14 gear that you have and it can be reforged and gemmed for haste anyways. At the same time, giving a nothing to sneeze at bump in passive mitigation. The phenomental melee trinket “fabled feather of Ji-Kun” dropped the other night and it happens to be one of the best trinkets for protection warriors in the new tier, you think I got a shot at that trinket? Of course not, maybe on like my fifth Ji-Kun kill I’ll get it, but for now it benefits them more than it benefits me.

15. Hegel says:

You say that the bug exaggerated the discontinuity at the 33% spell haste threshold. So, does this mean we were wrong about the benefit of hitting the 33.33% spell haste breakpoint with the 4.5 second SS matching the bosses melee swing? Or is that still a particularly strong threshold, and the bug was just slightly exaggerating it, and messing up overall haste and stam calculations by a bit?

• Theck says:

It’s still a decently strong threshold, just not as strong as the earlier simulation was making it out to be. I have data for that, which I’ll get to posting soon-ish. Though I’m so close to finishing the Seal of Insight code that I may simply delay it until that’s done so that we can include those effects.

• Hegel says:

Thanks, Theck. You’re my hero!

16. Pingback: We’re Going back to Wrath Toto!