NTSB finding · Personnel issues › Psychological › Attention/monitoring

Cases
330
In the probable cause
296 (90%)
Fatal cases
53
NTSB code
02021520

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 Task monitoring/vigilance per year: 330 cases
20089
200911
201019
201127
201221
201319
201416
201531
201619
201711
201819
201913
20207
202117
202212
202326
202422
202519
202612
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\", '02021520') 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\", '02021520'))
  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\", '02021520') 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 · 330

NTSB ERA26LA300Accident · Serious injuriesClass 4 · LimitedFinal reportWaco Classic 2T-1A-2 · Clermont, FLThe pilot’s failure to maintain clearance from trees during the landing approach.Aug 14, 2026 · N621GL · DestroyedNTSB CEN26LA278Accident · No injuriesClass 4 · LimitedFinal reportCessna 310 · North Little Rock, ARThe flight instructor and pilot receiving instruction’s failure to verify that the landing gear was extended before landing, which resulted in a gear-up landing.Aug 1, 2026 · N3618G · Substantial damageNTSB CEN26LA244Accident · Serious injuriesClass 4 · LimitedFinal reportCassutt Iiim · Odessa, TXThe pilot’s exceedance of the airplane’s critical angle of attack during the initial climb, which led to an aerodynamic stall and a loss of airplane control at too low of an altitude to recover. Contributing to the accident was the pilot’s lack of recent…Jul 5, 2026 · N45889 · Substantial damageNTSB CEN26LA243Accident · Serious injuriesClass 4 · LimitedFinal reportEvolution Revolt · Peyton, COThe flight instructor’s inadequate supervision of the student pilot, which resulted in the loss of control during a rejected takeoff.Jun 30, 2026 · N672BB · Substantial damageNTSB CEN26LA240Accident · No injuriesClass 4 · LimitedFinal reportBeech 58 · Traverse City, MIThe pilot’s failure to extend the landing gear before landing.Jun 24, 2026 · N96GB · Substantial damageNTSB CEN26LA236Accident · No injuriesClass 4 · LimitedFinal reportBeech C24R · Baton Rouge, LAThe pilot’s failure to extend the landing gear before landing.Jun 24, 2026 · N6164C · Substantial damageNTSB 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 CEN26LA168Accident · Minor injuriesClass 4 · LimitedFinal reportRobinson Helicopter R44 · Mount Blanco, TXThe pilot’s failure to maintain proper main rotor rpm during a low-level turn, which resulted in the main rotor rpm drooping, a loss of control at an altitude too low for recovery, and a subsequent impact with terrain.Apr 17, 2026 · N445JS · Substantial damageNTSB CEN26LA144Accident · Serious injuriesClass 4 · LimitedFinal reportMooney M20 · Northlake, TXThe pilot’s inadequate fuel management which resulted in a total loss of engine power due to fuel starvation.Mar 18, 2026 · N1374W · Substantial damageNTSB CEN26LA128Accident · No injuriesClass 4 · LimitedFinal reportAir Tractor AT-502 · Larose, LAThe pilot’s improper fuel planning and his failure to adequately monitor the fuel level during flight, which resulted in fuel exhaustion, and a total loss of engine power. Contributing to the accident was the pilot’s lack of attention performing the task,…Mar 1, 2026 · N5063N · Substantial damage
See all 330 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\", '02021520'))
  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.