Damage Mechanics

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

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

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

Flooring

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:

PokemonMovePowerDamage
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

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.2 STAB multiplier.

Type Effectiveness

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

Credit: Reddit user u/ashiqrh

Here's how to read the chart:

  • Light green - Neutral
  • Dark green - Super effective
  • Light red - Not very effective
  • Dark red - "No effect"

Attacks typically get x1.4 super effective bonus or x0.714 not very effective debuff. In an update, Niantic changed how certain moves affect Pokemon who, in the original games, would not be affected by attacks of that type. Instead of the traditional x0.714 not very effective multiplier, they are given a special multiplier of x0.51.

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.4x1.4 = x1.96 extra damage.  

"Immune" Ineffective Neutral Effective
x0.51 x0.714 x1.0 x1.4
"Immune" x0.51 x0.51² x0.36414 x0.51 x0.714
Ineffective x0.714 x0.36414 x0.714² x0.714 x1.0
Neutral x1.0 x0.51 x0.714 x1.0 x1.4
Effective x1.4 x0.714 x1.0 x1.4 x1.4²
Double Weakness

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

Move Type Doubly Weak Pokemon
Rock Charizard, Butterfree, Scyther, Articuno, Moltres, Ledian, Yanma, Delibird
Ice Dragonite, Jumpluff
Electric Gyarados, Mantine
Bug Exeggutor
Ground Magneton, Magcargo
Fighting Tyranitar
Fire Parasect, Forretress, Scizor
Flying Parasect, Heracross
Water Golem, Rhydon, Magcargo
Grass Golem, Rhydon, Omastar, Kabutops, Quagsire, Corsola
Double Resistance

These dual type Pokemon have double resist against some move type. They receive a damage reduction of x0.714² against these moves, as such can tank them particularly well. In some cases, this multiplier is smaller due to the new No Effect multiplier:

Move Type Double Resistance Pokemon
Grass Venusaur, Charizard, Butterfree, Beedrill, Vileplume, Venomoth, Victreebel, Scyther, Moltres, Dragonite, Ledian, Ariados, Crobat, Jumpluff, Yanma, Forretress, Scizor, Skarmory
Bug Charizard, Gengar, Moltres, Crobat, Togetic, Skarmory
Ground Butterfree, Parasect, Scyther, Jumpluff
Fighting Butterfree, Beedrill, Venomoth, Gengar, Mr.Mime, Scyther, Crobat, Togetic, Xatu
Ice Dewgong, Cloyster, Lapras
Flying Magneton
Steel Magneton, Lanturn
Poison Nidoking, Nidoqueen, Golem, Gengar, Rhydon, Steelix
Fire Omastar, Kabutops, Magcargo, Kingdra
Summary:
  • 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.2 multiplier.
  • "Super effective" type advantage provides a x1.4 multiplier.
  • "Not very effective" type disadvantage provides a x0.714 multiplier.
  • "No effect" type disadvantage provides x0.51 multiplier. 
  • Some Pokemon have double resistance or double weakness to certain types, granting a x1.4² or x0.714² multiplier against those types.
Quick Links
Raids
Raid Boss List
Raid Boss List
Raid Boss Counters
Raid Boss Counters
Tools

Pokemon List

IV Calculator

Moves List

Appraisals

Egg Chart

Type Chart

Power Up Costs

Buddy Distances

CP Calculator
Rankings

Gym Attackers

Gym Defenders

DPS per type