{
  "rule": {
    "rule_id": "R-EASA-REST",
    "ruleset": "2026.2",
    "version": 3,
    "layer": "regulatory",
    "authority": "EASA",
    "reference": "ORO.FTL.235(b)",
    "name": "Minimum rest away from base",
    "description": "Rest away from home base at least as long as the preceding duty period, or 12 hours, whichever is greater.",
    "severity": "block",
    "applies_to": "crew",
    "applies_ranks": "CPT,FO,CC,ENG",
    "applies_entities": "ALL",
    "applies_regions": "EU",
    "applies_duty": "overnight,irops,positioning",
    "applies_channel": "ALL",
    "expression": "{\"field\":\"rest_hours_available\",\"op\":\">=\",\"expr\":\"max(preceding_duty_hours, min_rest_hours)\"}",
    "threshold": "max(duty, 12h)",
    "approve_role": "none",
    "second_approver_above": null,
    "suspends_on_disruption": 0,
    "effective_from": "2026-01-01",
    "effective_to": null,
    "owner": "Flight Safety",
    "enabled": 1
  },
  "params": [
    {
      "param_id": "PRP-4",
      "rule_id": "R-EASA-REST",
      "scope_type": "global",
      "scope_value": "ALL",
      "param_name": "min_rest_hours",
      "param_value": "12",
      "unit": "hours",
      "note": "or the preceding duty, whichever is greater"
    }
  ],
  "byPeriod": [
    {
      "period": "2026-03",
      "n": 12,
      "cost": 0,
      "refused": 12
    },
    {
      "period": "2026-04",
      "n": 13,
      "cost": 0,
      "refused": 13
    },
    {
      "period": "2026-05",
      "n": 11,
      "cost": 0,
      "refused": 11
    },
    {
      "period": "2026-06",
      "n": 8,
      "cost": 0,
      "refused": 8
    },
    {
      "period": "2026-07",
      "n": 10,
      "cost": 0,
      "refused": 10
    },
    {
      "period": "2026-08",
      "n": 12,
      "cost": 0,
      "refused": 12
    }
  ],
  "recent": [
    {
      "breach_id": "PB-D8243",
      "eval_id": "PE-13115",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "10.34h available",
      "limit_value": "12h — greater of preceding duty (9.24h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "EMA",
      "entity": "ASL Airlines Ireland",
      "traveller_type": "crew",
      "channel": "automation",
      "booking_id": "RS-8853114"
    },
    {
      "breach_id": "PB-D8257",
      "eval_id": "PE-13242",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "10.36h available",
      "limit_value": "12h — greater of preceding duty (6.35h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "LGG",
      "entity": "ASL Airlines Ireland",
      "traveller_type": "crew",
      "channel": "automation",
      "booking_id": "RS-8853241"
    },
    {
      "breach_id": "PB-D8265",
      "eval_id": "PE-13330",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "10.77h available",
      "limit_value": "12h — greater of preceding duty (9.86h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "STN",
      "entity": "ASL Airlines Ireland",
      "traveller_type": "crew",
      "channel": "automation",
      "booking_id": "RS-8853329"
    },
    {
      "breach_id": "PB-D8274",
      "eval_id": "PE-13449",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "11.4h available",
      "limit_value": "12h — greater of preceding duty (8.08h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "CGN",
      "entity": "ASL Airlines Ireland",
      "traveller_type": "crew",
      "channel": "automation",
      "booking_id": "RS-8853448"
    },
    {
      "breach_id": "PB-D8360",
      "eval_id": "PE-14148",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "10.89h available",
      "limit_value": "12h — greater of preceding duty (10.91h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "DXB",
      "entity": "ASL Airlines Belgium",
      "traveller_type": "crew",
      "channel": "travel_desk",
      "booking_id": "RS-8854147"
    },
    {
      "breach_id": "PB-D8364",
      "eval_id": "PE-14188",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "11.64h available",
      "limit_value": "12h — greater of preceding duty (11.05h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "CDG",
      "entity": "ASL Airlines Belgium",
      "traveller_type": "crew",
      "channel": "automation",
      "booking_id": "RS-8854187"
    },
    {
      "breach_id": "PB-D8380",
      "eval_id": "PE-14295",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "11.22h available",
      "limit_value": "12h — greater of preceding duty (8.43h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "CDG",
      "entity": "ASL Airlines Belgium",
      "traveller_type": "crew",
      "channel": "automation",
      "booking_id": "RS-8854294"
    },
    {
      "breach_id": "PB-D8389",
      "eval_id": "PE-14365",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "10.52h available",
      "limit_value": "12h — greater of preceding duty (6.98h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "LGG",
      "entity": "ASL Airlines Belgium",
      "traveller_type": "crew",
      "channel": "automation",
      "booking_id": "RS-8854364"
    },
    {
      "breach_id": "PB-D8394",
      "eval_id": "PE-14421",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "10.64h available",
      "limit_value": "12.27h — greater of preceding duty (12.27h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "LGG",
      "entity": "ASL Airlines Belgium",
      "traveller_type": "crew",
      "channel": "automation",
      "booking_id": "RS-8854420"
    },
    {
      "breach_id": "PB-D8432",
      "eval_id": "PE-14728",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "11.49h available",
      "limit_value": "12h — greater of preceding duty (9.35h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "CDG",
      "entity": "ASL Airlines France",
      "traveller_type": "crew",
      "channel": "travel_desk",
      "booking_id": "RS-8854727"
    },
    {
      "breach_id": "PB-D8440",
      "eval_id": "PE-14793",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "11.33h available",
      "limit_value": "12h — greater of preceding duty (7.81h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "MAD",
      "entity": "ASL Airlines France",
      "traveller_type": "crew",
      "channel": "travel_desk",
      "booking_id": "RS-8854792"
    },
    {
      "breach_id": "PB-D8457",
      "eval_id": "PE-14945",
      "period": "2026-08",
      "rule_id": "R-EASA-REST",
      "layer": "regulatory",
      "severity": "block",
      "observed": "10.67h available",
      "limit_value": "12h — greater of preceding duty (8.68h) and 12h",
      "cost_impact": 0,
      "resolved": "refused",
      "station": "LYS",
      "entity": "ASL Airlines France",
      "traveller_type": "crew",
      "channel": "automation",
      "booking_id": "RS-8854944"
    }
  ]
}