NTSB finding · Personnel issues › Experience/knowledge › Training

Cases
8
In the probable cause
7 (88%)
Fatal cases
2
NTSB code
02031535

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 Type/qual of instruct/training per year: 8 cases
20091
20111
20121
20132
20191
20211
20231
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\", '02031535') 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\", '02031535'))
  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\", '02031535') 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 · 8

NTSB CEN23FA125Accident · 2 fatalClass 3 · FieldFinal reportRobinson Helicopter R44 · Port O'Connor, TXThe pilot’s initiation of the visual flight into instrument meteorological conditions, which resulted in spatial disorientation and a subsequent loss of helicopter control. Contributing to the accident was the pilot’s flicker vertigo during the flight.Mar 7, 2023 · N494SH · DestroyedNTSB DCA21LA096Accident · Serious injuriesClass 4 · LimitedFinal reportBombardier CL-600-2C10 · Los Angeles, CAthe improper retraction of the main cabin door, which resulted in the flight attendant falling when she opened the door at the destination.Mar 16, 2021 · N706SK · No damageNTSB WPR19MA177Accident · 11 fatalClass 2 · MajorFinal reportBeech 65-A90 · Mokuleia, HIThe pilot’s aggressive takeoff maneuver, which resulted in an accelerated stall and subsequent loss of control at an altitude that was too low for recovery. Contributing to the accident were (1) the operation of the airplane near its aft center of gravity…Jun 22, 2019 · N256TA · DestroyedNTSB CEN14LA036Accident · Minor injuriesLimited investigationFinal reportCessna 182L · Superior, WIThe failure of the pilot who was flying the trail airplane to maintain separation from the lead airplane. Contributing to the accident was the inadequate pilot training for formation skydiving operations.Nov 2, 2013 · N70520 · 2 aircraft · DestroyedNTSB CEN13LA342Accident · Minor injuriesLimited investigationFinal reportCessna 150K · Morrilton, ARThe flight instructor's inadequate training and oversight of the student pilot, which resulted in the noncertificated student pilot's loss of control during landing.Jun 10, 2013 · N6412G · Substantial damageNTSB CEN12LA414Accident · Minor injuriesLimited investigationFinal reportCessna 172S · Glenwood Springs, COThe pilot's decision to fly into a mountainous area where conditions were such that the airplane was unable to climb above rising terrain. Contributing to the accident was the pilot's insufficient pilot-in-command experience and inadequate training in…Jun 30, 2012 · N917SA · Substantial damageNTSB OPS11IA653Incident · No injuriesIncident investigationFinal reportBeech 1900C · Fairbanks, AKInadequate air traffic control actions that failed to establish and maintain required separation between the two airplanes. Contributing to the incident was inexperience on the part of the local controller, inadequate oversight by the tower…Jun 14, 2011 · N121WV · 2 aircraft · No damageNTSB OPS09IA009Incident · No injuriesIncident investigationFinal reportBombardier DHC-8-202 · Cleveland, OHThe local controller did not visually scan the runways and ensure that the E145 had crossed runway 24L prior to issuing a takeoff clearance to the DH8, did not ensure separation between the two airplanes, and did not cancel takeoff clearance for the DH8 in a…Jun 26, 2009 · N375PH · 2 aircraft · No damage
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\", '02031535'))
  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.