In Pokemon Go, every Pokemon species has 3 Base Stats:
In the main series, every Pokemon species has 6 Base Stats: HP, Attack, Defense, Special Attack, Special Defense, and Speed.
These are Snorlax's Base Stats from the main series:
And these are Snorlax's Base Stats in Pokemon Go:
Base Attack in Pokemon Go is calculated with the following formula:
$$BaseATK = \frac{1}{4} Lower(Attack, Sp.Attack) + \frac{7}{4} Higher(Attack, Sp.Attack) * SpeedMultiplier $$
- The lower value between Attack and Special Attack (in this case, Special Attack) is multiplied by 1⁄4.
- The higher value between Attack and Special Attack (in this case, Attack) is multiplied by 7⁄4.
Base Defense is calculated similarly:
$$BaseDEF = \frac{3}{4} Lower(Defense, Sp.Defense) + \frac{5}{4} Higher(Defense, Sp.Defense) * SpeedMultiplier $$
- The lower value between Defense and Special Defense (in this case, Defense) is multiplied by 3⁄4.
- The higher value between Defense and Special Defense (in this case, Special Defense) is multiplied by 5⁄4.
The Speed Multiplier is calculated as follows:
$$SpeedMultiplier = 1 + \frac{Speed-75}{500}$$Base HP is calculated with this formula:
$$BaseHP = Floor(50 + 1.75*HP)$$
Putting this together, we get the following values for Snorlax:
And again, here are Snorlax's base stats in Pokemon Go:
IVs are added directly onto a Pokemon's base stats and multiplied by the CP multiplier (explained below) to get the Pokemon's actual stats. Actual stats are what's used in damage calculations when your Pokemon is fighting.
Every Pokemon has a Level ranging from 1 to 40. You can estimate your Pokemon's Level using its Stardust Cost:
Why is a Level 40 Rayquaza stronger than a Level 20 Rayquaza?
The answer may be obvious: because a Level 40 Rayquaza has higher stats than a Level 20 Rayquaza. But why does a Level 40 Rayquaza have higher stats than the Level 20 one?
The CP multiplier is a number that Niantic uses to scale a Pokemon's stats to its Level. Each level has a corresponding CPM value:
For example, here are Rayquaza's base stats:
A Level 40 Rayquaza with IVs of 0/0/0 will have the following actual stats:
And a Level 20 Rayquaza with IVs of 15/15/15 will have these actual stats:
If we have the base stats, IVs, and Level for a Pokemon, we can calculate its CP:
For example, a Level 20 Rayquaza with IVs of 15/15/15 will have the following CP:
As a game-balancing measure, any Pokemon whose max CP naturally exceeds 4000 has its base stats reduced by 9%.
For example, here are Rayquaza's base stats from the main series:
Converting Rayquaza's stats to Pokemon Go gives us this set of base stats:
Using the CP Formula for a Level 40 Rayquaza with IVs of 15/15/15, we get the following CP:
Since Rayquaza's max CP is over 4000, its base stats are all reduced by 9%:
And again, here are Rayquaza's base stats in Pokemon Go:
+Base stats are converted to Pokemon Go from the main series, multiplied by 0.91, and then rounded.