I believe that spawning pokemon have multiple levels with their own maximum level. It appears for the maximum level the pokemon has which is under or equal the trainers level.
eg.
Two trainers at lvl15 and lvl 25
Blastoise appears with random possible levels at 3, 8, 14, 19 (obviously these are hidden until you can see the semi circle relative to your level after you catch it or its cp vs max cp for your level.)
The lvl 15 character will get the level 14 blastoise, while the lvl25 guy will get the lvl19 blastoise.
The same pokemon at the same level would have the same IV but this is not necessarily true for the same pokemon at a different level due to trainer difference.
Actually, when a pokemon spawns, it is assigned a level and IVs (and thus CP) randomly for each possible trainer level.
So all level 10 trainers will see the exact same pokemon, from CP, to IVs, to even size and weight, whereas level 20 trainer will all see a pokemon with different attributes for them.
Higher level does no guarantee a high level/CP pokemon, only the possibility of getting higher (level 10 trainers won't see level 25 pokemon).
You could be level 40 and still end up with a 10cp crapmon thanks to RNG