I was just wondering if there is a set amount of CP gained by evolving a Pokémon or is it based on their level? Your level? Or random? I just wanted to know if for example it made sense to evolve a Pidgey (CP 150) to a Pidgeotto then a Pidgeot. To maximize my CP or should I just evolve my Pidgeotto (CP162) to a Pidgeot. Just looking for other insight on it.
When you evolve a Pokemon, the CP scales to the same percentage of your max at that level.
You can tell the approximate percentage by looking at the circle above a captured Pokemon. After evolution, the marker will always be in the same place.
For example, if you're evolving a Pokemon with a Max CP of 100 to a Pokemon with a Max CP of 300, your current CP will triple to keep the same ratio.
When evolving a Pokemon, a random multipler is applied to it's original CP to produce it's resulting evolved CP. This multiplier has specific upper and lower bounds for each Pokemon and upon evolution the multipler being applied will being randomly chosen from with these bounds. So evolving two identical Pokemon with the same CP can result with different evolved values.
Here is a spreadsheet containing all the evolution multiplers for all Pokemon in the game. This spreadsheet was curated by a Reddit user so credit goes to him for the great work. This data is based off of statistical results and submitting more data will help round out the values making it more accurate.
The amount of CP gained is based off of the increase of max CP from the lower to higher evolution. When you look at a Pokemon you have captured there is an arc over it. The % filled of the arc is how strong the Pokemon is relative to how strong it can be (current Cp vs max CP). When you evolve a Pokemon the % filled stays the same so the ratio is based off of the difference in max CP. ex. max cp pidgey = 100 (not accurate) max cp pidgeoto = 250(not accurate). if the pidgey is maxed it will evolve into a 200 pidgeoto, or if its lower it will incerase it's CP by 150%.
A pokemon's CP/HP are calculated by formulas. These formulas use a pokemon's hidden individual values (IV). The essential trick then is discovering those IV's, which allows you to calculate or forecast CP/HP when evolving or powering up. By now, there are several websites describing this in detail and providing a form to help discover IV's. Poke Assistant is just one example.