Design

NTSB finding section · Organizational issues › Development

Cases
66
In the probable cause
57 (86%)
Fatal cases
16
NTSB code
040110

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 Design per year: 66 cases
20086
20099
20104
20119
20127
20135
20144
20152
20165
20173
20192
20201
20211
20222
20232
20243
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\", '040110') 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\", '040110') 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\", '040110'))
  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\", '040110') 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 · 66

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 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 CEN24LA318Accident · No injuriesClass 3 · LimitedFinal reportAyres S2R · Stanwood, MIThe pilot’s failure to maintain terrain clearance during a low-level aerial application flight, which resulted in impact with terrain and a subsequent forced landing. Contributing to the accident was the location of the spray boom pressure gauge, which…Jun 20, 2024 · N4004K · Substantial damageNTSB ERA24LA216Accident · Serious injuriesClass 3 · LimitedFinal reportApellix B1 Washing Drone · Orlando, FLA failure of the sUAS’s magnetometer while operating in close proximity to commercial air conditioning equipment, which resulted in the sUAS’s erratic maneuvering. Contributing to the accident was the RPIC’s failure to input the appropriate command to disarm…Feb 20, 2024 · FA33N7WLTR · Substantial damageNTSB WPR24FA053Accident · 1 fatalClass 3 · FieldFinal reportBeauchamp Norm Kitfox · Eloy, AZThe separation of a propeller blade during the initial climb due to insufficient blade retention forces. Contributing to the accident was the propeller blade retention design, manufacturing defects that prevented the propeller from achieving adequate grip…Dec 8, 2023 · N66180 · DestroyedNTSB DCA23LA133Incident · No injuriesClass 3 · LimitedFinal reportBoeing 777-222 · Honolulu, HIThe airport’s continued use of taxiway Kilo, despite an identified risk of pilots repeatedly failing to stop at a hold short line prior to two intersecting runways. Contributing were 1) the operator’s moving map display, which omitted a published restriction…Jan 24, 2023 · N774UA · 2 aircraft · No damageNTSB ERA23FA007Accident · 1 fatalClass 3 · FieldFinal reportSeamax M-22 · East Hampton, NYAn inflight separation of the right wing as a result of the manufacturer’s application of a bolt and nut in the upper wing strut attachment point that was inconsistent with the nut design intent and usage limitations.Oct 6, 2022 · N46PD · Substantial damageNTSB DCA22LA175Accident · No injuriesClass 4 · LimitedFinal reportBoeing 777 · Chicago, ILThe ground controller’s inappropriate routing of the B777 through a non-movement area, resulting in the airplane’s right wingtip contacting a light pole. Contributing to the accident was the lack of an appropriate display of taxiway BB2 as a restricted…Aug 6, 2022 · A7-BFH · Substantial damageNTSB DCA21FA085Incident · No injuriesClass 3 · FieldFinal reportBoeing 777-222 · Broomfield, COThe fatigue failure of the right engine fan blade. Contributing to the fan blade failure was the inadequate inspection of the blades, which failed to identify low-level indications of cracking, and the insufficient frequency of the manufacturer’s inspection…Feb 20, 2021 · N772UA · Minor damageNTSB DCA20IA081Incident · No injuriesClass 3 · IncidentFinal reportAerospatiale AS350BA · Johnson Valley, CAthe failure of the small UAS remote pilot to give way to the helicopter, resulting in an inflight collision. Contributing to the incident was the sUAS remote pilot’s failure to assess and mitigate the risks of operations in close proximity to other aircraft.…Feb 6, 2020 · N611TC · 2 aircraft · Minor damage
See all 66 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\", '040110'))
  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.