GPS and GNSS
GPS accuracy converter: CEP, DRMS, 2DRMS, R95 and HDOP
A GPS accuracy figure is the radius of a circle plus the probability that the true position lies inside it, and the probability is the part that usually gets left off. Android reports a 68% circle, the web’s location standard asks for 95%, and receiver datasheets quote CEP (50%) or 2DRMS (about 98%). A receiver with a 2.0 m CEP has a 2.6 m accuracy in Android’s sense and a 4.2 m radius at 95%, and all three describe the same error. This page converts between them with the published formula, turns HDOP into metres, and handles error that is not circular.
Convert an accuracy figure
Choose what you are starting from. Each mode opens on a published example you can check against its source: NovAtel’s 1.8 m CEP (4.32 m as 2DRMS), the GPS Standard Positioning Service Performance Standard’s HDOP 1.1 case (8 m at 95%), and NovAtel’s 1.3 by 1.5 m error ellipse (CEP 1.65 m). Nothing you enter leaves the page.
What it assumes. Horizontal error that is normally distributed with zero mean — no bias — and, outside ellipse mode, the same spread in every direction, so the distance from the true position follows a Rayleigh distribution. Every radius is centred on the true position, not on the average of your own fixes. HDOP mode also assumes every satellite’s range error is zero-mean, normal and of the same size, which is the condition the Performance Standard attaches to its equation; its default range error, 3.6 m one-sigma, is that standard’s example for a modern single-frequency receiver under a quiet mid-latitude ionosphere. Ellipse mode integrates the two-axis normal distribution numerically; enter the standard deviations along the ellipse’s own axes, which for correlated north and east errors are not the north and east values. The scatter plot is 1,000 fixes drawn from the model with a fixed random seed, not measured data. Being a random sample, the counts inside each circle miss the model’s percentages by a little — the same sampling error that makes a short field test unreliable.
One error, many radii
Model the horizontal error as two independent errors, north and east, each normally distributed with mean zero and the same standard deviation σ. The distance from the true position then follows a Rayleigh distribution, and the chance that a fix lands within radius R is 1 − exp(−R²/2σ²). Solve that for R and every accuracy measure becomes a fixed multiple of σ:
That quantile formula is the one the Wikipedia article on circular error probable gives. Frank van Diggelen reaches the same numbers from the chi-squared distribution with two degrees of freedom in his GPS World article “GNSS Accuracy: Lies, Damn Lies, and Statistics” (2007). Evaluated:
| Measure | Circle contains | × σ | × DRMS | × CEP |
|---|---|---|---|---|
| σ, one axis | 39.3% | 1.0000 | 0.7071 | 0.8493 |
| CEP | 50% | 1.1774 | 0.8326 | 1.0000 |
| DRMS | 63.2% | 1.4142 | 1.0000 | 1.2011 |
| 67% circle | 67% | 1.4891 | 1.0529 | 1.2647 |
| Android accuracy | 68% | 1.5096 | 1.0674 | 1.2821 |
| R95, W3C accuracy | 95% | 2.4477 | 1.7308 | 2.0789 |
| 98% circle | 98% | 2.7971 | 1.9779 | 2.3757 |
| 2DRMS | 98.2% | 2.8284 | 2.0000 | 2.4022 |
| R99.7 | 99.7% | 3.4086 | 2.4102 | 2.8950 |
Two rows in that table catch people out. One standard deviation is not a 68% circle. The 68% rule belongs to a single axis; van Diggelen makes exactly this point, that the rule people learn in college is true only for one-dimensional distributions. In two dimensions a circle of radius σ holds 39.3% of fixes, and the 68% circle is 1.51σ.
DRMS and 2DRMS are not percentiles. They are root-mean-square statistics, and the share of fixes they enclose depends on the shape of the error: 63.2% and 98.2% for a circle, rising to 68.3% and falling to 95.4% for an error stretched into a line (the section on ellipses below shows the numbers). That is why 2DRMS is so often called “95%” — NovAtel’s application note APN-029 lists DRMS as 65% and 2DRMS as 95% — when for a circular error it is 98.2%.
Van Diggelen adds a rule for reading datasheets: an accuracy quoted with no measure at all, such as “accuracy 5 m”, is usually CEP. His example asks which is better, 5.1 m at 95% or 4 m CEP. Multiply 5.1 by 0.4810 and the first is 2.45 m CEP, so it is the better receiver by a wide margin, even though its number is bigger.
Android says 68%, the browser says 95%
Android’s documentation defines Location.getAccuracy() as the estimated horizontal accuracy radius in metres “at the 68th percentile confidence level”: a 68% chance the true location is inside a circle of that radius around the reported point. getVerticalAccuracyMeters() is also stated at 68%, but it is a plus-or-minus band on one axis, so it is 0.994 standard deviations of the altitude error, not 1.51.
The W3C Geolocation specification (Candidate Recommendation Snapshot, 26 March 2026) defines the accuracy a web page reads as a value “indicating the 95% confidence level” in metres, and altitudeAccuracy the same way. For a circular normal error the 95% radius is 2.4477σ and the 68% radius 1.5096σ, so a correctly converted browser figure is 1.6215 times the Android one. A fix an Android app sees as 5.0 m should reach a web page as 8.1 m.
Chrome on Android does not convert it. We traced the value through Chromium’s source as published in September 2026: LocationProviderAdapter.java passes location.getAccuracy() to native code, location_api_adapter_android.cc copies it into the position’s accuracy field unchanged, and Blink’s geolocation.cc hands that field to the GeolocationCoordinates object the page reads. So in Chrome on Android, coords.accuracy is Android’s 68% figure under a name the specification defines as 95%. We have not checked other browsers. If you need a true 95% radius from Chrome on Android, multiply by 1.62 (circular error assumed); if an app and a web page on the same phone show the same accuracy, this is why.
HDOP to metres
Dilution of precision is the factor by which the geometry of the satellites in view multiplies range error into position error. Van Diggelen defines HDOP as the ratio of horizontal rms to the rms of the range-measurement errors, and the GPS Standard Positioning Service Performance Standard (SPS PS, 5th edition, April 2020) writes the same thing as its equation B-2:
The SPS PS attaches conditions: every pseudorange error zero-mean, normally distributed and of the same size, so that a single DOP applies. The practical question is what range error to use. GPS.gov states the government’s commitment as a global average user range error of 2.0 m or better at 95%, observed at 0.643 m on 20 April 2021, and adds straight away that URE is not user accuracy. That figure is the signal from space alone. The receiver adds the ionosphere, the troposphere, its own noise and multipath.
The SPS PS gives one worked total for a modern single-frequency receiver: 1.0 m one-sigma from the signal in space, 2.3 m from the receiver, and 2.5 m from the ionospheric model under benign mid-latitude conditions, a total of 3.6 m one-sigma (7.0 m at 95%). That is the calculator’s default. The same document’s illustrative single-frequency budget (Table A.4-2) allows 9.8 to 19.6 m at 95% for the ionospheric model error alone, the range its Appendix A gives for benign to disturbed conditions, and Appendix A adds that the error can reach 100 m or more in some solar conditions. When the ionosphere is active, enter a larger range error.
The standard’s accuracy table (Table 3.8-3) gives 8 m horizontal and 13 m vertical at 95% as global averages, and its section B.3.5 shows the arithmetic, for the signal in space alone: 3.6 m RMS × HDOP 1.1 × 2 = 7.92 m, published as 8 m. That 3.6 m is not the receiver total above. It is the standard’s signal-in-space range error, 7.0 m at 95% (Table 3.4-1), expressed as RMS, and the two happen to be equal. The standard calls the 2 one of its “traditionally rounded-up” statistical conversion factors, and this page shows exactly what it rounds: 2 × DRMS is 2DRMS, which holds 98.2% of a circular error. The exact 95% circle for the same 3.96 m DRMS is 1.7308 × 3.96 = 6.85 m, so for circular error the factor of 2 overstates the 95% radius by 16%. Where the same standard derives receiver figures (its equation B-9) it uses 1.73 for the horizontal 95% radius, the circular factor. The vertical figure works the same way: 3.6 × VDOP 1.8 × 2 = 12.96 m, published as 13 m, against an exact 95% of 1.96 × 6.48 = 12.70 m.
Checked against the published numbers
| Source | Case | Published | This page |
|---|---|---|---|
| NovAtel APN-029, example 2 | 1.8 m CEP as 2DRMS | 4.32 m | 4.324 m |
| van Diggelen 2007 | 5.1 m at 95% as CEP | 2.4 m | 2.453 m |
| Wikipedia, circular error probable | 1.25 m DRMS as R95 | 2.16 m | 2.164 m |
| SPS PS 2020, B.3.5 | URE 3.6 m RMS, HDOP 1.1, × 2 | 8 m | 7.92 m |
| NovAtel APN-029, example 1 | σ 1.3 and 1.5 m: CEP | 1.65 m | 1.647 m |
| NovAtel APN-029, example 1 | same: DRMS / 2DRMS | 1.98 / 3.96 m | 1.985 / 3.970 m |
Van Diggelen writes 0.48 × 5.1 and rounds to 2.4. NovAtel’s CEP of 1.65 m comes from an approximate formula; the exact integral this page uses gives 1.647 m, so the approximation holds to about a millimetre here. Its 2DRMS of 3.96 m is its rounded DRMS doubled. The same NovAtel example prints 3DRMS as 5.85 m, where three times its own 1.98 m is 5.94 m.
Both printed conversion tables were also checked cell by cell against the formula. Van Diggelen’s two-decimal Table 1 differs from the exact value in 8 of its 42 off-diagonal cells, each by less than 1.2%; its horizontal-rms row gives 1.74 for the 95% circle where the exact factor is 1.731, and 1.99 for the 98% circle where it is 1.978. The Wikipedia matrix matches in 35 of its 36 cells to the three figures it prints; CEP to R99.7 is printed 2.90 where the formula gives 2.895. The calculator uses the formula, not either table.
Against a real receiver
A formula that reproduces a table only proves the arithmetic. Van Diggelen also tested the model against three hours of fixes, about ten thousand, from a receiver in autonomous mode, with a measured horizontal rms of 2.46 m. Predicting each radius from that one number:
| Measure | Predicted from 2.46 m rms | Measured | Difference |
|---|---|---|---|
| CEP | 2.05 m | 2.11 m | −2.9% |
| 67% circle | 2.59 m | 2.62 m | −1.1% |
| 68% circle | 2.63 m | 2.65 m | −0.9% |
| 95% circle | 4.26 m | 4.15 m | +2.6% |
| 98% circle | 4.87 m | 4.74 m | +2.7% |
Within 3%, as he reports, although that data was noticeably elliptical: 2.1 m rms north against 1.2 m east.
When the error is not a circle
Van Diggelen notes that with fewer satellites in view the error becomes more elliptical, and that high ellipticity always comes with a large HDOP. For an ellipse there is no closed form for the CEP. Integrating the two-axis normal density over the distance first, which can be done exactly, leaves one integral over direction:
The calculator evaluates it with the midpoint rule, which converges very quickly for a smooth periodic integrand like this one, and solves for each radius by Newton’s method, falling back to bisection if a step overshoots. Checked against a separate calculation that integrates across the ellipse instead of around it, the radii agree to better than one part in a billion. The shape changes every ratio in the circular table:
| σb ÷ σa | DRMS contains | 2DRMS contains | CEP ÷ DRMS | R95 ÷ DRMS |
|---|---|---|---|---|
| 1 (circle) | 63.2% | 98.2% | 0.833 | 1.731 |
| 0.5 | 66.3% | 97.0% | 0.779 | 1.821 |
| 0.2 | 68.2% | 95.8% | 0.692 | 1.932 |
| approaching 0 (a line) | 68.3% | 95.4% | 0.674 | 1.960 |
Two consequences. Starting from DRMS, the circular table gives a strongly stretched error a 95% radius up to 12% too small and a CEP up to 23% too large. And 2DRMS never contains less than 95.4%, whatever the shape, which makes “twice DRMS”, the SPS PS’s factor of 2, a safe 95% figure every time.
Where the model stops
- Bias. Every radius here is measured from the true position. NovAtel’s note separates accuracy, the closeness of an estimate to the true value, from precision, the closeness of observations to their own mean. Measure the scatter of your fixes about their average and you have precision; a receiver can be tight and consistently wrong. Van Diggelen’s advice for a data set with a persistent bias is to compute errors from the mean position before using the table, which is then a statement about precision.
- Time. GPS errors are correlated in time. Van Diggelen describes a stationary receiver’s position wandering one way, staying, then wandering somewhere else, and notes that the Kalman filter most receivers use makes the correlation stronger. A few minutes of fixes from one spot sample a small corner of the distribution; his check used three hours.
- The tails. From 100 fixes, a measured 98% radius depends only on the worst few. He suggests predicting the extreme percentiles from CEP or horizontal rms with the table instead of reading them off a small sample.
- Cities. Signals reflected off buildings are not a zero-mean normal error. In van Diggelen and Enge’s 2015 smartphone study, urban accuracy tracked building height closely.
- A reported accuracy is an estimate. Android calls its figure the estimated accuracy radius: what the location provider believes its 68% circle is, not a measurement against the truth. A conversion is only as good as that estimate.
- A number without a statistic cannot be converted. GPS.gov says smartphones are typically accurate to within a 4.9 m radius under open sky, citing van Diggelen and Enge’s study, whose abstract calls 4.9 m the measured mean accuracy of over a thousand participants and does not say which statistic that mean describes. Without that, no table on this page can turn it into a CEP or a 95% radius.
Accuracy in a test location
An app that filters fixes by accuracy — ignore anything worse than 20 m, wait for 10 m before starting a run — has to be tested with an accuracy that changes, and its thresholds have to be read the way Android defines the field. A requirement written as “95% of fixes within 10 m” is an Android accuracy of 6.2 m (10 × 0.6167), assuming circular error.
GPS Spoofer, our Android location app, gives the fixes it sends on the gps provider an accuracy that starts near 19 m, settles to a few metres and degrades briefly now and then, and it writes HDOP, VDOP and PDOP into each of those fixes from the same signal model, so accuracy and HDOP rise and fall together. The accuracy is a modelled number: the position gets a jitter of well under a metre, not a scatter the size of the accuracy it reports. The Full edition is sold on this site; the Google Play edition is not yet released. How a test position reaches an app is covered in testing a location-dependent Android app, and geofence radius against accuracy in simulating movement for geofence and route testing.
Sources
- Frank van Diggelen, “GNSS Accuracy: Lies, Damn Lies, and Statistics”, GPS World, January 2007 (archived copy) — Table 1 conversion factors, the chi-squared derivation, Table 3 measured data, the HDOP definition, time correlation, ellipticity, and the CEP reading of an unlabelled specification.
- NovAtel, APN-029 Rev 1, “GPS Position Accuracy Measures”, December 2003 — DRMS, 2DRMS, CEP and R95 definitions, examples 1 and 2, accuracy against precision.
- Android developer reference,
android.location.Location—getAccuracy()andgetVerticalAccuracyMeters()at the 68th percentile. - W3C, Geolocation, Candidate Recommendation Snapshot, 26 March 2026 —
accuracyandaltitudeAccuracyat the 95% confidence level. - Chromium source:
LocationProviderAdapter.java,location_api_adapter_android.cc,geolocation.cc— the accuracy value passed through unchanged. - GPS Standard Positioning Service Performance Standard, 5th edition, April 2020 — Table 3.4-1, Table 3.8-3, Table A.4-2 and section A.4.9, equations B-1, B-2 and B-9, the 1.96 conversion (B.2.3.1), the modern receiver UERE (B.3.3.4) and the 8 m and 13 m arithmetic (B.3.5).
- GPS.gov, GPS Accuracy — the 2.0 m URE commitment, the 0.643 m observation, and the 4.9 m smartphone figure.
- van Diggelen and Enge, “The World’s first GPS MOOC and Worldwide Laboratory using Smartphones”, ION GNSS+ 2015 (abstract) — the 4.9 m measured mean and the building-height correlation.
- Wikipedia, “Circular error probable” — the quantile formula, the six-measure conversion matrix and the 1.25 m example. The article carries an original-research warning, which is one reason every number from it was recomputed here.