The Global Positioning System is an all-weather radio navigation system, used to provide location information to anyone with an appropriate GPS receiver. GPS is a passive system, meaning that you do not have to send any information out to the GPS satellites (or anywhere else) to calculate your position. Your receiver needs unobstructed access to at least four GPS satellites though; three are needed to determine the three coordinates of your position and the fourth is needed to calculate your receiver's clock offset from the actual time.
GPS Receiver Basics
Once your receiver locks on to the broadcast signal, it measures the distance to each GPS satellite. This distance measurement is called a pseudorange (Greek letter rho "ρ"), because it contains several errors. Your receiver can correct for some of these errors, but to do so, it needs to download navigation data from the GPS satellites. This data helps determine the GPS satellite precise position, the clock errors for the clocks on board the GPS satellites as well as other information necessary to calculate your position. I should note that the technical details for building a receiver and using the data from a GPS satellite are contained in the IS-GPS-200H, should you be interested. (If you're really nerdy). Now that the receiver has all the required information from the satellites, it can calculate your position. It takes each pseudorange measurement ρ, and calculates the required corrections based off of the navigation data it downloaded. The corrected pseudorange measurement, ρc, is then used in the linearized least-squares solution of the position equation. This equation provides an estimate of your position, given an initial starting position (which could be anything really). This position estimate can then be iterated over, using the position estimate result from the previous calculation as the initial estimate guess for the next calculation. This iteration then continues until your position estimate no longer changes.
Knowing how well your position estimate was calculated depends on many factors. In fact, AGI developed the Navigation Tool Kit to help you determine just that. (Note: That functionality is now contained in STK Component’s Navigation and Navigation.Advanced Libraries) Briefly, your position accuracy depends on two separate, but related qualities in your measurement. The first is Dilution of Precision (DOP) and the second is the GPS satellites' User Range Error (URE). DOP is a function of the orientation of the GPS satellite constellation when your position is estimated and can be fairly well predicted in the future. DOP is a unitless multiplier of your position error. URE's are different for each satellite being tracked and arise from the inaccuracies of the satellites position estimate and in accuracies in the satellite's clock estimate. There are different types of URE - the one I've just defined is typically called the Signal-In-Space URE (SISURE) because it deals with satellite based errors that are what a receiver would see if it were in space. Other UREs contain errors that arise from receiver processing, atmospheric errors etc. All of these URE sources add to your final position error. SISUREs are not very predictable, being a result of quantum fluctuations of the onboard atomic clocks on the GPS satellites. This random behavior means that the quality of your position estimate is determined by the inherent randomness of quantum behavior!
So, your position error is a combination of a predictable geometrical value and an unpredictable range error from each satellite tracked.
Typical values for position errors for civilian users range from a meter or two - to several meters. Below I show some typical DOP values as well as some position error values.