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.
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.
| source | case | last checked | result |
|---|---|---|---|
gp-first-25544-TLE | epoch-year-19xx | — | not yet checked |
gp-first-25544-2LE | epoch-year-19xx | — | not yet checked |
gp-first-25544-CSV | epoch-year-19xx | — | not yet checked |
gp-first-25544-JSON | epoch-year-19xx | — | not yet checked |
gp-first-25544-JSON-PRETTY | epoch-year-19xx | — | not yet checked |
gp-first-25544-XML | epoch-year-19xx | — | not yet checked |
gp-first-25544-KVN | epoch-year-19xx | — | not yet checked |
gp-first-100000-TLE | six-digit-omm-saramago | 2026-09-21 05:52 UTC | match |
gp-first-100000-CSV | six-digit-omm-saramago | 2026-09-21 05:51 UTC | match |
gp-first-100000-JSON | six-digit-omm-saramago | 2026-09-21 05:51 UTC | match |
gp-first-100000-XML | six-digit-omm-saramago | — | not yet checked |
gp-first-100000-KVN | six-digit-omm-saramago | 2026-09-21 05:51 UTC | match |
gp-first-270449-TLE | analyst-objects | — | not yet checked |
gp-first-270449-CSV | analyst-objects | — | not yet checked |
gp-first-270449-JSON | analyst-objects | — | not yet checked |
gp-first-270449-XML | analyst-objects | — | not yet checked |
gp-first-270449-KVN | analyst-objects | — | not yet checked |
gp-first-81011-TLE | analyst-objects | — | not yet checked |
gp-first-81011-CSV | analyst-objects | — | not yet checked |
gp-first-81011-JSON | analyst-objects | — | not yet checked |
gp-first-69999-TLE | bstar-and-derivative-forms | — | not yet checked |
gp-first-69999-CSV | bstar-and-derivative-forms | — | not 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 4gp-first.phpdrift 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: falsewith the error class; the run is “partial”;latest.jsoncarries 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.pyin the site repository.