Friday, November 13, 2009

How Caster Haste Works

This is a topic I've talked about before (although not on this blog), but I still see a lot of confusion about it.  So if you're don't know exactly how haste works, this will hopefully clear that up for you.

Fair Warning: This post will contain formulas, although I'll do my best to keep it simple.  If you are allergic or if you already know the topic, feel free to skip it.

A Definition
Think of haste as increasing the number of casts you can cast in a certain time.  In other words: If you could cast X spells before in a fight, then 20% haste should let you cast 1.2*X spells in the same time.

This isn't exact - spells can run into the GCD (especially for moonkins), some spells have cooldowns or static durations (so you really can't cast more of them, but instead get more of other spells) and there are also queuing issues with instant spells.  But as a general idea, you need to think of haste working this way.

Keep in mind that while haste does reduce cast time, it isn't a straight reduction - 20% haste doesn't mean taking 20% off of a 3 second cast, for example. 

Calculating Cast Time
This is the current formula for cast time:
Final Cast Time = (Base Cast Time) / ((1 + haste1)*(1 + haste2)*...*(1 + hasteN))
I posted that first because I'm going to refer back to it, but let's start with a simpler example to get the basic idea.  Don't worry if you don't understand the formula at this point.

Let's say you only have one source of haste: Nature's Grace, which is 20% haste.  And you want to calculate the cast time of your Starfire when Nature's Grace is procced.  Then the formula is:
Final Cast Time = (Base Cast Time) / ((1 + haste1)*(1 + haste2)*...*(1 + hasteN))
Final Cast Time = (3) / (1 + .2)
Final Cast Time = 2.5
Note that I use .2 instead of 20% - they mean the same thing, but .2 makes more sense if you are plugging this into a calculator or other tool.  With only one source of haste it's pretty simple - you just take the cast time and divide.  Now take the above example and we'll add in Celestial Focus (3% haste) and Improved Moonkin Form (3% haste).
Final Cast Time = (Base Cast Time) / ((1 + haste1)*(1 + haste2)*...*(1 + hasteN))
Final Cast Time = (3) / ((1 + .2)*(1 + .03)*(1 + .03))
Final Cast Time = (3) / (1.27308)
Final Cast Time = ~2.36
What happens is that every source of haste you have is multiplied together.  Instead of being additive like crit (where 5% from talents + 5% from gear = 10%), we actually get a little extra - 20%, 3% and 3% ends up being the same as 27.308% haste.

So now, looking back at the original base formula:
Final Cast Time = (Base Cast Time) / ((1 + haste1)*(1 + haste2)*...*(1 + hasteN))
  • Base Cast Time - this is the base cast time of the spell before any haste effects, but after talents like Starlight Wrath.  The base cast time on Starfire is 3 seconds - the base cast time on Wrath is 1.5 seconds.
  • haste1/haste2/hasteN - these are placeholders for a variable number of haste effects - you could have two, three, four, or even more depending on raid buffs and talents.  In general every distinct source of haste should be separate and multiplied - each individual talent or buff, and then your haste rating as it's own category (note that this includes haste from stuff like Potion of Speed or haste food as well as haste rating on gear).
I'm going to finish this up with an example using my own numbers and then with in-game proof (just so you don't have to take my word for all this).  For this example I'm going to use Hurricane - Blizzard's spell book only gives you 2-digits after the decimal point, so a longer cast time gives better precision.

My Haste Buffs:
3% from Celestial Focus
3% from Improved Moonkin Form
20% from Nature's Grace (procced with Starfall)
17.17% haste from gear

Final Cast Time = (Base Cast Time) / ((1 + haste1)*(1 + haste2)*...*(1 + hasteN))
Final Cast Time = (10) / ((1 + .03)*(1 + .03)*(1 + .2)*(1 + .1717))
Final Cast Time = (10) / (1.491667836)
Final Cast Time = 6.7
And now in-game:
6.7 seconds, on the dot.


  1. You don't discuss the additive stacking of haste rating buffs--probably an important thing to note.

  2. Ok, just noticed you did mention it, although it might not be totally clear for someone who doesn't know it already.

  3. I had some confusing wording in there (I said each source of haste rating) - took out the word rating. Is that clearer?

  4. just wondering wild, is there a new % number of haste u should stack or can it be endless and still be higher stat value than crit for example when u have engame gear...

  5. This comment has been removed by the author.

  6. @Raimonz
    It's easy to see if you look at Graylo's last numbers. The more haste or crit you have, the worse they are, but haste get worse faster than crit, so (i dont have the exact number) the point where crit > haste might be between 420 and 460 haste

  7. Pachi, that's 100% false - if anything crit gets worse faster then haste past 400. You get a ton of crit from talents (and unlike haste crit is additive), the benefit from NG is also reduced since it is more likely to already be up, and it has a smaller effect on Eclipse uptime the more you have.

    There's no reachable point where haste is going to be "bad" to stack.