Flight-compensation outcomes by court × airline — from published German decisions
601 decisions matched · 57 courts · 0 airlines identified · dump 2026-05 · share default/acknowledgement overall: 4 %
Data limitations — read before using any number
- Courts publish only a selection of their decisions (“veröffentlichungswürdig”). Default judgments and acknowledgements are almost never published, so the table holds far more contested cases than real life. At AG Frankfurt about 80 % of flight-compensation proceedings end by default judgment or acknowledgement (the court's vice-president, 2019); among the published decisions here the share is 4 %. Our “claimant success” is the chance of winning a contested case, not the chance of getting paid.
- The filing date is written in only part of the texts (63 of 601); duration is computed from those only, with n shown. The date of actual payment is not in any decision.
- Fields are read with regular expressions. In the latest manual check of 30 random decisions per field the rules got right: outcome 28 of 30, claimant 25 of 30, amount awarded 30 of 30 (all rounds).
- Courts anonymise the defendant: the airline is named as defendant in 0 of 601 decisions, so the airline column reads “Not identified”.
- This is statistics, not a legal assessment of your case.
Why the airline column is empty, and how every number was checked
German courts publish decisions with the parties anonymised: “die U AG”, “X Airlines”, flight numbers replaced by “X00 000”. Where an airline name does appear, it is usually not the defendant but the replacement flight, a codeshare partner or a cited case. A wrong airline in a pricing table is worse than an empty column, so an airline is only recorded when the decision itself says it is the defendant.
Filter precision, checked by reading random decisions in full: strong-rule matches, round 1 — 27 of 30 are claims under Regulation (EC) No 261/2004 (27 of the 28 still selected); strong-rule matches, round 2 (unseen cases) — 23 of 30 are claims under Regulation (EC) No 261/2004 (23 of the 27 still selected); weak-only matches — 0 of 30 are claims under Regulation (EC) No 261/2004. Only strong-rule matches are counted; 50 decisions about association injunctions, package-travel claims and aircraft noise are excluded, each one read.
Rows with fewer than 10 decided cases show “insufficient data”. Median duration needs at least 5 cases with both dates. Details: how we count.
Outcome table
| AG Köln | All | 84 | 60 % | 40 % | 1 % | 187 (9) | 500 | 2006–2026 |
| AG Düsseldorf | All | 68 | 65 % | 35 % | 7 % | 157 (6) | 500 | 2006–2025 |
| LG Frankfurt | All | 67 | 63 % | 37 % | 1 % | 432 (13) | 965 | 2013–2026 |
| AG Frankfurt | All | 57 | 58 % | 42 % | 7 % | 192 (9) | 800 | 2012–2025 |
| BGH | All | 55 | 53 % | 47 % | 4 % | — (0) | 374 | 2014–2025 |
| LG Köln | All | 25 | 48 % | 52 % | 0 % | — (0) | 686 | 2000–2024 |
| AG Erding | All | 17 | 47 % | 53 % | 0 % | — (1) | 700 | 2021–2024 |
| LG Düsseldorf | All | 12 | 33 % | 67 % | 0 % | — (1) | 823 | 2007–2023 |
| LG Landshut | All | 11 | 64 % | 36 % | 9 % | — (0) | 1200 | 2020–2026 |
Download the full table: aggregates.csv · case-level data: cases.parquet (both ODbL, attribution in the file).
See it working
A screen recording of this site and the API: the limitations, the table and its filters, the decisions behind a
row, how the accuracy was checked, and a real response of /score. Recorded with
make demo-video; the numbers in the captions come from the same data as this page.
Get an API key
The API returns the numbers of this table for your own pricing systems — GET /score?court=…&airline=…,
documented on the API page. Keys are free while we test whether
this data is useful. Tell us who you are; a person reads every request and replies with a key.