Index/methodology

How the record is made.

OrbitalWiki merges data from several public sources into a single record for each object in orbit. This page explains, in plain English, where the data comes from, how we decide that two records describe the same satellite, and how confident we are in what we publish. If you plan to cite OrbitalWiki, this is the page to read first.

§01Data sources

Each source contributes the things it does best. We never invent missing values: where a field has a supporting claim, the record exposes it; otherwise provenance is shown as unknown.

  • CelesTrak, periodically refreshed orbital elements (the numbers that describe where an object is and how it moves), plus NORAD catalog numbers and object names. This is our backbone for the tracked catalog.
  • GCAT (Jonathan McDowell), a detailed public launch catalog: launch and decay dates, object classification (payload, rocket body, debris), operator, country, and orbital regime.
  • Wikidata, community-maintained facts the orbital and launch catalogs don’t carry: operator details, country of operator, launch mass, and mission purpose.
  • SatNOGS DB, a community-maintained transmitter catalog: downlink and uplink frequencies, bands, modes, and reported transmitter status for the objects amateur operators listen to. Published under CC BY-SA 4.0, so anything you build on this part of the data has to carry the same licence.

OrbitalWiki does not query Space-Track directly. It retrieves published GP data from CelesTrak, whose documentation says it receives and ingests GP data through 18 SDS/Space-Track. See Sources for every source, its license, and its attribution requirements.

§02Ingestion pipeline

Data is refreshed automatically on fixed schedules, not by hand:

  • CelesTrak, fetched every 6 hours by an open-source GitHub Actions workflow. Orbital data changes constantly, so it gets the most frequent refresh.
  • GCAT, downloaded daily at 07:30 UTC. The launch catalog changes slowly.
  • Wikidata, queried via SPARQL weekly, on Sundays, since the fields we pull (operator, mass, purpose) rarely change once set.

The ingestion scripts and the workflow definition are public, so anyone can audit exactly what we fetch and when.

§03Entity resolution

The hard part of a project like this is deciding when two records from two different sources describe the same physical object. We do it in three steps.

Step 1, Deterministic matching

We first join records on the NORAD catalog number, a unique integer assigned by the US Space Surveillance Network that appears in CelesTrak, GCAT, and Wikidata (property P4597). When two records carry the same NORAD number, they are merged automatically. This is exact, not fuzzy, so it carries no ambiguity.

Step 2, Fuzzy matching

For records without a NORAD number (often older GCAT entries or incomplete Wikidata items), we compute a weighted similarity score from name similarity, launch-date proximity, orbital regime, and operator name. Anything below our confidence threshold is held back for manual review rather than merged blindly.

Step 3, Conflict resolution

When two sources disagree on a value, we keep both. The value from the higher-confidence source is shown as the primary value, and the disagreement is flagged visibly on the satellite’s detail page so you can see the alternative yourself.

§04Confidence scores

Every stored value (we call them “claims”) carries one of five confidence levels, CONFIRMED, HIGH, MEDIUM, LOW, CONFLICTING reflecting how much we trust its source for that kind of field. It is a label, not a numeric score:

Which level a claim gets is decided by its source, not per value: CelesTrak elements are CONFIRMED, CelesTrak SATCAT and GCAT are HIGH, Wikidata is MEDIUM, and entity resolution re-marks a claim CONFLICTING when a second source contradicts it.

LevelTypical source / meaning
CONFIRMEDCelesTrak orbital elements, measured, machine-generated data
HIGHCelesTrak SATCAT and GCAT catalog fields, plus reviewed editorial corrections
MEDIUMWikidata, community-maintained, generally reliable for notable objects
LOWFuzzy-matched or low-coverage fields, shown, but treat with caution
CONFLICTINGTwo sources disagree on this field. Both claims are kept and the disagreement is shown on the record.

Displaying the level lets you decide for yourself how much weight to give any single value rather than trusting a black box.

§05Known limitations

We would rather state our weak spots plainly than have you discover them:

  • ·Uneven Wikidata coverage. Large constellations are sparsely documented, many individual Starlink satellites have no Wikidata entry, so operator/mass/purpose may be missing for them.
  • ·Under-documented status. Operational status is only set when a source states it: CelesTrak SATCAT publishes an explicit status code per object, and GCAT's status column records whether an object is still in orbit, not whether it works. Where no source states a status we show “unknown” rather than assuming the spacecraft is alive. That is currently 531 of 16,564 objects (3.2%).
  • ·Archive depth. Historical orbital completeness depends on CelesTrak’s archive. Some objects out of CelesTrak’s active set (for example, very high orbits like JWST at L2, or long-decayed objects like Vanguard 1) may have limited or no current orbital data.
  • ·Orbital data is approximate. Our elements are suitable for browsing and research, not for operational tracking, collision avoidance, or maneuver planning.
  • ·Object-type coverage is payload-only. Our satellite records come from CelesTrak's active feed, which is almost entirely payloads. GCAT and Wikidata enrich those existing rows but never create new ones, so rocket bodies, debris, and long-decayed objects are barely represented: 6 of 16,564 records, despite GCAT's full catalog covering tens of thousands of them.

§06Error rate

Publishing an honest error rate matters more to us than claiming perfection. We measure accuracy two complementary ways, and we publish updated results periodically.

Deterministic hash sample: 100 records (July 23, 2026)

In a reproducible internal spot-check of 100 deterministically-sampled records, 0 records (0.00%) had the material-error count shown above; the archived report contains the category detail. Across the full catalogue, legacy TLE is encodable for 97.3% of objects, and 100.0% of payloads carry at least one source-backed enrichment claim. These figures refresh automatically as the catalogue changes.

These are the last stored results, verified on July 23, 2026. They are older than the expected daily validation window and are not marked current.

Curated validation, 50 well-known satellites (29 May 2026)

We manually verified a curated set of 50 well-known objects against primary sources across 255 individual field checks and found 3 errors, an error rate of 1.2%, below our 2% quality gate.

The spot-check is regenerated by a committed, read-only script (scripts/spot-check.ts). The script is committed in the public repository, selected reports are archived, and issues found are investigated and corrected after discovery. We periodically re-run validation and update these figures here.

§07Reporting corrections

Found something wrong? We want to know. Every record is open to correction, and reports are reviewed privately by our team, we read every one.

Use the “Report a correction” control on any satellite detail page, or the form below. Please include the NORAD catalog number, the field in question, and a primary source for the correct value where possible, that lets us verify and fix it quickly.

Report a correction now