NTSB finding · Aircraft › Aircraft power plant › Engine (reciprocating)

Cases
373
In the probable cause
361 (97%)
Fatal cases
43
NTSB code
01058530

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 Recip eng cyl section per year: 373 cases
200816
200923
201025
201128
201224
201323
201423
201521
201623
201723
201824
201918
202021
202112
202230
202317
202419
20253
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\", '01058530') 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\", '01058530'))
  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\", '01058530') 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 · 373

NTSB CEN25LA322Accident · No injuriesClass 3 · LimitedFinal reportPiper PA-18-150 · Joliet, ILThe failure of the No. 2 cylinder exhaust valve, which resulted in a total loss of engine power.Aug 14, 2025 · N476SM · Substantial damageNTSB ERA25FA230Accident · 2 fatalClass 3 · FieldFinal reportMooney M20F · Beverly, MAThe pilot’s failure to maintain control of the airplane while maneuvering to return to the airport which resulted in an aerodynamic stall. Contributing to the accident was the improperly installed No. 2 cylinder bottom spark plug by maintenance personnel,…Jun 19, 2025 · N9573M · Substantial damageNTSB CEN25LA093Accident · Minor injuriesClass 3 · LimitedFinal reportRobinson Helicopter R22 Beta · Spearman, TXImproperly torqued intake manifold bolts that allowed unmetered air to enter the engine, resulting in an overly lean fuel-air mixture, eventual failure of the No. 3 cylinder intake valve, and a total loss of engine power.Feb 7, 2025 · N7191B · Substantial damageNTSB WPR25LA030Accident · No injuriesClass 3 · LimitedFinal reportPiper PA-32-300 · Prescott Valley, AZSeparation of the No. 3 engine cylinder due to a loss of torque on the cylinder base nuts, which resulted in a loss of engine power and in-flight fire. Contributing to the accident was maintenance personnel’s failure to ensure the engine case and cylinder…Oct 31, 2024 · N154DC · Substantial damageNTSB ERA24LA392Accident · Minor injuriesClass 3 · LimitedFinal reportPiper PA28 · LaGrange, GAImproper manufacture of a cylinder exhaust valve guide by the engine manufacturer, which resulted in a stuck exhaust valve and a partial loss of engine power during initial climb.Sep 23, 2024 · N4298V · Substantial damageNTSB CEN24LA354Accident · Minor injuriesClass 3 · LimitedFinal reportCessna 170A · Marshall, INThe fatigue fracture of the No. 6 piston connecting rod, which resulted in a loss of engine power.Sep 11, 2024 · N1249D · Substantial damageNTSB CEN24LA317Accident · No injuriesClass 3 · LimitedFinal reportVans RV8 · Guthrie, OKA loss of engine power due to the separation and ingestion of an air filter retaining bracket into the engine cylinder.Aug 15, 2024 · N184DC · Substantial damageNTSB ERA24LA299Accident · Minor injuriesClass 3 · LimitedFinal reportBellanca 8GCBC · Frankford, DEA partial loss of engine power resulting from cylinder detonation and a cracked spark plug, which resulted in a forced landing and impact with terrain.Jul 4, 2024 · N749SK · Substantial damageNTSB WPR24LA229Accident · Minor injuriesClass 3 · LimitedFinal reportCessna 172N · San Diego, CAA failure of the No. 2 cylinder due to fatigue cracking as the result of an undersized fillet radius around the edge of the cylinder head dome.Jul 2, 2024 · N74C · Substantial damageNTSB ANC24LA057Accident · No injuriesClass 4 · LimitedFinal reportDehavilland-Kenmore DHC-2 · Juneau, AKA partial loss of engine power during initial climb due to a cracked cylinder.Jun 28, 2024 · N590DB · Substantial damage
See all 373 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\", '01058530'))
  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.