Live tracker

Once a day a small job asks CelesTrak five questions and writes down the answers as numbers and yes/no. Nothing you do on this page contacts CelesTrak.

Daily counts from five CelesTrak endpoints and a weekly hash check of the corpus’s 22 stable sources, computed by a scheduled job and served as static JSON. Derived measurements only: no element values are stored or shown.

Last successful check: 2026-09-21 05:51 UTC. 9 requests, 0 errors.

Current values

Highest satellite number among recent launchesHighest catalog number, last-30-days CSV

100,789

2026-09-21 05:51 UTC

Recent satellites with six-digit numbersSix-digit objects in that group

231 of 231

2026-09-21 05:51 UTC

The same list in the old formatlast-30-days TLE request

404

“not found”: none of them fit the old formatNo GP data found · 2026-09-21 05:51 UTC

Unidentified objects: new format vs oldAnalyst group, CSV vs TLE record count

594 vs 219

375 have six-digit numbers and are missing from the old format375 six-digit, 219 below 100000 · 2026-09-21 05:51 UTC

Nine-digit numbers in Starlink launch dataNine-digit ids in the Starlink SupGP feed

yes (27)

2026-09-21 05:51 UTC

Did the “first ever” records change?gp-first stable-source drift (weekly)

match

4 match · 0 drift · 18 not yet checked of 22 · 2026-09-21 05:52 UTC

Count relations at the last run: TLE records = CSV records below 100000 for last-30-days: yes; for analyst: yes.

History

One point per day. The first point, marked in amber, comes from the test kit’s own data collection on 21 September 2026.

One entry per day from /data/tracker/history.json; the seed entry (amber) is the corpus’s Phase 2 fetch of 2026-09-21. Each chart has a data table for screen readers and for scripts-off browsing.

Highest catalog number in the last-30-days group
Loading…
Six-digit objects in the last-30-days group
Loading…
last-30-days TLE request: 404 (red) or data returned (green)
Loading…
Analyst objects in CSV
Loading…
Analyst objects in TLE
Loading…
Nine-digit ids in the Starlink SupGP feed
Loading…
Nine-digit ids present (green) or not (red)
Loading…

Stable-source drift

The test kit’s frozen answers rest on CelesTrak’s “first ever record” pages staying the same. Each week the job re-reads them and compares fingerprints. “Match” means unchanged.

The corpus assumes gp-first.php is stable (ambiguity gp-first-stability). The job re-fetches each of the 22 stable-tier sources once every 7 days, at most 4 per day so the daily budget stays under 10 requests, and compares the SHA-256 with the manifest of v0.1.0. Two of the sources are the 16-byte No GP data found body of a TLE request for a six-digit object; a match there means the 404 semantics are unchanged.

22 stable sources
sourcecaselast checkedresult
gp-first-25544-TLEepoch-year-19xxnot yet checked
gp-first-25544-2LEepoch-year-19xxnot yet checked
gp-first-25544-CSVepoch-year-19xxnot yet checked
gp-first-25544-JSONepoch-year-19xxnot yet checked
gp-first-25544-JSON-PRETTYepoch-year-19xxnot yet checked
gp-first-25544-XMLepoch-year-19xxnot yet checked
gp-first-25544-KVNepoch-year-19xxnot yet checked
gp-first-100000-TLEsix-digit-omm-saramago2026-09-21 05:52 UTCmatch
gp-first-100000-CSVsix-digit-omm-saramago2026-09-21 05:51 UTCmatch
gp-first-100000-JSONsix-digit-omm-saramago2026-09-21 05:51 UTCmatch
gp-first-100000-XMLsix-digit-omm-saramagonot yet checked
gp-first-100000-KVNsix-digit-omm-saramago2026-09-21 05:51 UTCmatch
gp-first-270449-TLEanalyst-objectsnot yet checked
gp-first-270449-CSVanalyst-objectsnot yet checked
gp-first-270449-JSONanalyst-objectsnot yet checked
gp-first-270449-XMLanalyst-objectsnot yet checked
gp-first-270449-KVNanalyst-objectsnot yet checked
gp-first-81011-TLEanalyst-objectsnot yet checked
gp-first-81011-CSVanalyst-objectsnot yet checked
gp-first-81011-JSONanalyst-objectsnot yet checked
gp-first-69999-TLEbstar-and-derivative-formsnot yet checked
gp-first-69999-CSVbstar-and-derivative-formsnot yet checked

How the tracker works

  • A scheduled job runs once a day on GitHub’s servers, not in your browser.
  • It asks CelesTrak for five pages, each once, and never more than ten a day including the weekly checks. It identifies itself by name and by this site’s address.
  • It keeps only counts, yes/no answers, times and fingerprints, then saves them as small files that this page reads.
  • If CelesTrak does not answer, the job records that and this page shows the last good values with their dates.
  • Endpoints, once per run: /NORAD/elements/gp.php?GROUP=last-30-days&FORMAT=CSV; /NORAD/elements/gp.php?GROUP=last-30-days&FORMAT=TLE; /NORAD/elements/gp.php?GROUP=analyst&FORMAT=CSV; /NORAD/elements/gp.php?GROUP=analyst&FORMAT=TLE; /NORAD/elements/supplemental/sup-gp.php?FILE=starlink&FORMAT=CSV. Plus at most 4 gp-first.php drift checks. Hard cap 10 requests per run, one run per day; a repeated URL raises before anything is sent.
  • User-Agent: gpconf-site/0.1 (+https://gpconf.neogy.dev; scheduled tracker, at most 10 requests per day; https://github.com/hneogy/gp-omm-conformance). No redirects followed, no retries, 2 s between requests, a 404 is recorded and never repeated (CelesTrak’s policy: 50 errors in two hours leads to a firewall entry; the job produces at most one expected 404 a day).
  • Stored per source: HTTP status, byte count, SHA-256, timestamp; per measurement: counts and booleans. Raw bodies are not written anywhere in CI. The tests assert that no element value can appear in the outputs.
  • Failure handling: a failed fetch marks that measurement ok: false with the error class; the run is “partial”; latest.json carries the last successful value per measurement with its timestamp; the page shows both.
  • Data files: latest.json, history.json, drift.json (CORS-enabled, cached ten minutes). Job source: jobs/tracker.py in the site repository.