Defining event in
92 cases
In the sequence of
96 cases
Fatal cases
0
NTSB code
260

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 Near midair/TCAS alert/loss of separation per year: 96 cases
20083
20091
20108
20117
20121
20142
20152
20162
20174
20186
20215
20227
20236
202418
202515
20269
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\" = '260' 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\" = '260' 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 · 92

NTSB OPS26LA063IncidentClass 3 · LimitedPreliminary reportSikorsky VH3D · Washington, DCOn August 4, 2026, about 1434 eastern daylight time (EDT), Marine One (VM1) a Sikorsky VH-3D, and Envoy Air flight 3742 (ENY3742), an Embraer E-170, were involved in a loss of separation about 2 miles north of Ronald Reagan Washington National Airport (DCA),…Aug 4, 2026 · MILITARY - VM1 · 2 aircraft · No damageNTSB DCA26WA284IncidentClass 5 · ForeignAirbus A321 · San Andrés, SpainJul 10, 2026 · EC-OLENTSB OPS26LA036IncidentClass 4 · LimitedInvestigation openBoeing 737-7CT · Orlando, FLApr 8, 2026 · N566WN · 3 aircraft · No damageNTSB OPS26LA027Incident · No injuriesClass 4 · LimitedInvestigation openBoeing 737-9 · Newark, NJMar 18, 2026 · N738AL · 2 aircraft · No damageNTSB DCA26WA158IncidentClass 5 · ForeignBoeing 737 · Cologne, GermanyFeb 18, 2026 · EI-DWT · No damageNTSB OPS26LA019IncidentClass 4 · LimitedInvestigation openLearjet 45 · West Milford, NJFeb 13, 2026 · N91SU · 2 aircraft · No damageNTSB DCA26WA143Incident · Minor injuriesClass 5 · ForeignBombardier CL-600-2D24 · Exhuma, BahamasFeb 12, 2026 · N589NN · No damageNTSB GAA26WA099Occurrence · No injuriesClass 5 · ForeignCirrus SR22 · Tarrengower, AustraliaJan 22, 2026 · VH-XC5 · 2 aircraft · No damageNTSB GAA26WA098IncidentClass 5 · ForeignBell 212 · Mt Hotham Aerodrome, AustraliaJan 18, 2026 · VH-KHO · 2 aircraft · No damageNTSB DCA26WA025IncidentClass 5 · ForeignAirbus A321 · Amsterdam, NetherlandsOct 23, 2025 · OE-ISB · 2 aircraft · No damage
See all 92 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\" = '260')
  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.