Alright, after trying many different approaches (and a whole lot of math), I have found a new way to calculate IVs that gives you more exact IVs much faster. I'll describe the entire process I go through. However, no one will really be able to do this by hand. It has to be programmed. I don't know if Serebii would be interested in updating their IV calculator to support this or not. I've written the IV Calc code already and you can d/l it to try it out. I'm still testing for bugs, but I think I nailed the last one. Anyway, here is the process:
Lets say you provide the stats for Level 5. Most, if not all, current IV Calculators will currently take this in, apply the formula that gives back an IV, and then pass in the provided stat +0.9999 to determine the max IV it could be. However, another way you can do it is to use the formula that gives back a stat. Then you can send in IVs 0 through 31 and get a stat back out. If the resulting stat is the same as the stat provided by the user, it is a valid IV.
Now, if we stopped here, the results would be the same. However, lets say you provide stats for levels 5 thru 7. With normal IV calculators, you would enter each level by hand and get fluctuating ranges. However, what I do is check for IVs that match all 3 levels. Lets say Level 5 for att resulted in a range of 0-20, level 6 results in a range of 10-25, level 7 results in 8 to 16. My process would then tell you that the range of IVs would be 10 to 16. I guess you could figure that out yourself and manually keep track of all that information, by why should you have to.
Now, I didn't stop there. The Hidden Power type is directly based on the IVs of a Pokemon. So, if you provide the Hidden Power Type (Remember the Kecleon trick?), I can go through all the possible combinations of IVs and determine if they would result in the correct HP Type. The result is that you can narrow down the IVs much, much faster. However, due to the way HP is calculated, you can really only narrow down Def, SpA, SpD, and Speed faster. Attack and HP don't affect the result enough to make any major impact.
If that wasn't enough, I did two extra things that no on else thought of. First, I calculated what level you would need to get to before the IV range would be reduced. This is especially helpful when you get down to a range of 4 or less. That way, you know what level you have to shoot for.
Second, I manipulate the EV part of the equation. I run through to see if getting a specific EV value will result in getting the exact IV for the next level. Though, so far it only seems to work if you have 2 possible IVs left. I'll give an example. Say some pokemon has Attack IVs in the range of 15-16. We can calculate where the next level's attack stat will be one number vs another based on the EV provided. That breaking point will determine one IV vs. the other.
So now you can provide multiple levels of stat information (thru rare candies) and get exact results by level 15 or less. Or you will know the range is within 2 or 3 IVs, and what level or EVs you need to get to figure it out.
Lets say you provide the stats for Level 5. Most, if not all, current IV Calculators will currently take this in, apply the formula that gives back an IV, and then pass in the provided stat +0.9999 to determine the max IV it could be. However, another way you can do it is to use the formula that gives back a stat. Then you can send in IVs 0 through 31 and get a stat back out. If the resulting stat is the same as the stat provided by the user, it is a valid IV.
Now, if we stopped here, the results would be the same. However, lets say you provide stats for levels 5 thru 7. With normal IV calculators, you would enter each level by hand and get fluctuating ranges. However, what I do is check for IVs that match all 3 levels. Lets say Level 5 for att resulted in a range of 0-20, level 6 results in a range of 10-25, level 7 results in 8 to 16. My process would then tell you that the range of IVs would be 10 to 16. I guess you could figure that out yourself and manually keep track of all that information, by why should you have to.
Now, I didn't stop there. The Hidden Power type is directly based on the IVs of a Pokemon. So, if you provide the Hidden Power Type (Remember the Kecleon trick?), I can go through all the possible combinations of IVs and determine if they would result in the correct HP Type. The result is that you can narrow down the IVs much, much faster. However, due to the way HP is calculated, you can really only narrow down Def, SpA, SpD, and Speed faster. Attack and HP don't affect the result enough to make any major impact.
If that wasn't enough, I did two extra things that no on else thought of. First, I calculated what level you would need to get to before the IV range would be reduced. This is especially helpful when you get down to a range of 4 or less. That way, you know what level you have to shoot for.
Second, I manipulate the EV part of the equation. I run through to see if getting a specific EV value will result in getting the exact IV for the next level. Though, so far it only seems to work if you have 2 possible IVs left. I'll give an example. Say some pokemon has Attack IVs in the range of 15-16. We can calculate where the next level's attack stat will be one number vs another based on the EV provided. That breaking point will determine one IV vs. the other.
So now you can provide multiple levels of stat information (thru rare candies) and get exact results by level 15 or less. Or you will know the range is within 2 or 3 IVs, and what level or EVs you need to get to figure it out.