Defining event in
196 cases
In the sequence of
196 cases
Fatal cases
110
NTSB code
250

NTSB has coded findings and defining events since 2008. Earlier cases used its older occurrence and cause codes, so they aren’t counted here.

When and where

In green, cases where it was the defining event; in gray, cases where it came elsewhere in the sequence. The map shows the cases where it was the defining event. Events are coded with the final report, so the latest years are incomplete.

Cases per year

2008Defining eventElsewhere in the sequence2026
Cases with Midair collision per year: 196 cases
200813
200912
201011
201111
201212
20137
20148
201513
201613
20178
201813
201910
202011
20216
20228
202310
202413
202511
20266
Query with SQL
duckdb -csv -c "SELECT year(c.\"eventDate\") AS year, count(DISTINCT e.case_mkey) AS cases,
    count(DISTINCT e.case_mkey) FILTER (WHERE e.\"isDefiningEvent\") AS defining
  FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e JOIN 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c ON c.\"mKey\" = e.case_mkey
  WHERE e.\"tier2Number\" = '250' AND e.case_mkey IN (SELECT case_mkey FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' WHERE \"isDefiningEvent\")
  GROUP BY 1
  ORDER BY 1"

Prints the counts as CSV. It reads the release’s Parquet files over HTTPS, so there’s nothing to download first. Install DuckDB to run it.

In these cases

Query with SQL
duckdb -csv -c "WITH defining AS (SELECT * FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' WHERE \"tier2Number\" = '250' AND \"isDefiningEvent\")
  SELECT * FROM (
  SELECT 'Phase of flight' AS kind, e.\"tier1Number\" AS code, max(e.\"eventTier1Name\") AS name, count(DISTINCT e.case_mkey) AS cases
  FROM defining e
  GROUP BY ALL
  UNION ALL
  SELECT 'Finding in the probable cause', left(f.\"findingCode\", 8), max(f.\"tier4Name\"), count(DISTINCT f.case_mkey)
  FROM defining e JOIN 'https://openairdocs.org/data/latest/ntsb_findings.parquet' f ON f.case_mkey = e.case_mkey AND f.aircrafts_position = e.aircrafts_position AND f.\"inProbableCause\"
  WHERE f.\"findingCode\" GLOB '[0-9][0-9]*'
  GROUP BY ALL
  UNION ALL
  SELECT 'Aircraft model', a.aircraft_model_code, any_value(concat_ws(' ', m.manufacturer, m.model)), count(DISTINCT e.case_mkey)
  FROM defining e JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = e.case_mkey AND a.position = e.aircrafts_position
  LEFT JOIN 'https://openairdocs.org/data/latest/faa_aircraft_model.parquet' m ON m.code = a.aircraft_model_code
  WHERE a.aircraft_model_code IS NOT NULL
  GROUP BY ALL
  )
  QUALIFY row_number() OVER (PARTITION BY kind ORDER BY cases DESC) <= 10
  ORDER BY kind, cases DESC"

Prints the counts as CSV. It reads the release’s Parquet files over HTTPS, so there’s nothing to download first. Install DuckDB to run it.

Newest cases · 196

NTSB ERA26LA346Accident · 1 fatalClass 3 · LimitedPreliminary reportSchleicher ASW-24 · Edinburg, NYOn September 18, 2026, about 1426 eastern daylight time, a Schempp-Hirth Ventus-2B glider, N61XC, and a Schleicher ASW-24 glider, N94CG, collided in flight near Edinburg, New York. The pilot of the Schempp-Hirth was fatally injured and the glider was…Sep 18, 2026 · N94CG · 2 aircraft · Substantial damageNTSB ERA26FA309Accident · 1 fatalClass 3 · FieldPreliminary reportCessna 150 · Carlisle, PAOn August 19, 2026, at 1852 eastern daylight time, a Bell Helicopter Textron Canada 407, N873ST, and a Cessna 150H airplane, N23330, collided in flight near Carlisle, Pennsylvania. The two commercial pilots onboard the helicopter were seriously injured, and…Aug 19, 2026 · N23330 · 2 aircraft · DestroyedNTSB GAA26WA298Accident · No injuriesClass 5 · ForeignScheibe SF25 · Speyer, GermanyMay 10, 2026 · D-KSPY · 2 aircraft · Substantial damageNTSB ERA26LA167Accident · No injuriesClass 3 · LimitedPreliminary reportCessna 172S · Marathon, FLOn April 11, 2026, about 1330 eastern daylight time, a Cessna 172S airplane, N529ND sustained substantial damage and a Raytheon Aircraft Company B200 (King Air) airplane, N699BW sustained minor damage when they collided in flight near Marathon, Florida. The 2…Apr 11, 2026 · N529ND · 2 aircraft · Substantial damageNTSB CEN26LA118Accident · No injuriesClass 4 · LimitedInvestigation openAir Tractor AT-502A · Sulphur, LAFeb 12, 2026 · N254LA · 2 aircraft · Substantial damageNTSB WPR26LA083Accident · No injuriesClass 4 · LimitedFinal reportRobinson R44 · Parkman, WYThe pilots’ failure to maintain separation while conducting air work in a common operational area. Contributing to the accident was the pilots’ divided attention associated with the mission activity and unreliable radio communications.Jan 19, 2026 · N996NR · 2 aircraft · Substantial damageNTSB ERA26FA077Accident · 2 fatalClass 3 · FieldPreliminary reportEnstrom 280 · Hammonton, NJOn December 28, 2025, at 1124 eastern standard time, an Enstrom F-28A helicopter, N520H, and an Enstrom 280C helicopter, N280MG, collided in midair near Hammonton, New Jersey. The private pilots onboard each of the helicopters were fatally injured. Both…Dec 28, 2025 · N280MG · 2 aircraft · DestroyedNTSB GAA26WA034Accident · 1 fatalClass 5 · ForeignVans RV7 · New South Wales, AustraliaNov 30, 2025 · VH-EWS · 2 aircraft · Substantial damageNTSB GAA26WA004Accident · 2 fatalClass 5 · ForeignCessna 172 · Santa Ana del Yacuma, BoliviaOct 4, 2025 · CP-3062 · 2 aircraftNTSB WPR25FA268Accident · 1 fatalClass 3 · FieldPreliminary reportCessna 172M · Fort Morgan, COOn August 31, 2025, about 1040 mountain daylight time, a Cessna 172M, N61657, and an Extra Flugzeugproduktions-UND EA 300/LC, N330AN, were both destroyed when they collided midair near Fort Morgan, Colorado. The pilot and safety pilot of the Cessna received…Aug 31, 2025 · N61657 · 2 aircraft · Destroyed
See all 196 cases
Query with SQL
duckdb -csv -c "SELECT c.\"ntsbNumber\", c.\"eventDate\", c.\"eventType\", c.\"eventCity\", c.\"eventStateOrRegion\", a.n_number, a.\"aircraftMake\", a.\"aircraftModel\", c.\"highestInjuryLevel\", c.\"totalFatal\", c.\"completionStatus\", c.report_url
  FROM 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c LEFT JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = c.\"mKey\" AND a.position = 1
  WHERE c.\"mKey\" IN (SELECT e.case_mkey FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e WHERE e.\"isDefiningEvent\" AND e.\"tier2Number\" = '250')
  ORDER BY c.\"eventDate\" DESC, c.\"ntsbNumber\" DESC"

Prints the whole list as CSV. It reads the release’s Parquet files over HTTPS, so there’s nothing to download first. Install DuckDB to run it.