Provenance

Data

One dataset, captured once, with its gaps stated. Everything on this site is derived from it and can be regenerated from the notebook.

The analysis runs on a single table of global orbital launch attempts, published on Kaggle as Space Missions. It compiles publicly recorded launches from Sputnik 1 onward. It is a static snapshot, not a live feed, and it is the only source behind every number on this site.

Source
Kaggle, Space Missions by mysarahmadbhat
Records
4,630 launch attempts
Coverage
4 October 1957 to 2022, final year partial
Captured
March 2023, as a fixed snapshot
Dimensions
62 operators, 370 rockets, 158 launch sites
Fields
Company, Location, Date, Time, Rocket, Mission, RocketStatus, Price, MissionStatus
Licence
As published on Kaggle. Check the dataset page before reuse.

Known gaps

What is missing, stated up front

  • Price is missing for 3,365 of 4,630 rows, 73 per cent. Any cost conclusion drawn from this data would be unsound, so none is drawn.
  • Time of day is missing for 127 rows, 2.7 per cent. It is not used in any figure on this site.
  • 2022 is incomplete. The 93 launches recorded for that year are a partial count, not a fall in activity.
  • Operator names are not normalised. Soviet and Russian activity appears under three separate names and has to be combined deliberately.

Derived tables

Everything the charts are built from

The first six are written directly out of the notebook's executed output cells by analysis/extract_results.py, so each is traceable to a cell that ran. The last three are computed from those by analysis/statistics.py, a second stage that adds confidence intervals, a permutation test and the era split. The site renders its tables from the same files, which means the pages and the notebook cannot drift apart.

FileContentsRows
launches-per-year.csvLaunch count for each year66
operators.csvLaunches, successes and success rate per operator62
mission-outcomes.csvCounts by recorded mission outcome4
rocket-status.csvLaunches flown on active and retired vehicles2
lda-topics.csvTop weighted terms for each recovered topic10
lda-scores.csvCoherence and perplexity for both topic models2
operator-reliability.csvSuccess rate per operator with 95% Wilson intervals62
experience-vs-reliability.csvRank correlation of launches against success rate, with permutation p3
eras.csvTotals and yearly means for the three launch eras3

Reproducing it

The notebook

The full working, including the preliminary analysis, every chart and the topic model, is in analysis/spacexplorer-analysis.ipynb. It reads one file, space_missions.csv, downloaded from the Kaggle link above and placed in the working directory. The Kaggle terms are why the raw file is not redistributed here.

With that file in place, python3 analysis/extract_results.py rewrites the derived tables, python3 analysis/statistics.py recomputes the intervals and tests, and python3 analysis/make_charts.py rewrites the SVG charts. The last two need nothing but the standard library.

On live data

Why there are no live statistics

An earlier version of this site carried a live statistics page driven by the community run SpaceX API at api.spacexdata.com. That project was archived by its maintainers in June 2026 and the endpoint no longer serves data, so the page had been showing an empty table. It has been removed rather than left to fail quietly.

A live counter was never what this project was about. The analysis above covers every operator across 65 years, which is a stronger question than one company's running total, and a fixed, dated snapshot cannot rot the way a borrowed API can.