Two people discussing Ocarina of Time, and other essays. Lately, back to our WoW roots. Twitter: @HamletEJ @perculia

Main menu

HealerCalcs

This is the spreadsheet I use to evaluate healing spells and healing classes for 6.0. It’s grown out of previous ones I’ve made for certain classes, but it is somewhat more elaborate and has a lot machinery for healer-specific problems. An overarching point to keep in mind is that healer modeling is in a certain sense intractable since you reasonably use your spells in almost any combination depending on the situation. The goal is to make a motivated choice of what combinations to look at in order to flesh out your understanding of the dynamics of each class and how it works in a variety of situations. In addition to explaining the mechanics of the sheet, I’m going to put a section in this post explaining the thinking behind the model.

Download

Can be opened in typical programs that can open Excel files, but some features will only work in Excel.

Using HealerCalcs – Basic (Individual Spell Information)

To start understanding healing theorycraft, you can focus on the “Spells” tab, which shows important information on every healing spell. Even without getting into healing “rotations”, understanding the relative throughput and efficiency of all your spells and spell combinations goes a long way towards improving play of your class.

Start in the “Main” tab and select your class, talents, stats, glyphs, and buffs (the talent dropdowns are slightly awkward due to being class-agnostic).

In the class dropdown, don’t worry about which “rotation” variation you pick for the class for now, and don’t worry about the “filler ratio.”

The only tricky point in putting in the info is that that the stats in the pink boxes should be your unbuffed stats from gear. An easy place to get this is by loading your character’s Wowhead profile, which shows a column called “Item stats” that shows this.

“Spellpower” does not include Intellect, just the spellpower-only stat on your weapon.

Don’t worry about the rest of the “Main” tab for now.

Then, head over to the “Spells” tab, and scroll down to the block of rows pertaining to your class. Each spell’s row shows a lot of information. The important columns are:

“kHPCT”: Total heal divided by cast time, expressed in thousands. This and HPM are the two most important statistics about a spell’s performance: its throughput and its efficiency.

“kHPCD”: Total heal divided by cooldown, expressed in thousands. Sometimes a useful throughput figure to understand the contribution of spells that can’t be chaincast.

The next block of 7 columns shows the spell’s scaling with each stat (these use data tables, which will only work if you open the sheet in Excel). In each case, it shows the percent increase to the spell’s total healing from adding a point of that stat (expressed in parts-per-million).

Haste has two columns: the first showing increase to total healing, like for the other stats, and the second showing increase to HPCT. I include both since haste often increases HPCT without increasing healing done or efficiency.

The remaining columns are used to derive the ones already mentioned, but may provide helpful detail.

While I called this “basic”, looking at the comparisons of individual spells is actually often the most important and useful way of analyzing healers. Precisely because healers tend to use spells somewhat independently of each other based on the situation, not in a fixed “rotation”, the individual spell information is a good way to think about casting decisions.

The Rotation Model

The basic problem is that setting up a healer rotation in a spreadsheet in the same way that you would a DPS rotation (filling all cast time and getting maximum possible throughput) is not very useful. That’s just not the most important information you need to know. The flip side is that a totally freefrom allocation of how much you use each spell is also kind of pointless. It’s basically just regurgitating the individual spell information as some kind of weighted average. It can be handy to look at, but the model isn’t doing any work for you.

So the goal is to pick spell usage patterns that show information about informative cases, while having some flexibility, but not having too many degrees of freedom. They way I set up each rotation was:

Assume strong cooldown-based spells are used on cooldown. All classes have some of these.

Similarly, assume any buffs or procs or resources from those spells are all used.

The available cast time that’s left open is your “filler” time. The one free parameter in every rotation is how much of this time you use on your filler spell and how much you leave open.

Thus, each “rotation” doesn’t represent a single HPCT/HPM value like it would for DPS, but rather a range of values based on how much or little you use the filler spell.

An important effect of this, and one of the key goals of the setup, is that gives a way to evaluate the benefit of added mana or regen. By assuming you increase the filler spell usage to cancel out mana gains, you can convert added mana into added healing.

This allows for a lot of powerful information, like comparisons of talents that incorporate both the healing and mana effects in the context of a typical rotation. The limitation of course is that to set up any rotation, you have to make assumptions about which spells (both cooldown and filler) are incorporated.

For now I’ve put in two alternatives for each class, one using the expected spells for single-target healing and one using the expected spells for raid healing. But there’s nothing stopping me from adding more rotation choices that show other spell combinations that are important to a class.

With that explanation, here’s how to see these rotations in the sheet.

Using HealerCalcs – Advanced (Rotation Models)

Set a value for “filler ratio.” Some rotations have 2 fillers. In that case, it fills all cast time with the first one as you increase the ratio to 1. As you increase the ratio beyond 1, it replaces that with the second filler. So valid values to put in are anything from 0 to 2.

You’ll likely have to get some intuition for the filler ratio by tinkering with your class (remember, this is what % of your leftover time, after using rotational spells, you spend spamming filler spells). Some classes burn a ton of mana if they spam a filler (Druid) and will spend a low % of time doing it; others spend most of their available time casting one (Paladin). A good way to judge is to sneak a peek at the “time to OOM” line a little lower down, showing how long you can sustain the selected spell usage.

One you’ve put in those few inputs, there is a lot of information throughout the Main tab. The first place is in “Main Results”:

“Rotation HPS” is the total raw HPS throughput of the selected rotation.

“Net MP5” is your average mana usage per time, net of all sources of regen. It’s how fast your bar will actually decrease if you maintain this spell usage.

“Time to OOM” is how long it takes to deplete a full bar, at that net MP5.

“Gross HPM” is how how much healing you’re doing on average per point of mana spent.

“Marginal HPM” is how much added healing you would do per point of mana, if you used that mana to cast your filler spells more often. This value is very important, since it’s what the data tables (below) use to determine how valuable mana is. NOTE: this value breaks if it’s impossible to cast filler spells more (i.e. you have one filler spell and the ratio is set to 1). Setting the ratio to 0.99 fixes that.

The graph on the main tab is a quick way to visualize the current rotation without having to worry about choosing and interpreting a filler ratio. It plots the HPS vs. MP5 of the current rotation at all possible values of the filler ratio. This lets you see what ranges of healing the rotation is capable of outputting, and at what mana cost.

Last but not least, next to every stat, talent, buff, bonus, or glyph are three values showing the benefits of that item, compared to if you didn’t have it. (Glyphs NYI).

The first two show the added HPS and MP5 you gain from that entry. The third is a combined healing/mana score that values the MP5 based on your marginal HPM (above).

For stats, it shows the value of one added point of the stat.

For buffs, set bonuses, and glyphs, if you don’t have the bonus selected, these cells will show the value that would be added to the rotation if you did have it.

These values all rely on data table functionality, so they work in Excel but not in other programs like OpenOffice.

These values are the most powerful thing the sheet does–show you at a glance the effect that any change would have on the current rotation.

Notes

This project was initially for my use, to support my theorycraft arguments and posts. But you see what happens when you leave me alone with Excel for too long. While I’ve put some effort into the presentation so that others can use it too, it still is set up more for functionality than total user-friendliness. I’m definitely open to comments and suggestions about how to make it easier to understand.

One thing I want to add is more customizable rotations, but that will be a lot of time to build and might not be a high priority (I’ll still keeping adding any specific ones that come up while I’m doing theorycraft). For now, you’re mostly stuck with the ones I put in, unless you dig through the sheet enough to add in more of your own.

One particular feature I’d like to add is importing the item stats (and possibly talents etc.) from the Wowhead profiles page I linked above. If anyone would want to help make a little widget to do that in Excel, please let me know.

Thanks to Dayani for helping me verify and update the spell info throughout alpha and beta, and for frequent discussions about healer theory.

49 thoughts on “HealerCalcs”

Would it be incredibly tough to simulate ideal rotations for specific fights? I haven’t gotten into a full-on attempt but I’m thinking: We’re given the information on boss damage and swing timers, abilities used during the fight along with their frequencies, number of raid members affected, and damage. If we can develop a few rotations (high tank/low raid, mod tank/mod raid, low tank/high raid etc) couldn’t we maximize effective healing output and mana efficiency this way? I keep seeing how people say healing is too complex for modeling but from the perspective of a healer I find it pretty simple.

I’m wary of getting too deep into some kind of simulated fight, but basic categories like “high raid damage” would make sense. One of the reasons I haven’t gotten into to that too much yet is that the information it would add is pretty marginal. For the most part, stat weights are a weighted average of the individual behavior of various spells, and in most cases spells scale pretty uniformly. So stat values will only vary minorly for most ordinary variations in spell usage. Similarly, by and large you’re trying to use your on-CD heals anytime there’s healing to be done with them, and fill with filler heals to do the rest of it (this is true at most amounts of incoming damage).

So if I imagine e.g. a situation where I’m using WG a little less than the aggressive model in the sheet, I have a very good idea how that looks already. Based on the Druid model I already have, there’s no particular open question about what stats to use or how to play in a case of “medium” rather than “heavy” raid damage, that would be answered by a slightly different model.

It’s not to say that there would be no value in working it out more thoroughly–a more exact estimate could always be worth something. But _most_ of the information to be obtained from analyzing rotations is obtained pretty well from one reasonably typical rotation model for each class.

I apologize if this is somewhere and I missed it, but how much of the shaman mastery is being used for the calculations here? One could make an argument that it could be used at a higher rate for certain spells, as they are more likely to be used when the target is low on health (Healing Surge comes to mind). That being said, that doesn’t really give a fair comparison of the spells.

Thanks for all the effort put into this! I’m debating between going with resto druid or shaman for warlords, and thus very useful at comparing the toolkits of each.

In continuing to look at shaman closely, I’ve noticed something strange about the values for HW and HS in the sheet. In the “spells” tab, the heal amount goes up when TW is NOT included for HW (the heal value goes up when TW is included for HS, but not by as much as you’d expect).

Looking closer, the base coefficients are the same for both conditions, but then jump up by 20% in the coefficient column when TW is not included. I’m on my phone, so I can’t look at the cell to see what’s being considered. Are these coefficients from in game testing?

That would be good. The reason I was hoping for Wowhead is that you can change you gear around in the profiler to try out different stats and setups. With Armory you could only import the gear you currently have. However, it would of course still be a useful addition. Do you think it would be easy to do?

I’ll look into it. If you can see my email maybe you could drop me a mail to where I can send you a sample or whatever. I’ll check options for parsing from Wowhead as well. You got a good point with “messing” around with setups, very valuable.

I need some help understanding the values of the spreadsheet. I selected Druid, and 100 haste correctly increase my haste (in the Total column) from 5% to 6.1%. However, 100 mastery increases my mastery from 13.25 to 14.16. Shouldn’t we get 1 mastery point for 88 mastery stats at level 100, not 110 as the spreadsheet suggests? Or am I missing something here?

Mastery is a little confusing. There is/was a concept called “points of mastery”, which translates into % mastery bonus at a different ratio for each spec. They hide that from the character sheet now and just show the %. Everyone still gets 1 point of mastery for 110 rating (which is what I show there), and then different classes get different bonuses from that–Druid gets 1.25% per point.

Thank you so much for this. I am new to theory crafting and have what i assume are noob questions.

Trying to understand how you get from the base coeff thru the columns q,r, and t. For example, does the 30% grace buff for disc play in there somewhere? what is the 1.25 added in column Q for flash heal and other heals and what is the class column. Thanks,
Maria

In general, Q adds up the coefficients based on the numbers of targets and/or ticks, and spell-specific buffs. That gives a total coefficient per cast with class-wide modifiers or secondary stats. Then, R gives the effect of any class-wide modifiers (the distinction isn’t totally firm, but point is, any buff should be in either Q or R). Then S factors in the effect of all secondary stats (and occasionally more complex things like Beacon). T multiplies together Q, R, and S for a final total coefficient.

At an average Itemlevel of ~640 (which is the itemlevel most players use to have right now) intellect seems to be superior at a factor of 5 towards every other stat. The conclusion would be that INT is ruling out every other stat so much, that I do not even have to make a decision between “should I use that 630 item with a socket, the 636 with perfect stats OR the 640 item (with probably shitty stats)”. It would almost in every case be the 640 item.

So my question, are these calculations right or do you work with logarithmic approximation, which could be a bit biased at this particular level. I can’t really look behind the spreadsheet.

How hard would it be to split out the filler spell section of the spreadsheet for multiple filler spells?
My understanding of the spreadsheet is if I pick a value of 1.25 for filler split between Healing Wave (filler 1) and Chain Heal (filler 2); I am using 100% of the time allocated to filler spells which breaks MP5 values. As stated ” NOTE: this value breaks if it’s impossible to cast filler spells more (i.e. you have one filler spell and the ratio is set to 1).”
I think I have a solution for this with multiple filler spells.
Split out the filler spells ratio to their own option box and use the existing filler ratio as a global control.
e.g. I can set a global filler of 0.5 & a filler spell ratio of 0.8 HW & 0.2 CH.
The spreadsheet would then calculate my total filler usage as 0.4 HW & 0.1 CH with 0.5 free time in the rotation not used. This provides more flexibility and allows the marginal HPM to work with multiple filler options.

I’ve pondered similar things a lot. I might do something like this next time I spend a lot of time on the sheet. I was trying to keep it to one variable (among other reasons, this makes the mana analysis easier). You’re right that the current way is limiting; I still want to see what I can come up with.

This is embarrasing to ask, but I can’t for the life of me get your spreadsheet to work. I always try to verify that these things are working properly before I start using them to analyze spells. I filled in my stats like you said. Set all buffs and germination to False and your spreadsheet says that my Rejuv is supposed to heal for 12289 when in reality it heals for 17056 (no crits/multistrikes, no Harmony up). In-game tooltip says 15963.

If anything shouldn’t your spreadsheet have higher numbers because you include crit, multistrike and harmony? I’ve input the numbers from the wowhead excatly like you say, even tried at work with an english excel application (and different version) but no luck

Thanks for this great tool! I’m still muddling my way through it, but noticed a couple of values that were off for Shaman spells. Not sure if it helps you to point this out or not, but figured it couldn’t hurt:
* For Healing Wave (with Tidal Wave), the cast time is incorrectly divided by .8 for some reason… which in turn also affects the UE version (or more correctly, UL); the non-TW version is correct.
* Casting totems uses a 1-second GCD, instead of the standard 1.5-second GCD. I assume it is likewise affected by Haste, but can’t easily verify this. So the cast time for HST and HTT should reflect this.

Hi, probably a dumb question but:
For disc priest this isn’t updated at all, is that possible?
My problem is, that I saw so many things to change, I just couldn’t change all of them, and I probably just failed while reading the instructions (it was a really long day)

A most excellent spreadsheet; it’s extremely well done. I was reviewing the Priest section and think it may need a few small adjustments to get it perfectly up to date.
* For Holy, Mastery scales at 1.3% per ‘point’.
* For Divine Hymn, I think the spellpower coefficient may have changed to 140% (I’m not 100% sure on this one).
* I think that all the Atonement spells (including PW: Solace for Holy), no longer double-dip into Versatility (unless they’ve accidentally reimplemented it in the last few weeks).

I’ve also noticed, when calculating the number of Mastery ‘points’, the contribution of the Mastery raid buff is multiplied by 1.05. I’ve never tested the Mastery buff in-game, so I’m wondering where this factor comes from? Thanks!

Oops; just reread my question and realised how poorly worded it is. I’m referring to the Healercalcs spreadsheet multiplying the Mastery raid buff by 1.05 when obtaining the number of ‘points’. I don’t know if this accurately reflects the in-game behaviour (having never tested it myself), so my inquiry is which in-game effect (if any) is this modelling? Sorry for the confusion.

Nice catches, thanks. I thought I took out the Versa double-dipping a while ago, must have done it in wrong version (seems to already be out for Eminence). Fixed Versa, Holy Mastery, and Mastery raid buff for next version (the 1.05 was supposed to be Attunement, but should only be on for Shaman).

Excellent calcs, thank you for putting your time into it!
I see that the Revival coefficient is updated now so that’s great. I just have a question. I’m a little confused on how you’ve calculated Xuen’s healing. It’s the base coefficient times 45, the number of times he hits, so far I’m with you. But then it seems to be another coefficient based on haste, which I didn’t know affected Xuen (or maybe it’s something entirely different and I have no clue what I’m talking about) and then ArmorFactor. But Crackling Tiger Lightning is nature damage, so is that really affected by armor? As you can see, I’m a little confused. Could you enlighten me on the subject? :)

I should probably recheck Xuen, but the two terms in his total coefficient (Q37) are based on the melee and the lightning. The coefficients for each were determined experimentally since they’re not clear from the spell data (well, the lightning does say 66.6% http://www.wowhead.com/spell=123996/crackling-tiger-lightning , but in-game it seemed to be something different).

The first term, the melee term (O37) is affected by haste and armor, and the lightning term (P37) isn’t. So that’s consistent with what you said on armor. I don’t remember off the top of my head why I thought the melees were affected by haste, but pets often are.

That makes sense!
I have tried to calculate Xuen’s exact coefficients but I also get weird numbers. First it took me some time to realise that the eminence healing he does is affected by Serpent stance’s 20% healing increase and possibly even versatility. Still can’t get a good number on it though.

I hadn’t thought about the auto-attacking he does and even less that pets can be affected by haste in such a way. But one learns something new everyday :3

On the spells, my values all average in crit/MS, and other miscellaneous effects like certain masteries or set bonuses. So it might look a little different from simply computing the size of the spell hit.

Potions would change the total mana pool size, which would affect “time to OOM” and not much else. I could put them in to be complete, but it’s never come up in an important way so I never did.