What Is a TLE? Two-Line Elements, Explained

Every satellite position WatchSat draws starts as two lines of fixed-width text, in a format inherited from 1960s punch cards. Here’s what a Two-Line Element set encodes, who publishes them, and why the numbers only make sense inside one specific model: SGP4.

By the WatchSat team · Reviewed August 29, 2026 · Sources: CelesTrak, Space-Track.org

A whole orbit in 138 characters

A Two-Line Element set — TLE — is a snapshot of one object’s orbit at one stated instant, called the epoch. Each of its two lines is exactly 69 characters, every field living in fixed columns, because the format was designed for punch cards and has outlived them by half a century. Into those 138 characters go the six classical orbital elements — inclination, right ascension of the ascending node (RAAN), eccentricity, argument of perigee, mean anomaly, and mean motion — plus the epoch itself, a drag term, and the bookkeeping: catalog number, launch designator, an element-set counter, the orbit count, and a checksum on each line.

A real ISS element set, decoded

Here is the ISS, verbatim from the catalog snapshot bundled with WatchSat, with an epoch of July 15, 2026:

ISS (ZARYA)
1 25544U 98067A   26196.76640667  .00004078  00000+0  82095-4 0  9992
2 25544  51.6311 158.6576 0006718 300.0875  59.9447 15.49019038576187

Line 1 is identity, time, and drag:

Line 2 is the orbit itself:

The checksum at the end of each line

To validate a line, add up every digit it contains, count each minus sign as 1, ignore letters, periods, plus signs, and spaces, and keep the last digit of the sum — it must equal character 69. It is a mod-10 check from the punch-card and teletype era, built to catch a single mangled character, and it still earns its keep: WatchSat verifies both checksums on every line pair it downloads and drops anything that fails, rather than parse a corrupted orbit.

Who publishes TLEs

The observations come from the US Space Surveillance Network — radars and telescopes around the planet — and are fitted into element sets by the US Space Force’s 18th Space Defense Squadron, typically one to several times per day for each active object. The official distribution point is Space-Track.org (free, registration required). Most trackers, WatchSat included, fetch them from CelesTrak, which has redistributed and curated orbital data since the 1980s and maintains ready-made groups such as the roughly 16,000-object “active” catalog.

Why a TLE only makes sense with SGP4

Here is the part most explanations skip. The numbers in a TLE look like textbook Keplerian values, but they are not the satellite’s true instantaneous (“osculating”) elements — they are mean elements, statistically fitted so that one specific analytic model, SGP4, reproduces the tracking observations. Feed them into a plain two-body Kepler propagator, or even a far more sophisticated numerical integrator, and your positions get worse, not better. The data and the algorithm are a matched pair.

SGP4 — Simplified General Perturbations 4 — is a compact 1970s-vintage theory that models the perturbations that matter most: the steady westward drift of the orbital plane caused by Earth’s equatorial bulge (about 5° per day for the ISS) and atmospheric drag via the B* term. For orbits with periods of 225 minutes or more, its deep-space companion SDP4 adds lunar and solar gravity and resonance effects; modern libraries bundle both behind one interface. Propagated this way, a fresh low-Earth-orbit element set is good to roughly a kilometre, with errors growing by one to a few kilometres per day.

Why TLEs go stale

Two things kill them. The first is drag: air density at 400 km swings enormously with solar activity, so the fitted drag term is only ever a recent average — a geomagnetic storm in February 2022 famously dragged 38 freshly launched Starlink satellites back into the atmosphere within days. The second is maneuvering: the moment the ISS reboosts, or a Starlink nudges itself along on its ion thruster, the old fit describes an orbit the satellite is no longer in. Fresh element sets are kilometre-accurate; after days to weeks they can be off by tens of kilometres or more. That is why the catalog republishes daily and why WatchSat displays the age of its data.

What WatchSat does with them

WatchSat fetches CelesTrak’s active catalog through an edge-cached proxy (the cache holds responses for about 30 minutes) roughly every 2 hours while the tab is open, checksum-verifies every line pair, and hands the survivors to SGP4 — the open-source satellite.js implementation — running in a background worker thread. The worker returns exact position and velocity samples and the GPU interpolates between them, which is how thousands of orbits stay smooth even at high time-warp. A bundled snapshot, the same file the example above was taken from, means the globe works instantly on first load. You can see the end product any time: the ISS, live.

Keep reading