Practical Introduction to Attack Tiers

Hello everyone. There are a number of questions where we have to compare two attacks against each other and well, how do we know when one attack is really worth it over some other attack? Not only Fire Blast vs Flamethrower, but Choice band vs Life Orb (or in a more recent example, Choice Band vs Focus Sash Dugtrio) comes up often, along with choice band vs expert belt and so forth.

While it is impossible to say one is better than the other, we can at least gain more information about this by calculating every single pokemon you can OHKO, Two-Hit KO, Three-Hit KO, etc etc. and compare it with the other.

Wait, isn't that a bit... difficult? Or at least tedious? Actually, no it isn't, thanks to Attack / Defense tiers. At least, it is much easier with Attack/Defense tiers. Granted, chaos noted that there is a possible mass damage calculator to be on smogon, but for now the best option is to use Attack tiers. Personally speaking, I feel it would be important to "think" in Attack tiers which will allow you to quickly do these sorts of calculations on the fly, instead of relying on a calculator.

Lets start with the a practical question. You're running max Sp. Atk Infernape with 0 Atk EVs, and max Speed. You want to know the following information.

* Who can I OHKO and Two-Hit KO with Fire Blast that I can't with Flamethrower? *

With this questions in mind, lets begin the analysis.

Step 1. Find the Sp. Attack and Attack tiers of the pokemon.
There are two ways to do this. I have a handy dandy list of all the min/max spreads. Just hit "Control-F" and type in the pokemon, and you'll find their name on the list. However, it doesn't do custom EV spreads. That would require the exact formula of attack tiers.

I'll give the exact formula later. For now, you can see that 252 EVs in Sp. Atk for Infernape gives 60.09 Sp. Atk tiers, and 0 EVs in Attack gives 57.68 Atk tiers.

(In the list, the first 2 numbers are Atk and Sp. Atk with 0 EVs, and the last two numbers are Atk and Sp. Atk with 252 EVs. In that order)

If you want a custom attack tier, copy/paste this into your address bar... except replace the ATTACK_STAT with your attack stat.

Code:
javascript:alert(Math.log(ATTACK_STAT)/Math.log(1.1))
For example, Infernape's Sp. Attack with 252 EVs is 307. Copy/paste this:

Code:
 javascript:alert(Math.log(307)/Math.log(1.1))
Where the "http://blahblahblah" thing is. As you see, it returns 60.086, which was rounded up to 60.09 on the table.

Step 2. Find the Attack tier of your attack
There is a much shorter list for attacks. I hope that I have the BP for every attack on the list, just look up the BP... 120 for Close Combat, 95 for Flamethrower, 120 for Fire Blast and you're good. For BPs of 120, the Attack tier is 50.23. For 95, the Attack tier is 47.48.


Step 3. Add them up!
Add up the numbers for every attack. Obviously, use the math Sp. Attacks with the Sp. Atk tier, and vise versa. IE: Close Combat (50.23) + Infernape's Atk tier (57.68). Also, if you have STAB, then you must add 4.25. This accounts for the STAB bonus.

For the 3 attacks we want to learn about, all three have STAB. (Infernape is fire/fighting). So...

Close Combat (50.23) + Atk Tier (57.68) + STAB (4.25) == 112.16
Fire Blast (50.23) + Sp. Atk Tier (60.09)
+ STAB (4.25)== 114.57
Flamethrower (47.48) + Sp. Atk (60.09)
+ STAB (4.25)== 111.82

EDIT: Lol, I can't believe I didn't realize this: Here is a quick way to do step 1, 2, and 3 at the same time.

Type this in to the address bar (where the http:// thing is)

Code:
[/SIZE] javascript:alert(Math.log(Attack * Base_Power)/Math.log(1.1))


Obviously, replace attack with 300 or whatever your attack is, and replace base_power with 70 (for night slash) or whatever.

Step 4. Select the magic number
The magic number represents the random amount of damage you will do. Because this is random, there are three values I have listed for you to use.

* Minimum amount of damage: 3.53
* Maximum amount of damage: 1.83
* Average amount of damage: 2.65

Average generally is the most useful, because you can easily generate Two-Hit KOs and Three-Hit KOs from the Average.

Now SUBTRACT the magic number you selected from step 3.


Close Combat (50.23) + Atk Tier (57.68) + STAB (4.25) == 112.16
Fire Blast (50.23) + Sp. Atk Tier (60.09)
+ STAB (4.25)== 114.57
Flamethrower (47.48) + Sp. Atk (60.09)
+ STAB (4.25)== 111.82

Now we have:
Close Combat == 109.51
Fire Blast == 111.94
Flamethrower == 109.17

These values here are the base values in an analysis. From this point, you can springboard ahead to answer really almost all of your questions. But first, the next step.

Step 5: Add Modifiers
This is the key to Attack Tiers. I suggest memorizing the common modifiers if you want to get the most out of Modifiers. Natures change your tier by exactly 1.00 tier. If you assume Life Orb, that is a +2.75 bonus, Choice Band/Specs is 4.25. Super Effective is a 7.27 bonus, while Not Very Effective is a 7.27 penelty to your Attack tier.

The above numbers cover most of the cases you'll ever use. But they don't cover all the cases. Expert Belt (1.91) is also handy,
3x Spikes or Super-Effective Stealth Rocks is a 3.01 bonus. 1x Spikes or typical Stealth Rocks is a 1.4 bonus... again, these aren't used as often and I don't have these numbers memorized. But I can see their use.

Long story short. If there is a single thing to memorize about Attack tiers, it is this step, the modifiers step.

We'll come back to this step later. For now, we'll assume no modifiers at all.

Step 6: Compare Number to Defense Tiers

So here are the attack tiers for the attacks of a 252 Sp. Atk 0 Atk Infernape again.

Close Combat == 109.51
Fire Blast == 111.94
Flamethrower == 109.17


Now if you go into Defense tiers, every pokemon that is lower than that number will be OHKOed by Infernape on the average.

But wait, what about 2-hit KOs? Simply add 7.27, and all pokemon who have a Defense Tier lower than 7.27 + Atk. Tier will be Two-Hit KOed on the average by Infernape. Similarly, these are the pokemon OHKOed from a super-effective attack.

Now, remember what I said about memorizing step #5? If you've memorized the Life Orb (2.75), then you can add it to the OHKO and the Two-Hit KO marks for both of these attacks.Now, Close Combat OHKOs 112.26, so on, and so forth. Add 4.25 and you'll easily generate the list that you'll OHKO with a Choice Band / Specs (depending on which attack you prefer).

But lets focus on the questions asked at the beginning of the analysis.

1. Who can I OHKO and Two-Hit KO with Fire Blast that I can't with Flamethrower?

With these, I'll assume the Life Orb. So, Flamethrower has an Attack Tier of 111.92 after life orb bonus. Fire Blast has an Attack Tier of 114.69 after Life Orb.

So lets look inbetween these numbers on the Sp. Def tier list. Starting with Electabuzz, all the way down to Fearow, all the pokemon inbetween these two in the Sp. Def tiers will be OHKOed by Fire Blast, but not by Flamethrower. Some notable pokemon includes Medicham, Gengar (both 113.21), and Raichu. Now is the chance to OHKO Gengar and Medicham worth the loss in accuracy? Well, at least you got the OHKO list.

For the Two-Hit KO list, again, just add 7.27 to the above numbers and redo the process. This gives 119.19 for flamethrower and 121.96 for Fire Blast. All the numbers inbetween these two marks are Two-hit KOed by Fire Blast, but not by flamethrower. I would suggest looking at the "worst case" when you get numbers this high, because this is in the range of guys like Ludicolo who actually run EVs. Talking about Ludicolo, 252/252 Ludicolo scores 121.68, making it potentially Two-Hit by Fire Blast, but not by Flamethrower.

Now if you want to see it again with Spikes Support, add 1.4 to both numbers and redo the process. It works for both the OHKO and the Two-Hit KO numbers. Also, you can add Charcoal / Flame Plate to the equation as well (1.91), as long as you remember to subtract out the Life Orb. If you're doing this against say, another Close Combat Infernape, you can always add 4.25 bonus for the Sp. Def and Def. drops that the opponent Infernape gets for doing HIS close Combat.

Simple table for...
OHKO: 0
Two-hit KO: Add 7.27
Three-hit KO: Add 11.52

Note: This is good enough to post for now IMO. In the future, I may add a "Close Combat vs Fire Blast" or "Close Combat vs Flamethrower" thing here, so that is why I did the above examples with Close Combat as well. In essense, this is a WIP.

FAQ
What about Leftovers?
I admit that leftovers are a slightly more complicated case, namely because if you don't deal 6.25% damage, it is literally an Infinite Hit KO. (kinda like wobbuffet vs wobbuffet in ADV games).

One workaround is to use "modified" KO. Note that after calculating your attack tier, any defense tier below that is a OHKO. And you add 7.27 for a two-hit KO. If you want to see a two-hit KO with leftovers, add 6.63 instead. If you want a three-hit KO, instead of adding 11.52, add 10.29
 

obi

formerly david stone
is a Site Content Manager Alumnusis a Programmer Alumnusis a Senior Staff Member Alumnusis a Smogon Discord Contributor Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
Leftovers (without Hail / Sandstorm in play) ought to be accounted for, and another mention of type effectiveness changing tiers in the final step should be there.
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
All modifiers that add or subtract damage cannot be worked out using this framework. This means that Spikes, Stealth Rock, Poison, Burn, etc. cannot be written as modifiers.

The only thing you can do is to work out 1.1^(num), then add or subtract the modifier (subtract 1/16 for Leftovers, add 1/16 for Sandstorm/Hail, add 1/4 for 3 layers of Spikes, etc.), and finally perform log(answer)/log(1.1) again. This is rather tedious and complicated, however.

EDIT: I stand to be corrected. Spikes and Stealth Rock can be implemented, and they're correct. In practice, things that happen before the damage is dealt (like Spikes and Stealth Rock) can be implemented, while things that happen after the damage is dealt (like Poison, Sandstorm and Leftovers) cannot. Apologies.
 

obi

formerly david stone
is a Site Content Manager Alumnusis a Programmer Alumnusis a Senior Staff Member Alumnusis a Smogon Discord Contributor Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
Yeah, Spikes etc. can be thought of both as subtracting 12.5% or whatever, or as multiplying HP by .875, provided the target is at full health.
 
Leftovers would be difficult to account for, but if you OHKO, then leftovers are null.

If you Two-hit KO, then that would be a single turn of leftovers to account for (aka, 106.25% hp). And three-hit KO, that would be two turns of leftovers (aka, 112.5% hp).

Seems complicated, so I'll be looking for a shortcut for the answer. Till then... I'll just put it in the post.
 

obi

formerly david stone
is a Site Content Manager Alumnusis a Programmer Alumnusis a Senior Staff Member Alumnusis a Smogon Discord Contributor Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
Well, that works, until you have Spikes and Leftovers in. Then suddenly it's from 87.5% to 93.75%, and you have to multiply by a different number again.
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
Leftovers' modifier to subtract depends on the number you have ended up with before applying it, meaning that it changes for every case. You can't just assume that the foe has 106.25% of its normal HP; that doesn't work.
 
A logarithmic scale turns multiplication into addition (which makes comprehending numbers much easier), but at the cost of losing the ability to do addition/subtraction easily. The defense/attack tiers are thus very well suited for any kind of modification that happens by multiplication / division, such as dragon dance or super effective or not very effective...

Anyway, looking at it, a decent approximation at most scales is to subtract .6 per turn from the attack tier, and to add .6 per turn for the defense tier. It would be simpler, but not perfectly accurate. I'll have to run a few calculations to see the exact error of this scheme however, to see if it is an acceptable amount of error (aka, less than 1% or so error in every calculation)
 

Hipmonlee

Have a nice day
is a Community Contributoris a Senior Staff Member Alumnusis a Smogon Discord Contributor Alumnusis a Tiering Contributor Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnusis a Four-Time Past WCoP Champion
but leftovers are the same as multiplying by 1 + .0625 for each turn you want to include leftovers.. It would be slightly messy, but it seems to me like it should work..

Have a nice day.
 
EDIT: Lemme think about it. Now that you mention it... I ought to run some full calculations. Its a little late though, so maybe tomorrow. I usually say stupid things when I'm sleepy.
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
Leftovers recovery, Poison and Burn damage, Sandstorm and Hail damage, etc. (i.e. all things that happen after the damage is dealt) have the following problem. Let's consider Leftovers as an example.

The way Dragontamer's 'damage' calculation works like this. You have log1.1(HP * Def) available, and also log1.1(Atk) and log1.1(Power). Calculating log1.1(Atk) plus log1.1(Power) and adding -1.83 (that is actually log1.1(0.84)) gives us log1.1(0.84 * Atk * Power). If we subtract log1.1(HP * Def) to this, we get log1.1((0.84 * Atk * Power)/(HP * Def)). If this number is negative, then the Pokemon having those defense is not OHKOed; if not, it is OHKOed. Why?

Because the damage formula is (0.84*Atk*Power/Def)+2, and dividing this by the HP gives us the percentage HP. This thus becomes (0.84*Atk*Power)/(HP*Def) + (2/HP). The 2/HP is usually too small to be anything significant, so it can be omitted, so the percentage damage formula thus becomes (0.84*Atk*Power)/(HP*Def), which, when log1.1 is performed to it, becomes the number of Dragontamer's damage formula.

If Leftovers is factored in, then the final damage done is (0.84*Atk*Power/Def)+2 - HP/16. As a percentage HP, this becomes (0.84*Atk*Power)/(HP*Def) + (2/HP) - (1/16). As before, the 2/HP is ignored, giving us (0.84*Atk*Power)/(HP*Def) - (1/16). Performing log1.1 to this becomes log1.1((0.84*Atk*Power)/(HP*Def) - (1/16)). This cannot be expressed in terms of log1.1((0.84*Atk*Power)/(HP*Def)), unfortunately, since there is no logarithm law which tells you how to simplify log(A+B) and log(A-B).

Because of this, the modifiers for Leftovers, Poison, Sandstorm et al cannot be worked out in general. They depend on what log1.1((0.84*Atk*Power)/(HP*Def)) is.
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
... there is no logarithm law which tells you how to simplify log(A+B) and log(A-B).
Using Maclaurin's series, however, we can approximate the value of log(A+B). :)

ln(a+x) = ln a + x/a - x^2/2a^2 + x^3/2a^3 - ...

Hence, by dividing by ln 1.1,

log1.1(a+x) = log1.1(a) + x/(a ln 1.1) - ...

We can deem the terms following the minus sign as being too small to be significant. Hence

log1.1(a+x) ~ log1.1(a) + 10.49x/a

Now, for leftovers recovery, we need to have a = 0.84*Atk*Power and x = - HP * Def / 16. log1.1(a) is available: it is the value that is found until Step 5 in the original post. If this value is S, we have that a = 1.1^S. Hence:

log1.1(0.84*Atk*Power - Def*HP/16) ~ S + 10.49 (-HP * Def / 16) / (1.1^S)

log1.1(Damage) ~ S - 0.656(HP * Def) * 1.1^(-S)

We also know that if S >= log1.1(HP * Def), then that Pokemon is OHKOed. Hence we can assume that S < log1.1(HP * Def). log1.1(HP * Def) is the same as the value in the defense tiers. Hence:

log1.1(Damage) ~ S - 0.656 * 1.1^(D-S)

where D is the value you get for the defense tier of the Pokemon you're attacking.

This means that the Leftovers modifier is to subtract 0.656 * 1.1^(D-S), where D is the defense tier number of the Pokemon you're attacking, and S is the value you got until Step 5 of the original post.

This implies that the leftovers modifier cannot be smaller than 0.66 (rounded to 2 decimal places), and that it actually depends on which Pokemon you're attacking (a rather obvious thing if you think about it).

Using a similar argument, we can find modifiers for Sandstorm/Hail, Poison/Burn, and Toxic. The results are tabulated here:

Leftovers recovery: Subtract 0.656 * 1.1^(D-S)
Sandstorm/Hail: Add 0.656 * 1.1^(D-S)
Poison/Burn: Add 1.312 * 1.1^(D-S)
Toxic: Add 0.656 * T * 1.1^(D-S), where T is the number of Toxic turns, or 15 if T>15.

Remember, D is the defense tier number of the Pokemon you're attacking, and S is the number you get until Step 5 of the original post.
 
If Leftovers is factored in, then the final damage done is (0.84*Atk*Power/Def)+2 - HP/16. As a percentage HP, this becomes (0.84*Atk*Power)/(HP*Def) + (2/HP) - (1/16). As before, the 2/HP is ignored, giving us (0.84*Atk*Power)/(HP*Def) - (1/16). Performing log1.1 to this becomes log1.1((0.84*Atk*Power)/(HP*Def) - (1/16)). This cannot be expressed in terms of log1.1((0.84*Atk*Power)/(HP*Def)), unfortunately, since there is no logarithm law which tells you how to simplify log(A+B) and log(A-B).
This is really the key part. X-Act understands the problem pretty much entirely.

However, I started thinking about the problem like this after Hipmonlee's comment. With 1 turn of leftovers, your HP is essentially 6.25% higher than usual, which would then simplify the problem to:

log1.1((0.84*Atk*Power)/((HP*1.0625)*Def))

Which indeed does simplify into (each line is another step)

log1.1((0.84*Atk*Power)) - log1.1((HP*1.0625)*Def)
log1.1((0.84*Atk*Power)) - (log1.1(HP*Def) +log1.1(1.0625))

Aka: Attack Tier - (Defense Tier + Leftovers Bonus)

OR...

(Attack Tier - Leftovers Penelty) - Defense Tier.

Now the nice thing about logarithms is that a straight line approximates them reasonably over short distances. For this reason, the log1.1(1.01) is close to .1 (but not exact). I wanted to calculate the error after factoring 5 turns of leftovers into the equation (aka, 6 hit KOs and higher), and thats where I'm kinda standing now...

Which should be... ~11% error after 6 turns (it overestimates the defense tier of the opponent). However, after 3 turns (2 turns of leftovers), its only some 2% error in the calculations, which is acceptable but I'd prefer a better solution.

I can probably make an approximation to leftovers recovery minimizing the error for the first 6 turns. Or maybe just in the first 3 turns of leftovers (which is 4-hit KOs). I mean really, if you are doing a 4-hit KO with leftovers, that is more than enough time for the opponent to set up 3 layers of spikes or something dangerous like that >_> Hell, Blissey 4-hit KOs most pokemon with seismic toss.

I'm impressed that you used the Taylor / Maclaurin series to calculate an approximation however :-) But one key factor that makes these easier is that you just have to use addition/subtraction to get an approximation to who and what you OHKO. And I don't want people to be bogged down by using powers and whatnot to factor in something as common as leftovers.
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
Dragontamer said:
With 1 turn of leftovers, your HP is essentially 6.25% higher than usual, which would then simplify the problem to:

log1.1((0.84*Atk*Power)/((HP*1.0625)*Def))
If only things were this simple. Unfortunately, they aren't. :(

With one turn of leftovers, we cannot say that the foe's HP is essentially 6.25% higher.

Consider the following case: suppose you attack Blissey with 704HP for 50% damage, and then it recovers 6.25% of that damage with leftovers. First, Blissey would be dealt 704/2 = 352 damage, and then her HP (352) would increase by 6.25%, or by 44. So she ends with 352+44 = 396 HP.

If we had assumed that Blissey's HP starts from 106.25% of 704, i.e. 748, and then she's dealt 50% damage, she would end up with 374 HP. See the difference?

The above example illustrates clearly that we cannot just add log1.1(1.0625) to Blissey's Defense tier (or subtract log1.1(1.0625) to the damage).

I tried to find simpler numbers for leftovers recovery, and I came up with these. Unfortunately, it ends up being a chart, but I couldn't find anything simpler without using powers. :(

If S is the number calculated using your first 5 steps of your original post:

Subtract 0.69 for Pokemon that are in tier S to S+1
Subtract 0.76 for Pokemon that are in tier S+1 to S+2
Subtract 0.83 for Pokemon that are in tier S+2 to S+3
Subtract 0.92 for Pokemon that are in tier S+3 to S+4
Subtract 1.01 for Pokemon that are in tier S+4 to S+5
Subtract 1.11 for Pokemon that are in tier S+5 to S+6
Subtract 1.22 for Pokemon that are in tier S+6 to S+7
Subtract 1.34 for Pokemon that are in tier S+7 to S+8
Subtract 1.47 for Pokemon that are in tier S+8 to S+9
Subtract 1.62 for Pokemon that are in tier S+9 to S+10

These numbers will not be 100% exact for every Pokemon between the tiers mentioned, but they are close enough. If other tiers' leftovers recovery are needed, I can duly calculate those numbers as well.

(By the way, to find these numbers, I just used my 0.656 * 1.1^(D-S) formula, applying it for various values of D-S; for 0.5, 1.5, 2.5, etc.)
 

Hipmonlee

Have a nice day
is a Community Contributoris a Senior Staff Member Alumnusis a Smogon Discord Contributor Alumnusis a Tiering Contributor Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnusis a Four-Time Past WCoP Champion
But if you are using it simply to calculate "will this 2hko?" It should be accurate.. For your example, the second option is more useful because either way 374 is the exact amount of damage needed to 2hko blissey with leftovers. So I think if you look at it from the point of view of "to 2hko with leftovers I need to do 53.125% damage" it should work fine.. The only problem being that the leftovers recover only whole numbers.

Have a nice day.
 

X-Act

np: Biffy Clyro - Shock Shock
is a Site Content Manager Alumnusis a Programmer Alumnusis a Smogon Discord Contributor Alumnusis a Top Researcher Alumnusis a Top CAP Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis a Smogon Media Contributor Alumnusis an Administrator Alumnus
Ah, yes. Good call. So yeah, that would work. -0.64 then for a 2HKO.
 

obi

formerly david stone
is a Site Content Manager Alumnusis a Programmer Alumnusis a Senior Staff Member Alumnusis a Smogon Discord Contributor Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
Of course, you'd need to use a different number for any given layer of Spikes with Leftovers compared to without.
 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top