NTSB finding · Environmental issues › Conditions/weather/phenomena › Ceiling/visibility/precip

Cases
184
In the probable cause
148 (80%)
Fatal cases
159
NTSB code
03035075

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 Below VFR minima per year: 184 cases
200817
200910
20109
201112
20128
20134
201413
201518
20168
201723
201814
201916
20205
20219
20223
20237
20247
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\", '03035075') 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\", '03035075'))
  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\", '03035075') 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 · 184

NTSB ERA25LA130Accident · Serious injuriesClass 4 · LimitedFinal reportPiper PA-28-235 · Manchester, VTThe pilot’s improper decision to continue the visual flight rules flight into instrument meteorological conditions, which resulted in the accumulation of airframe icing and a subsequent aerodynamic stall/spin.Feb 26, 2025 · N43DN · Substantial damageNTSB ANC24FA089Accident · 1 fatalClass 3 · FieldFinal reportBell 206B · King Salmon, AKThe pilot’s decision to initiate the visual flight into instrument meteorological conditions, which resulted in his spatial disorientation, failure to maintain helicopter control and subsequent impact with water.Sep 7, 2024 · N306FW · Substantial damageNTSB CEN24FA327Accident · 1 fatalClass 3 · FieldFinal reportPiper PA-28-140 · Wayne, NEThe non-instrument-rated pilot’s encounter with instrument meteorological conditions, which resulted in spatial disorientation and a loss of control.Aug 26, 2024 · N9626K · DestroyedNTSB CEN24FA295Accident · 1 fatalClass 3 · FieldFinal reportPiper PA-28-180 · Irene, SDThe pilot’s poor decision to continue the flight into deteriorating weather conditions and his failure to maintain a safe altitude, which resulted in controlled flight into trees and terrain.Jul 31, 2024 · N903US · DestroyedNTSB WPR24FA257Accident · 7 fatalClass 3 · FieldFinal reportPilatus PC-12/47E · Recluse, WYThe pilot’s loss of control due to spatial disorientation while operating in instrument meteorological conditions, which resulted in an in-flight breakup. Contributing to the accident was the pilot’s distraction from the autopilot disconnecting due to an…Jul 26, 2024 · N357HE · DestroyedNTSB ANC24LA069Accident · 3 fatalClass 3 · LimitedFinal reportBeech A35 · Gustavus, AKThe pilot’s decision to continue the visual flight rules flight into instrument meteorological conditions, which resulted in controlled flight into terrain.Jul 20, 2024 · N410B · DestroyedNTSB CEN24LA144Accident · 1 fatalClass 3 · LimitedFinal reportPiper PA28 · Muncie, INThe pilot’s spatial disorientation and subsequent loss of control while maneuvering outside established instrument approach procedures in instrument meteorological conditions, which resulted in an impact with terrain. Contributing to the accident was the…Apr 1, 2024 · N8438B · DestroyedNTSB ERA24FA120Accident · 3 fatalClass 3 · FieldFinal reportPiper PA32 · Jackson, OHThe non-instrument-rated pilot’s decision to depart under visual flight rules into instrument meteorological conditions, which resulted in an inflight collision with terrain while maneuvering.Feb 24, 2024 · N8963N · DestroyedNTSB ERA24FA077Accident · 1 fatalClass 3 · FieldFinal reportZenith Stol CH701 · Marienville, PAThe pilot’s decision to continue visual flight into deteriorating visibility conditions at night, which resulted in spatial disorientation and subsequent descent that continued to ground contact.Dec 30, 2023 · N4209W · DestroyedNTSB ERA24FA036Accident · 1 fatalClass 3 · FieldFinal reportPiper PA-28-180 · Micanopy, FLThe non-instrument-rated pilot’s improper inflight decision making and his flight into instrument meteorological conditions, which resulted in spatial disorientation and subsequent loss of airplane control. Contributing to the accident were the pilot’s…Nov 14, 2023 · N7806W · Destroyed
See all 184 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\", '03035075'))
  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.