NTSB finding · Aircraft › Aircraft structures › Fuselage

Cases
24
In the probable cause
18 (75%)
Fatal cases
3
NTSB code
01035310

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 Fuselage main structure per year: 24 cases
20093
20102
20114
20131
20152
20161
20171
20182
20191
20202
20221
20231
20251
20262
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\", '01035310') 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\", '01035310'))
  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\", '01035310') 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 · 24

NTSB DCA26LA142Accident · No injuriesClass 4 · LimitedFinal reportBoeing 787 · Houston, TXThe captain’s inadvertent activation of the takeoff/go around switch at touchdown that caused an increase in the airplane pitch attitude that was not corrected before the lower fuselage contacted the runway.Feb 27, 2026 · JA873A · Substantial damageNTSB DCA26LA115Accident · No injuriesClass 4 · LimitedFinal reportAirbus A321-271NX · San Francisco, CAThe first officer’s excessive aft sidestick input combined with decaying airspeed during initiation of a go-around, resulting in an increase in the airplane pitch attitude and subsequent lower fuselage contacting the runway.Feb 9, 2026 · N2188J · Substantial damageNTSB DCA25LA085Accident · No injuriesClass 4 · LimitedFinal reportBoeing 767 · San Bernardino, CAEncounter with windshear during landing which resulted in a tailstrike.Jan 10, 2025 · N324UP · Substantial damageNTSB CEN23LA319Accident · No injuriesClass 3 · LimitedFinal reportAlisport Silent 2 Electro · Wallis, TXThe failure of the tail boom structure due to cyclic torsion overloading as of a result of flutter in the empennage. The reason for the flutter could not be determined.Jul 22, 2023 · N64JG · 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 CEN20LA327Accident · Serious injuriesClass 3 · LimitedFinal reportGrumman G164 · Alicia, ARInadequate maintenance of panel fasteners, which led to a side panel coming loose during takeoff and the pilot having to make a subsequent forced landing to a flooded rice field when the airplane became difficult to control.Aug 3, 2020 · N8105K · Substantial damageNTSB ANC20LA064Accident · No injuriesClass 3 · LimitedFinal reportPiper PA22 · Soldotna, AKThe delamination of the fabric material from the fuselage above the windscreen due to failed adhesive, which resulted in disrupted airflow and a subsequent hard landing.Jul 4, 2020 · N3604A · Substantial damageNTSB WPR19LA171Accident · No injuriesClass 3 · LimitedFinal reportBeech 35 · Deer Park, WAAn empennage flutter event for reasons that could not be determined based on the available information.May 3, 2019 · N2839V · Substantial damageNTSB GAA18CA329Accident · No injuriesData collectionFinal reportDobbs George Coot · Malone, WIThe pilot’s improper decision to take off with a known structural issue, which resulted in hull damage.Jun 7, 2018 · N100TN · Substantial damageNTSB CEN18LA099Accident · No injuriesLimited investigationFinal reportBeech 35 · Batesville, ARAn in-flight control system flutter encounter during a turbulence encounter; the reason for the flutter could not be determined.Feb 8, 2018 · N4654D · Substantial damage
See all 24 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\", '01035310'))
  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.