NTSB finding section · Environmental issues › Operating environment

Cases
14
In the probable cause
8 (57%)
Fatal cases
2
NTSB code
030100

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 Operating environment, general per year: 14 cases
20091
20102
20131
20141
20171
20191
20212
20231
20243
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\", '030100') 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\", '030100') 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\", '030100'))
  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\", '030100') 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 · 14

NTSB WPR25FA090Accident · No injuriesClass 3 · FieldFinal reportBeech B24R · Skull Valley, UTThe flight instructor’s improper fuel management, which resulted in fuel starvation and a total loss of engine power. Contributing to the accident were multiple distractions that diverted the flight instructor’s attention from the proper monitoring and…Feb 10, 2025 · N9324S · Substantial damageNTSB ERA24LA375Accident · No injuriesClass 3 · LimitedFinal reportAir Tractor AT-802 · Hickory Valley, TNA partial loss of engine power due to a leak in the fuel control unit bellows, which resulted in the fuel valve moving to minimum fuel flow.Sep 10, 2024 · N802JF · Substantial damageNTSB CEN24LA196Accident · No injuriesClass 4 · LimitedFinal reportPiper PA28 · New Century, KSThe inability of the Boeing 75 pilot to anticipate that the Piper would stop earlier on the taxiway which resulted in the on-ground collision.May 11, 2024 · N3574C · 2 aircraft · Substantial damageNTSB WPR24LA068Accident · No injuriesClass 3 · LimitedFinal reportCessna 421C · Carson City, NVAirport personnel’s failure to properly prioritize their response actions, including updating the airport’s automated weather observation system recording in a timely manner to notify incoming pilots of a runway closure, which resulted in an airplane striking…Jan 8, 2024 · N421TP · Substantial damageNTSB DCA23LA232Accident · No injuriesClass 4 · LimitedFinal reportMcdonnell Douglas MD-88 · Saltillo, MexicoThe pilot's failure to adequately compensate for a wind shift while on short final approach which resulted in a higher than normal sink rate and a tailstrike.Mar 24, 2023 · N834US · Substantial damageNTSB CEN21LA224Accident · Serious injuriesClass 3 · LimitedFinal reportDJI Matrice · Young Harris, GAThe remote pilot-in-command’s (RPIC) decision to physically hold onto the drone’s landing gear in flight, which resulted in the rotors striking his hand and causing serious injury. Contributing to the accident was the RPIC’s inadequate preflight planning and…May 6, 2021 · FA3HW43WTF · Minor damageNTSB CEN21LA155Accident · No injuriesClass 3 · LimitedFinal reportRobinson Helicopter R44 · Dunn, TXThe loss of rotor RPM for reasons that could not be determined based on available evidence.Feb 26, 2021 · N7184N · Substantial damageNTSB DCA20CA046Accident · Serious injuriesClass 4 · Data collectionFinal reportBoeing 737 · Chicago, ILan abrupt stop during taxi to avoid a collision with another airplane, causing a flight attendant to fall.Dec 19, 2019 · N68802 · No damageNTSB GAA17CA452Accident · No injuriesData collectionFinal reportPiper PA28 · St. Joseph, ILThe pilot’s improper landing flare, which resulted in the nose landing gear collapsing and subsequent loss of directional control.Jul 30, 2017 · N2204B · Substantial damageNTSB WPR14LA271Accident · Serious injuriesLimited investigationFinal reportCessna 182Q · Big Creek, IDThe pilot’s execution of a traffic pattern that did not put the airplane in position for a normal final approach and the pilot’s decision to continue the landing attempt instead of initiating a go-around, which resulted in the airplane exceeding its critical…Jun 29, 2014 · N132K · Substantial damage
See all 14 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\", '030100'))
  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.