Damage Calculation in Pokémon Go
Damage = Floor(½ Power * Attacker’s Attack / Defender’s Defense * STAB * Effectiveness) + 1
This is how damage is calculated in combat. Let us look into the formula in more detail.
Floor() basically rounds a number down, and while Floor()+1 is same as rounding up, the +1 will ensure that the minimum damage of an attack is 1.
This Floor function benefits faster attacks, as the +1 would eventually add up to the damage output. For instance, let’s look at Pikachu.
Power and cooldown are the core of an attack’s damage output. If two Pokémon are equally matched, the actual damage could be quickly estimated by using (½power + 1). For instance, a battle between a Level 15 Flareon and Level 15 Dragonite.
Attack and Defense
Attack and Defense represents the attacker’s attack and defender’s defense. Attack and Defense are based on the Pokémon’s base attribute, Individual Values (IV), and CP Multiplier.
- Attack = (Base Attack + Attack IV) * CP Multiplier
- Defense = (Base Defense + Defense IV) * CP Multiplier
Although Pokémon’s level is not part of the formula, CP Multiplier scales with a Pokémon’s level. CP Multiplier is derived directly from the apk, and to determine a Pokémon’s CP Multiplier, you can look at this table.
A level 25 Pokémon’s CP Multiplier is 0.667934 or 2/3 of its base attribute and IV. Although the formula to calculate CP Multiplier is not known, it is noticed that CP Multiplier roughly scales with the square root of a Pokémon’s level. That means,
- a level 9 Pokémon deals 50% more damage than it would at level 4.
- a level 16 Pokémon will receive 33% less damage than it would at level 9.
Same Type Attack Bonus (STAB)
If a Pokémon uses an attack that is the same type as itself, then the attack will get a 1.25 STAB bonus. For example, Vaporeon which is a Water type Pokémon uses Water Gun which is an attack that falls under Water type as well.
Each Pokémon has a different type and how effective a Pokémon is against another Pokémon during combat can be referred from the effectiveness chart below.
Pokémon Go Effectiveness Chart
- Center column – An attack type
- Left column – a type that the attack is not very effective against (x0.80)
- Right column – a type that the attack is super effective against (x1.25)
Some Pokémon are dual type. There can be multiple effective bonus if you attack with a type that is super effective against both of the defender’s type.
For instance, Dragonite which is both a Dragon and Flying type is weak against Ice attacks. Thus, Dragonite will receive x1.25×1.25 = x1.5625 extra damage from Ice attacks.
Effectiveness for Dual Type Pokémon
These dual type Pokémon is double resist against certain attack types. When a Pokémon has double resistance against an attack type, the damage will be reduced to x0.80² and will tank very well.
|Attack Type||Double Resistance Pokémon|
|Fighting||Butterfree Scyther Mr.Mime Beedrill Venomoth Gengar Golbat|
|Poison||Golem Onix Rhydon Nidoking Nidoqueen Gengar|
|Ground||Butterfree Scyther Parasect|
|Bug||Gengar Golbat Charizard Moltres|
|Grass||Venusaur Victreebel Vileplume Beedrill Venomoth Golbat Charizard Moltres Butterfree Scyther Dragonite|
|Ice||Dewgong Cloyster Lapras|
These dual type Pokémon is double weak against certain attack types. When a Pokémon has double weakness against an attack type, the damage will be increased by x1.25² and will wear down their HP quickly.
|Attack Type||Double Weak Pokémon|
|Rock||Charizard Moltres Articuno Butterfree Scyther|
|Water||Golem Onix Rhydon|
|Grass||Golem Onix Rhydon Omastar Kabutops|
- Power and cooldown are the core of an attack’s damage output. If two Pokémon are equally matched, the actual damage could be quickly estimated by using (½power + 1).
- Damage roughly scales with the square root of a Pokémon level.
- Same Type Attack Bonus provides a x1.25 STAB bonus.
- Very Effective attack provides a x1.25 multiplier.
- Not Very Effective attack provides a x0.80 multiplier.
- For dual type Pokémon, effectiveness could be stacked. Double resistance and double weakness will provide a x0.80² and x1.25² multiplier respectively against an attack type.