{
  "name": "flightrepay-rules",
  "rulesetVersion": 6,
  "rulesetName": "v6-north-american-carriers",
  "engineVersion": "2.0.0",
  "published": "2026-08-07",
  "licence": "Free to reuse with attribution to FlightRepay.",
  "documentation": "/rights/rules-dataset",
  "summary": {
    "delayThresholdHours": 3,
    "cancellationNoticeDays": 14,
    "referralWindowDays": 180,
    "article7_2": {
      "percentPaid": 50,
      "percentReduced": 50,
      "aboveKm": 3500,
      "bucket": "3-4"
    },
    "bands": {
      "EC261": [
        {
          "band": "short",
          "label": "Up to 1,500 km",
          "maxKm": 1500,
          "amount": "€250",
          "cents": 25000
        },
        {
          "band": "medium",
          "label": "1,500 to 3,500 km",
          "maxKm": 3500,
          "amount": "€400",
          "cents": 40000
        },
        {
          "band": "long",
          "label": "Over 3,500 km",
          "maxKm": null,
          "amount": "€600",
          "cents": 60000
        }
      ],
      "UK261": [
        {
          "band": "short",
          "label": "Up to 1,500 km",
          "maxKm": 1500,
          "amount": "£220",
          "cents": 22000
        },
        {
          "band": "medium",
          "label": "1,500 to 3,500 km",
          "maxKm": 3500,
          "amount": "£350",
          "cents": 35000
        },
        {
          "band": "long",
          "label": "Over 3,500 km",
          "maxKm": null,
          "amount": "£520",
          "cents": 52000
        }
      ]
    }
  },
  "rules": {
    "jurisdiction": [
      {
        "id": "jur.uk_departure",
        "when": {
          "fact": "depGroup",
          "op": "eq",
          "value": "UK"
        },
        "set": "UK261"
      },
      {
        "id": "jur.uk_arrival_uk_eu_carrier",
        "when": {
          "all": [
            {
              "fact": "arrGroup",
              "op": "eq",
              "value": "UK"
            },
            {
              "fact": "depGroup",
              "op": "eq",
              "value": "OTHER"
            },
            {
              "fact": "carrierGroup",
              "op": "in",
              "value": [
                "UK",
                "EU"
              ]
            }
          ]
        },
        "set": "UK261"
      },
      {
        "id": "jur.default_ec261",
        "when": {
          "fact": "distanceKm",
          "op": "gte",
          "value": 0
        },
        "set": "EC261"
      }
    ],
    "eligibilityGates": [
      {
        "id": "gate.delay_below_threshold",
        "when": {
          "all": [
            {
              "fact": "incident",
              "op": "eq",
              "value": "delayed"
            },
            {
              "fact": "delayBucket",
              "op": "eq",
              "value": "<3"
            }
          ]
        },
        "reason": "Compensation requires arriving 3+ hours late at the final destination."
      },
      {
        "id": "gate.cancellation_14_days_notice",
        "when": {
          "all": [
            {
              "fact": "incident",
              "op": "eq",
              "value": "cancelled"
            },
            {
              "fact": "daysNotice",
              "op": "gte",
              "value": 14
            }
          ]
        },
        "reason": "Cancellations announced 14+ days before departure carry refund/rerouting rights only."
      },
      {
        "id": "gate.extraordinary_circumstances",
        "when": {
          "fact": "reasonGiven",
          "op": "in",
          "value": [
            "weather",
            "airport_strike",
            "security"
          ]
        },
        "reason": "Owner decision 2026-07-17: stated weather / airport-ATC strike / security auto-rejects (launch book rule 7). Airline-internal causes and 'don't know' pass."
      },
      {
        "id": "gate.already_claimed",
        "when": {
          "fact": "alreadyClaimed",
          "op": "eq",
          "value": true
        },
        "reason": "Passenger already assigned or filed this claim elsewhere (launch book rule 10)."
      },
      {
        "id": "gate.missed_conn_below_threshold",
        "when": {
          "all": [
            {
              "fact": "incident",
              "op": "eq",
              "value": "missed_connection"
            },
            {
              "fact": "delayBucket",
              "op": "eq",
              "value": "<3"
            }
          ]
        },
        "reason": "Missed connections qualify only at 3+ hours late at the final destination."
      },
      {
        "id": "gate.missed_conn_not_same_booking",
        "when": {
          "all": [
            {
              "fact": "incident",
              "op": "eq",
              "value": "missed_connection"
            },
            {
              "fact": "connSameBooking",
              "op": "eq",
              "value": false
            }
          ]
        },
        "reason": "Owner rule: both legs must be on the same booking."
      },
      {
        "id": "gate.missed_conn_not_same_airline",
        "when": {
          "all": [
            {
              "fact": "incident",
              "op": "eq",
              "value": "missed_connection"
            },
            {
              "fact": "connSameAirline",
              "op": "eq",
              "value": false
            }
          ]
        },
        "reason": "Owner rule: both legs must be with the same airline."
      },
      {
        "id": "gate.denied_boarding_voluntary",
        "when": {
          "all": [
            {
              "fact": "incident",
              "op": "eq",
              "value": "denied_boarding"
            },
            {
              "fact": "deniedInvoluntary",
              "op": "eq",
              "value": false
            }
          ]
        },
        "reason": "Only involuntary denied boarding qualifies (launch book rule 5)."
      },
      {
        "id": "gate.time_barred_uk",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "UK261"
            },
            {
              "fact": "flightAgeDays",
              "op": "gt",
              "value": 2190
            }
          ]
        },
        "reason": "UK: 6 years from incident (Limitation Act 1980)."
      },
      {
        "id": "gate.time_barred_1y",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "EC261"
            },
            {
              "fact": "depCountry",
              "op": "in",
              "value": [
                "PL",
                "BE"
              ]
            },
            {
              "fact": "flightAgeDays",
              "op": "gt",
              "value": 365
            }
          ]
        },
        "reason": "Poland/Belgium: 1 year."
      },
      {
        "id": "gate.time_barred_2y",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "EC261"
            },
            {
              "fact": "depCountry",
              "op": "in",
              "value": [
                "IT",
                "NL",
                "HR",
                "SK",
                "SI",
                "MT"
              ]
            },
            {
              "fact": "flightAgeDays",
              "op": "gt",
              "value": 730
            }
          ]
        },
        "reason": "IT/NL/HR/SK/SI/MT: 2 years."
      },
      {
        "id": "gate.time_barred_3y",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "EC261"
            },
            {
              "fact": "depCountry",
              "op": "in",
              "value": [
                "AT",
                "CZ",
                "PT",
                "DK",
                "SE",
                "NO",
                "FI",
                "LV",
                "LU",
                "BG",
                "EE",
                "LT",
                "RO"
              ]
            },
            {
              "fact": "flightAgeDays",
              "op": "gt",
              "value": 1095
            }
          ]
        },
        "reason": "AT/CZ/PT/DK/SE/NO/FI/LV/LU/BG/EE/LT/RO: 3 years from incident."
      },
      {
        "id": "gate.time_barred_de",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "EC261"
            },
            {
              "fact": "depCountry",
              "op": "eq",
              "value": "DE"
            },
            {
              "fact": "flightAgeDays",
              "op": "gt",
              "value": 1460
            }
          ]
        },
        "reason": "Germany: 3 years from year-end (BGB §199) — day-gate at 4y is conservative."
      },
      {
        "id": "gate.time_barred_5y",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "EC261"
            },
            {
              "fact": "depCountry",
              "op": "in",
              "value": [
                "FR",
                "ES",
                "GR"
              ]
            },
            {
              "fact": "flightAgeDays",
              "op": "gt",
              "value": 1825
            }
          ]
        },
        "reason": "France/Spain/Greece: 5 years."
      },
      {
        "id": "gate.time_barred_ie",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "EC261"
            },
            {
              "fact": "depCountry",
              "op": "in",
              "value": [
                "IE",
                "CY"
              ]
            },
            {
              "fact": "flightAgeDays",
              "op": "gt",
              "value": 2190
            }
          ]
        },
        "reason": "Ireland / Cyprus (Law 66(I)/2012, counsel priority): 6 years."
      },
      {
        "id": "gate.time_barred_ec_default",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "EC261"
            },
            {
              "not": {
                "fact": "depCountry",
                "op": "in",
                "value": [
                  "PL",
                  "BE",
                  "IT",
                  "NL",
                  "AT",
                  "CZ",
                  "PT",
                  "DE",
                  "FR",
                  "ES",
                  "GR",
                  "IE",
                  "DK",
                  "SE",
                  "NO",
                  "FI",
                  "CH",
                  "LV",
                  "IS",
                  "HR",
                  "LU",
                  "BG",
                  "CY",
                  "EE",
                  "HU",
                  "LT",
                  "MT",
                  "RO",
                  "SK",
                  "SI"
                ]
              }
            },
            {
              "fact": "flightAgeDays",
              "op": "gt",
              "value": 1460
            }
          ]
        },
        "reason": "Unlisted forum: conservative 3y-from-year-end day-gate (4y)."
      },
      {
        "id": "gate.time_barred_is",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "EC261"
            },
            {
              "fact": "depCountry",
              "op": "in",
              "value": [
                "IS",
                "HU"
              ]
            },
            {
              "fact": "flightAgeDays",
              "op": "gt",
              "value": 1460
            }
          ]
        },
        "reason": "Iceland (Aviation Act) / Hungary: 4 years."
      },
      {
        "id": "gate.time_barred_ch",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "EC261"
            },
            {
              "fact": "depCountry",
              "op": "eq",
              "value": "CH"
            },
            {
              "fact": "flightAgeDays",
              "op": "gt",
              "value": 3650
            }
          ]
        },
        "reason": "Switzerland: 10 years (single-source — counsel priority)."
      }
    ],
    "reviewTriggers": [
      {
        "id": "review.missed_conn_unverified",
        "when": {
          "all": [
            {
              "fact": "incident",
              "op": "eq",
              "value": "missed_connection"
            },
            {
              "any": [
                {
                  "not": {
                    "fact": "connSameBooking",
                    "op": "exists"
                  }
                },
                {
                  "not": {
                    "fact": "connSameAirline",
                    "op": "exists"
                  }
                }
              ]
            }
          ]
        },
        "reason": "Missed connection filed without same-booking/same-airline answers — staff verify against the booking."
      },
      {
        "id": "review.limitation_unknown_forum",
        "when": {
          "all": [
            {
              "fact": "regulation",
              "op": "eq",
              "value": "EC261"
            },
            {
              "not": {
                "fact": "depCountry",
                "op": "in",
                "value": [
                  "PL",
                  "BE",
                  "IT",
                  "NL",
                  "AT",
                  "CZ",
                  "PT",
                  "DE",
                  "FR",
                  "ES",
                  "GR",
                  "IE",
                  "DK",
                  "SE",
                  "NO",
                  "FI",
                  "CH",
                  "LV",
                  "IS",
                  "HR",
                  "LU",
                  "BG",
                  "CY",
                  "EE",
                  "HU",
                  "LT",
                  "MT",
                  "RO",
                  "SK",
                  "SI"
                ]
              }
            }
          ]
        },
        "reason": "Departure country has no limitation entry — staff confirm the forum before filing."
      }
    ],
    "amountBands": {
      "EC261": {
        "currency": "EUR",
        "bands": [
          {
            "maxKm": 1500,
            "cents": 25000
          },
          {
            "maxKm": 3500,
            "cents": 40000
          },
          {
            "maxKm": null,
            "cents": 60000
          }
        ]
      },
      "UK261": {
        "currency": "GBP",
        "bands": [
          {
            "maxKm": 1500,
            "cents": 22000
          },
          {
            "maxKm": 3500,
            "cents": 35000
          },
          {
            "maxKm": null,
            "cents": 52000
          }
        ]
      }
    },
    "amountModifiers": [
      {
        "id": "mod.art72_halving",
        "when": {
          "all": [
            {
              "fact": "incident",
              "op": "eq",
              "value": "delayed"
            },
            {
              "fact": "delayBucket",
              "op": "eq",
              "value": "3-4"
            },
            {
              "fact": "distanceKm",
              "op": "gt",
              "value": 3500
            }
          ]
        },
        "percent": 50,
        "reason": "Art. 7(2): 50% reduction for long-haul arrivals under 4 hours late."
      }
    ],
    "limitation": [
      {
        "id": "lim.uk_6y",
        "when": {
          "fact": "regulation",
          "op": "eq",
          "value": "UK261"
        },
        "years": 6,
        "fromYearEnd": false,
        "basis": "6Y FROM INCIDENT"
      },
      {
        "id": "lim.pl_1y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "PL"
        },
        "years": 1,
        "fromYearEnd": false,
        "basis": "1Y FROM INCIDENT"
      },
      {
        "id": "lim.be_1y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "BE"
        },
        "years": 1,
        "fromYearEnd": false,
        "basis": "1Y FROM INCIDENT"
      },
      {
        "id": "lim.it_2y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "IT"
        },
        "years": 2,
        "fromYearEnd": false,
        "basis": "2Y FROM INCIDENT"
      },
      {
        "id": "lim.nl_2y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "NL"
        },
        "years": 2,
        "fromYearEnd": false,
        "basis": "2Y FROM INCIDENT"
      },
      {
        "id": "lim.de_3y_year_end",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "DE"
        },
        "years": 3,
        "fromYearEnd": true,
        "basis": "3Y FROM YEAR-END"
      },
      {
        "id": "lim.at_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "AT"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.cz_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "CZ"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.pt_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "PT"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.fr_5y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "FR"
        },
        "years": 5,
        "fromYearEnd": false,
        "basis": "5Y FROM INCIDENT"
      },
      {
        "id": "lim.es_5y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "ES"
        },
        "years": 5,
        "fromYearEnd": false,
        "basis": "5Y FROM INCIDENT"
      },
      {
        "id": "lim.gr_5y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "GR"
        },
        "years": 5,
        "fromYearEnd": false,
        "basis": "5Y FROM INCIDENT"
      },
      {
        "id": "lim.ie_6y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "IE"
        },
        "years": 6,
        "fromYearEnd": false,
        "basis": "6Y FROM INCIDENT"
      },
      {
        "id": "lim.dk_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "DK"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.se_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "SE"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.no_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "NO"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.fi_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "FI"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.lv_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "LV"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.lu_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "LU"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.hr_2y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "HR"
        },
        "years": 2,
        "fromYearEnd": false,
        "basis": "2Y FROM INCIDENT"
      },
      {
        "id": "lim.is_4y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "IS"
        },
        "years": 4,
        "fromYearEnd": false,
        "basis": "4Y FROM INCIDENT"
      },
      {
        "id": "lim.ch_10y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "CH"
        },
        "years": 10,
        "fromYearEnd": false,
        "basis": "10Y FROM INCIDENT"
      },
      {
        "id": "lim.bg_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "BG"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.ee_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "EE"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.lt_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "LT"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.ro_3y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "RO"
        },
        "years": 3,
        "fromYearEnd": false,
        "basis": "3Y FROM INCIDENT"
      },
      {
        "id": "lim.sk_2y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "SK"
        },
        "years": 2,
        "fromYearEnd": false,
        "basis": "2Y FROM INCIDENT"
      },
      {
        "id": "lim.si_2y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "SI"
        },
        "years": 2,
        "fromYearEnd": false,
        "basis": "2Y FROM INCIDENT"
      },
      {
        "id": "lim.mt_2y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "MT"
        },
        "years": 2,
        "fromYearEnd": false,
        "basis": "2Y FROM INCIDENT"
      },
      {
        "id": "lim.hu_4y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "HU"
        },
        "years": 4,
        "fromYearEnd": false,
        "basis": "4Y FROM INCIDENT"
      },
      {
        "id": "lim.cy_6y",
        "when": {
          "fact": "depCountry",
          "op": "eq",
          "value": "CY"
        },
        "years": 6,
        "fromYearEnd": false,
        "basis": "6Y FROM INCIDENT"
      },
      {
        "id": "lim.default_ec_3y_year_end",
        "when": {
          "fact": "distanceKm",
          "op": "gte",
          "value": 0
        },
        "years": 3,
        "fromYearEnd": true,
        "basis": "3Y FROM YEAR-END"
      }
    ]
  },
  "limitationMap": [
    {
      "country": "Belgium",
      "countryCode": "BE",
      "regulation": "EC261",
      "years": 1,
      "fromYearEnd": false,
      "basis": "1Y FROM INCIDENT",
      "ruleId": "lim.be_1y",
      "engineHardBarDays": 365,
      "engineRefersFromDays": 185,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "Poland",
      "countryCode": "PL",
      "regulation": "EC261",
      "years": 1,
      "fromYearEnd": false,
      "basis": "1Y FROM INCIDENT",
      "ruleId": "lim.pl_1y",
      "engineHardBarDays": 365,
      "engineRefersFromDays": 185,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "Croatia",
      "countryCode": "HR",
      "regulation": "EC261",
      "years": 2,
      "fromYearEnd": false,
      "basis": "2Y FROM INCIDENT",
      "ruleId": "lim.hr_2y",
      "engineHardBarDays": 730,
      "engineRefersFromDays": 550,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 4
    },
    {
      "country": "Italy",
      "countryCode": "IT",
      "regulation": "EC261",
      "years": 2,
      "fromYearEnd": false,
      "basis": "2Y FROM INCIDENT",
      "ruleId": "lim.it_2y",
      "engineHardBarDays": 730,
      "engineRefersFromDays": 550,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "Malta",
      "countryCode": "MT",
      "regulation": "EC261",
      "years": 2,
      "fromYearEnd": false,
      "basis": "2Y FROM INCIDENT",
      "ruleId": "lim.mt_2y",
      "engineHardBarDays": 730,
      "engineRefersFromDays": 550,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 5
    },
    {
      "country": "Netherlands",
      "countryCode": "NL",
      "regulation": "EC261",
      "years": 2,
      "fromYearEnd": false,
      "basis": "2Y FROM INCIDENT",
      "ruleId": "lim.nl_2y",
      "engineHardBarDays": 730,
      "engineRefersFromDays": 550,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "Slovakia",
      "countryCode": "SK",
      "regulation": "EC261",
      "years": 2,
      "fromYearEnd": false,
      "basis": "2Y FROM INCIDENT",
      "ruleId": "lim.sk_2y",
      "engineHardBarDays": 730,
      "engineRefersFromDays": 550,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 5
    },
    {
      "country": "Slovenia",
      "countryCode": "SI",
      "regulation": "EC261",
      "years": 2,
      "fromYearEnd": false,
      "basis": "2Y FROM INCIDENT",
      "ruleId": "lim.si_2y",
      "engineHardBarDays": 730,
      "engineRefersFromDays": 550,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 5
    },
    {
      "country": "Austria",
      "countryCode": "AT",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.at_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "Bulgaria",
      "countryCode": "BG",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.bg_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 5
    },
    {
      "country": "Czechia",
      "countryCode": "CZ",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.cz_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "Denmark",
      "countryCode": "DK",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.dk_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 4
    },
    {
      "country": "Estonia",
      "countryCode": "EE",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.ee_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 5
    },
    {
      "country": "Finland",
      "countryCode": "FI",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.fi_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 4
    },
    {
      "country": "Germany",
      "countryCode": "DE",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": true,
      "basis": "3Y FROM YEAR-END",
      "ruleId": "lim.de_3y_year_end",
      "engineHardBarDays": 1460,
      "engineRefersFromDays": 1280,
      "sourceStatus": "Statute cited",
      "introducedInRulesetVersion": 2,
      "statute": {
        "label": "Bürgerliches Gesetzbuch (BGB) § 195, Regelmäßige Verjährungsfrist",
        "url": "https://www.gesetze-im-internet.de/bgb/__195.html"
      }
    },
    {
      "country": "Latvia",
      "countryCode": "LV",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.lv_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 4
    },
    {
      "country": "Lithuania",
      "countryCode": "LT",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.lt_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 5
    },
    {
      "country": "Luxembourg",
      "countryCode": "LU",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.lu_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 4,
      "sourceConflict": "Sources conflict: 3 years and 10 years both appear. The shorter period is encoded."
    },
    {
      "country": "Norway",
      "countryCode": "NO",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.no_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 4
    },
    {
      "country": "Portugal",
      "countryCode": "PT",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.pt_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "Romania",
      "countryCode": "RO",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.ro_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 5
    },
    {
      "country": "Sweden",
      "countryCode": "SE",
      "regulation": "EC261",
      "years": 3,
      "fromYearEnd": false,
      "basis": "3Y FROM INCIDENT",
      "ruleId": "lim.se_3y",
      "engineHardBarDays": 1095,
      "engineRefersFromDays": 915,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 4,
      "sourceConflict": "Sources conflict: 3 years and 10 years both appear. The shorter period is encoded."
    },
    {
      "country": "Hungary",
      "countryCode": "HU",
      "regulation": "EC261",
      "years": 4,
      "fromYearEnd": false,
      "basis": "4Y FROM INCIDENT",
      "ruleId": "lim.hu_4y",
      "engineHardBarDays": 1460,
      "engineRefersFromDays": 1280,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 5,
      "sourceConflict": "Sources conflict: 4 years against a 5 year general civil period. The shorter period is encoded."
    },
    {
      "country": "Iceland",
      "countryCode": "IS",
      "regulation": "EC261",
      "years": 4,
      "fromYearEnd": false,
      "basis": "4Y FROM INCIDENT",
      "ruleId": "lim.is_4y",
      "engineHardBarDays": 1460,
      "engineRefersFromDays": 1280,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 4,
      "sourceConflict": "Attributed to the Icelandic Aviation Act rather than the general civil code."
    },
    {
      "country": "France",
      "countryCode": "FR",
      "regulation": "EC261",
      "years": 5,
      "fromYearEnd": false,
      "basis": "5Y FROM INCIDENT",
      "ruleId": "lim.fr_5y",
      "engineHardBarDays": 1825,
      "engineRefersFromDays": 1645,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "Greece",
      "countryCode": "GR",
      "regulation": "EC261",
      "years": 5,
      "fromYearEnd": false,
      "basis": "5Y FROM INCIDENT",
      "ruleId": "lim.gr_5y",
      "engineHardBarDays": 1825,
      "engineRefersFromDays": 1645,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "Spain",
      "countryCode": "ES",
      "regulation": "EC261",
      "years": 5,
      "fromYearEnd": false,
      "basis": "5Y FROM INCIDENT",
      "ruleId": "lim.es_5y",
      "engineHardBarDays": 1825,
      "engineRefersFromDays": 1645,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "Cyprus",
      "countryCode": "CY",
      "regulation": "EC261",
      "years": 6,
      "fromYearEnd": false,
      "basis": "6Y FROM INCIDENT",
      "ruleId": "lim.cy_6y",
      "engineHardBarDays": 2190,
      "engineRefersFromDays": 2010,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 5,
      "sourceConflict": "A widely repeated claim that Cyprus has \"no time limit\" predates Law 66(I)/2012. Six years is encoded, and the row is a counsel priority."
    },
    {
      "country": "Ireland",
      "countryCode": "IE",
      "regulation": "EC261",
      "years": 6,
      "fromYearEnd": false,
      "basis": "6Y FROM INCIDENT",
      "ruleId": "lim.ie_6y",
      "engineHardBarDays": 2190,
      "engineRefersFromDays": 2010,
      "sourceStatus": "Launch book table, counsel review pending",
      "introducedInRulesetVersion": 2
    },
    {
      "country": "United Kingdom",
      "countryCode": "GB",
      "regulation": "UK261",
      "years": 6,
      "fromYearEnd": false,
      "basis": "6Y FROM INCIDENT",
      "ruleId": "lim.uk_6y",
      "engineHardBarDays": 2190,
      "engineRefersFromDays": 2010,
      "sourceStatus": "Statute cited",
      "introducedInRulesetVersion": 2,
      "statute": {
        "label": "Limitation Act 1980, s. 5",
        "url": "https://www.legislation.gov.uk/ukpga/1980/58/section/5"
      }
    },
    {
      "country": "Switzerland",
      "countryCode": "CH",
      "regulation": "EC261",
      "years": 10,
      "fromYearEnd": false,
      "basis": "10Y FROM INCIDENT",
      "ruleId": "lim.ch_10y",
      "engineHardBarDays": 3650,
      "engineRefersFromDays": 3470,
      "sourceStatus": "Industry research 2026-07-18, counsel review pending",
      "introducedInRulesetVersion": 4,
      "sourceConflict": "Single-source outlier at 10 years, far longer than any neighbour. Flagged for counsel as a priority."
    }
  ],
  "limitationFallback": {
    "years": 3,
    "fromYearEnd": true,
    "basis": "3Y FROM YEAR-END",
    "ruleId": "lim.default_ec_3y_year_end",
    "hardBarDays": 1460
  },
  "withheld": {
    "reason": "Rules conditioning on the operating carrier are withheld. They encode which airlines we work with, and publishing them would disclose commercial policy about named third parties.",
    "eligibilityGates": 1,
    "referralGates": 11
  },
  "caveats": [
    "The limitation periods are our own encoding, and most rows are pending counsel review. The source status field on every row says which.",
    "Where published sources conflict on a period, the shorter one is encoded deliberately.",
    "Engine day gates are conservative approximations in days, set so the engine stops accepting a claim later than the true deadline rather than earlier. The exact date is computed per claim from the flight date.",
    "This dataset describes how our free check behaves. It is not legal advice and it is not a statement of any court's position."
  ]
}