Fabrication

NTSB finding · Personnel issues › Task performance › Maintenance

Cases
30
In the probable cause
26 (87%)
Fatal cases
7
NTSB code
02062025

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 Fabrication per year: 30 cases
20082
20092
20102
20114
20121
20143
20152
20163
20171
20182
20191
20213
20221
20231
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\", '02062025') 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\", '02062025'))
  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\", '02062025') 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 · 30

NTSB 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 ERA24LA195Accident · No injuriesClass 4 · LimitedFinal reportReddick Jonathan L Zodiac 601XLB · Dunbar, PAA total loss of engine power as a result of an improperly fabricated fuel-air mixture cable bracket. Contributing was the pilot’s decision to fly the airplane with a known mechanical engine issue, and the presence of another airplane that was back taxiing on…Apr 27, 2024 · N601DR · DestroyedNTSB CEN24LA038Accident · Minor injuriesClass 3 · LimitedFinal reportBede BD-4 · Lowell, INFatigue cracking of the propeller blade root, which resulted in the in-flight separation of the propeller blade from its root. Contributing to the accident was the improper machining of the blade root threads, which resulted in chatter/ratchet marks that…Nov 14, 2023 · N931AS · Substantial damageNTSB WPR22FA169Accident · 2 fatalClass 3 · FieldFinal reportBearhawk LSA · Kalispell, MTAn excessive pitch control input for undetermined reasons while the airplane was operating above maneuvering speed, which led to a structural failure of the right wing during cruise flight. Contributing to the accident was the poor construction quality of the…Apr 30, 2022 · N1908A · Substantial damageNTSB CEN21LA326Accident · Serious injuriesClass 3 · LimitedFinal reportGary James Lail Zenith CH 750 Cruzer · Blossom, TXThe improper swaging of the rudder control cable, which disconnected during flight and resulted in the loss of control.Jul 17, 2021 · N9667Z · Substantial damageNTSB CEN21LA241Accident · Serious injuriesClass 3 · LimitedFinal reportPipistrel Alpha Trainer · Fort Collins, COA partial loss of engine power due to the failure of the throttle control cable, which resulted in the loss of control of the dual carburetor system. The cable failure was a result of improper soldering at the throttle cable input terminal on the splitter…May 28, 2021 · N119JP · Substantial damageNTSB WPR21LA108Accident · No injuriesClass 3 · LimitedFinal reportAbbett Gerry Lancair Evolution · Saratoga, WYA windshield failure during cruise flight due to stress concentrations in the bond area as a result of improper assembly of the windshield.Feb 8, 2021 · N7569A · Substantial damageNTSB WPR20LA035Accident · No injuriesClass 3 · LimitedFinal reportZenith Stol CH701 · Byron, CAThe pilot/builder's improper construction of the cowling, which resulted in inadequate venting of the engine, its overheating, and a partial loss of engine power.Nov 29, 2019 · N701WJ · Substantial damageNTSB WPR18FA260Accident · 1 fatalField investigationFinal reportRobert L Coons RotorWay RW 1 · Billings, MTThe pilot's failure to maintain clearance with a hangar while maneuvering to his hangar. Contributing to the accident was the pilot's limited experience in helicopters.Sep 12, 2018 · N166LC · Substantial damageNTSB ERA18FA240Accident · 1 fatalField investigationFinal reportLance M Hooley Jetez · Covington, TNThe improper manufacture of the left wing, which resulted in a left wing flutter event and failure at low altitude and high speed.Sep 1, 2018 · N815EY · Destroyed
See all 30 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\", '02062025'))
  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.