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.
| File | Contents | Rows |
|---|---|---|
| launches-per-year.csv | Launch count for each year | 66 |
| operators.csv | Launches, successes and success rate per operator | 62 |
| mission-outcomes.csv | Counts by recorded mission outcome | 4 |
| rocket-status.csv | Launches flown on active and retired vehicles | 2 |
| lda-topics.csv | Top weighted terms for each recovered topic | 10 |
| lda-scores.csv | Coherence and perplexity for both topic models | 2 |
| operator-reliability.csv | Success rate per operator with 95% Wilson intervals | 62 |
| experience-vs-reliability.csv | Rank correlation of launches against success rate, with permutation p | 3 |
| eras.csv | Totals and yearly means for the three launch eras | 3 |
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.