I've been hearing talk about hidden stats called IV, and I also hear they may override CP when it comes to long-term battle effectiveness. Is there any validity to this?
When talking about IV vs CP,
Combat Power is only an average of your Pokemon’s stats and is only a rough estimation of a Pokemon’s strength. -source
There are 3 IV's that we know of; Attack, Defense, and Stamina. Defense and Stamina are important when it comes to defending in gym battles, and Attack and the move you are attacking with's base damage and attack speed are important for attacking gyms.
So for defense of gyms, a Pokémon with a lower cp but higher Defense and Stamina may be a better pick than a higher cp Pokémon who just has really high Attack. For attacking, you will want to prioritize Pokémon with higher attack and lower defense, as you can always dodge to avoid taking a lot of damage. See here for more info.
IV stand for "Individual Value". They are hidden stats, which differ from Pokemon to Pokemon you hatch or catch. IVs stay constant when evolving or powering up a Pokemon. IV will influence how "strong" your Pokemon will become at each upgrade stage. IVs are therefor a key measure when deciding which Pokemon to upgrade.
An elaborate explanation of IVs can be found on reddit thread. For convenience, here the example which is given in the thread:
Every Pokemon has Attack/Defence/Stamina Stats.
IV are the hidden Stats that can differ from pokemon to pokemon and go from 0 to 15 for each Stat (Attack/Defence/Stamina).
Lets take Charmander as an example.
Those are his ingame Stats:
BASE STAMINA 78
BASE ATTACK 128
BASE DEFENSE 108
But each time you hatch/catch a Charmander, it gets hidden Stat Rolls to Attack/Defense/Stamina that we call IV (Individual Values) and go from 0 to 15 as I stated above.
Lets say you get 12/7/14 as an example. That means your Charmander gets 12 Attack, 7 Defense and 14 Stamina added to his base stats, for a final result of 90 Attack, 135 Defence, and 122 Stamina.
IVs raise a Pokémon's maximum potential, so although a 600 CP Charmander will preform better than a 500 CP Charmander and take less stardust to upgrade to maximum level, a lot of people would prefer a 500CP Charmander with, for example, rolls of 14/12/15 over one with 600CP that had bad rolls of, say, 7/6/10. This is because the 500CP specimen could eventually be grown into a more powerful fighter than the 600CP one ever could.
CP is a number that is derived from underlying stats the Pokemon Go engine uses for Pokemon combat.
The four stats are attack, defence, stamina and level.
Each type of pokemon has a base atk, def and sta. In addition, each pokemon has an individual variation, or IV, of 0 to 15 on each of those 3 stats.
A high IV pokemon thus displays a higher CP at the same level.
Level is what you are buying when you power up a pokemon, at +0.5 each power up.
Now, what do those stats do?
Your damage is roughly:
some constant × move dam (number displayed next to move) × atk stat × (level+some other constant) / other pokemon's def
Thus is not quite accurate, as a 0 damage move actually does a tiny bit of damage.
Your HP are
(level+some constant) × stamina × some_other_constant
In short, +10% sta means +10% HP, +10% def means you take 10% less damage, and +10% atk means you deal 10% more damage.
There are other factors. +25% damage if your move type matches your pokemon type (STAB: same type attack bonus). +25% if your move is super effective on the target (based on move type and target pokemon type), -20% if your move is not very effective (ditto).
As it happens, basic attacks vary in damage per second. They peak around 12, before STAB or Super Effective. This is almost unrelated to their move damage: a 12 damage 1/second is same dps as a 6 that is 2/second. The UI does not display the attack delay.
Finally, while CP is derived from atk/def/sta/level, it is a relatively random formula that only vaguely tracks actual combat powess. I believe it is basically
ATK * sqrt(DEF*STA) * Level * Constant, with some very small additional factors that cause it to be very slightly non-linear. This over values ATK ompared to other stats by a factor of
Atk/sta/def for each type can be found online. IV calculators that take level estimates and cp values and hp and reverse engineer atk/def/sta also exist.
Basically, IV is a hidden set of stats that someone found in the code that determines the absolute quality and power of your Pokemon. It's really important because it implies that CP isn't the only thing going into how strong your Pokemon will be fully leveled/evolved. You may find you have been trashing super strong Pokemon with not quite as high of a CP.
Basically, you need an IV calculator, and you need to put those stats against your Pokemon's base stats to figure out how powerful it actually is.
Here's an IV calculator that works for a mobile phone: https://pokeassistant.com/main/ivcalculator
My understanding of IVs is that they act as 'bumps', randomising the stats of Pokemon slightly. If it weren't for IVs, every Pokemon would start out with the same stats and would reach the same stats when fully powered up; two Pokemon of the same species who had been powered up to the same degree would be equally powerful (different moves aside).
IVs nudge those stats slightly, so two Pokemon powered up to the same degree might be slightly (or not so slightly) different. Since you can power up any Pokemon, but IVs are immutable, it makes sense to look for a Pokemon with high IVs, even if they aren't as powered up as other Pokemon with lower IVs.