## Damage Formula

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

## Move Power and Cooldown

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

## Attack and Defense

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 at level 16.
- A level 16 Pokemon receives 33% less damage than at level 9.

## Multipliers

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 damage gets a **x1.2** 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** 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 refers to the multiplier applied to using a "super effective" or "not very effective" move.

## Type Effectiveness

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

#### Credit: Reddit user u/ashiqrh

Multipliers for effectiveness have been updated since then and now read as follows

- Light green - Neutral
- Dark green - Super effective;
**x1.6** - Light red - Not very effective;
**x0.625** - Dark red - "Immune" in PokemonGo counts as two not very effective multipliers;
**x0.390625**

Against dual-type Pokemon, apply both type effectiveness multipliers.

## Effectiveness Stacking

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

Example 1: Gyarados is doubly weak to Electric-type attacks, because both Flying and Water are weak to Electric. As such, Gyarados receives **1.6 x 1.6 = x2.56** damage.

Example 2: Flygon triply resists Electric-type attacks, because both Ground and Dragon resist Electric, but Ground has the stronger "immune" resistance while Dragon has the usual resistance. As such, Flygon receives **0.390625 x 0.625 = x0.244** damage.

## Summary:

- Power and cooldown are the most important factors that determine damage output.
- Damage scales with the square root of a Pokemon's level.
- STAB and weather attack bonus are x1.2 multipliers.
- Friendship attack bonus provides up to a x1.1 multiplier.
- "Super effective" type advantage is a x1.6 multiplier.
- "Not very effective" type disadvantage is a x0.625 multiplier.
- "Immune" type disadvantage is a x0.390625 multiplier.
- Dual-typed Pokemon can have multiple weaknesses or resistances to one or more types.