NTSB finding · Environmental issues › Physical environment › Object/animal/substance

Cases
224
In the probable cause
80 (36%)
Fatal cases
7
NTSB code
03022000

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 Object/animal/substance, general per year: 224 cases
200815
20099
201013
201113
20125
20135
201412
201522
201628
201728
201833
201926
20206
20213
20222
20233
20251
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\", '03022000') 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\", '03022000'))
  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\", '03022000') 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 · 224

NTSB WPR25LA074Accident · No injuriesClass 4 · LimitedFinal reportPiper PA-18-150 · Red Rock, MTThe pilot's failure to maintain directional control during takeoff, which resulted in an impact with deep snow and vegetation.Jan 6, 2025 · N4644Y · Substantial damageNTSB ANC24FA008Accident · 2 fatalClass 3 · FieldFinal reportPiper PA-18-150 · Anchor Point, AKAn impact to the left wing, at an undetermined time, for reasons that could not be determined, which partially separated the left wing and rendered the airplane uncontrollable.Dec 8, 2023 · N1880P · DestroyedNTSB WPR23FA289Accident · Serious injuriesClass 3 · FieldFinal reportCessna 177 · Gillette, WYThe pilot's decision to depart the high-density-altitude airport with the airplane at the maximum gross weight limit.Jul 29, 2023 · N3357T · Substantial damageNTSB ERA23LA215Accident · No injuriesClass 4 · LimitedFinal reportAir Tractor AT-402A · Good Hope, ALThe pilot’s decision to land on a runway where there was insufficient clearance from obstructions (wheat crop) to operate safely.Apr 24, 2023 · N623LA · Substantial damageNTSB CEN22LA408Accident · No injuriesClass 4 · LimitedFinal reportAir Tractor AT-602 · Murray, NEThe pilot’s failure to maintain airplane control during landing resulting in an impact with crop and a subsequent ground-loop. Contributing was the wet turf airstrip.Aug 25, 2022 · N5951B · Substantial damageNTSB CEN22LA340Accident · No injuriesClass 4 · LimitedFinal reportWeatherly 620A · Stewart, MNThe pilot’s failure to maintain adequate clearance from crops during an agricultural flight.Jul 25, 2022 · N4651W · Substantial damageNTSB WPR22LA013Accident · No injuriesClass 4 · LimitedFinal reportCessna 172N · Laurier, WAThe flight instructor’s delayed remedial action to prevent the airplane from landing long which, resulted in a runway overrun and collision with terrain.Oct 17, 2021 · N832DC · Substantial damageNTSB WPR21LA351Accident · No injuriesClass 4 · LimitedFinal reportGeorge A. Thiel Just Aircraft Highlander · Monroe, WAThe in-flight malfunction of the throttle control pivot arm, which resulted in a total loss of engine power and the subsequent collision with terrain during the forced landing.Sep 21, 2021 · N488VG · Substantial damageNTSB CEN21LA128Accident · No injuriesClass 4 · LimitedFinal reportAgustawestland Philadelphia AW119MKII · Alexandria, MNThe helicopter’s impact with an object on departure that could not be determined.Feb 13, 2021 · N352LL · Substantial damageNTSB CEN21LA077Accident · No injuriesClass 4 · LimitedFinal reportRobinson Helicopter R44 II · Marietta, TXThe pilot’s failure to see and avoid a transmission wire during takeoff.Dec 5, 2020 · N371MP · Substantial damage
See all 224 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\", '03022000'))
  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.