Combat Power (CP) is a numerical value assigned to each Pokémon that describes the Pokémon’s strength. Combat Power was originally defined by Niantic as “how well a Pokémon can perform in Battle”, but as it will be shown in this article, that is not always the case.
Combat Power grows as you power up your Pokémon, increasing their level. Combat Power depends on your Pokémon species, their Individual Values (IVs), and the level they are at.
There are some additional things which can influence CP, such as Best Buddy status with a particular Pokémon.
How is Combat Power Calculated in Pokémon GO
Each Pokémon’s CP is just calculated by the CP formula as a numerical value depending on the Pokémon’s:
- Pokémon base Attack stat (and Attack IVs)
- Pokémon base Defense stat (and Defense IVs)
- Pokémon base Stamina stat (and Stamina IVs)
- Pokémon Level
- A hidden CP Multiplier which scales with Pokémon level
You can find out Pokémon base stats on our Pokémon GO database, where we list base Attack, Defense, and Stamina for each Pokémon species. Every Pokémon species has different base stats.
And what about Individual Values (IVs)? Individual Values are different for every Pokémon, even for the ones which belong to the same specie. Two Pikachu can be different despite having same base stats, as they have different IVs!
However, not all of these factors have the same influence in the CP formula. If you ever heard that the Attack stat was the most important one, it is simply because it has the greatest influence in the CP formula.
In addition to these values, the formula depends on a Combat Power Multiplier which are assigned for every level your Pokémon can reach. This number is the scaling factor that describes how fast your Pokémon’s CP raises in accordance to their level.
Let’s see how the CP formula looks like.
Pokémon GO Combat Power Formula
This formula calculates a Pokémon’s Combat Power (CP) in Pokémon GO. CP is a measure of a Pokémon’s strength in battles.
combatPower = FLOOR(
(
(atk + atkIV) # Total Attack
* SQRT(def + defIV) # Square root of total Defense
* SQRT(sta + staIV) # Square root of total Stamina
* (CPM_AT_LEVEL(level) ^ 2) # CP multiplier squared
) / 10 # Divide by 10
)
Formula inputs
The CP formula works by manipulating base stats of the Pokémon and individual bonus stats (IVs) in accordance to their level:
- atk: Base Attack stat of the Pokémon
- atkIV: Individual Value (IV) bonus for Attack
- def: Base Defense stat of the Pokémon
- defIV: Individual Value (IV) bonus for Defense
- sta: Base Stamina stat of the Pokémon
- staIV: Individual Value (IV) bonus for Stamina
- level: The Pokémon’s current level
- CPM_AT_LEVEL(level): A function that returns a multiplier (CPM) for the given level
Steps to calculate
- Add the base stat and its corresponding IV for Attack, Defense, and Stamina.
- Take the square root of the Defense and Stamina stats (including IVs).
- Calculate the CP multiplier for the given level using CPM_AT_LEVEL.
- Multiply the following expressions:
- (Attack stat including IV)
- (Square root of Defense stat including IV)
- (Square root of Stamina stat including IV)
- (The square of the CP multiplier)
- Divide the result by 10.
- Round down the result to the nearest whole number (using Math.floor).
As you can see, the formula depends on the CPM factor, which is hidden in the game’s files. We, and other members of the Pokémon GO community, have managed to extract the Pokémon GO CPM table.
Pokémon GO CPM Table
| LVL | Scalar | LVL | Scalar | LVL | Scalar | LVL | Scalar | LVL | Scalar |
|---|---|---|---|---|---|---|---|---|---|
| 1.0 | 0.094000000 | 11.0 | 0.443107550 | 21.0 | 0.612157290 | 31.0 | 0.737769480 | 41.0 | 0.795300010 |
| 1.5 | 0.135137432 | 11.5 | 0.453059958 | 21.5 | 0.619399365 | 31.5 | 0.740785574 | 41.5 | 0.79780392 |
| 2.0 | 0.166397870 | 12.0 | 0.462798390 | 22.0 | 0.626567130 | 32.0 | 0.743789430 | 42.0 | 0.800300010 |
| 2.5 | 0.192650919 | 12.5 | 0.472336083 | 22.5 | 0.633644533 | 32.5 | 0.746781211 | 42.5 | 0.80280389 |
| 3.0 | 0.215732470 | 13.0 | 0.481684950 | 23.0 | 0.640652950 | 33.0 | 0.749761040 | 43.0 | 0.805300010 |
| 3.5 | 0.236572661 | 13.5 | 0.490855800 | 23.5 | 0.6475809666 | 33.5 | 0.752729087 | 43.5 | 0.80780387 |
| 4.0 | 0.255720050 | 14.0 | 0.499858440 | 24.0 | 0.654435630 | 34.0 | 0.755685510 | 44.0 | 0.810300010 |
| 4.5 | 0.273530381 | 14.5 | 0.508701765 | 24.5 | 0.661214806 | 34.5 | 0.758630378 | 44.5 | 0.81280384 |
| 5.0 | 0.290249880 | 15.0 | 0.517393950 | 25.0 | 0.667934000 | 35.0 | 0.761563840 | 45.0 | 0.815300010 |
| 5.5 | 0.306057377 | 15.5 | 0.525942511 | 25.5 | 0.674577537 | 35.5 | 0.764486065 | 45.5 | 0.81780382 |
| 6.0 | 0.321087600 | 16.0 | 0.534354330 | 26.0 | 0.681164920 | 36.0 | 0.767397170 | 46.0 | 0.820300010 |
| 6.5 | 0.335445036 | 16.5 | 0.542635767 | 26.5 | 0.687680648 | 36.5 | 0.770297266 | 46.5 | 0.8228038 |
| 7.0 | 0.349212680 | 17.0 | 0.550792690 | 27.0 | 0.694143650 | 37.0 | 0.773186500 | 47.0 | 0.825300010 |
| 7.5 | 0.362457751 | 17.5 | 0.558830576 | 27.5 | 0.700538673 | 37.5 | 0.776064962 | 47.5 | 0.82780378 |
| 8.0 | 0.375235590 | 18.0 | 0.566754520 | 28.0 | 0.706884210 | 38.0 | 0.778932750 | 48.0 | 0.830300010 |
| 8.5 | 0.387592406 | 18.5 | 0.574569153 | 28.5 | 0.713164996 | 38.5 | 0.781790055 | 48.5 | 0.83280375 |
| 9.0 | 0.399567280 | 19.0 | 0.582278910 | 29.0 | 0.719399090 | 39.0 | 0.784636970 | 49.0 | 0.835300010 |
| 9.5 | 0.411193551 | 19.5 | 0.589887917 | 29.5 | 0.725571552 | 39.5 | 0.787473578 | 49.5 | 0.83780373 |
| 10.0 | 0.422500010 | 20.0 | 0.597400010 | 30.0 | 0.731700000 | 40.0 | 0.790300010 | 50.0 | 0.840300010 |
| 10.5 | 0.432926419 | 20.5 | 0.604818814 | 30.5 | 0.734741009 | 40.5 | 0.79280394 | 50.5 | 0.84280371 |
| 51.0? | 0.845300010 |
How is the CP gain for each power up determined?

The CP gain can also be calculated for each power up. Based on several attempts with different CPM values, a rule of thumb formula was defined for each range of levels. Keep in mind that values obtained as a result should be rounded down too.
| Pokémon level | CP gain per power up |
|---|---|
| 1-10 | CP * 0.00445946079 / CPM^2 |
| 10-20 | CP * 0.008919025675 / CPM^2 |
| 20-30 | CP * 0.008924905903 / CPM^2 |
| 30-40 | CP * 0.00445946079 / CPM^2 |
From these formulas it can be deduced that from levels 30-40 the CP gain per power up will be significantly lower if compared to the previous level ranges, as you have probably seen in the game when you decided to power up a Pokémon further than level 30.
The resources needed to power up that Pokémon, however, will significantly increase.
Therefore, the player should really consider whether it is necessary or not to power up a Pokémon further than level 30.

