One reason the time shift, dτ, found in autocorrelation cannot quite reveal the true range, ρ, of the satellite at a particular instant is the lack of perfect synchronization between the clock in the satellite and the clock in the receiver. Recall that the two compared codes are generated directly from the fundamental rate, Fo, of those clocks. And since these widely separated clocks, one on Earth and one in space, cannot be in perfect lockstep with one another, the codes they generate cannot be in perfect sync either. Therefore, a small part of the observed time shift, dτ, must always be due to the disagreement between these two clocks. In other words, the time shift not only contains the signal’s transit time from the satellite to the receiver, it contains clock errors, too. In fact, whenever satellite clocks and receiver clocks are checked against the carefully controlled GPS time, they are found to be drifting a bit. Their oscillators are imperfect. It is not surprising that they are not quite as stable as the more than 150 atomic clocks around the world that are used to define the rate of GPS time. They are subject to the destabilizing effects of temperature, acceleration, radiation, and other inconsistencies. As a result, there are two clock offsets that bias every satellite to receiver pseudorange observable. That is one reason it is called a pseudorange
One of the reasons that this isn't the whole story is something mentioned earlier, in that the clock in the satellite, the frequency standard or oscillator, and the clock in the receiver are not perfectly in sync. They cannot be. The difference between the satellite clock's time and GPS time is shown in d small t. The difference in the receiver's clock from GPS time is shown in d large T. The pseudorange observable shown here in d tau can determine the amount of time that it took the signal to reach the receiver from the satellite, but this is based on the receiver's clock, which is by no means a very high quality clock, and the clock correction in the Navigation Message.
There are some difficulties here. First of all, the GPS receiver clock is probably a quartz oscillator, and it's not terribly stable. Also, as you know, the broadcast clock correction in the Navigation Message is not perfect, because it was uploaded some time before it is received, and so it isn't right exactly. Such a discrepancy is important when a nanosecond, a billionth of a second, is approximately a foot.
Therefore, the pseudorange has some errors that are difficult to remove. The pseudorange, by itself, while it has the virtue of being approximately correct, is certainly not at the level of accuracy that we have come to expect from GPS.