NTSB finding · Personnel issues › Psychological › Attention/monitoring

Cases
231
In the probable cause
222 (96%)
Fatal cases
62
NTSB code
02021540

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 Monitoring other aircraft per year: 231 cases
200820
200921
20109
201113
201212
201310
20149
201511
201619
201713
201817
201913
20206
202110
202214
202311
202412
20259
20262
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\", '02021540') 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\", '02021540'))
  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\", '02021540') 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 · 231

NTSB WPR26LA171Accident · No injuriesClass 4 · LimitedFinal reportCessna 210 · Redding, CAThe pilot’s failure to extend the landing gear before landing due to distraction and his failure to conduct the before landing checklist.Apr 25, 2026 · N6130F · Substantial damageNTSB WPR26LA083Accident · No injuriesClass 4 · LimitedFinal reportRobinson R44 · Parkman, WYThe pilots’ failure to maintain separation while conducting air work in a common operational area. Contributing to the accident was the pilots’ divided attention associated with the mission activity and unreliable radio communications.Jan 19, 2026 · N996NR · 2 aircraft · Substantial damageNTSB WPR26LA059Accident · No injuriesClass 4 · LimitedFinal reportWaco RNF · Phoenix, AZThe biplane pilot’s failure to maintain adequate clearance from the low-wing airplane while taxiing.Dec 14, 2025 · N110Y · 2 aircraft · Substantial damageNTSB ERA26LA025Accident · No injuriesClass 4 · LimitedFinal reportAkrotech Giles G-202 · Boca Raton, FLThe low-wing pilot’s inadequate visual lookout, which resulted in a collision with another airplane while taxiing.Oct 28, 2025 · N202RD · 2 aircraft · Substantial damageNTSB ERA25LA356Accident · No injuriesClass 4 · LimitedFinal reportCessna 182 · Plymouth, MAThe low wing airplane pilot’s failure to maintain an adequate visual lookout and his decision to activate the portable ADS-B receiver while taxiing, which resulted in a ground collision.Sep 19, 2025 · N2383X · 2 aircraft · Substantial damageNTSB ERA25LA331Accident · No injuriesClass 4 · LimitedFinal reportCessna 150 · Farmingdale, NYThe Cessna 150 pilot’s decision to taxi in front of an oncoming Cessna 172, which resulted in a ground collision. Contributing to the accident was the Cessna 150 pilot’s momentary distraction, which delayed his recognition of the impending collision.Aug 30, 2025 · N22998 · 2 aircraft · Minor damageNTSB WPR25LA219Accident · Serious injuriesClass 4 · LimitedFinal reportCirrus Design SR22 · Hollister, CAThe departing pilot’s failure to see and avoid the landing airplane during the takeoff, which resulted in a mid-air collision.Jul 19, 2025 · N551SG · 2 aircraft · Substantial damageNTSB CEN25LA132Accident · No injuriesClass 4 · LimitedFinal reportTaylorcraft BC12 · Russellville, ARThe failure of the U.S. Army helicopter pilots to yield the right-of-way to the landing airplane, which resulted in the airplane encountering wake turbulence emitted from the three departing U.S. Army helicopters, a subsequent loss of directional control, and…Mar 22, 2025 · N39158 · Substantial damageNTSB CEN25LA133Accident · No injuriesClass 4 · LimitedFinal reportPiper PA-28R-201T · Liberal, KSThe pilot’s failure to extend the landing gear before landing due to distraction and his failure to conduct the prelanding checklist.Mar 20, 2025 · N38871 · Substantial damageNTSB ERA25LA129Accident · No injuriesClass 4 · LimitedFinal reportEurocopter Deutschland EC135T2 · Philadelphia, PAThe sUAS operator’s failure to see and avoid a helicopter, resulting in a midair collision between the helicopter and the sUAS.Feb 17, 2025 · N405TJ · 2 aircraft · Substantial damage
See all 231 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\", '02021540'))
  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.