The Maths Of Pokémon Go – Calculating Maximum Values

You read part of one of however many this will turn out to be when I’m bored and get more interested in game mechanics than playing the game, didn’t you? The one about calculating IVs? Well you should do that first or this will make no sense!

OK, the good thing is that, once you’ve read the one about IVs, this is fairly simple.  You have a good indication from the IVs and percentage perfection just how good your Pokémon is, but how good could it be?  You can caluclate that using the exact same formulas used to calculate IVs but this time it’s not trial and error – you have actuals.


You need to have the exact IVs and level of your Pokémon at this stage.  Well, I say “need”.  You don’t need at all, but it’s interesting that the difference between an “Amazing” and a “Strong” isn’t all that much in the grand scheme of things, giving weight to the idea that the movesets are the most important thing.  Having exact ones just means that you know the exact values rather than having a range.

You also need to use your trainer level, which is the one in the bottom corner of the main screen.

What “maximum values” are you talking about?

Good question.  We’re talking about maximum CP and maximum HP, and there are three scenarios in which we can do this:

Perfect – if the Pokémon we caught in the wild or hatched from an egg was perfect (all IVs were 15), what would it’s CP and HP be?

Powered Up – if we use stardust and candies to power up our Pokémon, what are the maximum values for CP or HP we can get out of it?  Is it worth the power up?

Maxed – if we evolve our Pokémon to it’s top level and power it up as far as it will go, what is the best it can be?

So, forumlas…

CP = \frac{(BaseAtk + AtkIV) \times (BaseDef + DefIV)^{0.5} \times (BaseStam + StamIV)^{0.5} \times CPmultiplier^2}{10}

HP = (BaseStam + StamIV) \times CPmultiplier

And examples…

This time we’re going to use a pair of Oddishes.

The 636/59 one is level 20 and has 14 attack, 15 defence and 10 stamina.  The other is level 7 and has 12 attack, 7 defence and 11 stamina.


This is the most simple one to work out.  All you have to do is pretend that all the Pokémon’s IVs are 15.

CP = \frac{(BaseAtk + 15) \times (BaseDef + 15)^{0.5} \times (BaseStam +15)^{0.5} \times CPmultiplier^2}{10}

HP = (BaseStam + 15) \times CPmultiplier

Pretty simple and, being honest, doesn’t really tell you anything anyway.  You already know percentage perfection.  You also know that HP is related only to Stamina IV, so you can get a good idea whether it’s CP or HP letting your Pokémon down from that.

But we can, so we will!

Powered Up

Important thing to note here – your Pokémon’s maximum HP and CP at any point in time is limited by your trainer level.

So to get the maximum power up valuess, you use the Pokémon’s actual IVs that you have already calculated but you use either a trainer level of 40.5 if you’re a level 40 or minimum trainer level of your actual level +1.5 to get the CPmultiplier.

To explain a bit further, 40.5 is the highest level in the game data at the time of writing.  It’s level 40 + an evolution which increases your Pokémon’s level by a half.

The “+1.5” confused me, but my hypothesis is that calculating level based on stardust only ever gives odd numbers, yet Pokémon can have even numbered levels and you can power up more than once.  Therefore to get to the next limited stardust level would be three lots of 0.5.

So I, at the time of writing, am level 22.  I would use the CP multiplier for level 23.5.

Formula examples with my 14/15/10 Oddish:

CP = \frac{(BaseAtk + 14) \times (BaseDef + 15)^{0.5} \times (BaseStam +10)^{0.5} \times 0.647581^2}{10}

HP = (BaseStam + 10) \times 0.647581


This calculation is exactly the same as the “Powered Up” but you don’t use the Base Stats for the Oddish, you use the Base Stats for its top level evolution, Vileplume.  Kind of makes sense, doesn’t it?

So what?

Well, that’s an even better question than the one you asked before.

I started looking at the game mechanics because I was collecting more Pokémon than I knew what to do with and I was a bit perplexed about which Pokémon to send to Professor Willow.  I can rate them against each other, but I can also rate my first evolution Pokémon against their fully evolved versions


Doing all this, you can see which of your Pokémon are the best.  However, the differences are actually pretty small in terms of CP and HP.  My level 20 Oddish is 86.7% perfect, while the level 7 is 66.7% perfect.  If I was a level 40 trainer, the difference in CP between the two Vileplume’s they will be evolved in to is just over 2.5% (63 points).

As I said before, the only IV on which HP depends is Stamina, and the difference between an IV of 10 and 11 in my wouldbe Vileplumes is less than 1%.  The HP seems to change by either 0 points or 1 point per point in IV whatever the species.

How I’m playing

I read somewhere that while you are levelling up as a trainer, your high CP Pokémon are your short term team if you want to try taking down a gym.

Over the long term, I’m thinking that I’ll try to catch anything that is not in my Pokédex yet or looks to have a high enough level of CP for me to be able to work out its stats.  10CP Pidgies are great for Pidgey Farming to level up, but not really worth anything else.

I’ll keep anything strong or amazing while I can, with the goal that I want Pokémon with all 15 IVs.  Then the differentiating factor will be their movesets.

One more thing…

I’m pretty sure this overkill!  I’m sure there are far more limiting factors than the difference between a 90% Pokémon and a 95% Pokémon when it comes to gym battling, not least how fast you can tap the screen and the types of Pokémon you have in your team compared to the types you’re battling against.

It’s really pleasing for geeks like me though!

Leave A Comment?