TrackStarlink

TLEs and SGP4: How Satellite Tracking Actually Works

Updated 28 June 2026

When this site shows you STARLINK-32041 crossing over Portugal at 7.61 km/s, we aren't receiving telemetry from SpaceX, and there's no radar in the loop. Everything — the globe, the pass forecasts, the altitude readouts — is computed from a data format older than the personal computer: the two-line element set, or TLE. Understanding it explains both why satellite tracking works so well and why predictions have limits.

Two lines that describe an orbit

A TLE is exactly what it sounds like: two 69-character lines of text that encode everything needed to reconstruct a satellite's orbit — its inclination, its altitude (via mean motion, the number of orbits per day), the shape of the ellipse, where the satellite was at a reference moment called the epoch, and even a term for how atmospheric drag is slowing it down.

The format dates to the punch-card era of NORAD in the 1960s, and it survives because it's compact, universal, and paired with a matching prediction algorithm. The 18th Space Defense Squadron tracks objects with a global radar and telescope network and publishes fresh TLEs several times a day; distributors like CelesTrak make them freely available, which is where our data comes from.

SGP4: the algorithm that brings a TLE to life

A TLE describes an orbit at one instant. To know where the satellite is right now, you run the TLE through SGP4 — Simplified General Perturbations model 4, published in 1970 and refined since. 'Perturbations' is the key word: SGP4 doesn't just draw an ellipse, it models the ways real orbits deviate from ideal ones — chiefly the equatorial bulge of the not-quite-spherical Earth, which slowly rotates orbital planes, plus atmospheric drag and lunisolar effects.

SGP4 is deliberately fast. Your browser runs it on this very site, propagating twelve thousand satellites in real time inside a web worker — a computation that would have been unthinkable for the mainframes the algorithm was designed on.

How accurate is it?

A fresh TLE propagated with SGP4 places a satellite within about a kilometre of its true position — more than enough for visual tracking, since a kilometre at 550 km range is a fraction of a degree in your sky. But the error grows with every day since the TLE's epoch: a few kilometres after a couple of days, potentially hundreds after weeks.

Starlink adds two complications. The satellites maneuver constantly — small thruster burns for station-keeping and collision avoidance — and each burn invalidates the drag history a TLE encodes. And during orbit-raising a satellite's elements change daily. This is why our pipeline refreshes TLEs every few hours and discards any older than two weeks: propagating a stale TLE doesn't produce a slightly-wrong position, it produces confident nonsense, like phantom passes from a satellite that already re-entered.

From TLE to 'look northwest at 21:47'

A pass forecast is TLE + SGP4 + geometry. We propagate every satellite across the coming night in time steps, convert each position to a compass direction and elevation as seen from your city, then apply the visibility tests: satellite above 10° elevation, satellite in sunlight, observer in twilight or darkness. The survivors become the pass table — start time, direction, peak height. Two lines of text, a fifty-year-old algorithm, and some spherical trigonometry: that's the entire stack.