Defining event in
40 cases
In the sequence of
56 cases
Fatal cases
0
NTSB code
284

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 it was the defining event; in gray, cases where it came elsewhere in the sequence. The map shows the cases where it was the defining event. Events are coded with the final report, so the latest years are incomplete.

Cases per year

2008Defining eventElsewhere in the sequence2026
Cases with Wrong surface or wrong airport per year: 56 cases
20095
20111
20131
20141
20151
20161
20173
20182
20191
20207
20213
20225
20232
20249
20259
20265
Query with SQL
duckdb -csv -c "SELECT year(c.\"eventDate\") AS year, count(DISTINCT e.case_mkey) AS cases,
    count(DISTINCT e.case_mkey) FILTER (WHERE e.\"isDefiningEvent\") AS defining
  FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e JOIN 'https://openairdocs.org/data/latest/ntsb_case_detail.parquet' c ON c.\"mKey\" = e.case_mkey
  WHERE e.\"tier2Number\" = '284' AND e.case_mkey IN (SELECT case_mkey FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' WHERE \"isDefiningEvent\")
  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 these cases

Query with SQL
duckdb -csv -c "WITH defining AS (SELECT * FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' WHERE \"tier2Number\" = '284' AND \"isDefiningEvent\")
  SELECT * FROM (
  SELECT 'Phase of flight' AS kind, e.\"tier1Number\" AS code, max(e.\"eventTier1Name\") AS name, count(DISTINCT e.case_mkey) AS cases
  FROM defining e
  GROUP BY ALL
  UNION ALL
  SELECT 'Finding in the probable cause', left(f.\"findingCode\", 8), max(f.\"tier4Name\"), count(DISTINCT f.case_mkey)
  FROM defining e JOIN 'https://openairdocs.org/data/latest/ntsb_findings.parquet' f ON f.case_mkey = e.case_mkey AND f.aircrafts_position = e.aircrafts_position AND f.\"inProbableCause\"
  WHERE f.\"findingCode\" GLOB '[0-9][0-9]*'
  GROUP BY ALL
  UNION ALL
  SELECT 'Aircraft model', a.aircraft_model_code, any_value(concat_ws(' ', m.manufacturer, m.model)), count(DISTINCT e.case_mkey)
  FROM defining e JOIN 'https://openairdocs.org/data/latest/ntsb_aircrafts.parquet' a ON a.case_mkey = e.case_mkey AND a.position = e.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
  )
  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 · 40

NTSB ANC26LA087Accident · Minor injuriesClass 4 · LimitedInvestigation openCessna 172P · Inalåhan, GUAug 5, 2026 · N62195 · Substantial damageNTSB DCA26WA283IncidentClass 5 · ForeignBoeing 737 · Tehran, IranJun 30, 2026 · EP-SIINTSB ERA26LA102Accident · No injuriesClass 4 · LimitedFinal reportCessna 172 · New Castle, DEThe pilots’ failure to properly identify the assigned runway during the landing approach, which resulted in the airplane landing on a closed, snow-covered runway. Contributing was the illumination of the closed runway’s edge lighting.Jan 29, 2026 · N969FG · Substantial damageNTSB ANC26LA011Accident · No injuriesClass 4 · LimitedFinal reportCessna 150K · Anchorage, AKThe flight instructor’s unintentional selection of the wrong, snow-covered landing surface, which resulted in a nose-over.Jan 25, 2026 · N6333G · Substantial damageNTSB OPS25LA054Incident · No injuriesClass 3 · LimitedPreliminary reportBombardier CL-600-2D24 · Freeland, MIOn July 16, 2025, about 1542 eastern daylight time (EDT), SkyWest Airlines (SKW) flight 3751, a Bombardier CL-600-2D24, N833SK, departed from a closed runway at MBS International Airport (MBS), Freeland, Michigan. The flight continued without further incident…Jul 16, 2025 · N833SK · No damageNTSB DCA25WA236Incident · No injuriesClass 5 · ForeignBoeing 737 · Pusan City, South KoreaJun 12, 2025 · Not reported · No damageNTSB DCA25WA221IncidentClass 5 · ForeignBoeing 767 · Xi An Shi, ComorosMay 27, 2025 · 4L-GMCNTSB DCA25WA220IncidentForeign investigationBoeing 737 · Lima, PeruMay 23, 2025 · HP-1844CMPNTSB DCA25WA175Incident · No injuriesClass 5 · ForeignBoeing 737 · Pusan, South KoreaMar 25, 2025 · HL7561 · No damageNTSB DCA25LA163Incident · No injuriesClass 4 · LimitedFinal reportBoeing 737-8H4 · Orlando, FLThe captain’s failure to recognize that the airplane’s location did not agree with the assigned departure runway as required per the Southwest Airlines Airplane Operating Manual, and the captain’s plan continuation error when he missed several cues that would…Mar 20, 2025 · N8315C · No damage
See all 40 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 e.case_mkey FROM 'https://openairdocs.org/data/latest/ntsb_events.parquet' e WHERE e.\"isDefiningEvent\" AND e.\"tier2Number\" = '284')
  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.