NTSB finding section · Environmental issues › Operating environment

Cases
10
In the probable cause
9 (90%)
Fatal cases
1
NTSB code
030120

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 Approach aid coverage/avail per year: 10 cases
20082
20091
20151
20161
20182
20192
20221
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\", '030120') 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\", '030120') 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\", '030120'))
  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\", '030120') 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 · 10

NTSB WPR23LA065Accident · No injuriesClass 4 · LimitedFinal reportPiper PA42 · Lewistown, MTThe pilot’s improper landing flare, which resulted in a hard landing. Contributing to the accident was the out of service visual glideslope indicator and snow obscuring the runway markings.Dec 13, 2022 · C-GZPU · Substantial damageNTSB GAA19CA525Accident · Minor injuriesData collectionFinal reportCessna 182 · Charleston, WVThe pilot's improper approach path at night and his misjudgment of the landing point, which resulted in landing short of the runway and impact with the runway's engineered materials arrestor system.Sep 5, 2019 · N2408Q · Substantial damageNTSB DCA19FA089Accident · Minor injuriesClass 3 · FieldFinal reportEmbraer EMB145 · Presque Isle, METhe flight crew’s decision, due to confirmation bias, to continue the descent below the decision altitude when the runway had not been positively identified. Contributing to the accident were (1) the first officer’s fatigue, which exacerbated his confirmation…Mar 4, 2019 · N14171 · Substantial damageNTSB GAA19CA001Accident · No injuriesData collectionFinal reportCessna 340 · Keokuk, IAThe pilot's failure to correctly identify the runway environment during an instrument approach at night in instrument meteorological conditions because he mistook building lights for runway lights, which resulted in landing short of the runway.Oct 1, 2018 · N89AM · Substantial damageNTSB OPS18IA015Incident · No injuriesClass 3 · IncidentFinal reportBoeing 747 · Chicago, ILInterference with the localizer signal resulting in a Multipath condition experienced by CAL5148 while conducting an ILS CAT III (autoland) approach. This condition resulted in a runway excursion and subsequent go-around. The interference was most likely…Jun 21, 2018 · B-18711 · No damageNTSB CEN16LA097Accident · No injuriesLimited investigationFinal reportPiper PA 28-140 · Sturtevant, WIThe pilot's failure to maintain a proper glidepath during a landing at dusk, which resulted in impact with a moving ground vehicle. Contributing to the accident was the inoperative precision approach path indicator.Feb 1, 2016 · N1572J · Substantial damageNTSB CEN16LA016Accident · Serious injuriesLimited investigationFinal reportCirrus Design SR22 · Lancaster, TXThe pilot’s failure to maintain a proper glidepath during a night visual approach, which resulted in impact with a power line. Contributing to the accident was an inoperative precision approach path indicator.Oct 17, 2015 · N849CD · DestroyedNTSB OPS10IA001Incident · No injuriesIncident investigationFinal reportBoeing 767 · Atlanta Hartsfield Intl. Apt. (KATL), GAThe flight crew’s failure to identify the correct landing surface due to fatigue. Contributing to the cause of the incident were (1) the flight crew’s decision to accept a late runway change, (2) the unavailability of the approach light system and the…Oct 19, 2009 · N185DN · No damageNTSB ERA09FA053Accident · 2 fatalField investigationFinal reportCirrus Design SR22 · Tallahassee, FLThe pilot's failure to maintain adequate airspeed on final approach, which resulted in a low-altitude aerodynamic stall and spin. Contributing to the accident was the pilot's failure to fly the published instrument approach and his subsequent failure to…Nov 14, 2008 · N827GM · Substantial damageNTSB SEA08LA082Accident · Serious injuriesLimited investigationFinal reportRaytheon 1900D · Kayenta, AZThe flight crew's failure to execute a missed approach, which resulted in a runway excursion after landing. Contributing to the accident were the inoperative lights, weather conditions below published approach minimums, and the slush contaminated runway.Feb 22, 2008 · N305PC · Substantial damage
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\", '030120'))
  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.