NTSB finding section · Environmental issues › Operating environment

Cases
40
In the probable cause
23 (57%)
Fatal cases
17
NTSB code
030140

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 NTSB made it part of the probable cause; in gray, a factor or other finding. Findings are coded with the final report, often a year or more after the event, so the latest years are incomplete.

Cases per year

2008In the probable causeFactor only2026
Cases with Air traffic/operating proc per year: 40 cases
20083
20096
20103
20113
20123
20132
20144
20152
20161
20172
20181
20191
20201
20213
20221
20231
20242
20251
Query with SQL
duckdb -csv -c "SELECT year(c.\"eventDate\") AS year, count(DISTINCT f.case_mkey) AS cases,
    count(DISTINCT f.case_mkey) FILTER (WHERE f.\"inProbableCause\") AS in_probable_cause
  FROM 'https://openairdocs.org/data/latest/ntsb_findings.parquet' f JOIN 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c ON c.\"mKey\" = f.case_mkey
  WHERE starts_with(f.\"findingCode\", '030140') AND c.\"eventDate\" >= DATE '2000-01-01'
  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.

Subsections · 10

Query with SQL
duckdb -csv -c "SELECT left(f.\"findingCode\", 8) AS code, max(f.\"tier4Name\") AS name,
    count(DISTINCT f.case_mkey) AS cases,
    count(DISTINCT f.case_mkey) FILTER (WHERE f.\"inProbableCause\") AS in_probable_cause
  FROM 'https://openairdocs.org/data/latest/ntsb_findings.parquet' f
  WHERE starts_with(f.\"findingCode\", '030140') AND f.\"findingCode\" GLOB '[0-9][0-9]*'
  GROUP BY 1
  ORDER BY cases DESC, code"

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 the same cases

Query with SQL
duckdb -csv -c "WITH matched AS (SELECT DISTINCT case_mkey, aircrafts_position FROM 'https://openairdocs.org/data/latest/ntsb_findings.parquet' WHERE starts_with(\"findingCode\", '030140'))
  SELECT * FROM (
  SELECT 'Defining event' AS kind, e.\"tier2Number\" AS code, max(e.\"eventTier2Name\") AS name, count(DISTINCT f.case_mkey) AS cases
  FROM matched f JOIN 'https://openairdocs.org/data/latest/ntsb_events.parquet' e ON e.case_mkey = f.case_mkey AND e.aircrafts_position = f.aircrafts_position AND e.\"isDefiningEvent\"
  WHERE e.\"tier2Number\" <> ''
  GROUP BY ALL
  UNION ALL
  SELECT 'Aircraft model', a.aircraft_model_code, any_value(concat_ws(' ', m.manufacturer, m.model)), count(DISTINCT f.case_mkey)
  FROM matched f JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = f.case_mkey AND a.position = f.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
  UNION ALL
  SELECT 'Other finding', left(g.\"findingCode\", 8), max(g.\"tier4Name\"), count(DISTINCT g.case_mkey)
  FROM 'https://openairdocs.org/data/latest/ntsb_findings.parquet' g
  WHERE g.case_mkey IN (SELECT case_mkey FROM matched) AND NOT starts_with(g.\"findingCode\", '030140') AND g.\"findingCode\" GLOB '[0-9][0-9]*'
  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 · 40

NTSB DCA25MA108Accident · 67 fatalClass 1 · MajorFinal reportBombardier CL-600-2C10 · Washington, DCThe Federal Aviation Administration’s (FAA) placement of a helicopter route in close proximity to a runway approach path; their failure to regularly review and evaluate helicopter routes and available data, and their failure to act on recommendations to…Jan 30, 2025 · N709PS · 2 aircraft · DestroyedNTSB CEN25FA019Accident · 4 fatalClass 2 · FieldFinal reportRobinson R44 · Houston, TXThe pilot’s failure to maintain clearance from a lighted radio tower during a visual night flight. Contributing to the accident was the air traffic controller’s failure to issue a safety alert notifying the pilot of the flight’s unsafe proximity to the tower.Oct 21, 2024 · N881KE · DestroyedNTSB ERA24FA217Accident · 3 fatalClass 3 · FieldFinal reportBeech V35 · Franklin, TNThe pilot’s flight into convective weather, which resulted in a loss of control due to spatial disorientation and a subsequent inflight breakup of the airplane. Contributing to the accident was the lack of accurate weather intensity depiction on the…May 15, 2024 · N47WT · DestroyedNTSB ANC23LA035Accident · No injuriesClass 4 · LimitedFinal reportPiper PA22 · Anchorage, AKThe pilot's excessive braking during the landing roll, resulting in a nose over.May 17, 2023 · N7741D · Substantial damageNTSB ERA22FA318Accident · 4 fatalClass 3 · FieldFinal reportPiper PA-46-350P · North Las Vegas, NVThe low-wing airplane pilot’s failure to ensure that the airplane was aligned with the correct runway, which resulted in a collision with the high-wing airplane on final approach. Contributing to the accident was the controller’s failure to provide timely and…Jul 17, 2022 · N97CX · 2 aircraft · DestroyedNTSB CEN22FA069Accident · 1 fatalClass 3 · FieldFinal reportPiper PA46-500TP · Steamboat Springs, COThe pilot’s failure to adhere to the published instrument approach procedure, which resulted in controlled flight into terrain.Dec 11, 2021 · N744Z · Substantial damageNTSB CEN21LA336Accident · No injuriesClass 3 · LimitedFinal reportDriver RV-7 · Oshkosh, WIThe RV-8 pilot’s failure to account for the position of the RV-7 behind him during the landing roll in a staggered landing formation, which resulted in a ground collision of the two airplanes. Contributing to the accident was the self-induced pressure created…Jul 23, 2021 · N977RV · 2 aircraft · Substantial damageNTSB WPR21FA203Accident · 1 fatalClass 3 · FieldFinal reportDassault Mirage F-1 · Las Vegas, NVThe pilot’s exceedance of the airplane’s critical angle of attack on approach and failure to fly a traffic pattern track consistent with a no-flap configuration. Contributing to the accident was the failure of the airplane’s flaps to extend while in the…May 24, 2021 · N567EM · DestroyedNTSB DCA20MA059Accident · 9 fatalClass 1 · MajorFinal reportSikorsky S76 · Calabasas, CAThe pilot’s decision to continue flight under visual flight rules into instrument meteorological conditions, which resulted in the pilot’s spatial disorientation and loss of control. Contributing to the accident was the pilot’s likely self-induced pressure…Jan 26, 2020 · N72EX · DestroyedNTSB CEN19CA227Accident · No injuriesData collectionFinal reportVans RV-8 · Oshkosh, WIThe pilot’s failure to maintain adequate spacing from the lead airplane while landing following revised landing instructions, which necessitated that the pilot conduct an improper landing flare and resulted in a hard landing.Jul 20, 2019 · N143MS · Substantial damage
See all 40 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 f.case_mkey FROM 'https://openairdocs.org/data/latest/ntsb_findings.parquet' f WHERE starts_with(f.\"findingCode\", '030140'))
  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.