---
title: Relativity and the Global Positioning System
module: Tests of General Relativity
moduleNumber: 7
lessonNumber: 4
order: 704
summary: >
  A GPS satellite clock runs slow by 7 microseconds a day from its orbital speed
  and fast by 46 from its higher gravitational potential, a net gain of about 38
  microseconds a day. Left uncorrected, the timing error would grow into kilometres
  of position error within a day and exceed navigation tolerance within minutes.
  The satellites carry a pre-launch frequency offset to cancel it.
topics: [Tests of General Relativity]
draft: false
sources:
  - book: Hartle
    ref: "Gravity, Ch. 6 — Gravity as Geometry (worked GPS example, §6.4)"
  - book: Ashby
    ref: "Relativity in the Global Positioning System, Living Rev. Relativity 6, 1 (2003), https://doi.org/10.12942/lrr-2003-1"
---

Satellite navigation is the one place where general relativity is an engineering
requirement rather than a laboratory curiosity. A GPS receiver fixes its position
by timing signals from several satellites and multiplying light-travel times by
$c$; a timing error of $\delta t$ becomes a position error of $c\,\delta t$, so
$10\ \text{nanoseconds}$ of clock error is about $3\ \text{metres}$ on the ground.
The satellite clocks experience two relativistic rate shifts relative to a clock on
the Earth's surface, and the two act in opposite directions: special-relativistic
time dilation from the satellite's speed slows it down, and the
general-relativistic redshift from its higher position in the Earth's potential
speeds it up. The gravitational effect wins, leaving a net gain of about $38\
\mu\text{s}$ per day. That is enormous by navigation standards, and the system is
built to remove it.

The two shifts come straight from the results of the previous lessons: the moving
clock from special-relativistic time dilation, and the higher clock from the
[gravitational redshift](/relativity/tests-of-general-relativity/gravitational-redshift-and-shapiro-delay).
The signature is $(-,+,+,+)$.

## The two clock shifts

A GPS satellite orbits at radius $r = 2.656\times10^{7}\ \text{m}$ (about
$20{,}200\ \text{km}$ altitude), with orbital speed

$$
v = \sqrt{\frac{GM_\oplus}{r}}
  = \sqrt{\frac{3.986\times10^{14}}{2.656\times10^{7}}}
  = 3.87\times10^{3}\ \text{m/s} .
$$

Compare its clock to one at rest on the Earth's surface at $R_\oplus =
6.371\times10^{6}\ \text{m}$. To first order in $v^2/c^2$ and $GM/(c^2 r)$, the
fractional rate of a clock combines the two effects:

$$
\frac{\Delta\tau}{\Delta t} \approx 1 - \frac{v^2}{2c^2} + \frac{\Phi}{c^2},
$$

the $-v^2/2c^2$ from motion and the $+\Phi/c^2$ from gravitational potential
$\Phi = -GM_\oplus/r$. Taking the difference between satellite and ground clock
gives the fractional rate offset

$$
\frac{\Delta\dot\tau}{\dot\tau}
= \underbrace{-\frac{v^2}{2c^2}}_{\text{speed (SR)}}
  \;+\;
  \underbrace{\frac{GM_\oplus}{c^2}\!\left(\frac{1}{R_\oplus} - \frac{1}{r}\right)}_{\text{potential (GR)}} .
$$

The two terms carry opposite signs and are evaluated separately below. The Earth's
rotation adds the ground clock's own small speed; keeping only the leading terms,
the two dominant contributions are the following.

- **Special relativity (speed).** The satellite moves, so its clock runs slow:
  $$
  -\frac{v^2}{2c^2}
  = -\frac{(3.87\times10^3)^2}{2(3.00\times10^8)^2}
  = -8.35\times10^{-11}.
  $$
  Over one day ($86{,}400\ \text{s}$) this is $-7.2\ \mu\text{s}$: the moving clock
  loses about seven microseconds a day.

- **General relativity (potential).** The satellite sits higher in the well, so
  its clock runs fast. With $GM_\oplus/c^2 = 4.435\times10^{-3}\ \text{m}$,
  $$
  \frac{GM_\oplus}{c^2}\!\left(\frac{1}{R_\oplus} - \frac{1}{r}\right)
  = (4.435\times10^{-3})\bigl(1.570\times10^{-7} - 3.765\times10^{-8}\bigr)
  = +5.29\times10^{-10}.
  $$
  Over one day this is $+45.7\ \mu\text{s}$: the higher clock gains about
  forty-six microseconds a day.

The gravitational speedup is roughly six times the special-relativistic slowdown,
so it dominates. The net rate offset is

$$
\frac{\Delta\dot\tau}{\dot\tau}
= -8.35\times10^{-11} + 5.29\times10^{-10}
= +4.46\times10^{-10},
$$

a net gain of $38.5\ \mu\text{s}$ per day. The satellite clock, left alone, runs
fast by about $38\ \mu\text{s}$ each day relative to the ground.

> **Result.** For a GPS satellite the special-relativistic (speed) and
> general-relativistic (potential) rate shifts are $-7.2\ \mu\text{s}$ and
> $+45.7\ \mu\text{s}$ per day. Their sum, $+38\ \mu\text{s}$ per day, is the net
> rate at which an uncorrected satellite clock outruns a ground clock. At the
> altitude where $\tfrac{1}{2}v^2 = GM(1/R_\oplus - 1/r)$ the two would cancel; GPS
> orbits well above it, in the regime where gravity dominates.

$$
% caption: The two relativistic shifts on the satellite clock point in opposite
% directions: the orbital speed slows it (special relativity) and its higher
% potential speeds it up (general relativity). The gravitational term is the
% larger, leaving a net speedup shown at right.
\begin{tikzpicture}[>=stealth, font=\footnotesize, scale=1.0]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[black] (0,0) -- (6.4,0);
  \node[black, left] at (0,0) {ground rate};
  % GR up arrow (long)
  \draw[->, black, very thick] (1.3,0) -- (1.3,3.0);
  \node[black, above] at (1.3,3.05) {GR faster};
  \node[black, right] at (1.35,1.5) {$+46$};
  % SR down arrow (short)
  \draw[->, black, very thick] (3.3,0) -- (3.3,-1.4);
  \node[black, below] at (3.3,-1.45) {SR slower};
  \node[black, right] at (3.35,-0.7) {$7$};
  % net up arrow
  \draw[->, acc, very thick] (5.3,0) -- (5.3,2.5);
  \node[acc, above] at (5.3,2.55) {net faster};
  \node[acc, right] at (5.35,1.25) {$38$};
\end{tikzpicture}
$$

## Why the correction is not optional

A drift of $38\ \mu\text{s}$ per day is $3.85\times10^{-5}\ \text{s}$ of clock
error accumulated in $86{,}400\ \text{s}$, a fractional rate of $4.46\times
10^{-10}$. Multiplied by $c$, the ranging error grows at

$$
c\,\frac{\Delta\dot\tau}{\dot\tau}
= (3.00\times10^8)(4.46\times10^{-10})
= 0.134\ \text{m/s}
= 8.0\ \text{m/min}.
$$

The navigation tolerance is a few metres, so the error crosses it in well under a
minute; over a full day it reaches

$$
c \times 38.5\ \mu\text{s} = (3.00\times10^8)(3.85\times10^{-5})
= 1.15\times10^{4}\ \text{m} \approx 11\ \text{km}.
$$

An uncorrected system would be useless within minutes and wrong by kilometres
within a day.

$$
% caption: Without the relativistic correction the ranging error grows linearly at
% about eight metres per minute; it passes the few-metre navigation tolerance in
% under a minute and reaches kilometres over a day.
\begin{tikzpicture}[>=stealth, font=\footnotesize, scale=1.0]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (0,0) -- (0,3.7) node[above] {position error (m)};
  \draw[->, black] (0,0) -- (5.8,0) node[right] {time (min)};
  % linear ramp: 8 m/min ; scale y: 8 m -> 0.6 ; plot to 40 m over 5 min
  \draw[acc, very thick] (0,0) -- (5.4,{5.4*8*3.4/48});
  \foreach \x in {1,2,3,4,5} \draw[black] (\x,0.05)--(\x,-0.05) node[below]{\x};
  % tolerance line at 3 m
  \draw[black, densely dotted] (0,{3*3.4/48}) -- (5.4,{3*3.4/48});
  \node[black, right] at (3.4,{3*3.4/48+0.16}) {navigation tolerance};
  % marker where crossed (~0.4 min)
  \fill ({3/8},{3*3.4/48}) circle (1.6pt);
  \node[above left] at ({3/8},{3*3.4/48}) {crossed};
\end{tikzpicture}
$$

$$
% caption: Cross-section of a satellite orbit: the ground clock sits deep in the
% Earth's potential and moves slowly, the satellite clock sits higher and moves
% fast. The higher clock runs fast overall.
\begin{tikzpicture}[>=stealth, font=\footnotesize, scale=1.0]
  \definecolor{acc}{HTML}{4A6FA5}
  % Earth
  \draw (0,0) circle (0.9);
  \node at (0,0) {Earth};
  % orbit
  \draw[black] (0,0) circle (2.6);
  % satellite
  \fill[acc] (35:2.6) circle (2.4pt);
  \node[acc, right] at (35:2.75) {satellite clock};
  \node[black, right] at (35:2.75) {};
  \node[acc] at (35:2.05) {fast};
  % ground clock
  \fill[black!75] (0,-0.9) circle (1.8pt);
  \node[black!70, below] at (0,-1.05) {ground clock};
  \node[black, above] at (0.0,-0.8) {slow};
  % radius marker
  \draw[<->, black] (0,0) -- (35:2.6);
  \node[black, above] at (35:1.35) {higher potential};
\end{tikzpicture}
$$

## The built-in offset

The correction is applied before launch. A satellite clock nominally at
$10.23\ \text{MHz}$ is set instead to a slightly lower frequency, offset by the
fractional amount $-4.465\times10^{-10}$, i.e. to about $10.229\,999\,995\,4\
\text{MHz}$. On orbit, where the clock runs fast by that same fraction, it then
ticks at the ground rate, and the timing solution stays consistent to the
nanosecond. The offset is fixed, not adjusted in flight, because the dominant rate
shift is constant for a circular orbit.

Two smaller relativistic effects remain and are handled in the receiver software.

- **Orbital eccentricity.** A real orbit is slightly elliptical, so the satellite's
  speed and potential vary around it and the net rate is not perfectly constant. The
  residual is a periodic term the receiver corrects using the satellite's position;
  for typical GPS eccentricity it reaches tens of nanoseconds.
- **The Sagnac effect.** The Earth rotates during the signal's travel time, so the
  receiver has moved by the time the signal arrives. This rotation-of-frame
  correction is applied when the light-travel times are converted to a position in
  the Earth-fixed frame.

$$
% caption: Accumulating the two shifts as a waterfall: starting from the ground
% rate the gravitational term adds forty-six microseconds a day, the speed term
% removes seven, leaving a net thirty-eight-microsecond daily gain that the
% pre-launch offset cancels.
\begin{tikzpicture}[>=stealth, font=\footnotesize, scale=1.0]
  \definecolor{acc}{HTML}{4A6FA5}
  \draw[->, black] (0,0) -- (0,3.6) node[above] {microseconds / day};
  \draw[black] (-0.1,0) -- (5.6,0);
  % scale: 46 -> 3.0  => k = 3.0/46
  % GR bar up to 46
  \draw[black] (0.5,0) rectangle (1.5,3.0);
  \node[black!70, above] at (1.0,3.05) {$+46$};
  \node[black!70, below] at (1.0,-0.05) {GR};
  % SR bar drops from 46 to 39 (remove 7): draw the removed slab near top
  \draw[black] (2.2,{39*3.0/46}) rectangle (3.2,{46*3.0/46});
  \node[black!70, above] at (2.7,{46*3.0/46+0.05}) {$7$};
  \node[black!70, below] at (2.7,-0.05) {SR};
  % net bar to 38.5
  \fill[acc, draw=black] (3.9,0) rectangle (4.9,{38.5*3.0/46});
  \node[acc, above] at (4.4,{38.5*3.0/46+0.05}) {$38$};
  \node[black!70, below] at (4.4,-0.05) {net};
  % connecting guide line at 46 and 39
  \draw[black, densely dotted] (1.5,3.0) -- (2.2,3.0);
  \draw[black, densely dotted] (3.2,{39*3.0/46}) -- (3.9,{39*3.0/46});
\end{tikzpicture}
$$

The relativistic terms in GPS are not corrections to a Newtonian design; they are
the design. The system keeps time to the nanosecond across a fleet of clocks
moving at kilometres per second and spread through a potential well, and it works
because the metric's time component was accounted for at the level of parts in
$10^{10}$. Every position fix a receiver reports is a continuous confirmation of the
gravitational redshift.[^hartle][^ashby]

[^hartle]: Hartle, _Gravity: An Introduction to Einstein's General Relativity_,
§6.4 (a worked example of the relativistic corrections to the Global Positioning
System).
[^ashby]: Ashby, "Relativity in the Global Positioning System," _Living Reviews in
Relativity_ **6**, 1 (2003), <https://doi.org/10.12942/lrr-2003-1>.
