NTSB finding · Environmental issues › Physical environment › Terrain

Cases
77
In the probable cause
26 (34%)
Fatal cases
2
NTSB code
03021030

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 Snowy/icy terrain per year: 77 cases
200826
20096
20104
20113
20124
20136
20144
20152
20164
20176
20182
20194
20211
20221
20232
20251
20261
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\", '03021030') 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\", '03021030'))
  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\", '03021030') 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 · 77

NTSB WPR26LA095Accident · Minor injuriesClass 4 · LimitedFinal reportAmerican Champion 8KCAB · Alpine, WYThe pilot’s inadvertent descent while operating in flat light conditions which resulted in controlled flight into terrain.Jan 29, 2026 · N59SE · Substantial damageNTSB ANC25LA092Accident · No injuriesClass 4 · LimitedFinal reportEurocopter AS 350 B2 · Juneau, AKThe pilot’s failure to maintain adequate obstacle clearance during takeoff from uneven, snow-covered terrain in flat light conditions.Aug 22, 2025 · N149TH · Substantial damageNTSB ANC23LA036Accident · No injuriesClass 4 · LimitedFinal reportPiper PA31 · Point Thomson, AKThe pilot’s inadvertent descent below the published minimum descent altitude, while operating in flat light conditions, which resulted in controlled flight into terrain.May 17, 2023 · N34WM · Substantial damageNTSB WPR23LA126Accident · Minor injuriesClass 4 · LimitedFinal reportTrendak Taurus · Strawberry Reservoir, UTThe pilot’s failure to maintain clearance from the snow-covered lake while flying at a low altitude.Mar 11, 2023 · N553AT · Substantial damageNTSB CEN22LA112Accident · No injuriesClass 4 · LimitedFinal reportVans RV4 · Hortonville, WIThe loss of direction control while maneuvering off the plowed surface to avoid a collision with a vehicle.Jan 29, 2022 · N544WM · Substantial damageNTSB CEN21LA189Accident · No injuriesClass 4 · LimitedFinal reportBeech P35 · Poplar Grove, ILThe pilot's distraction and his failure to maintain a proper glidepath on the approach, which resulted in him landing short of the runway and impacting a snowbank.Jan 12, 2021 · N436T · Substantial damageNTSB GAA19CA214Accident · No injuriesData collectionFinal reportCessna 180 · Limington, METhe pilot's failure to maintain directional control during touchdown, which resulted in runway excursion onto snow.Apr 14, 2019 · N4796B · Substantial damageNTSB GAA19CA154Accident · No injuriesData collectionFinal reportDenney Kitfox MDL Classiciv · Floodwood, MNThe pilot's loss of lateral control while landing in gusting crosswind conditions, which resulted in a nose-over.Feb 28, 2019 · N111YT · Substantial damageNTSB GAA19CA120Accident · No injuriesData collectionFinal reportEmmet Smith Roadrunner · Truckee, CAThe pilot's failure to maintain directional control during landing. Contributing to the accident was the pilot’s improper decision to allow the airplane to exit the runway onto a snow-covered field, which resulted in a nose-over.Jan 29, 2019 · N949TS · Substantial damageNTSB CEN19CA062Accident · Minor injuriesData collectionFinal reportPiper PA 18 · Iron Mountain, MIThe pilot's distraction and subsequent loss of situational awareness and visual horizon in overcast sky conditions, which led to an unrecognized descent during a low-level maneuver and subsequent impact with snow-covered terrain.Jan 19, 2019 · N3298Z · Substantial damage
See all 77 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\", '03021030'))
  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.