NTSB finding section · Personnel issues › Physical

Cases
12
In the probable cause
10 (83%)
Fatal cases
2
NTSB code
020110

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 Physical characteristic per year: 12 cases
20101
20132
20151
20182
20212
20222
20252
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\", '020110') 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 · 5

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\", '020110') 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\", '020110'))
  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\", '020110') 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 · 12

NTSB ERA25LA197Accident · No injuriesClass 4 · LimitedFinal reportArlie L Raber III Challenger 1 · Crestview, FLThe pilot’s decision to take off despite having problems controlling the airplane due to his physical stature.May 4, 2025 · N59BR · Substantial damageNTSB ERA25LA147Accident · Serious injuriesClass 4 · LimitedFinal reportChampion 7AC · Palmetto, FLThe flight instructor’s inability to overpower control inputs made by the student pilot during initial climb, which resulted in the airplane impacting powerlines and the ground.Mar 18, 2025 · N1369E · Substantial damageNTSB CEN22LA238Accident · Serious injuriesClass 4 · LimitedFinal reportAerostar International RX 8 · Hot Springs, SDThe passenger lost her grip during landing in a balloon which resulted in her hitting the ground with her shoulder and suffering a serious injury.Jun 8, 2022 · N9158Z · No damageNTSB CEN22LA159Accident · Serious injuriesClass 4 · LimitedFinal reportAerostar International RXS-8 · Yutan, NEThe pilot’s improper brace during landing which resulted in a serious injury during the landing sequence.Mar 28, 2022 · N9106Q · Minor damageNTSB ERA22LA068Accident · Minor injuriesClass 4 · LimitedFinal reportCessna 172M · Indian Trail, NCThe pilot’s failure to maintain airplane control during takeoff and initial climb. Contributing was the pilot’s physical limitation which caused an inadvertent application of left rudder.Sep 27, 2021 · N1401U · Substantial damageNTSB WPR21LA123Accident · Serious injuriesClass 3 · LimitedFinal reportAermacchi Impala MB-326M · Edwards, CAThe flight crew’s restricted rudder inputs while in an inverted spin that precluded spin recovery.Mar 5, 2021 · N155TP · DestroyedNTSB WPR18LA163Accident · 1 fatalLimited investigationFinal reportNorth Wing Pulse · Mountain Home, IDThe hang glider's encounter with a developing vortex or dust devil while maneuvering during an airshow routine, which resulted in a loss of control at an altitude that precluded recovery. Contributing to the accident was the pilot's preexisting and worsening…Jun 2, 2018 · N62073 · Substantial damageNTSB ERA18LA087Accident · Minor injuriesClass 3 · LimitedFinal reportAero Commander Callair A 9 · Bunn, NCThe glider instructor's delayed remedial action when the glider became out of position during aerotow, which resulted in excessive side-loading of the release hook and a delay in the glider's release from tow, which resulted in the towplane’s descent and…Feb 24, 2018 · N8401V · Substantial damageNTSB ERA16FA043Accident · 2 fatalField investigationFinal reportBeech A36TC · Orlando, FLThe pilot's failure to maintain adequate airspeed while turning to join the final approach leg of the airport traffic pattern with full airplane-nose-up trim, which resulted in the airplane exceeding its critical angle of attack and experiencing an…Nov 20, 2015 · N7FG · DestroyedNTSB ERA14LA005Accident · No injuriesLimited investigationFinal reportAerotek Pitts S 1T · Punta Gorda, FLThe pilot’s loss of directional control during landing. Contributing to the accident was the pilot’s decision to operate the airplane with known ergonomic restrictions due to his size.Oct 19, 2013 · N53CG · Substantial damage
See all 12 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\", '020110'))
  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.