The Stats Conundrum

This post is all about one very simple, very common, and very important question:

“How do I optimize my stats?”

There are quite a few common answers to this question.  For each one, I will list why a reasonable person might suggest it, its pros and cons, and why in the end its wrong.  Think you have an answer that isn’t wrong?  Read the article and think again.  If you still think so, I and every other theorycrafter would love to hear it.  At the very end I will give you my own answer to this impossible question.

Wrong Answers

<Stat> is better because <what it does> is good for your spec/class.

Example:

Combat rogue:  “Hey, I know I need the hit and expertise caps, but after that what is the best stat in PvE?”

Helpful Poster:  “Haste is the next best stat because it allows you do use more generators, which advances Bandit’s Guile faster, and more finishers, which reduces the timers on your cooldowns.”

Note that in the current iteration of the game (that is, 5.4) this reply is true.  That is, for most gear sets at max level haste is better than both crit and mastery according to almost every theorycrafter (i.e. person who did some reasonably convincing work to find a good answer of our question).  Unfortunately, if the stuff after the “because” is actually the reason haste is better, then if next patch the value of crit was multiplied by 10, nothing would change.  Think about it.  Haste would still allow you to use more generators, in turn advancing BG faster, and you’d still get more finishers, which lets you use more cooldowns.  Still find that argument convincing? In the end, more of any one stat will likely benefit your character in some way.  Are there exceptions?  Yes – rogues don’t care about int, mages don’t care about agi, and nobody cares about a stat after it has been capped.  But generally speaking, saying a stat is good because it helps you is an extremely weak statement, since what matters is not how it helps you, but how much it helps you relative to the other stats.

A > B > … > Everything Else

Example:

Sub Rogue:  “Hi, I just started getting into raiding and have been enjoying subtlety.  My question is, what’s the stat priority for sub?”

Helpful Poster:  “According to the IcyVeins subtlety guide, Agility >> Hit (7.5%) > Expertise (7.5%) > Haste > Crit > Mastery.”

This is probably the most common answer, especially for PvP.  Usually these priorities are obtained with whatever tool the writer trusts most, the accuracy of which we won’t concern ourselves with just yet.  The biggest issue with priorities like these is that it gives no information on how much better one stat is than another.  For instance, say you have two pieces of gear with the same amount of agility.  One has 100 haste and 100 mastery, while the other has 50 haste and 150 crit.  Which is better?  If you go by this priority, you might think it best to go with haste and crit.  But in reality, the first item has much more haste on it even though it has mastery as the second stat, so depending on how much better haste is than crit and how much better that is than mastery, it could very well be better to go with the haste/mastery item.

<EP Table>

Example:

Assassination Rogue:  “Hi, I am coming back from a break and was wondering, what’s the stat priority for an assassination rogue nowadays?”

Helpful Poster:      “EP Values for Assassination:  Agi:   2.8;    YHit: 2.0;    Exp:  1.4;    Mst:  1.3;    Hst:  1.1;    Cri:   1.0″

To clarify for anyone who hasn’t seen an EP table before (btw, sorry this isn’t in a sexy table format, I’m not so good with WordPress yet), the number next to each stat is used to indicate how good it is.  In the standard EP tables that most rogue theorycrafters use, every stat is being related to one point of attack power.  That is, the value of the AP stat is set to 1.  When you see “Agi:  2.8”, that means that one point of agility is equivalent in terms of DPS benefit to 2.8 points of attack power.  In other words, the higher the EP value, the better the stat. Now first of all, a correct EP table will give you all of the information you need to determine what gear you need.  Can an EP table be correct?  Let’s push that just a bit farther down.  For now, let’s assume that these values were obtained by a trustworthy source.  The problem here with general EP tables is that these values can change quite a bit depending on gear.  Don’t believe me?  Check out these EP tables for the same Assassination rogue, with the only difference being gear:

Yeah, big difference.  You notice that Strength is our second best stat in that setup?  Now don’t get me wrong, I’m not saying these EP tables are correct, for sure the one on the left is probably not quite accurate since ShadowCraft (the program that generated the tables) is not used to dealing with such crappy gear (the average ilvl of the left one is about 450), but you get the point.  EP values change enough depending on gear there is no one-size-fits-all EP table.  Perhaps even more importantly, these tables are generally made with best-in-slot gear, which means that for the vast majority of players, and all for which this question is relevant, any EP tables that you find will be be like trying on someone else’s cloths.  Sure, it may fit your needs, but if it does it doesn’t mean that it was accurate.  Rather, it means you were lucky, or your you just don’t know how to recognize a good fit at all since your old clothes were terrible.

Use a sim/model!

I combined sim and model into one category since they have similar pros and cons but let’s get one thing straight:  Simulators and models, while used for the same purpose, are very different beasts.

A simulator, such as SimulationCraft, basically pretends to be a player.  It uses its abilities in order when available following a set of rules until the encounter is over.  After a large number of iterations (fights) and number crunching, a DPS estimate is obtained.  Using a simulator to get stat weights means finding DPS with whatever your current stats are, then going through each stat one-by-one and seeing what happens when you add/subtract from it.

A model, such as ShadowCraft, is a bit more complex.  Paraphrased, it basically says something like “Ok, you have a 100 second fight and you’re playing combat with two slow weps.  Obviously you’ll have Slice and Dice up the whole time, which lets us know how much energy you’ll be getting from all sources.  Now let’s figure out how many times you’ll use Slice and Dice, because that’s easy (100/5-cp-DnD-duration).  Ok, so that means we take away the energy cost of those SnDs, plus the cost of getting to 5 CP in the first place, but let’s add on the damage those Sinister Strikes do.  Ok well now we also want to make sure we have 100% uptime on Revealing Strike, so let’s use 100/20 of those, and then put those combo-points towards Eviscerate.  Ok, now we have a bunch of energy left over, let’s put all of those towards Eviscerates and the SnDs used to get them….”  Told ya it gets confusing.  The actual implementation of the only model worth knowing about for rogues (ShadowCraft) is different and more complex, but you get the idea.  As far as I know the EP values of each stat are calculated in basically the same way as they are for simulators, but because models don’t go through an entire fight thousands of times, they come up with values much quicker and are therefore usually automatically calculated every time you change your setup (In SimulationCraft, the only sim worth knowing about for anyone, you have to ask it to give you EP).

Ok, now that that’s over with, you can completely forget about the last two paragraphs and go back to treating them like black boxes that do the exact same thing – give you a DPS estimate and an EP table customized to your setup (stats/spec/race).  So, what are the problems with using a sim/model?

Well first of all, because they are made by humans.  This means that for example Rupture could be treated as having an energy cost of 35 instead of 25 since someone goofed up.  Think that could never happen?  Think again – that example was a real bug.  Similarly, people could simply get the rotations wrong (this is especially an issue with sims where telling it things like when to pool resources can get tricky).  Simply put, the people who work on these projects are probably not professionals, and even if they are, it definitely isn’t their job.  A lot of people consider me a notable rogue theorycrafter, which is flattering, and maybe even true, but before I’m a theorycrafter I am a student double majoring in math and computer science, a member of a sports team, and a whole lot of other things.  The takeaway shouldn’t be that the people writing these things are incompetent.  Far from it, they (I personally do not consider myself a notable rogue theorycrafter) tend to be exceptionally bright, dedicated, and skilled.  Still though, they are human, and occasionally make mistakes, which can be reflected in their work.

The second and I think much more significant issue with sims/models is the assumptions they make.  Due to their nature, models tend to make more assumptions than sims (uptime of SnD is 100% for all rogue specs, as is Rupture for subtlety, CDs are not waited for, openers are mostly ignored, etc), however these model-specific assumptions more or less balance out, so we can ignore them.  The assumptions that compromise the validity both sims and models the most are those of fight type and skill level.  Generally speaking, skill is assumed to be really high, which may not reflect the player using the sim/model.  Even when there is a way to toggle skill level (SimC has certain percentages here), it’s very hard as a user to know what level you are.  Fight type is in my opinion a bigger issue than skill.  Most models/sims assume you have 100% uptime behind a boss that never dies (but does go below 35% HP for part of the fight).  Any tool that supports multiple targets does so pretty unreasonably, with them never dying  and always staying in range.  Since these types of fights are extremely rare, even the stat weights given by a perfectly accurate sim/model tuned to your skill level will be only optimal for one very specific situation.

I tried these setups and found this most effective.

I wasn’t really sure where to put this one.  The thing is, it is really truly terrible in terms of advising people on stat allocation, but at the same time, it is possible the most meaningful statement on a personal level.  Let’s say, for instance, I’m a really good subtlety rogue when it comes to finisher usage.  While most people use their finishers when they have 5 CP, I use CP pooling to ensure that almost every single Eviscerate I land is buffed by Find Weakness, trinket procs, MoS, etc.  Moreover, on multitarget and cleave fights I can seamlessly multiDoT Rupture while keeping CT and SnD up on my enemies and myself respectively.  This would mean that compared to a normal sub rogue a higher percentage of my damage would come from finishers, potentially making mastery a much more valuable stat for me than for a regular rogue.  On the same vein, I could be a really bad assassination rogue when it comes to remembering to use/refresh SnD (***really bad***).  If that’s the case, then I would be getting much fewer baseline poison procs, likely making mastery a lot less valuable for me than for a regular rogue.  In both of these cases it is very possible that the stat priority that gives me the best DPS is entirely different than the optimal stat priority for another rogue.  Clearly, playstyle differences make it so that telling someone your optimal stat priority is quite meaningless.

Of course, now I’ve just seamlessly and quite accidentally transitioned into another, extremely rare, answer to the question:

Figure it out yourself.

I’m actually not sure I’ve ever seen this response, and here’s why:  It’s hard.  In order to get any idea of how much each stat is worth you need to manually try out every single stat priority you think might be optimal.  If you have n stats, then you have n! (1*2*3*…*(n-1)*n) different orderings.  If you try to add in EP values, the number of tests needed goes to infinity.  For reference, this means that even if you somehow know that agi is over twice as good as every other stat (needed for gemming) and yellow hit is the best secondary, you still have to check expertise, crit, mastery, and haste.  That means n=4, so you still have 24 different priorities to check.  Ain’t nobody got time for that!  What’s more, is that even if you ran through LFR with each of those priorities and compared DPS, the result would be meaningless, since not only are things like fight duration, buffs, and debuffs nearly impossible to control for (maybe you didn’t have lust/hero for one fight, or you died, or etc!), but you also have a fair amount of variance in terms of crits.  Check out this graph, taken from SimulationCraft:

The height of a bar corresponds to the likelyhood that a subtlety rogue will do that amount of DPS in a given fight.  As you can see, there’s a pretty good chance that even if you play at the same level with the same buffs and debuffs in the same encounter (fight lengths are within a range here) for every stat priority, there is a very good chance that your stat priority had nothing to do with why you dealt the most DPS when you did.  To even out the effects of RNG, you’d have to vastly increase the number of times you ran LFR (like, multiply by 250)with each stat priority, and make sure you didn’t get any better/worse (remember, as your skill changes the priorities might shift!) as you run these tests.  Also, there are other factors you’d have to control for that I left out (and probably more that I didn’t think of).  So yeah, that’s why this is a terrible answer.  Oh and one more thing, DPS queues.  *shudder*  At least you’d…uh…hrm.  Ya know, I can’t think of a silver lining to this, which is pretty impressive.

My (Also Wrong) Answer

Use ShadowCraft!

What’s ShadowCraft?  It’s a model specifically designed for rogues which you can use to optimize your own character, estimate the dps difference of various setups within a spec, and gauge what upgrades will provide the biggest boost in dps.  Not a rogue?  Uh…well, wow, I mean I’m flattered you are reading my blog, thank you*!  Um, I have nothing more to say to you.  So yeah, use ShadowCraft.  Does it have all of the flaws I mentioned in the model section?  Yes!  But it is also an extremely sophisticated tool that a lot of people have worked on and combed over, which means it is a lot more trustworthy than any other model or sim (SimulationCraft, while a bigger project, has nobody active who’s dedicated to optimizing the rogue class and thus is a lot less trustworthy).  While technically the best method would be to figure it out yourself, that’s a good way to get checked into a mental institution and either way by the time you finish your tests enough variables will have changed that they are probably meaningless.  All other methods have not only serious flaws, but likely the same ones that ShadowCraft does, since where do you think things like EP tables and stat priorities come from?
*Unless you’re a hunter.  Thanking hunters for anything other then letting me kill them is a severe policy breach.

Subtlety Theorycrafting Agenda

The hotfix earlier this week which buffed Subtlety by 8% and nerfed Assassination by 4% has dramatically increased interest in Subtlety theorycrafting.  Unfortunately, Sub has gotten very little attention in this department, and there’s a pretty long list of things that need to be figured out.  I’ll be using SimulationCraft to try to find some of the answers to these questions.  When I do, I’ll be posting them in this blog along with the rotations and caveats, so that hopefully other people can tell me what I did wrong.  That said, the first thing I’m going to do is share my agenda.  The order I put things in is the order that I want to complete them.  All that said:  The primary reason I’m posting this here is so that people can suggest different orders, extra things to test, or do some tests themselves (See notes if you do this).  Keep in mind that some of these things are in the backend and if anything is wrong, I can/will change them for the next release.

So, here goes:

  • Verify Ambush damage is correct.
  • Verify Eviscerate damage is correct.
  • Verify FoK damage is correct.
  • Verify CT damage is correct.
  • Verify SV hotfix is working (actually this is a low priority but should be gotten done while I’m in the backend)
  • Check Preparation, this should be used way more often, perhaps its on GCD?
  • Check if Vanish, ShD, SB, and ShM trigger the GCD (they shouldn’t)
  • Check SnD refresh behavior (verify it keeps last tick).
  • Check Subterfuge implementation.
  • Quickly check rotation to correct any glaring flaws or make obvious fixes.
  • Check Shadow Blades usage (On-CD, with ShD, with FW but no ShD, with no FW, also with different versions of AoC).
  • Check rotation, compare with my own and see where I can optimize (this is something I’d love help with)
  • Implement buffed/debuffed phases, CP pooling.
  • Recheck Shadow Blades usage if the rotation changed substantially.
  • Verify Glyph of Sharpened Knives works properly.
  • Optimize the other rogue sims.
  • Compare DPS in various situations, including AoE.
  • Sabotage the hunter sim.

NOTE:

All tests should be done with a 2/2 upgraded normal AoC, 2/2 upgraded normal MH dagger, and 2/2 upgraded legendary cloak, and using Night Elves (removing ShadowMeld from the rotation).  This is not the default set.  All other items should be normal mode with no upgrades.  If you do any tests, it is very important that you make them public, preferably by sending me your results and a copy of the profile so I can analyze them and post them here if I deem them relevant.

I’ll be updating this post as things change, again any suggestions, help, or criticism would be greatly appreciated.