If you catch a really tiny rattata, it could still be 100% IV.
I do not like it that we use percentages for IV, its nonsense actually.
There are 3 values that can be between 1 and 15, so the best possible pokemon has 15/15/15, which you can add up to 45 of a possible 45. People somehow like to artificially slap percentages on top of it, leading to no insight but fractured numbers.
These 3 hidden core values multiply with the level of the pokemon to produce its stats. Powering up increases the level of the pokemon by 0.5, the maximum (when the half circle is full and the power up button goes grey) is your trainer level + 1.5 .
So if you are level 22, and come across an infinite amount of dust and candy, and power them all up until that half circle is full and the power up button goes grey, they will all be level 23.5. And if you gain a trainer level, you can power up all your maxed out pokemons two more times.
And if you are level 22 and have a massive amount of rattatas, all of them with different IVs and different levels, and one of them with 15/15/15 IVs, and you power them all up to the absolute maximum until you can no longer power them up, (meaning they will all be level 23.5 and only their IVs determine their stats now), then the one with the 15/15/15 IVs will be the best of the bunch.
After all that, hopefully helpful, explanations, i would like to ask a more advanced follow-up question:
IV calculators are not precise because the pokemon level is not precisely known, does anyone have an IV calculator that gives absolutely precise results if you give it the exact level of the pokemon?
The precise level can be determined in two ways: Power it up to the max and it is trainer level + 1.5, or power it up 3 times while paying attention to this chart:
Level | # of Power Ups | Stardust | Candies
1-2.5 1-4 200 1
3-4.5 5-8 400 1
5-6.5 9-12 600 1
7-8.5 13-16 800 1
9-10.5 17-20 1000 1
11-12.5 21-24 1300 2
13-14.5 25-28 1600 2
15-16.5 29-32 1900 2
17-18.5 33-36 2200 2
19-20.5 37-40 2500 2
21-22.5 41-44 3000 3
23-24.5 45-48 3500 3
25-26.5 49-52 4000 3
27-28.5 53-56 4500 3
29-30.5 57-60 5000 3
31-32.5 62-64 6000 4
33-34.5 65-68 7000 4
35-36.5 69-72 8000 4
37-38.5 73-76 9000 4
39-40 77-80 10000 4
So it should be possible to make a perfect calculator that gives you all 3 hidden stats in the form of 13/15/15 or 15/12/13 if you give it CP, HP, and the precise level.
The appraisal feature gives you some estimtes based on categories and can be very useful, it will reveal in what category all 3 stats added together are (with 15+15+15 = 45 of 45 being the theoretical maximum), it will clearly reveal all stats that are at the maximum of 15, and for other good pokemon that have no stat at 15, it will reveal one or more stats that are at 13 or 14. That can help a lot with pinning it down precisely, and it will reveal any 100% IV pokemon. (or as i like to call them: 15/15/15)
The take home message: For any pokemon that you see a lot and where you have a lot of candy, a pokemon that looks weak and crappy might be the absolutely best one you have, because while it looks like crap it is just low level but has perfect IVs, so if you invest a lot of candy and stardust to evolve it and push it all the way, it will be perfect.