← All datasets

Airport Curves

Two joinable datasets turning Wikidata's timestamped patronage statements into passenger curves for 2,957 airports across 45,935 airport-year observations, 1,820 of them ten-plus years deep. Every curve on Earth bears the same scar, and the signature columns face it directly: Passengers_2019 and Passengers_2020, the COVID drop percent (median 55.2, maximum 96.9), a Recovered flag and the Recovery_Year; by each airport's latest data, only 725 of 2,315 with a 2019 baseline are back. Around the curves sits the airport itself: IATA and ICAO codes, the city served, country, coordinates and elevation, opening year, and the hub airlines reverse-queried from every airline's own hub statements, because the airlines know their homes better than the airports do. One observation per airport-year with the larger figure winning duplicates; a unit-error guard drops millions-column typos without ever touching a genuine COVID crater, and capacity targets posing as traffic (a certain Riyadh megaproject's 185 million) are rejected because real giants have real histories. Join on Airport_ID. Built with a 17-test acceptance suite anchored on Atlanta's crown and Heathrow's crater.
48,892 rows 2 joinable files last pulled 2026-09-12
Airports 2,957 rows × 25 columns
AirportAirport_IDIATAICAOCity_ServedCountryLatitudeLongitudeElevation_MOpened_YearHub_ForObservationsFirst_YearFirst_PassengersLatest_YearLatest_PassengersPeak_YearPeak_PassengersPassengers_2019Passengers_2020COVID_Drop_PercentRecovered_From_COVIDRecovery_YearGrowth_MultipleAirport_URL
Airport Traffic 45,935 rows × 6 columns
AirportAirport_IDIATACountryYearPassengers

Questions and answers

What is the Airport Curves dataset?

Two joinable datasets turning Wikidata's timestamped patronage statements into passenger curves for 2,957 airports across 45,935 airport-year observations, 1,820 of them ten-plus years deep. Every curve on Earth bears the same scar, and the signature columns face it directly: Passengers_2019 and Passengers_2020, the COVID drop percent (median 55.2, maximum 96.9), a Recovered flag and the Recovery_Year; by each airport's latest data, only 725 of 2,315 with a 2019 baseline are back. Around the curves sits the airport itself: IATA and ICAO codes, the city served, country, coordinates and elevation, opening year, and the hub airlines reverse-queried from every airline's own hub statements, because the airlines know their homes better than the airports do. One observation per airport-year with the larger figure winning duplicates; a unit-error guard drops millions-column typos without ever touching a genuine COVID crater, and capacity targets posing as traffic (a certain Riyadh megaproject's 185 million) are rejected because real giants have real histories. Join on Airport_ID. Built with a 17-test acceptance suite anchored on Atlanta's crown and Heathrow's crater.

How big is the Airport Curves dataset?

48,892 rows across 2 joinable files, with 31 columns in total: Airport, Airport_ID, IATA, ICAO, City_Served, Country, Latitude, Longitude, Elevation_M, Opened_Year, Hub_For, Observations, First_Year, First_Passengers, Latest_Year, Latest_Passengers, Peak_Year, Peak_Passengers, Passengers_2019, Passengers_2020, COVID_Drop_Percent, Recovered_From_COVID, Recovery_Year, Growth_Multiple, Airport_URL, Airport, Airport_ID, IATA, Country, Year, Passengers.

Where does the data come from?

It is built by programmatically scraping wikidata.org, last pulled on 2026-09-12. Datasets are versioned; older versions stay downloadable.

Is the dataset free to download?

Yes. Every CodeSights dataset is completely free as a CSV download; a free account is all it takes. Anyone can preview the data without signing in.

Can I see the code that built this dataset?

Yes. The exact Python scraper that built it is viewable on the dataset page by any signed-in member, so every number is reproducible.

How do the files join?

Join the files on Airport_ID (traffic.Airport_ID = airports.Airport_ID); Observations on the airports file says how many traffic rows to expect.

Can the data contain errors?

Automated scraping leaves room for error and the underlying sources change over time, so no version is guaranteed accurate or complete. If a number matters, verify it against the original source.

Browse every free dataset on CodeSights