So after playing casually for a while, I decided to get into the game mechanics a bit more. I found out there were Individual Values (IVs) for every Pokémon. The Pokémon in Pokémon GO have three stats: Stamina, Attack and Defense. Each Pokémon has a specific set of base values. Every Rattata has Attack 92, Defense 86 and Stamina 60. IV’s are bonus values added to these base stats, a bonus that ranges between 0 and 15. So if your Pokémon has a bonus of 15 in all these stats it’s a perfect specimen. So a perfect Rattata will have Attack 107, Defense 101 and Stamina 75.
A perfect Pokémon will have higher max CP (Combat Points) than a Pokémon with suboptimal stats. The values that are needed to calculate/estimate how ‘perfect’ on a scale of 0-100% are CP, HP, the Stardust upgrade cost and the fact if you previously powered up your Pokémon. The weight and height has no influence on any of the stats. For the highest CP possible, the bonus stat Attack is more important than Defense and Stamina, so if it’s not perfect go for the better Attack. Whenever you get a really good percentage, there still are a lot of different values, to narrow down the value you will have to power up your Pokémon once and re-enter all the values and change the Powered-variable to Yes. A good IV-percentage calculator can be found here.
If you want the strongest Pokémon possible it’s important to calculate the IV-percentage before powering up or evolving your Pokémon. The IV-percentage will stay the same after evolving your Pokémon. Of course, IV’s aren’t the only important aspect of the max CP of a Pokémon. A Snorlax will always be stronger than a Rattata. A Snorlax with a good move-set will always be stronger than a Snorlax with a crappy one. However, IV’s are not far behind. So your perfect Pokémon still has to have a good move-set if evolved, otherwise, a Pokémon with a lower IV-percentage will still be stronger in battle. A nice list of the DPS of each attack can be found here.