Defining event in
695 cases
In the sequence of
804 cases
Fatal cases
70
NTSB code
192

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 Fuel exhaustion per year: 804 cases
200854
200958
201056
201137
201236
201341
201452
201545
201645
201733
201845
201942
202041
202129
202243
202349
202436
202539
202623
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\" = '192' 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\" = '192' 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 · 695

NTSB CEN27LA011Accident · Minor injuriesClass 4 · LimitedInvestigation openFlight Design Ctls · Yankton, SDOct 9, 2026 · N792CT · Substantial damageNTSB CEN26LA314Accident · No injuriesClass 4 · LimitedInvestigation openCessna 150F · Weslaco, TXSep 8, 2026 · N8061F · Substantial damageNTSB CEN26LA309Accident · No injuriesClass 4 · LimitedInvestigation openMooney M20E · West Branch, IASep 2, 2026 · N55GA · Substantial damageNTSB WPR26LA323Accident · No injuriesClass 4 · LimitedInvestigation openBeech E-55 · Mecca, CAAug 30, 2026 · N333W · Substantial damageNTSB ANC26LA089Accident · Minor injuriesClass 4 · LimitedInvestigation openCessna 180J · Bettles, AKAug 19, 2026 · N9949N · Substantial damageNTSB WPR26LA293Accident · No injuriesClass 4 · LimitedInvestigation openP Z L -Warszawa-Cnpsl PZL-104 Wilga 35A · Ukiah, CAAug 7, 2026 · N113AS · Substantial damageNTSB WPR26LA268Accident · Serious injuriesClass 4 · LimitedInvestigation openPiper PA-18 · Colusa, CAJul 18, 2026 · N7590K · Substantial damageNTSB ERA26LA273Accident · Minor injuriesClass 4 · LimitedFinal reportPiper PA-28-180 · Linneus, METhe pilot’s inadequate preflight and in-flight monitoring of the fuel quantity, which resulted in a total loss of engine power due to fuel exhaustion.Jul 15, 2026 · N9758J · Substantial damageNTSB CEN26LA249Accident · No injuriesClass 4 · LimitedFinal reportCessna 150 · Ellsworth, KSThe pilot’s inadequate preflight fuel planning which resulted in a total loss of engine power due to fuel exhaustion. Contributing to the accident was the pilot’s self-induced pressure to complete the flight.Jul 10, 2026 · N3773J · Substantial damageNTSB CEN26LA225Accident · No injuriesClass 4 · LimitedFinal reportPiper PA-30 · Meridian, MSThe total loss of power to both engines due to fuel exhaustion. Contributing to the accident was the pilot’s failure to verify the airplane’s fuel quantity before departure.Jun 15, 2026 · N8143Y · Substantial damage
See all 695 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\" = '192')
  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.