I built Open Orbit as a transparency-first dashboard. Every number on the home page comes from a public dataset. This page documents what each metric measures, where it comes from, and the choices I made to define it.
Total count of satellites in Earth orbit, taken from the most recent fetch.
All orbital launch attempts since January 1 of the current year, regardless of outcome.
Sum of payload mass on successful orbital launches since January 1 of the current year.
Orbital launch failures over the trailing 365 days, divided by total orbital launch attempts in the same window.
Distinct named satellite operators identified by satellite naming patterns in the CelesTrak active catalog. Satellite operators run the fleets in orbit — distinct from launch providers, which fly the rockets.
A directory of the constellations currently in orbit (one row each, grouped by operator), joining a hand-curated catalog to live CelesTrak fleet counts and GCAT activity. Satellite operators run the fleets — distinct from launch providers, which fly the rockets.
Payload re-entries to Earth’s atmosphere over the trailing 365 days.
For each rocket family, how close its LEO flights come to that family’s own demonstrated best payload — a measure of how consistently it flies near-full, not a cross-rocket efficiency ranking.
A hand-picked list of early-stage space players — filed constellations, pre-orbital / R&D rockets, and new satellite platforms — that are real enough to track but too early to catalogue as a live operator or launch provider. Each entry joins the live catalogs the moment it clears the bar.
A directory of the companies and agencies flying rockets to orbit (one row each, click to expand to the rockets in their fleet), joining a hand-curated catalog of providers and rockets to live launch counts, success rates, mass to orbit and cargo economics. Launch providers fly the rockets — distinct from satellite operators, who run the fleets in orbit.
Distinct launch providers that have successfully reached orbit at least once in the trailing 12 months. Launch providers fly the rockets — distinct from satellite operators, who run the fleets in orbit.
A live feed of the latest orbital launches on the homepage — who flew, on what, and whose satellites went up. It reuses data already on the site rather than adding a new source.
A short narrative summary of the past week in orbit, generated on the first page view of each ISO week and then cached.
How dependent a constellation is on a single launch provider, on a 0–1 scale — 1.0 means every satellite flew on one provider (total lock-in); lower means the operator spreads its launches across more providers.
The net number of an operator’s satellites active in orbit over time, reconstructed month by month — and, where a constellation faces a fixed regulatory deploy-by-date mandate, the straight-line pace it would need to hold to reach that milestone.
How often a launch provider flies — orbital launches per quarter (with failures highlighted) and the average number of days between consecutive launches over the last 12 months, versus the 12 months before.
The satellite operators a launch provider has flown, and how many fly exclusively with it — derived from the GCAT launch↔satellite join. A best-effort floor: it sees only operators tracked in the Open Orbit catalogue, not every payload a provider has ever launched.
Where a launch provider flew from over the last 12 months, counted by launch site — a straight tally from the GCAT launch record.
Two metrics on the home page can look related but show different numbers. The clearest example is the launches-YTD card and the mass-to-orbit card — they currently show different totals, and both are correct.
Launches YTD (LL2) counts every orbital launch attempt this year, including failures and deep-space missions. Mass to orbit YTD (GCAT) counts only launches GCAT codes as orbital successes that delivered measurable payload mass.
Reconstructing the gap from GCAT directly: orbital successes plus orbital failures plus deep-space successes accounts for most of it. The remaining handful reflects GCAT’s manual ingestion lag — McDowell typically catches up over the following week or two.
Neither number is more correct. They answer different questions: the launches card answers how often did we try?; the mass card answers how much did we deliver to orbit?. I show both because each is useful, and I keep the source line on each card explicit so you can see which dataset feeds which number.
The same split runs through the deep-dives: /launches uses LL2 end-to-end (header, trajectory, breakdowns, recent and upcoming) so its numbers reconcile with the homepage launches card. /mass-to-orbit uses GCAT end-to-end for the same reason. Comparing “2024 launches” across the two pages will show different totals — that is the methodology gap above, not a bug.
/failures reads the same LL2 record set as /launches but filtered to statuses 4 and 7 and divided by the same denominator — so a specific year’s failure count on /failures will line up with a derivation from /launches, never with /mass-to-orbit. The failure-event log on that page adds editorial detail (mode, outcome, source link) that LL2 doesn’t carry; the trajectory and rate breakdowns above it don’t depend on that editorial layer.
/launch-providers doesn’t introduce a new dataset — it re-cuts the same three by provider. Its launch counts come from LL2 (so they reconcile with /launches), its success rates from the same record as /failures, and its mass from GCAT (so it reconciles with /mass-to-orbit). Two things to keep straight there: launches, success rate and mass count all orbits, whereas the price-per-kg and cargo-utilization figures are LEO-only(LEO is the standard reference orbit for capability and cost) — so a row’s all-orbit “Mass” and its LEO-only “$/kg” don’t share a denominator. And China’s CASC total folds together the Long March academies GCAT lists separately (CALT, SAST and others), so it will read higher than any single one of those codes. On each provider’s page, the by launch sitebreakdown counts successful orbital launches over the trailing 12 months (from GCAT), so its total deliberately won’t match that provider’s calendar year-to-date Launchesfigure — a different window, and a different source.
One more pair to keep straight: the homepage Active launch providers hero and the providers tracked figure on /launch-providers are different on purpose. The hero counts only providers that successfully reached orbit in the last 12 months; the directory counts the full curated catalog, including in-development and test-campaign providers that haven’t flown a success this year. The hero is a subset — “how many of the providers we track actually launched in the last year.”
Every metric refreshes once a day. When a refresh fails, the card surfaces that state — either through a stale “Updated” timestamp or a “couldn’t refresh” note — rather than silently showing an old number.