NTSB finding · Personnel issues › Action/decision › Info processing/decision

Cases
559
In the probable cause
504 (90%)
Fatal cases
111
NTSB code
02041510

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 Identification/recognition per year: 559 cases
200823
200916
201026
201131
201234
201320
201440
201526
201625
201729
201825
201924
202030
202127
202240
202339
202442
202542
202620
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\", '02041510') 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\", '02041510'))
  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\", '02041510') 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 · 559

NTSB CEN26LA300Accident · Minor injuriesClass 4 · LimitedFinal reportCessna T206H · Marble, COThe pilot's failure to maintain directional control during the final approach in variable and gusting wind conditions. Contributing to the accident were localized wind effects associated with mountainous terrain and with nearby convective activity.Aug 21, 2026 · N464PM · Substantial damageNTSB CEN26LA244Accident · Serious injuriesClass 4 · LimitedFinal reportCassutt Iiim · Odessa, TXThe pilot’s exceedance of the airplane’s critical angle of attack during the initial climb, which led to an aerodynamic stall and a loss of airplane control at too low of an altitude to recover. Contributing to the accident was the pilot’s lack of recent…Jul 5, 2026 · N45889 · Substantial damageNTSB WPR26LA234Accident · No injuriesClass 4 · LimitedFinal reportPiper PA-12 · Dixie, IDThe pilot's delayed decision to initiate a go-around and subsequent failure to maintain clearance from rising terrain.Jun 23, 2026 · N3013M · Substantial damageNTSB ERA26LA248Accident · No injuriesClass 4 · LimitedFinal reportCessna 172 · Brooksville, FLThe student pilot’s failure to ensure clearance while taxiing, which resulted in contact with another airplane that was performing an engine run-up.Jun 23, 2026 · N413AA · 2 aircraft · Substantial damageNTSB WPR26LA230Accident · No injuriesClass 4 · LimitedFinal reportStephen Aberle Chipper CH-2A · Alva, OKThe pilot's decision to taxi the tailwheel-equipped airplane over uneven terrain while operating with limited forward visibility, which resulted in the left main landing gear entering a hole.Jun 21, 2026 · N618SA · Substantial damageNTSB WPR26LA222Accident · Minor injuriesClass 4 · LimitedFinal reportCessna 172S · Death Valley, CAThe pilot’s failure to maintain airspeed and encounter with a tailwind while landing on a rough runway, which resulted in a runway overrun and subsequent nose over.Jun 17, 2026 · N96FA · Substantial damageNTSB ERA26LA229Accident · No injuriesClass 4 · LimitedFinal reportHawker Beechcraft G36 · Danbury, CTThe pilot’s decision to abort the takeoff with insufficient runway remaining, which resulted in a runway excursion.Jun 4, 2026 · N726EA · Substantial damageNTSB WPR26LA172Accident · No injuriesClass 4 · LimitedFinal reportBell 407 · Young, AZThe pilot’s failure to maintain clearance from a tree stump during landing in mountainous terrain.Apr 29, 2026 · N407BB · Substantial damageNTSB WPR26LA167Accident · No injuriesClass 4 · LimitedFinal reportCzech Sport Piper Sport · Crownpoint, NMThe pilot’s failure to correctly identify the runway, which resulted in a landing on a residential driveway and collision with a gate.Apr 24, 2026 · N610PS · Substantial damageNTSB CEN26LA168Accident · Minor injuriesClass 4 · LimitedFinal reportRobinson Helicopter R44 · Mount Blanco, TXThe pilot’s failure to maintain proper main rotor rpm during a low-level turn, which resulted in the main rotor rpm drooping, a loss of control at an altitude too low for recovery, and a subsequent impact with terrain.Apr 17, 2026 · N445JS · Substantial damage
See all 559 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\", '02041510'))
  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.