Casting speed

Casting speed is the time it takes for a spell to take effect. Some spells are "instant" and take effect immediately, while some spells are "channeled" and have their effects occur over the duration of the cast. Others take effect after a specific "cast time", with typically more powerful spells having longer cast times. Regardless of the type of spell, there is a global cooldown that prevents rapidfire spellcasting even with "instant" spells.

Various factors can reduce a spell's "cast time" from its base "cast time" (specified in the spell):


 * Class talents: Most classes have talents that can reduce the cast time of:
 * A specific spell, such as Light's Grace and its effect on Holy Light
 * A class of spell, such as Divine Fury
 * A school of spell, such as all holy spells
 * All spells in general, such as Martyrdom and the Focused Casting effect.
 * Spells: Some classes have spells that temporarily reduce the cast time of subsequent spells, such as Nature's Swiftness. Spell haste is calculated based on modified casting speed; for example, with the warlock's Bane talent, the spell haste would be calculated with 2.5 second Shadowbolts rather than 3 seconds.
 * Certain items: Provide a "spell haste" bonus or a "spell haste rating" bonus. Spell haste rating is used to determine the characters spell haste bonus.  At level 80, 32.79 points of spell haste rating grants 1% spell haste bonus.  As of 2.4.0 spell haste also influences spellcasting global cooldown.

Certain debuffs, such as Curse of Tongues or Mind-numbing Poison, can decrease your casting speed.

Casting speed calculation
% Spell Haste at level 70 = (Haste Rating / 15.77)

% Spell Haste at level 80 = (Haste Rating / 32.79)

New Casting Time = Base Casting Time / (1 + (% Spell Haste / 100))

Note that "base casting time" is after talents. For example, a warlock's shadow bolt is 3.0 "base cast time" under normal usage of the term "base cast time". However, for the purpose of this formula, you should use the improved cast time from your talents (2.5 cast time, in this example) if you have that talent, or the formula will not give the correct result.

Essentially, 1% haste allows a player to cast 1 additional spell in the time it would normally take to cast 100 spells. If the spell is a 3 second cast, that means one can theoretically cast 101 spells in 300 seconds, or 2.97 seconds per spell.

To determine the amount of time taken to cast a given sequence of spells, the reverse formula can be used, where Base Casting Time is the sum of all the spells in the given sequence:

Haste Rating needed at level 70 = ((Base Cast Time / Desired Cast Time) - 1) * 15.77 * 100

Haste Rating needed at level 80 = ((Base Cast Time / Desired Cast Time) - 1) * 32.79 * 100

Example: I am a level 70 mage, and I want my Fireball (3s), Fireball (3s), Scorch (1.5s) cast chain to take 6.5 seconds. Therefore, a [1577 * ((7.5 / 6.5) - 1) = ~243 Haste Rating] is required.

Note: Blizzard rounds to 4 significant digits.

Pre-3.0
Haste Rating used to be split into "Haste Rating" (which only affected attack speed) and "Spell Haste Rating" (which only affected spell casting speed). The two have been unified as of patch 3.0.2 into one universal Haste Rating stat. All gear which used to have Spell Haste Rating now has an equal amount of Haste Rating.

Improving casting speed
Various sources that improve casting speed are listed on the Casting Speed improving items page.

Note: Haste rating stacks additively with itself but haste stacks multiplicatively. That means that if you have 158 haste rating, you will have +10% haste, no matter how many sources and items that haste rating comes from. If you then use troll Berserking for +30% haste, you would have 110% * 130% = 143% haste.

Spell Pushback
Recieving a damaging attack while casting will "push back" the cast by 0.5 seconds. This is visible from the casting bar flinching away from completion. Only the first two attacks will cause pushback, in effect lengthening the casting time by 1.0 seconds. Some talents reduce the amount of pushback by 70%. The reduction is additive to a paladin's concentration aura (another 35%) which will negate spell pushback.

Note: Before 3.0, spell pushback ranged from 0.5 to 1.0 seconds per hit and was not limited to just the first two hits, which made casting extremely difficult when repeatedly taking direct damage.

Haste Formula
The global cooldown for casters with no haste is 1.5 seconds. Haste reduces the global cooldown according to the general formula for haste:
 * NewCastTime = BaseCastTime * ( ( 1 + HasteRating / ( RatingConversion * 100 ) ) ^ -1 )

RatingConversion represents the haste rating required for 1% haste at a given level.

Percentage Reduction
The amount of haste required to reduce the global cooldown to a desired value can be calculated by:
 * Haste = ( ( BaseCastTime / DesiredCastTime ) - 1) * 100
 * For example: 100% haste = ( ( 1.5s / .75s ) - 1) * 100

Haste Rating
Rearranging the general formula for haste:
 * HasteRating = ( RatingConversion * 100 ) * ( ( BaseCastTime / NewCastTime ) - 1 )

For example: 500 hasteRating = ( 10 hasteRating * 100 ) * ( ( 1.5s / 1s ) - 1 )

To reduce the global cooldown to an arbitrary value of 1 second, it would take 50% haste or a haste rating of:

With raid buffs such as Wrath of Air Totem and Swift Retribution, the number will be lower.

DoTs / HoTs
Since Patch 4.0 all DoTs and HoTs can benefit from haste. The period of time the DoT / HoT is running keeps the same, but there are added additional ticks if the haste is high enough. Because only whole ticks can be added, rounding is used to determine the number of ticks. So it is sufficient to have haste for a half additional tick to get the whole tick.
 * Haste = ( ( NumberBaseTicks + NumberAdditionalTicks - 0.5 ) / NumberBaseTicks ) - 1 ) * 100

For example: Rejuvenation ticks 4 times within the 12 seconds. For one additional tick it requires
 * Haste = ( ( 4 + 1 - 0.5 ) / 4 ) - 1 ) * 100 = 12.5 %

Because this is the necessary haste for 4.5 ticks (rounded up to 5 - so one tick additional to the 4 base ticks), two additional ticks will not require 25 % haste but
 * Haste = ( ( 4 + 2 - 0.5 ) / 4 ) - 1 ) * 100 = 37.5 %