Haste Breakpoints for Tankadins

Mists of Pandaria has introduced protection paladins everywhere to a brave new world in which haste is a useful stat. For the first time in, well, ever, we’ve been given an opportunity to care about how our abilities scale with haste. And that includes something that most protection paladins haven’t had to consider before: haste breakpoints.

Now, if you’ve spent time in a Holy or Retribution off-spec, you might have already encountered haste breakpoints. But it’s possible that 5.x Protection actually beats both of them out in terms of the number and complexity of our haste-scaling effects.

In this post I’m going to go over some basics about how haste is calculated for protection, and then detail some of the situations we may run into at different levels of haste.

Basic Haste Mechanics

First, let’s briefly talk about how haste works. The simplest form is haste rating: you get 1% haste for every 425 haste rating. If you stack 850 haste rating, you have 2% haste, 1275 rating gives you 3% haste, and so on. There are a few ways to represent having x% haste that I will use interchangeably here. The first is what we’ve done so far: simply saying we have X% haste. And of course, any percentage can be expressed in fraction or decimal form, so 5% haste could be written as 5/100 or 0.05.

However, it’s also convenient to present haste in a different decimal form, namely as a multiple of our base (un-hasted) speed. If we say that with 0% haste, our speed is 1.00, then at 5% haste our speed is 1.05 and at X% haste our speed is (1+X/100). There’s no official name for this that I’m aware of, so let’s just call it our “haste modifier.”

This is important because, for the most part, different haste effects are multiplicative. The haste we get from haste rating is multiplicative with the haste we get from Heroism/Bloodlust, the 5% spell haste raid buff, the 10% melee attack speed buff, and the spell haste granted by Seal of Insight. To do calculations for haste, we have to multiply together all of the haste factors for each individual effect. So for example, if we have 5% haste from rating, the 5% spell haste raid buff, and 10% haste from Seal of Insight, our character sheet haste will be:

spellHaste = 1.05*1.05*1.10 = 1.21275,

or 21.28% haste on the character sheet. Note that this is a little larger than the simple sum of the three effects (5%+5%+10%=20%), so we get a little more bang for our buck as a result.

Melee haste is pretty straightforward as well, but it’s worth noting that the 10% melee attack speed buff does not give haste. It increases your attack speed, and even shows up on the character sheet as if it were a 10% multiplicative haste buff, but it doesn’t actually give you haste. As a result, it doesn’t affect Sanctity of Battle either – the cooldown reduction will essentially use your un-buffed haste, so it will be the same on a dummy as it is in a raid (barring boss-specific haste buffs, of course).

There are a number of effects that scale roughly linearly with haste. DPS, for example, is pretty much a 1:1 linear increase. If you get 10% haste, you attack 10% faster, Sanctity of Battle makes your abilities 10% faster, and generally you do about 10% more DPS. DoT effects with 100% uptime (like Censure) also increase linearly in that respect, as do proc-per-minute effects that aren’t haste normalized, like Seal of Insight and Glyph of Battle Healer healing. Real-PPM enchant effects have haste scaling built into them for this reason as well, otherwise they wouldn’t scale properly with haste.

However, there are a few effects that don’t increase strictly linearly. And those are the ones where the concept of a “haste break point” comes into play. The basic idea is that by reaching a specific amount of haste, an effect suddenly and discontinuously becomes better. The clearest example of this is Sacred Shield, which uses the game’s standard DoT/HoT haste-scaling mechanics.

Sacred Shield break points

The games method for calculating the duration and tick spacing for HoTs and DoTs is rather clever, but it requires a few steps to get there. First, let’s define some terms:

$N$ = number of ticks
$T_0$ = default (unhasted) tick duration
$T$ = hasted tick duration
$D_0$ = default(unhasted) buff duration
$D$ = buff duration in presence of spell haste

With no haste, Sacred Shield gives you a tick every $T_0=6$ seconds for $D_0=30$ seconds. What we’re really after is $D$ and $T$, though. The game determines that using the following logic: first, it determines the hasted tick duration; then it determines the number of ticks that comes closest to the unhasted duration; then it calculates the new duration using that number of ticks.

Edit: There’s one interesting addition here – the game rounds the hasted tick duration to the nearest millisecond, which has a small effect on certain haste breakpoints, generally shifting them by 1-5 haste rating. Keldion and I have discussed this in the comments, and I’ve done my own testing to confirm the behavior with Sacred Shield. In the math below, I’ll use “roundToMillisecond()” to represent this rounding.

Mathematically, this can be expressed by:

$T = {\rm roundToMillisecond} \left( T_0 / (1+{\rm spellHaste}) \right )$
$N = {\rm bRound}(D_0/T)$

As before, spellHaste is your total spell haste on the character sheet, which is calculated from the product of haste modifiers described in the last section. I’ll explain what “bRound()” is in a second, but for now pretend it’s just simple rounding.

So for example, let’s say you have 4% haste on gear and the spell haste raid buff. Your total spell haste is 1.04*1.05=1.092, or 9.2%. Your hasted tick duration is

$T=6/(1.092)=5.49450$ seconds, which is rounded to $5.495$ seconds.

so you’ll get a number of ticks equal to

$N={\rm bRound}(30/5.495)={\rm bRound}(5.4595)=5$

No extra tick, so your total buff duration is

$D=N*T=5*5.495=27.475$ seconds.

Bump that up to 6% haste from gear. Now your total spell haste is 11.3%, tick duration is $T=6/1.113=5.3908$ seconds, which is rounded to $5.391$ seconds, and

$N={\rm bRound}(30/5.391)={\rm bRound}(5.5648)=6$

Aha, extra tick! The new buff duration is $D=6*5.3908=32.3448$ seconds.

It should be pretty clear from this that you get a new tick every time the argument of bRound() ends in 0.5, which is when $30/T =5.5, 6.5, 7.5, 8.5,$ etc. If we do a little math, we can see what those spell haste breakpoints are:

$N = {\rm bRound}(D_0/T) = {\rm bRound}(D_0/(T_0/(1+{\rm spellHaste}))$
$= {\rm bRound}((D_0/T_0)*(1+{\rm spellHaste}))$
$= {\rm bRound}(D_0/T_0 + D_0/T_0*{\rm spellHaste})$

and plugging in the fact that $D_0/T_0 = 30/6 = 5$, we get

$N = {\rm bRound}(5+5*{\rm spellHaste})$

In other words, we get an extra tick any time 5*spellHaste reaches a value that ends in 0.5. Namely, at 10% (5*0.1=5), 30% (5*0.3=1.5), 50% (5*0.5=2.5), 70% (5*0.7=3.5), and every additional 20%.

Thus, your haste break points for getting new ticks are 10%, 30%, 50%, 70%, etc.

Now, I said we get a new tick every time the argument of “bRound” ends in 0.5. This is only partly true because “bRound” really stands for banker’s rounding, in which we always round to the nearest even number if the number to be rounded ends in exactly 0.50. So in theory, if we had 10% haste, we’d be rounding 5.5 up to 6, granting us a new tick. If we’re at 30% haste though, we’re rounding 6.5 down to 6, which doesn’t get us a new tick. However, as soon as we hit 30.001% haste, we have 6.5005, which gets rounded up. I don’t know how many decimal places the game stores for these values (probably very many), but it’s not likely to matter too much thanks to the millisecond rounding that occurs on the tick duration. It only becomes an issue if you land exactly on a given value (ex: exactly at 30*425=12750 rating, without having other multiplicative haste buffs), and roundToMillisecond() guarantees that happens very rarely. And with the spell haste buff and Seal of Insight, you’re even less likely to land on an exact break point.

Since people often want to know what the breakpoints are under certain conditions, I’ve summarized them on the following table. The code used to generate it can be found here.

|    haste% |  10% |   30% |   50% |   70% |   90% |  110% |
|         N |    6 |     7 |     8 |     9 |    10 |    11 |
|      None | 4251 | 12749 | 21243 | 29749 | 38261 | 46739 |
|        RB | 2025 | 10118 | 18207 | 26308 | 34415 | 42490 |
|       SoI |    1 |  7727 | 15448 | 23181 | 30919 | 38627 |
|    RB+SoI |    0 |  5335 | 12688 | 20053 | 27423 | 34764 |
|        BL |    0 |     0 |  6533 | 13076 | 19624 | 26146 |
|     BL+RB |    0 |     0 |  4198 | 10430 | 16665 | 22877 |
|    BL+SoI |    0 |     0 |  2075 |  8024 | 13976 | 19905 |
| BL+SoI+RB |    0 |     0 |     0 |  5618 | 11287 | 16934 |

Eternal Flame

Even though you shouldn’t be using Eternal Flame in the first place, it might be of interest to know when you get extra ticks of it (maybe you have a Holy off-spec). The calculation for this is identical to the one for Sacred Shield, except that $T_0=3$ instead of $6$. Thus, we want 10*spellHaste to equal something ending in 0.5, which leads to break points at 5% haste, 15% haste, 25% haste, and so on. The banker’s rounding affects 5%, 25%, 45%, etc. The table below summarizes the results:

|    haste% |   5% |  15% |   25% |   35% |   45% |   55% |   65% |   75% |   85% |
|         N |   11 |   12 |    13 |    14 |    15 |    16 |    17 |    18 |    19 |
|      None | 2120 | 6379 | 10637 | 14868 | 19139 | 23375 | 27613 | 31866 | 36131 |
|        RB |    0 | 4052 |  8106 | 12137 | 16204 | 20238 | 24275 | 28325 | 32387 |
|       SoI |    0 | 1936 |  5806 |  9653 | 13536 | 17386 | 21239 | 25106 | 28983 |
|    RB+SoI |    0 |    0 |  3506 |  7170 | 10867 | 14535 | 18204 | 21886 | 25579 |
|        BL |    0 |    0 |     0 |  1630 |  4915 |  8173 | 11433 | 14705 | 17986 |
|     BL+RB |    0 |    0 |     0 |     0 |  2657 |  5760 |  8865 | 11981 | 15106 |
|    BL+SoI |    0 |    0 |     0 |     0 |   605 |  3567 |  6530 |  9504 | 12487 |
| BL+SoI+RB |    0 |    0 |     0 |     0 |     0 |  1373 |  4196 |  7028 |  9869 |


The rotation is surprisingly linear in haste up to 50% (melee, which is around 73% spell haste), as shown on the graph below. There are some minor discontinuities due to abilities that aren’t affected by Sanctity of Battle (our level 90 talents, for example), but they’re insignificant in practice because nobody plays like a robot. Latency, reaction time, and encounter mechanics all serve to smooth out those small discontinuities and make them irrelevant. This wasn’t always the case – in beta we discovered that there would be large discontinuities due to Avenger’s Shield, but eventually that was added to Sanctity of Battle to eliminate that problem.

Scaling of DPS, HPS, and HPG with haste up to 50%

Relative scaling of DPS, HPS, and HPG with haste. Up to 50%, everything scales very linearly

Things change at 50% haste because your global cooldown (GCD) becomes capped at one second. That might seem like an unrealistic target to hit, but keep in mind that encounter mechanics often get us there artificially (see, for example, Essence of the Red from Sinestra). Unfortunately, the MATLAB code doesn’t support the GCD clipping that occurs at 50% melee haste, so we can’t sim it out above that point (yet – maybe some day). We can use intuition to figure out some of the effects though.

So let’s say we do get to 50% haste. Is there a benefit to having more? Yes and no. At 50% haste, Crusader Strike’s cooldown is 3 seconds and Judgment’s is 4 seconds. Your rotation is still the same as it is with no haste: CS-J-X-CS-X-J-CS-X-X. Stacking more will reduce spell cooldowns, but not the GCD. That means we’ll have an odd choice to make. We can skip fillers for higher holy power generation (HPG), but probably much lower DPS. Or we can use fillers and delay holy power generators, essentially eliminating the benefit of extra haste on HPG.

For example, assume we have 80% haste. At that point, CS is a 2.5-second cooldown and J is 3.33 seconds. If we cast CS-J, we can either choose to wait half a second and use CS again, turning our rotation into CS-J-wait-CS-X-wait-(repeat), or we can keep our normal rotation and push back CS. The former will be higher HPG than the latter, but will probably be lower DPS.

At 100% haste, J becomes a 3-second cooldown while CS remains 2.25 seconds. If we continue to prioritize CS>J, we still have the 0.25-second clashing effect. However, if we prioritize J>CS, we get a nice even J-CS-X- rotation, with no wasted space. That might be a fairly large break point, because J>CS is higher in both HPG and raw DPS at that point.

We’ll run into this clashing until we get to 125% haste, at which point CS becomes a 2-second cooldown (and J a 2.67-second cooldown). Then we get to a clean CS-J-CS-X-(repeat), which again overtakes the J-CS-X- rotation in HPG (if not DPS). After that, there’s another gap until we have enough haste to push J to a 2-second cooldown, which happens at 200% haste, turning our rotation into a simple CS-J-(repeat) sequence. And of course, once you hit 500% haste, you can just spam Judgment until the end of time!

Note that haste isn’t completely useless in-between those break points – we’re still increasing SoI healing, and getting more Sacred Shield ticks every 20% haste. But it’s not worth a lot, because those are both small effects. We’re going to be seeing very large discontinuities whenever the rotation changes drastically, and a plateau between each of those break points.

So, TLDR: Haste is good up to 50%, uneven between 50% and 125%, and then relatively weak unless you can reach 200% (and then weak again until you can hit 500%, where you can spam Judgment every GCD).

A Word About Latency

Edit: the following section is apparently no longer true in 5.0.5 – as Lakh pointed out in the comments, you can now queue Crusader Strike even when it’s still got a little bit of cooldown left. However, you can’t queue it until the remaining cooldown is less than your “Lag Tolerance” as set in the in-game menu (under the “Combat” subheading). I never noticed this, because I set my custom lag tolerance fairly low (~50 ms). Bumping it up to the default of 400 ms allowed me to queue the next CS appropriately.

In closing, I want to mention latency (and to a lesser extent, reaction time). One of the problems with Crusader Strike is that you can’t queue it up early, as it will still be on cooldown. Thus, we pay a “double-latency” penalty on our rotation: if our latency is 50 milliseconds, our effective CS cooldown is actually 4.5+0.05+0.05=4.6 seconds. And it gets worse as your latency goes up; 100 milliseconds of latency puts you at a 4.7-second CS cooldown.

This has a slight effect on your rotation because it forces you to space out your CS casts. Generally, you’re not going to care about this much because you’re just going to live with it anyway. But if you’re aiming to have exactly X% haste for some reason – for example, if you wanted to make sure you were casting exactly 1 ability per second – then you’d want to account for this extra amount. In general, aiming for an additional couple percent of haste will be enough – in the case mentioned, you’d need an additional ~6.67% haste to turn a 4.7-second CS into a 3.0-second CS after latency.

Note, however, that latency does not significantly devalue haste under normal circumstances. Haste won’t reduce your latency, of course, but your latency is generally small compared to the cooldowns being reduced by haste. So if you add 10% haste, you’re still going to be casting everything about 10% faster. As you stack more haste this starts becoming significant because your latency is a greater fraction of the cooldowns being reduced, but if you’re below the 50% haste GCD cap, you’re devaluing haste by less than 5%. And of course, the latency penalty doesn’t affect auto-attacks, Seal of Insight, Censure, Sacred Shield, or Eternal Flame at all.

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

41 Responses to Haste Breakpoints for Tankadins

  1. DisRuptive1 says:

    Does this mean that we get our 6th tick on Sacred Shield just by using Seal of Insight?

    I’m also having serious problems wrapping my head around your Sacred Shield Break Points table. Are you sure your numbers are correct? Do I really only need 78 haste rating along with Seal of Insight in order to get my 7th tick on Sacred Shield?

    I’m trying to understand your table because my raid doesn’t run with the Spell Haste buff so I have to do all my numbers manually to figure out which direction I want all my secondary stats to lean.

    • Jackinthegreen says:

      RB= Raid Buff, which is the spell haste buff. No need to do it manually since the numbers without the buff are already there as SOI or SOI+BL.

      • Jackinthegreen says:

        Ah, it looks like I misinterpreted you. Of course you can tell that the numbers without RB are there, but there’s the issue of the numbers themselves looking off. Which Mike explains so I won’t.

    • I had the same issue, once I did the math though I found the issue, you need to multiply by 100 since that is the decimal answer. So for 30% with RB + SoI you need 1 + 0.12562% to hit 30.001%, .1256 * 425 = 53.392. But since we dont want .125% haste we actually want 12.56% you have to multiply by 100…if that makes sense.

      • > This is where Theck tells me Im wrong, explains everything like the boss he is, and teaches me more about math than I learned in HS <

        • Theck says:

          Hah, not quite. Looks like it was just a simple copy/paste error. All you had to do was multiply most of the rating numbers by 100, because the version of the code output that got pasted into the article was missing a factor of 100. The new ones should be correct.

    • DisRuptive1 says:

      Ok I get it now but the numbers are completely wrong. I was looking at it trying to figure out how much haste rating I needed to get the given percent haste rating. The numbers given in the table are 100 times less and then a few points above what they need to be. From other websites that have brought up this issue, it was confirmed that you needed 5,336 Haste rating to get to the 30% mark with the 5% raid buff and the 10% Seal of Insight.

      Take the haste percentage and convert to decimal then add one (30% ===> .30) (.30 + 1 = 1.3). Divide that number by 1 plus the decimal form of the raid buff (1 + .05) then divide again by 1 plus the decimal form of SoI (1 + .10) which is 1.3 / 1.05 / 1.10 which equals 1.1255…. Subtract 1 from that number and then muliply by 100 (1.1255-1 = 0.1255) (0.1255 * 100 = 12.55). 12.55% Haste from gear is what we need to hit the 30% mark with the raid buff and Seal of Insight. Since we need 425 rating for 1% haste, we multiply 12.55 by 425 to get the necessary rating which is 5,335.49 which we round up to 5,336.

    • DisRuptive1 says:

      The way I read the table was based on how much Haste rating we need to get to the specific percentages. Theck, your table will be easier to read if you put in the following numbers:

      | | 10% | 30% | 50% | 70% | 90% |
      | No modifiers | 4250 | 12751 | 21250 | 29750 | 38250 |
      | RB | 2024 | 10120 | 18215 | 26310 | 34405 |
      | SoI | 0 | 7728 | 15455 | 23182 | 30910 |
      | RB + SoI | 0 | 5336 | 12695 | 20055 | 27414 |
      | RB + BL | 0 | 0 | 4204 | 10431 | 16658 |
      | SoI + BL | 0 | 0 | 2081 | 8025 | 13969 |
      | RB + SoI + BL | 0 | 0 | 0 | 5619 | 11280 |

      The table is formatted properly when you change the font.

      • Yeah thats basically what i got, only I used the Solve feature of my TI-89 to find X in (1.05 * 1.1 * (1 + X)) = 1.3001 (since that literally gets us over the rounding issue he mentioned).

        My issue now is that the in game results dont line up with the math so far. On my SS with SoI Active I should get 6 ticks, but only get 5, and the duration is ~27sec, which matches the expected duration with 5 ticks instead of 6.

        • Theck says:

          You should get the next tick just with SoI active. I’m not sure I’ve explicitly tested it while naked, but I know I’ve done it with very low haste (i.e. <4%). I'll have to test it tomorrow – it might be a weird bug.

      • Theck says:

        Yeah, the bug in the code was a missing factor of 100. Apparently WordPress didn’t save the final version before I published, where I updated the table. I copied over the output of the code and updated, they should be correct now.

    • Theck says:

      Argh, the numbers for everything past “no modifiers” are all completely wrong. There was a bug in the MATLAB code I was using, and I fixed it, but apparently I never saved the changes to the post when I copied the new values over into the table. I’ll have to wait to fix them until I get home.

        • I was still only getting 5 Ticks with solely SoI active with a 27.16s Buff Duration, however, reforging into 87 Haste Rating (the smallest I could do) was enough to push it over to 6 Ticks and ~31s Duration. I assume at this point that such a case is an example of landing directly on the percentage breakpoint, similar to your comment regarding 30% vs 30.001%.

          • Theck says:

            It might be that the banker’s rounding is working differently than I described then. I just checked and you’re correct: with just SoI and 0% haste from other sources, I only got 5 ticks. However, putting on 3 haste rating gave me the 6th tick. My current guess is that the banker’s rounding is applying to 10% for some reason; I have to think about it some more to see if there’s an alternative formulation that predicts this.

            Another thing I’d like to test is reaching exactly 12750 haste to see if it’s affecting that break point or not – that will tell us whether everything is shifted by 20% (or, alternatively, it’s “rounding to odd” instead of “rounding to even”) or whether it’s always rounding 0.50 down to the lower integer.

  2. Soltron says:

    I’m having some trouble interpreting your table as well.

  3. Jackinthegreen says:

    Mind if I expand the tables a bit for primarily Holy use? Mostly adding Divine Favor into the mix as well as expanding the haste breakpoints to match reasonable gear levels for combined effects.

    Also, in your CD breakdown it doesn’t look like you mentioned Sanctified Wrath at all. Lowering J’s CD by 50% means it will always be shorter than CS, thus it seems reasonable to always have J>CS during that time, yes?

    • Theck says:

      Go right ahead.

      As far as Sanctified Wrath: yes, your rotation changes to J>CS during Avenging Wrath if you take that talent. That’s basically independent of haste though.

  4. I capped myself at 5500 figuring that will give me a buffer if Mike isn’t 100% accurate. I haven’t checked where I’m at with the 5% buff, but w/o it I’m sitting at 24.25% which should be pretty accurate to push me to 30% probably just a little bit over but I’d rather be a little over than a little under.

  5. Tsyndr says:

    I understand the idea of breakpoints giving an extra tick being great for hots and dots where you might let them expire. But as stated in the beginning, buffs that have nearly 100% uptime scale linearly with haste. If I’m good about refreshing my Sacred shield before it expires, do the breakpoints add any benefit? Or should I not be refreshing SS that often?

    Happy turkey day.

    • Theck says:

      If you’re refreshing SS before it expires, the haste breakpoints aren’t as critical. However, because SS has such a long tick duration, they may still be noticeable, because reaching a new tick suddenly gives you 6 extra seconds (~4 GCDs) in which to refresh it. I still don’t think it’s worth dancing around SS haste breakpoints just because of that, though.

  6. Lakh says:

    I may not be following you correctly regarding latency, but I think you’re wrong.

    With the ability queue, I’m nearly positive that you can queue up abilities that are still on CD. I’m Australian, with 230ms latency on a good day & I’ve routinely dealt with up to 300-400. If you boost your Lag Tolerance up to 400ms you should find that you can start casting while there’s still 0.4s left to go on any ability’s cooldown.

    Did a little experimentation with Lava Burst on my Shaman. At 400ms Lag Tolerance, I have screenshots of the character beginning their casting animation with 0.2s left on the ability’s CD. Combat log does not report the cast beginning until the CD remaining hits 0 though.

    With Crusader Strike on my Paladin, I can press the button once with 0.2s left on the CD (according to the screenshot I took at the same time), and when it hits 0s the animation + combatlog both show the cast simultaneously. I was standing at 90 degrees to a dummy so as not to mix it up with regular melee swings.

    Am I misunderstanding what you’re getting at?

    PS. I’d be willing to bet that 0s on the CD would be when the Shammy puts their hands forward during the cast animation and the Lava Burst first appears. I’d need to record it in a movie and slow it to frame-by-frame to check that tho & I don’t have that setup at the moment.

    • Theck says:

      I definitely get the “Ability not ready” error message when I try and do that with Crusader Strike. I’ll have to check though – maybe my latency tolerance got set too low at some point. I didn’t think they changed the way that worked since Cataclysm though, and I’m certain that you couldn’t queue abilities that were on cooldown in Cata.

      • Lakh says:

        I didn’t really start noticing it until I leveled my Ele/Resto Shaman alt and started playing with a lot of cast time stuff. When you’re obsessively hovering over Lava Burst and playing at 300ms+, you start to realise that something is weird with the timing – especially when you tend to button mash just before spells are due to come off CD.

        They tend to sneak latency stuff in without acknowledging it, so it wouldn’t surprise me if there was a stealth change. They definitely design around latency at times though – e.g. once tornadoes have spawned on Blade Lord they’re handled at the client end imo… my US guild spends a fair bit of time laughing at me running through tornadoes without being picked up (from their perspective) & I get the same view of them.

        PS. insert obligatory rant about Bliz cheaping out on oceanic support here – they even run the “oceanic” support lines on US hours, shutting down during the middle of the afternoon AU/NZ/SG time ><

  7. Keldion says:

    When researching haste breakpoints in early Cataclysm, I found that Blizzard rounds periodic effects to the nearest millisecond. Your calculations are very close to my own, so I will share them here.


    • Theck says:

      Have you tested any of those breakpoints? That would explain the requirement of 1 haste rating with SoI, but your method gives different answers at higher rating values from the method I’m using (consistent with Hamlet from EJ). This is something we should be able to test, provided we can reach the rating values of interest.

      • keldion says:

        I have not personally tested them other than 1 haste rating with SoI for Sacred Shield. Removing all your gear and then activating SoI will show Shield’s total duration under 30 seconds, but adding just 1 haste will cause the duration to oscillate upward.

        I do owe Hamlet and other EJ members credit for finding the banker’s rounding behavior.

        • Theck says:

          Yeah, I tested that particular breakpoint as well, but that could be explained in a different way – use Hamlet’s method, but shift the banker’s rounding – i.e. N=1+bRound(Duration/Tick-1). While that seems arbitrary, it guarantees you’ll always get at least one tick, even if you were excessively slowed, so there’s some logic to it. What we need to do is test some of the other breakpoints to see how they behave – that should definitively tell us which formula is more accurate.

          • Theck says:

            Just tested one of the breakpoints, and I can confirm that I saw 6 ticks at 5333 and 5334 haste (plus raid buff and SoI), but 7 ticks at 5335-5337 haste. That doesn’t verify either method, unfortunately, because it’s consistent with N=1+bround(Duration/Tick-1) as well as your value. I have gear sets made to test the 50% (RB+BL) breakpoint, which I’ll do as soon as I can find a shaman.

          • Theck says:

            Ok, just confirmed this in-game. We’re definitely getting the 8th tick at 4198 haste rating with BL+RB, not 4204. That means you’re correct about T being rounded to the nearest millisecond. If I adjust my code to accommodate the extra rounding by changing T=T0./(1+spellHaste) to T=roundn(T0./(1+spellHaste),-3), I get exactly the same breakpoints as your spreadsheet. I’m going to update the post accordingly.

  8. Ive been mulling it over in my head all weekend, and I have to wonder (this may end up being a topic for the future, who knows) if there are certain haste/mastery breakpoints. What I mean is that my gut says that I could be very beneficial to stack mastery up to a 50% reduction from SotR, ~ 4800 Rating including Might, and then stack haste to either 5335 for the extra tick with SoI + RB or even 5618 for the 2 extra when BL/Hero/TW is also active. That sort of flip flopping of stats seems like it could be very beneficial, though without any math to back it up I think its just the crazed musings of an overworked retail associate :S

  9. Pingback: Holy Moley - Page 9 - Elitist Jerks

  10. Chuck Meek says:

    So if I am to read the chart correctly, only with SoI active (we don’t have the RB…Boomkin), I need just SoI to reach the minimum haste breakpoint of 10%. But then I can reach the 30% by stacking haste, provided I stay hit & exp capped. But in all reality I should stack to a minimum of 2075 to benefit from BL?

    I understand stacking haste will generate HP faster, but will any amount after that 2075 be hugely beneficial?


    • Theck says:

      You need SoI plus at least one haste rating to get the 10% breakpoint due to the way the rounding works. It’s not that critical to hit the 2075 breakpoint though – if you’re following the rotation, you should be refreshing SS frequently enough that it rarely drops off, so the benefit of haste is approximately linear.

  11. Pingback: TUANHA PALADIN - The Ultimate Experience (Extreme PvP) - Page 99

  12. Rhodie says:

    I think i understand all this, could you tell exatly how much haste we should have (paladin tank), Also, i am not at you guys level yet ilvl482, i wanted to ask should i use a 463 sword over a 476 axe because of the 340exp bonus for being human?
    and one other thing: dose weapon speed have any effect on anything? i made a ilvl115 sword becasue it has a swing time of 1.7 jus to try it out. dose weapon speed effect anything?

    Thanks for this web site, i have been serching forever for clear answers and a place where people actualy break down the game using logic. I have a BS in math and your breaking down the mechnaics is great.

    thanks again, RHODIE arygos

    • Theck says:

      There’s no exact amount of haste we should have – more is generally better since we’re unlikely to reach any of the very high thresholds in this post.

      Regarding the sword, your racial is worth 340 expertise, which is often enough to make the sword better, especially if you can’t reach expertise cap without it. It won’t always be a DPS increase though, because it depends on the exact stats of each weapon (i.e. a 463 hit/exp weapon will likely beat a 476 dodge/parry weapon in DPS).

      Weapon speed doesn’t affect anything in this post, though it will affect things like Seal of Truth DPS. However, we generally prefer slower weapons for that, and it has a less significant effect on Seal of Insight.

  13. Mercie says:

    At what point does Melee Haste taper off? If I can get more should I just keep at it?
    Currently around 15.65%.

  14. Pingback: [Prot] 5.2 - Its Time (to Begin... not hating avoidance) - Page 3 - Elitist Jerks

Leave a Reply