$$p=\rho +{d}_{\mathrm{\&rho}}+c\left(dt-dT\right)+{d}_{ion}+{d}_{trop}+{\epsilon}_{mp}+{\epsilon}_{p}$$

where:

$p$ = the pseudorange measurement

$\rho $ = the true range

${d}_{\rho}$ = satellite orbital errors

$c$ = the speed of light

$dt$ = satellite clock offset from GPS time

$dT$ = receiver clock offset from GPS time

${d}_{ion}$ = ionospheric delay

${d}_{trop}$ = tropospheric delay

${\epsilon}_{mp}$ = multipath

${\epsilon}_{p}$ = receiver noise

Clock offsets are only one of the errors in pseudoranges. Please note that the pseudorange, p, and the true range, ρ, cannot be made equivalent, without consideration of clock offsets, atmospheric effects and other biases that are inevitably present.

Some of those errors are shown in this equation. On the left-hand side, the pseudorange measurement equals rho, the true range, plus all of these other factors. If it were correct initially, if the pseudorange was good and complete by itself, these other factors would not need to be considered. The pseudorange, p, would be equal to the true range, rho. But, in fact, there are satellite orbital errors because the orbits of the satellites are affected by many factors including the variations in gravity, drag, and tidal forces from the sun, the moon, etc. The speed of light is constant, but it has to be multiplied times the satellite clock offset from GPS time minus the receiver clock offset from GPS time, because of propagation delay and imperfect oscillators among other things. While the satellite clock offset from GPS time is somewhat known from the Navigation Message, it's not perfectly known. The receiver clock offset from GPS time is not well known at all. Then, there is the ionospheric delay to be considered. There's also a bit of tropospheric delay. The troposphere includes the atmospheric layers below the ionosphere.

Then, on top of that, there's something known as multipath. Multipath means that the signal from the GPS satellite bounces off of something before it gets into the receiver. Obviously, if you're measuring distances to determine your position, that bounce creates a difficulty. There is receiver noise as a bias in the system. This is like the static that can appear on your car radio.

In short, all these biases contaminate the pseudorange position. So, while the pseudorange is a good way to get started with a GPS position, it isn't the full answer.