intermediatecore concept~22 min

The GNSS Error Budget

Six ways a pseudorange lies, how big each lie is, and which corrections kill which

Why it matters

You cannot improve what you have not measured. The error budget is the single table that explains why GNSS is accurate to metres and not millimetres, why dual-frequency and precise products exist, why low satellites are trusted less, and what every augmentation technique is actually buying. It is the shared foundation beneath SPP, RTK, and PPP.

Prerequisites

The villains we never introduced

Go back through everything you have read here. Pseudorange warned that the range was contaminated. SPP absorbed a clock error and shrugged at the rest. RTK cancelled errors by differencing; PPP modelled them one by one. Every single lesson has named the same cast — ionosphere, troposphere, satellite clock, orbit, multipath, noise — and then hurried past, as if you already knew how big each one was.

You do not, yet. And that gap matters, because you cannot out-engineer an error you have never sized. So this lesson does the thing every other one postponed: it puts the six villains on a table, in metres, and asks of each — how big, and can we kill it?

The idea, before any mathematics

Here is the whole mindset in one move. A pseudorange is the truth plus a stack of errors. Treat each error as a number with a size, in metres, and sort them by two questions:

  1. Where does it live? In the satellite, in the atmosphere, or in your receiver?
  2. Can something remove it? A correction you compute, a trick with two frequencies, a model — or nothing at all?

Those two questions cleave the cast into three groups. The satellite errors (clock, orbit) are the same for everyone looking at that satellite, so somebody who tracks the whole constellation can compute them once and hand them out — that is what products are. The atmospheric errors (ionosphere, troposphere) depend on the path your signal took, so they yield to physics tricks: the ionosphere bends two frequencies by different amounts and can be cancelled, the troposphere bends both the same and must be modelled. The receiver errors (multipath, thermal noise) are local and personal — no global correction exists, so you fight them with hardware and siting or you live with them.

Most of GNSS error does not live in your device. It lives ninety million metres away in the satellite and twenty kilometres up in the air — which is exactly why a better phone chip barely helps, and a correction stream helps enormously.

There is one more rule, and it is the one everybody gets wrong. These errors are independent, so they do not add up. A two-metre error beside a five-metre error does not make seven metres; it makes about 5.4. Independent errors combine in quadrature — root of the sum of squares — which means the budget is ruthlessly dominated by its biggest term, and polishing a small term is almost wasted effort. Find the giant, and everything else is rounding.

Seeing it

Picture six horizontal bars, one per villain, each as long as its error. One of them — the ionosphere — is a monster, often taller than all the others combined. Now imagine switching on a correction: the relevant bar shrinks, sometimes to a stub, sometimes only halfway. A seventh, bolder bar underneath is the total — but it tracks the quadrature sum, so it barely twitches when you shrink a small bar and lurches when you shrink the giant.

Try it yourself

Every bar is one line of the budget. The faint ghost behind each is the uncorrected size; the solid bar is what survives. Flip the corrections on one at a time and find the giant.

0.0 m2.3 m4.6 m6.8 mSatellite clock2.00 mSatellite orbit2.00 mIonosphere5.00 mTroposphere2.50 mMultipath0.80 mReceiver noise0.30 mUERE (1σ)6.32 mUNCORRECTEDrange error
Satellite orbit + clock
Ionosphere
UERE (1σ)
6.32 m
Horizontal (1σ)
9.48 m

Start with everything off: the ionosphere towers over every other bar and the position error is nearly ten metres — raw, uncorrected GNSS. Now work down the controls. Broadcast products knock the satellite clock and orbit down to the metre level for free; precise products flatten them almost to nothing. Switch the ionosphere to a model and its bar halves; switch to iono-free and it nearly vanishes — but watch the receiver-noise bar grow, the price dual-frequency pays. The troposphere model takes most of what is left. Two bars refuse to disappear no matter what you do: multipath and receiver noise — the irreducible floor you can only fight with better antennas and geometry. Finally drag the satellite toward the horizon: the propagation bars swell as the signal slices through more atmosphere, which is exactly why receivers trust high satellites more. Every earlier lesson — SPP, RTK, PPP — was just a different strategy for shrinking these same six bars.

Turn everything off first: the ionosphere dwarfs the field and your position error is nearly ten metres — that is raw GNSS, and it is the number your first handheld receiver lived with. Switch satellite products to broadcast and the clock and orbit bars drop to the metre level for free; precise flattens them to slivers. Set the ionosphere to model and it halves; set it to iono-free and it nearly vanishes — but watch the receiver-noise bar grow, because the dual-frequency trick amplifies noise even as it deletes the ionosphere. The troposphere model mops up most of what remains. Then try to kill multipath and receiver noise: you cannot, you can only turn them down. Finally drag the satellite toward the horizon and watch the atmospheric and multipath bars swell — the physical reason every receiver trusts a satellite overhead more than one skimming the treeline.

Now the mathematics

Write the pseudorange from receiver rr to satellite ss as the truth plus a sum of errors:

Prs=ρrs+c δts+ϵorb+Irs+Trs+Mrs+νP_r^s = \rho_r^s + c\,\delta t^s + \epsilon_{\text{orb}} + I_r^s + T_r^s + M_r^s + \nu

with geometric range ρ\rho, satellite clock c δtsc\,\delta t^s, orbit (ephemeris) error ϵorb\epsilon_{\text{orb}}, ionosphere II, troposphere TT, multipath MM, and receiver noise ν\nu. Each term has a characteristic 1-sigma magnitude — a typical size, in metres. Roughly, at a high elevation and before corrections:

σiono≈5,σclk≈σorb≈2,σtropo≈2.5,σmp≈0.8,σν≈0.3 m\sigma_{\text{iono}} \approx 5,\quad \sigma_{\text{clk}} \approx \sigma_{\text{orb}} \approx 2,\quad \sigma_{\text{tropo}} \approx 2.5,\quad \sigma_{\text{mp}} \approx 0.8,\quad \sigma_{\nu} \approx 0.3 \ \text{m}

Because the sources are statistically independent, their combined effect on one range is the quadrature sum, the User-Equivalent Range Error:

σUERE=σclk2+σorb2+σiono2+σtropo2+σmp2+σν2\sigma_{\text{UERE}} = \sqrt{\sigma_{\text{clk}}^2 + \sigma_{\text{orb}}^2 + \sigma_{\text{iono}}^2 + \sigma_{\text{tropo}}^2 + \sigma_{\text{mp}}^2 + \sigma_{\nu}^2}

Quadrature is the whole reason strategy matters. With the numbers above the UERE is about 6.36.3 m, and the ionosphere alone contributes 55 of it — so removing the ionosphere is worth more than perfecting everything else put together. That single fact is why dual-frequency receivers exist.

The atmospheric and multipath terms are not constant: they scale with the slant through the atmosphere, roughly as 1/sin⁡(elevation)1/\sin(\text{elevation}), so a satellite at 10∘10^\circ suffers a few times the delay of one at the zenith. And the UERE is only half the story — it is a range error. The jump to a position error is the geometry factor from dilution of precision:

σpos≈DOP×σUERE\sigma_{\text{pos}} \approx \text{DOP} \times \sigma_{\text{UERE}}

Good geometry (DOP near 1) passes the UERE through almost untouched; poor geometry multiplies it. Your position error is the product of how wrong each range is and how well the satellites are arranged — two independent battles, fought with different weapons.

How this appears in engineering

This table is not an academic exercise; it is the design document for every augmentation ever built. SBAS (WAAS, EGNOS) broadcasts wide-area corrections for the satellite and ionosphere terms. DGNSS and RTK difference against a reference station to cancel the spatially correlated lines — satellite clock/orbit and, over short baselines, the atmosphere — which is why RTK's error grows with baseline as those lines decorrelate. PPP instead models each line explicitly using precise products. Even receiver design is budget-driven: carrier smoothing beats down the noise and multipath terms, choke-ring antennas attack multipath, and an elevation mask simply refuses the low satellites whose bars have swollen out of control.

Reading the budget also tells you where you are wasting money. Chasing a millimetre receiver clock while the ionosphere stands at five metres is pouring effort into a term quadrature has already made irrelevant. The engineer's discipline is always the same: find the dominant bar, attack it, then re-read the table — because the moment you shrink the giant, a former runner-up becomes the thing worth fixing next.

Check your understanding

  • A receiver has a 55 m ionosphere error and a 22 m satellite-clock error. You can perfectly remove exactly one. Which gives the larger drop in UERE, and roughly how large is the drop?
  • Your position is wrong by 1212 m while the UERE is only 44 m. Which half of the accuracy equation is to blame, and what would you change to fix it?
  • Explain why switching to the ionosphere-free combination can make the receiver-noise line of the budget worse, even as it nearly deletes the ionosphere line.
  • Two satellites have identical hardware; one sits at 80∘80^\circ elevation, the other at 12∘12^\circ. Which lines of their budgets differ, which are the same, and why?

Where to go next

You now hold the table every other lesson was quietly reading from. Two directions open up. If you want to see these bars attacked, revisit RTK and PPP — they are nothing more than two opposite strategies for shrinking the same six terms. If you want to see how the surviving UERE becomes a cloud of position uncertainty with a shape set by the sky, that is dilution of precision. Everything in precise GNSS is, in the end, a negotiation with this one table.

Common misconceptions

  • A better receiver chip fixes GNSS accuracy. Most of the budget lives in the sky and the atmosphere, not the receiver; the chip only owns the small, irreducible noise term.
  • Errors add up linearly. Independent 1-sigma errors combine in quadrature, so the largest source dominates and shrinking a small one barely moves the total.
  • Modelling can remove every error. Multipath and receiver noise have no global model to subtract; they are fought with antennas, siting, and geometry, never fully removed.

Key takeaways

  • Six sources dominate the pseudorange budget; the ionosphere is usually the largest.
  • Satellite clock/orbit errors are removed by broadcast or precise products.
  • The ionosphere is removed by a dual-frequency combination; the troposphere is modelled.
  • Multipath and receiver noise are irreducible floors, worse at low elevation.
  • Independent residuals add in quadrature to the UERE, which DOP scales into position error.

Continue exploring