Skip to content

Flight Data Benchmark

CLI name: flightdata - use benchbox run --benchmark flightdata

Query templates: every Flight Data query

The Flight Data benchmark uses US Bureau of Transportation Statistics (BTS) On-Time Performance data to exercise real-world aviation analytics - delays, routes, carriers, and temporal patterns - across 20 OLAP queries.

Overview

PropertyValue
Total Queries20
Categories5 (on-time, delay, routes, temporal, carriers)
Data SourceBTS TranStats (downloader included)
SchemaFlight records with carrier, airport, and delay fields
ScaleSF=0.01 (1 month sample) → SF≥10 (full corpus)

Query Categories

CategoryQueriesFocus
ontime5On-time performance rates and trends
delay4Delay causes and attribution
routes4Route performance and connectivity
temporal4Day-of-week, month, and hour-of-day patterns
carriers3Carrier comparison and ranking

Scale Factors

ScaleApprox. FlightsApprox. SizeNotes
0.01~600 K~10 MB1-month BTS / dev sample
0.1~2.4 M~100 MB~4 months of BTS data
1.0~24 M~2.8 GB~41 months (~3.4 years), uncompressed CSV
≥10.0Full~10 GB+Approaches full historical corpus

Usage

Terminal window
benchbox run --platform duckdb --benchmark flightdata --scale 1.0
benchbox run --platform duckdb --benchmark flightdata --scale 0.01
benchbox run --platform duckdb --benchmark flightdata --scale 1.0 \
--benchmark-option end_year=2024
benchbox run --platform duckdb --benchmark flightdata --scale 1.0 \
--benchmark-option seed=42

The first command uses the default scale (SF=1.0, about 24M flights, about 2.8 GB of uncompressed CSV). The second is a quick development sample. The third pins the most recent year included; the default is LAST_AVAILABLE_YEAR. The fourth makes runs reproducible through a seed.

Benchmark Options

OptionDefaultDescription
end_yearLAST_AVAILABLE_YEARMost recent year to include (works back)
seedNoneRandom seed for reproducibility
force_regenerateFalseForce data regeneration

Data Generation

BenchBox downloads BTS On-Time Performance extracts via the bundled downloader. The initial pull can be large for SF ≥ 1 - use the generate phase in isolation to pre-stage data:

Terminal window
benchbox datagen --benchmark flightdata --scale 1.0

Platform Support

Any SQL platform supported by BenchBox can run Flight Data. It is a useful real-world complement to TPC-H and NYC Taxi for temporal / categorical workloads and is supported on DataFrame platforms (Polars, Pandas, etc.) via the bundled DataFrame query definitions.

See Also