NTSB finding section · Aircraft › Aircraft handling/service

Cases
206
In the probable cause
148 (72%)
Fatal cases
30
NTSB code
010105

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 Maintenance/inspections per year: 206 cases
200810
200920
201020
201115
201215
201315
201421
201519
201613
201712
20189
20195
20204
20216
202210
20236
20246
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\", '010105') 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 · 5

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\", '010105') 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\", '010105'))
  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\", '010105') 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 · 206

NTSB ERA25LA064Accident · Serious injuriesClass 3 · LimitedFinal reportAMS Flight D O O Carat A · Centralhatchee, GAMaintenance personnel’s failure to comply with the engine manufacturer’s guidance, which resulted in improper valvetrain clearances, unseating of the intake valve keepers, and a total loss of engine power.Nov 20, 2024 · N17GF · Substantial damageNTSB ERA25LA012Accident · Serious injuriesClass 3 · LimitedFinal reportPiper PA28 · Louisville, KYA total loss of engine power for undetermined reasons.Oct 11, 2024 · N5006W · Substantial damageNTSB CEN25LA013Accident · Minor injuriesClass 3 · LimitedFinal reportRotorway Exec · Plymouth, INA loss of control due to the failed forward tail rotor belt as a result of the owner’s failure to follow the helicopter manufacturer’s tail rotor belt replacement recommendations.Oct 11, 2024 · N314AC · Substantial damageNTSB WPR24LA260Accident · No injuriesClass 3 · LimitedFinal reportKitfox Series V · La Grande, ORSeparation of the propeller blades from progressive damage at the blade roots due to overtightening of the hub bolts.Jul 23, 2024 · N53562 · Substantial damageNTSB ERA24FA301Accident · 1 fatalClass 3 · FieldFinal reportCessna 402B · Aguadilla, PRThe pilot’s decision to operate the airplane with known maintenance discrepancies, which resulted in a total loss of right engine power. Contributing to the outcome was the pilot’s failure to maintain airspeed while returning to the airport with a single…Jul 11, 2024 · N4167G · DestroyedNTSB CEN24LA315Accident · No injuriesClass 3 · LimitedFinal reportGrumman American Avn. AA-5B · Camdenton, MOThe inadequate maintenance of the seat locking mechanism, which resulted in the pilot’s seat sliding back during takeoff and a subsequent loss of control.Jul 11, 2024 · N23JK · Substantial damageNTSB CEN23LA363Accident · Minor injuriesClass 4 · LimitedFinal reportBeech C-99 · Lansing, MIThe pilot’s failure to properly set the rudder trim position which resulted in a loss of directional control during takeoff. Contributing was the pilot’s inadequate checklist procedures prior to takeoff.Aug 15, 2023 · N261SW · Substantial damageNTSB CEN23FA314Accident · 1 fatalClass 3 · FieldFinal reportPiper PA-31P · Kearney, MOThe pilot’s decision to operate an airplane with known fuel leaks, his failure to conduct an engine run-up before takeoff, his subsequent failure to abort the takeoff, and the mechanic’s inadequate maintenance, which resulted in a partial loss of right engine…Jul 20, 2023 · N200RA · DestroyedNTSB CEN23LA255Accident · Serious injuriesClass 4 · LimitedFinal reportPiper PA-25-235 · Westhope, NDThe pilot’s failure to maintain aircraft control that resulted in an impact with terrain after takeoff.Jun 22, 2023 · N7419Z · Substantial damageNTSB ENG23LA030Incident · No injuriesClass 3 · LimitedFinal reportGulfstream Aerospace G-IV · Sioux City, IAA No. 2 (right) engine failure due to a spinner fairing separation and subsequent impact with the fan blades that resulted in a midspan fracture of one fan blade. The spinner fairing separated as a result of a fatigue crack that originated from the heat…Jun 17, 2023 · N926TT · Minor damage
See all 206 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\", '010105'))
  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.