NTSB finding · Personnel issues › Experience/knowledge › Knowledge

Cases
24
In the probable cause
15 (63%)
Fatal cases
1
NTSB code
02032030

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 Knowledge of geographic area per year: 24 cases
20082
20091
20104
20113
20122
20131
20152
20162
20171
20211
20223
20231
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\", '02032030') 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.

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\", '02032030'))
  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\", '02032030') 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 · 24

NTSB ERA25LA199Accident · Serious injuriesClass 4 · LimitedFinal reportCessna 182A · Ocala, FLThe pilot’s decision to depart on the flight with known electrical issues and his subsequent loss of situational awareness (geographic position), which resulted in his eventual decision to perform an off-airport landing.May 8, 2025 · N174A · Substantial damageNTSB CEN23LA263Accident · Serious injuriesClass 4 · LimitedFinal reportCessna 182G · Gunnison, COThe pilot’s improper decision to fly into an area of unsuitable terrain which the airplane was unable to exit, resulting in an aerodynamic stall and subsequent impact with terrain.Jun 23, 2023 · N3289S · DestroyedNTSB CEN22LA422Accident · No injuriesClass 4 · LimitedFinal reportPiper PA-18-150 · Galena, AKThe pilot’s selection of unsuitable terrain for landing which resulted in a nose over.Sep 7, 2022 · N590DC · Substantial damageNTSB CEN22LA373Accident · No injuriesClass 4 · LimitedFinal reportCessna 180C · Cantwell, AKThe pilot's excessive brake application during the landing roll that resulted in a nose over.Aug 4, 2022 · N9211T · Substantial damageNTSB CEN22LA340Accident · No injuriesClass 4 · LimitedFinal reportWeatherly 620A · Stewart, MNThe pilot’s failure to maintain adequate clearance from crops during an agricultural flight.Jul 25, 2022 · N4651W · Substantial damageNTSB CEN21LA224Accident · Serious injuriesClass 3 · LimitedFinal reportDJI Matrice · Young Harris, GAThe remote pilot-in-command’s (RPIC) decision to physically hold onto the drone’s landing gear in flight, which resulted in the rotors striking his hand and causing serious injury. Contributing to the accident was the RPIC’s inadequate preflight planning and…May 6, 2021 · FA3HW43WTF · Minor damageNTSB ERA18LA020Accident · Minor injuriesClass 3 · LimitedFinal reportBell 206 · Union City, TNThe pilot’s inadvertent slope landing and attempted recovery, which resulted in an incipient dynamic rollover, mast bumping, and separation of the main rotor.Nov 8, 2017 · N275AE · Substantial damageNTSB WPR16LA093Accident · Serious injuriesLimited investigationFinal reportCessna 172 · Avalon, CAThe pilot's failure to maintain a proper approach path on landing because he failed to familiarize himself with the airport's unique approach hazards and recommended procedures before the flight. Also causal was the pilot's failure to recognize the airplane's…Apr 17, 2016 · N7133G · DestroyedNTSB GAA16LA135Accident · No injuriesLimited investigationFinal reportPinkston Randy T RV-7 · Tavernier, FLThe pilot's misidentification of a parallel roadway for the runway and the airplane's subsequent collision with numerous objects during landing.Feb 18, 2016 · N705RP · Substantial damageNTSB ANC15CA072Accident · No injuriesData collectionFinal reportCessna 150D · Delta Junction, AKThe pilots decision to land on an unfamiliar, unimproved airstrip which resulted in a loss of control and runway excursion.Sep 7, 2015 · N5947T · Substantial damage
See all 24 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\", '02032030'))
  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.