NTSB finding section · Aircraft › Aircraft oper/perf/capability

Cases
63
In the probable cause
47 (75%)
Fatal cases
16
NTSB code
010600

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 Aircraft oper/perf/capability, general per year: 63 cases
20085
200910
20103
20114
20126
20135
20142
20151
20161
20172
20181
20193
20201
20211
20227
20234
20244
20252
20261
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\", '010600') 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 · 1

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\", '010600') 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\", '010600'))
  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\", '010600') 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 · 63

NTSB CEN26LA233Accident · No injuriesClass 4 · LimitedFinal reportBurkhart Grob Flugzeugbau G103 Twin Astir · Gregory, MIThe flight instructor’s improper planning during the simulated aborted launch which resulted in a touchdown on unsuitable terrain.Jun 3, 2026 · N4101M · Substantial damageNTSB CEN25LA190Accident · Minor injuriesClass 4 · LimitedFinal reportNelson Special · Hope, ARThe pilot’s failure to maintain airplane control during the landing roll.May 29, 2025 · N873YD · Substantial damageNTSB ANC25LA020Accident · Minor injuriesClass 3 · LimitedFinal reportCessna 172M · Kapolei, HIThe flight instructor’s failure to avoid wake turbulence from a heavy airplane departing from a parallel runway, which resulted in a loss of airplane control during initial climb after a touch-and-go landing.Feb 20, 2025 · N19867 · Substantial damageNTSB CEN25LA032Accident · No injuriesClass 4 · LimitedFinal reportRyan Navion A · Belleville, ILThe pilot’s failure to maintain airplane control during the takeoff.Oct 19, 2024 · N2341 · Substantial damageNTSB CEN25LA004Accident · Serious injuriesClass 4 · LimitedFinal reportBoeing E75 · Sanger, TXThe pilot’s failure to maintain airplane control.Oct 4, 2024 · N1612M · Substantial damageNTSB CEN24LA343Accident · No injuriesClass 4 · LimitedFinal reportRobinson Helicopter R44 · Grand Forks, NDThe student pilot’s failure to maintain helicopter control which resulted in impact with the ground. Contributing to the outcome was the flight instructor’s delayed remedial action.Sep 6, 2024 · N896J · Substantial damageNTSB WPR24LA077Accident · Minor injuriesClass 4 · LimitedFinal reportDennis Smith Eclipse 10 · Yuma, AZThe pilot’s decision to takeoff with low rotor RPM and his subsequent loss of control.Jan 17, 2024 · N70WP · Substantial damageNTSB WPR23LA315Accident · No injuriesClass 4 · LimitedFinal reportCessna 172M · Marysville, CAThe flight instructor’s failure to monitor the airplane’s speed during a high-speed taxi, resulting in a runway excursion.Aug 10, 2023 · N20268 · Substantial damageNTSB CEN23LA292Accident · No injuriesClass 4 · LimitedFinal reportCessna 172R · Burlington, VTThe student pilot’s improper landing flare, which resulted in a hard, bounced landing and the flight instructor’s delayed remedial action.Jul 5, 2023 · N64AF · Substantial damageNTSB ERA23FA270Accident · 2 fatalClass 3 · FieldFinal reportPiper PA-30 · Ebensburg, PAThe pilot’s spatial disorientation and subsequent loss of airplane control, which resulted in an uncontrolled descent and collision with terrain.Jun 17, 2023 · N7628Y · Destroyed
See all 63 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\", '010600'))
  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.