NTSB finding section · Personnel issues › Miscellaneous

Cases
29
In the probable cause
24 (83%)
Fatal cases
4
NTSB code
020500

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 Miscellaneous, general per year: 29 cases
20093
20103
20112
20124
20132
20142
20152
20161
20171
20182
20201
20222
20231
20243
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\", '020500') 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 · 1

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\", '020500') 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\", '020500'))
  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\", '020500') 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 · 29

NTSB CEN25LA049Accident · Serious injuriesClass 4 · LimitedFinal reportPiper PA-28-140 · Camdenton, MOThe pilot’s poor flight planning which resulted in a loss of engine power due to fuel exhaustion.Nov 24, 2024 · N6575W · Substantial damageNTSB CEN25LA022Accident · No injuriesClass 4 · LimitedFinal reportMagniflight M24 Orion · Valmeyer, ILThe pilot’s loss of control due to flight control interference by the passenger during takeoff.Oct 19, 2024 · N4777W · Substantial damageNTSB WPR24LA193Accident · No injuriesClass 3 · LimitedFinal reportCessna A185F · Monument Hills, CAA total loss of engine power for reasons that could not be determined.Jun 12, 2024 · N8WF · Substantial damageNTSB WPR23FA143Accident · 1 fatalClass 3 · FieldFinal reportCessna T182T · Queets, WAThe pilot’s failure to maintain clearance from terrain for undetermined reasons.Mar 7, 2023 · N24289 · DestroyedNTSB DCA22LA134Accident · Serious injuriesClass 4 · LimitedFinal reportBoeing 737-700 · Tacoma, WADuring cruise flight with no reported turbulence a passenger sustained a serious injury for an unknown reason.May 22, 2022 · N256WN · No damageNTSB CEN22LA122Accident · Serious injuriesClass 4 · LimitedFinal reportBell 206 · Eldorado, ILOverheating of two lithium batteries in the paramedic’s flight suit pocket resulting in an explosion and fire that seriously injured the paramedic as the helicopter was about to take off.Feb 12, 2022 · N469AE · Minor damageNTSB CEN20CA193Accident · No injuriesClass 4 · Data collectionFinal reportCessna 182 · Ionia, MIThe pilot's failure to maintain directional control during landing. Contributing was the pilot getting his shoe caught in the rudder pedal.May 22, 2020 · N5179D · Substantial damageNTSB DCA18CA294Accident · Serious injuriesData collectionFinal reportAirbus A321 · Dallas, TXa passenger leaving a bag in the aisle that the flight attendant tripped over.Sep 26, 2018 · N994AN · No damageNTSB CEN18FA116Accident · 2 fatalField investigationFinal reportPiper PA 31P · Laredo, TXAn engine malfunction for undetermined reasons and the subsequent loss of control, due to the pilot's improper decision to maneuver the airplane below minimum controllable airspeed and his improper response to the loss of engine power.Mar 8, 2018 · N82605 · DestroyedNTSB GAA17CA520Accident · Serious injuriesData collectionFinal reportCessna 680 · Wilmington, DEThe passenger’s inadvertent slip on the airplane's air stairs during deplaning, which resulted in a broken ankle.Sep 3, 2017 · N378QS · No damage
See all 29 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\", '020500'))
  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.