Low ceiling

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

Cases
190
In the probable cause
96 (51%)
Fatal cases
165
NTSB code
03035010

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 Low ceiling per year: 190 cases
200817
200920
201021
201120
201213
201315
201412
20157
20166
20175
20187
201914
20206
20216
202210
20233
20246
20252
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\", '03035010') 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\", '03035010'))
  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\", '03035010') 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 · 190

NTSB ERA25FA143Accident · 2 fatalClass 3 · FieldFinal reportRaytheon A36 · Greenville, NCThe pilot’s loss of airplane control shortly after climbing into instrument meteorological conditions due to spatial disorientation (somatogyral illusion).Mar 14, 2025 · N566C · DestroyedNTSB ERA25FA119Accident · 1 fatalClass 3 · FieldFinal reportCessna 208 · Pierson, FLThe non-instrument-rated pilot’s continued visual flight into instrument meteorological conditions, which resulted in spatial disorientation and a subsequent loss of control.Feb 14, 2025 · N40EA · 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 WPR24FA270Accident · 3 fatalClass 3 · FieldFinal reportCessna 182K · Augusta, MTThe non-instrument-rated pilot’s decision to continue a visual flight rules flight into a rugged mountain area in deteriorating weather conditions, which resulted in impact with terrain.Aug 8, 2024 · N2764Q · Substantial damageNTSB ERA24FA294Accident · 3 fatalClass 3 · FieldFinal reportCessna 182 · Rutherfordton, NCThe pilot’s failure to maintain clearance from clouds, resulting in controlled flight into terrain due to mountain obscuration.Jul 8, 2024 · N2198G · Substantial damageNTSB WPR24FA156Accident · 1 fatalClass 3 · FieldFinal reportExtra Flugzeugbau EA 300/L · Bandera, WAThe pilot’s decision to continue flight into icing conditions and inclement weather, which likely led to spatial disorientation when he attempted to divert from the planned course to the destination airport.May 19, 2024 · N22MW · Substantial damageNTSB ANC24FA032Accident · 2 fatalClass 3 · FieldFinal reportTaylorcraft BC12-D · Nondalton, AKThe non-certificated pilot’s continued visual flight rules flight into instrument meteorological conditions, which resulted in controlled flight into the water.May 17, 2024 · N95744 · Substantial damageNTSB ERA24LA134Accident · Serious injuriesClass 3 · LimitedFinal reportCessna 150 · Clay, KYThe pilot’s decision to attempt a VFR flight in instrument meteorological conditions, which resulted in controlled flight into terrain. Contributing to the accident was the pilot’s impairment due to alcohol consumption.Mar 9, 2024 · N1703Q · Substantial damageNTSB WPR24FA037Accident · 1 fatalClass 3 · FieldFinal reportCessna P210N · San Diego, CAA total loss of engine power due to fuel exhaustion. Contributing to the accident were the pilot’s inadequate flight and fuel planning and his decision to fly in night instrument meteorological conditions despite his lack of recent instrument flight.Nov 16, 2023 · N1400 · Substantial damageNTSB ERA23FA182Accident · 1 fatalClass 3 · FieldFinal reportCirrus Design SR22 · Jesup, GAThe pilot’s failure to maintain adequate airspeed and his exceedance of the airplane’s critical angle of attack, which resulted in a loss of control while maneuvering for a visual landing in low ceiling and low visibility conditions. Contributing to the…Apr 6, 2023 · N911TK · Substantial damage
See all 190 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\", '03035010'))
  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.