Damage Mechanics

Damage Formula

Damage =

$$Floor( ½ * Power * \frac{Atk}{Def} * STAB * Effective) + 1$$

This formula, first discovered by Reddit User Qmike, is how the game calculate damage in combat. Let's examine the formula and its implications in detail.

See these threads for the research that helped derived this formula.


The Floor function simply rounds a number down. Floor() + 1 guarantees that the minimum damage of any attack is 1.

Flooring benefits faster, smaller attacks, since the +1 would constitute a larger component of its damage output. Take for example the damage output of Graveler's quick moves:

MoveCooldownPowerDamageTrue DPS
Mud Shot.556610.91
Rock Throw1.3612118.09
Move Power

Power and cooldown are the most important determinants of a move's damage output. Between two equally matched Pokemon, "½ Power + 1" is a good estimate of actual damage. For example, in a matchup between level 20 Snorlax and level 20 Vaporeon:

VaporeonWater Gun64
SnorlaxZen Headbutt127
Attack and Defense

Attack and defense in the damage formula are the attacker's current attack and defender's current defense. Current attack and defense are based on the Pokemon's base attribute, individual values (IV), and current level:

$$Attack = (Base Attack + Attack IV) * CpM$$ $$Defense = (Base Defense + Defense IV) * CpM$$ $$HP = Floor((Base Stamina + Stamina IV) * CpM)$$

While Pokemon level is not directly part of the formula, CpM (CpMultiplier) is, and CpM is a function of level.  

There's no exact formula for calculating CpM, so it requires looking up the CpM table instead.  At level 25, a Pokemon's current stats are 2/3 of its base stats and IV.

Between levels 10 and 30, CPM is approximately 0.1336 * Level0.5.  That relationship means that current attack and defense roughly scale with the square root of level, for example:

  • A level 25 Pokemon deals 25% more damage than it would at level 16.
  • A level 16 Pokemon receives 33% less damage than it would at level 9.

STAB is an acronym for Same Type Attack Bonus. If a Pokemon uses a move that matches one of its types, then the attack gets a x1.25 STAB multiplier.

Type Effectiveness

The effectiveness multiplier is how effective the attack is against the defending Pokemon type, based on the following type table:

Type Effectiveness Chart
  • Center column - a move type
  • Right column - types the move is super effective against
  • Left column - types the move is not very effective against

Attacks get x1.25 super effective bonus or x.80 not very effective debuff.

Effectiveness Stacking Matrix

 There can be multiple effective bonuses when the defending Pokemon are dual types.  

For example, Gyarados is double weak against Electric attacks, because both Flying and Water type are weak against Electric attacks.  As such, Gyarados receives x1.25x1.25 = x1.5625 extra damage.  

Not Effective Neutral Effective
x0.8 x1.0 x1.25
Not Effective x0.8 x0.8² x0.8 x1.0
Neutral x1.0 x0.8 x1.0 x1.25
Effective x1.25 x1.0 x1.25 X1.25²
Double Weakness

These dual type Pokemon suffer double weakness against some move types. They take an extra x1.25² in damage against the these moves and can be worn down very quickly:

Move Type Double Weak Pokemon
Rock Charizard Moltres Articuno Butterfree Scyther
Ice Dragonite
Electric Gyarados
Bug Exeggutor
Ground Magneton
Fire Parasect
Flying Parasect
Water Golem Onix Rhydon
Grass Golem Onix Rhydon Omastar Kabutops
Double Resistance

These dual type Pokemon have double resist against some move type. They receive a damage reduction of x0.8² against these moves, as such can tank them particularly well:

Move Type Double Resistence Pokemon
Grass Venusaur Victreebel Vileplume Beedrill Venomoth Golbat Charizard Moltres Butterfree Scyther Dragonite
Bug Gengar Golbat Charizard Moltres
Ground Butterfree Scyther Parasect
Fighting Butterfree Scyther Mr.Mime Beedrill Venomoth Gengar Golbat
Ice Dewgong Cloyster Lapras
Flying Magneton
Steel Magneton
Poison Golem Onix Rhydon Nidoking Nidoqueen Gengar
Fire Omastar Kabutops
  • Power and cooldown are the most important factors that influence damage output.
  • Damage scales with the square root of a Pokemon's level.
  • Same Type Attack Bonus provides a x1.25 multiplier.
  • "Super effective" type advantage provides a x1.25 multiplier.
  • "Not very effective" type disadvantage provides a x0.80 multiplier.
  • Some Pokemon have double resistance or double weakness to certain types, granting a x1.25² or x0.80² multiplier against those types.
Quick Links

Pokemon List

IV Calculator

Moves List


Egg Chart

Type Chart

Power Up Costs

Buddy Distances

CP Calculator

Gym Attackers

Gym Defenders

DPS per type