1. Introduction

Moonkins like haste. One of the reasons why we do is the fact that a percent of haste in gear is worth more than a percent of effective haste because of Nature’s Grace. The goal of this post is to get an estimate of how big is this “Nature’s Grace haste multiplier” and what factors influence it. Among other topics, deriving a simple formula for it is relevant for theoretical analyses of the Balance Druid Tier12 4pc set bonus.

2. Description of the talent

The ingame Rank 3 Nature’s Grace description is this:

You gain 15% spell haste after you cast Moonfire, Regrowth, or Insect Swarm, lasting 15 sec. This effect has a 1 minute cooldown. When you gain Lunar or Solar Eclipse, the cooldown of Nature’s Grace is instantly reset

For most single-target situations, the Eclipse-to-Eclipse period is less than half of that 1-minute cooldown, so the relevant cooldown of Nature’s Grace for Balance Druids equals the period between one Eclipse and the opposite Eclipse.

3. Analysis

Suppose you get more haste on gear. That will lead to faster casts and faster switching between Eclipses. But that means more Nature’s Grace uptime, which leads to a even faster cast speed. There’s a feedback which amplifies the effect of haste. Let’s figure it out.

List of variables:

– Average haste: H
– Haste on gear (not haste _rating_) plus haste from raid buffs (multiplicatively stacked): h
– Nature’s Grace uptime: NG
– Zero-haste Eclipse-to-Eclipse time: $T_0$
– Eclipse-to-Eclipse time: $T$

Haste while NG is active equals: $h_{NG} = (1 + h) (1 + 0.15) - 1 = 0.15 + 1.15h$

Average haste is the sum of haste without NG multiplied by the NG downtime and haste with Ng multiplied by the NG uptime: $H = (1 - NG)h + NG (0.15 + 1.15h)$ $H = h + 0.15(1+h) NG$ (1)

Eclipse-to-Eclipse period equals the zero-haste E2E period, divided by one  plus average haste: $T = \displaystyle \frac{T_0}{1 + H}$ (2)

Nature’s Grace average uptime equals 15 seconds divided by the Eclipse-to-Eclipse period. $NG = \displaystyle \frac{15}{T}$ (3)

Substituting (2) in (3) and (3) in (1), we get: $H = h + 0.15 (1 + h) \displaystyle \frac{15}{T_0} (1 + H)$

Solving for H: $H = \displaystyle \frac{0.15 \cdot 15}{T_0 - 0.15 \cdot 15 (1 + h)} + \displaystyle \frac{T_0 + 0.15 \cdot 15}{T_0 - 0.15 \cdot 15 (1 + h)}h$ (4)

Therefore, our marginal multiplier is $m(h) = \displaystyle \frac{dH}{dh} =$ $\left ( \displaystyle \frac{T_0}{T_0 - 2.25(1 + h)} \right ) ^2$

Defining the parameter $H_0 = \displaystyle \frac{2.25}{T_0 - 2.25}$, we can rewrite (4) as: $H(h) = H_0 + \displaystyle \int_0^h m(\lambda) d \lambda$

which tells us that average haste equals a constant term, $H_0$ (that is the haste we would get from NG even if we had no buffs and no haste on gear: let’s call this “constant haste”) and a term which depends on marginal haste in a non-linear manner (let’s call it “variable haste”). Since, for relevant values of $h$, $m(h)$ behaves almost linearly (as shown in Figure 1), we can approximate it with a first-order Taylor series expansion around zero (a technique also known as linearization in science and engineering): $\tilde{m}(h) = m_0 + m_1 h$

where $m_0 = \displaystyle \frac{T_0^2}{(T_0 - 2.25)^2}$ and $m_1 = \displaystyle \frac{4.5 T_0^2}{(T_0 - 2.25)^3}$. We can therefore integrate $\tilde{m}(h)$ to get an approximated $\tilde{H}(h)$: $\tilde{H}(h) = H_0 + m_0 h + \displaystyle \frac{m_1}{2} h^2$

Which is a good enough approximation for our purposes, as shown in Figure 2. Alternatively, we could obtain the same expression from a second-order Taylor series expansion of $H(h)$ around zero.

What is $T_0$? The base cast time of Starfire is 2.7 seconds, (3.2 s less 0.5 s because of Rank 3 Starlight Wrath). With 2 refreshes of both DoTs, we can suppose a Lunar-to-Solar with 9 Starfires, 2 Starsurges and 4 GCDs for the DoTs, or 9*2.7 + 2*2 + 4*1.5 = 34.3 s

With these numbers, $m$ varies between 1.18 and 1.20 for the amounts of haste found raiding moonkins: that is, Nature’s Grace increases the marginal value of haste in gear by around 19%. $H_0$ is 0.07, which means that we get 7% average haste from Nature’s Grace alone.

Another useful magnitude is the average multiplier: that is, for a given amount of haste, what number $\bar{m}$ do we need to multiply by haste to get total variable haste (as opposed to the marginal multiplier, which only affects marginal amounts of haste) $\bar{m}(h) \cdot h = \displaystyle \int_0^h m(\lambda) d \lambda$ $\bar{m}(h) \cdot h \approx \displaystyle \int_0^h \tilde{m}(\lambda) d \lambda = m_1 h + \displaystyle \frac{m_2}{2} h^2$ $\bar{m}(h) \approx m_1 + \displaystyle \frac{m_2}{2} h$

4. Applications

With this framework we can quantify one of the effects of our 4t12 bonus: shorter Eclipse-to-Eclipse switching (other benefits are a greater % of our nukes buffed by Total Eclipse and less clipping on Eclipsed DoTs). In this example, that’s less Starfires (2.7 sec less). When changing $T_0$ from 34.3 to 31.6, $H_0$ increases from 7% to 7.7%, and $\bar{m}$ increases by about 0.016 (with 25% – 30% raid-buffed haste, that’s between 0.4% and 0.5% more haste). The net change is about 1.2% average haste, which affects mainly our nukes (since, in an optimal rotation, MF/SunF are always buffed by Nature’s Grace, unlikeIS). Since SF and Wrath account for ~50% of our damage, that’s about a 0.6% DPS increase.

5. Limitations of this approach

The main problem with this analysis is that average haste is not effective haste. Thus, while we can assume that they are quite similar when thinking about our haste on nukes (because that’s what we are casting most of the time), they are not when thinking about haste on DoTs, because we cast them in a way that ensures that most IS don’t get buffed by NG but almost all Moonfires and Sunfires do, and an improved Nature’s Grace uptime isn’t going to change that.

A less important factor is that we have not taken Euphoria into account: there’s a chance that some nukes generate double Eclipse energy. That reduces the Eclipse-to-Eclipse period and thus improves the value of the NG multiplier a bit. On the other hand, Solar to Lunar is slower than Lunar to Solar and thus it should err on the opposite direction with a similar magnitude. Anyway, these two considerations have very limited consequences.

6. Figures

7. Changelog

– 24/08/2011: analysis redone for multiplicatively-stacking haste, since there are relevant differences between the results of both analysis.
– 10/08/2011: initial version