This formula is how the game calculates damage in combat. Its original version was first discovered by Reddit User Qmike. 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. Flooring is the root of the breakpoints, bulkpoints, and all other discontinuities in the game.

Power and cooldown are the most important determinants of a move's damage output. Power is the number displayed next to the Pokemon's moves in the game. Cooldown limits your earliest next move; you can only perform another action after the cooldown is over. Although cooldown is not factored in the damage formula, it determines the calculation of DPS (Damage Per Second).

In the damage formula, $Atk$ is the damage giver's current attack and $Def$ is the damage receiver's current defense. Current attack and current defense are based on the Pokemon's base attribute, individual values (IV), and current level:

$$Current Attack = (Base Attack + Attack IV) * CPM$$ $$Current Defense = (Base Defense + Defense IV) * CPM$$While Pokemon level is not directly part of the formula, CPM (CP Multiplier) is, and CPM is a function of Pokemon 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 * Level^{0.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.

There are four current damage multipliers to consider when calculating damage.

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.

WAB is an acronym for **Weather Attack Bonus**. If a Pokemon uses a move that matches one of the boosted types in the current weather, then the attack gets a **x1.2** WAB multiplier, same as that of STAB.

FAB is an acronym for **Friendship Attack Bonus**. Friend bonuses are 3%, 5%, 7% or 10% depending on your level of friendship.

Effectiveness referrs to the type advantage gained by using a Super Effective move.

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**.

There can be multiple effective bonuses when the defending Pokemon are dual types. The overall effectiveness multiplier is the product of the two multipliers.

For example, Gyarados is doubly weak against Electric-type attacks, because both Flying and Water are weak against Electric-type attacks. As such, Gyarados receives **x1.4x1.4 = x1.96** 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² |

These dual-type Pokemon may suffer double weakness against some attacking types. They take an extra **x1.4²** in damage against 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 |

These dual-type Pokemon have double resist against some attacking types. They receive a reduced damage 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, hence "triple resistance". For example, Flygon has a triple resistance to Electric-type attacks, essentially a x0.361 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 |

- 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 and Weather Attack Bonus provide a x1.2 multiplier regardless of the enemy.
- "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/triple weakness to certain types, granting a x1.4² or x0.714²/x0.361 multiplier against those types.