Training

NTSB finding section · Organizational issues › Support/oversight/monitoring

Cases
55
In the probable cause
38 (69%)
Fatal cases
21
NTSB code
040310

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 Training per year: 55 cases
20085
20093
20102
20112
20124
20137
20143
20153
20166
20175
20186
20192
20212
20221
20232
20242
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\", '040310') 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 · 6

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\", '040310') 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\", '040310'))
  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\", '040310') 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 · 55

NTSB ANC25LA008Accident · Serious injuriesClass 3 · LimitedFinal reportCub Crafters CC18-180 · Anchorage, AKThe incorrect installation of the rear flight control stick, resulting in the pilot’s inability to control the pitch attitude, coupled with the pilot’s inadequate control system check before departure, all which resulted in an aerodynamic stall during takeoff.Nov 2, 2024 · N55PK · Substantial damageNTSB DCA24MA063Accident · Minor injuriesClass 1 · MajorFinal reportBoeing 737-9 · Portland, ORthe in-flight separation of the left mid exit door (MED) plug due to Boeing Commercial Airplanes’ failure to provide adequate training, guidance, and oversight necessary to ensure that manufacturing personnel could consistently and correctly comply with its…Jan 6, 2024 · N704AL · Substantial damageNTSB DCA23LA384Accident · No injuriesClass 3 · LimitedFinal reportBoeing 767-322 · Houston, TXThe first officer’s improper control inputs after the airplane touched down. Contributing to the severity of the damage was the flight crew’s lack of recognition that the speedbrakes were not armed, which led to their delayed deployment.Jul 29, 2023 · N641UA · Substantial damageNTSB DCA23FA149Incident · No injuriesClass 1 · FieldFinal reportBoeing 737-79P · Austin, TXthe local controller’s incorrect assumption that the Southwest Airlines (SWA) airplane would depart from the runway before the Federal Express airplane arrived on the same runway, which resulted in a loss of separation between both airplanes. Contributing to…Feb 4, 2023 · N7827A · 2 aircraft · No damageNTSB ANC23FA008Accident · 3 fatalClass 3 · FieldFinal reportRaytheon C90A · Kaupo, HIGuardian Flight’s inadequate pilot training and performance tracking, which failed to identify and correct the pilot’s consistent lack of skill, and which resulted in the pilot’s inability to maintain his position inflight using secondary instruments to…Dec 15, 2022 · N13GZ · Substantial damageNTSB DCA22MA009Accident · Serious injuriesClass 2 · MajorFinal reportMcdonnell Douglas DC-9-87 (MD-87) · Brookshire, TXThe jammed condition of both elevators, which resulted from exposure to localized, dynamic high wind while the airplane was parked and prevented the airplane from rotating during the takeoff roll. Also causal was the failure of Everts Air Cargo, the pilots’…Oct 19, 2021 · N987AK · DestroyedNTSB WPR21FA143Accident · 5 fatalClass 3 · FieldFinal reportAirbus Helicopters AS350-B3 · Palmer, AKThe pilot’s failure to adequately respond to an encounter with whiteout conditions, which resulted in the helicopter’s collision with terrain. Contributing to the accident was the (1) operator’s inadequate pilot training program and pilot competency checks,…Mar 28, 2021 · N351SH · Substantial damageNTSB ANC20MA010Accident · 7 fatalClass 1 · MajorFinal reportAirbus AS350B2 · Kekaha, HIThe pilot’s decision to continue flight under visual flight rules (VFR) into instrument meteorological conditions (IMC), which resulted in the collision into terrain. Contributing to the accident was Safari Aviation Inc.’s lack of safety management processes…Dec 27, 2019 · N985SA · DestroyedNTSB 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 DCA19IA036Incident · No injuriesClass 3 · IncidentFinal reportBoeing 737 · Burbank, CA(1) The flight crewmembers’ decision, due to plan continuation bias, to continue the approach despite indications of windshear and a higher-than-expected tailwind and (2) the flight crew’s misperception of the airplane’s touchdown point, which was farther…Dec 6, 2018 · N752SW · Minor damage
See all 55 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\", '040310'))
  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.