NTSB defining event · CICTT: Runway Excursion

Defining event in
795 cases
In the sequence of
3,643 cases
Fatal cases
27
NTSB code
300

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 Runway excursion per year: 3,643 cases
2008161
2009239
2010230
2011230
2012227
2013160
2014166
2015211
2016258
2017237
2018261
2019198
2020173
2021156
2022156
2023152
2024191
2025132
2026105
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\" = '300' 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\" = '300' 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 · 795

NTSB WPR27LA022Accident · No injuriesLimited investigationInvestigation openHonda HA-420 · Alpine, WYOct 21, 2026 · N751BPNTSB CEN27LA020Accident · No injuriesClass 4 · LimitedInvestigation openCessna 182Q · Gun Barrel City, TXOct 18, 2026 · N68EP · Substantial damageNTSB CEN27LA010Accident · No injuriesClass 4 · LimitedInvestigation openMooney M20F · Anderson, INOct 8, 2026 · N9068VNTSB CEN26LA331Accident · No injuriesClass 3 · LimitedInvestigation openCessna 525 · Snyder, TXSep 30, 2026 · HI1127NTSB DCA26WA363Accident · No injuriesClass 5 · ForeignBoeing 737 · Kindu, Congo - KinshasaSep 17, 2026 · 9S-AAINTSB DCA26WA362Incident · No injuriesClass 5 · ForeignBoeing 737 · Tiouilit, MauritaniaSep 10, 2026 · NxxxxNTSB ERA26LA336Accident · No injuriesClass 4 · LimitedFinal reportPiper PA-32-300 · West Kingston, RIThe pilot’s failure to bring the airplane to a stop on the available runway, which resulted in a runway excursion.Sep 9, 2026 · N4056W · Substantial damageNTSB DCA26MA352Accident · 5 fatalClass 1 · MajorPreliminary reportBoeing 767 · Miami, FLOn September 6, 2026, about 1353 eastern daylight time (EDT), 21 Air flight 7598, a Boeing 767-33A, N1997A, overran runway 30 after landing at Miami International Airport (MIA), Miami, Florida and subsequently impacted two ground passenger vehicles. The two…Sep 6, 2026 · N1997A · Substantial damageNTSB ERA26LA356Accident · No injuriesClass 4 · LimitedInvestigation openCessna 172G · Shelby, NCSep 5, 2026 · N3966L · Substantial damageNTSB ERA26LA343Accident · No injuriesClass 4 · LimitedInvestigation openCirrus Design SR20 · California, MDSep 4, 2026 · N187PH · Substantial damage
See all 795 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\" = '300')
  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.