Rest Requirements After a Long-Haul Rotation

The exact question here is what happens to required rest after a long, time-zone-crossing duty when the same rotation is flown under two regimes. A crew member completes a 13-hour flight duty period down-route, having crossed six time zones. Under FAA Part 117 the rest owed is a flat floor; under EASA it is a function of the duty just finished. For a short duty the two often coincide, but a long-haul rotation is exactly where they diverge — and where a scheduler who plans to the FAA minimum silently under-rests a crew that also has to satisfy EASA. This page resolves both minimums, reconciles them, and shows why the FAA vs EASA scenario comparisons treat rest as a place the two regimes genuinely part. It shares the rest model developed in the rest period compliance checks and anchors its definitions to the crew duty time taxonomy.

Prerequisites

The scenario, stated precisely

The crew’s preceding flight duty period ran 13 hours 00 minutes and ended at a down-route station six time zones east of home base. The rest period now being validated is the gap between that release and the next report. Both regimes measure that gap in true elapsed time — the arithmetic runs in UTC regardless of the time-zone shift — but they set the floor differently.

Step 1 — Resolve the FAA minimum rest

Under §117.25(e), the minimum rest before a flight duty period is a flat 10 hours with an opportunity for 8 uninterrupted hours of sleep. The length of the preceding duty does not enter the FAA floor at all.

from datetime import timedelta

FAA_MIN_REST = timedelta(hours=10)          # §117.25(e) flat floor
FAA_SLEEP_OPPORTUNITY = timedelta(hours=8)   # uninterrupted sleep opportunity


def faa_min_rest(preceding_duty: timedelta) -> timedelta:
    # Preceding duty is irrelevant to the FAA floor; it is a flat constant.
    return FAA_MIN_REST


faa_rest = faa_min_rest(timedelta(hours=13))   # -> 10:00

Verify: faa_min_rest(timedelta(hours=13)) returns a 10-hour requirement — identical to the requirement after a 6-hour duty, because the FAA floor is constant.

Step 2 — Resolve the EASA minimum rest

Under ORO.FTL.235, the minimum rest is the greater of the preceding duty period or a fixed floor — 12 hours at home base, 10 hours away from base. Down-route, the fixed floor is 10 hours, but the preceding duty was 13 hours, so the preceding-duty term wins: the crew is owed 13 hours of rest.

def easa_min_rest(preceding_duty: timedelta, *, at_home_base: bool) -> timedelta:
    """ORO.FTL.235: rest is the greater of the preceding duty or the location floor."""
    floor = timedelta(hours=12 if at_home_base else 10)
    return max(preceding_duty, floor)


easa_rest = easa_min_rest(timedelta(hours=13), at_home_base=False)   # -> 13:00

Verify: easa_min_rest(timedelta(hours=13), at_home_base=False) returns 13 hours; the same call with a 9-hour preceding duty returns the 10-hour floor instead, showing the max() selecting between the two terms.

Step 3 — Reconcile and report the binding regime

For a pairing that must satisfy both regimes, the binding rest is the longer of the two minimums, because a rest that is legal under one regime but short under the other is not a legal rest for a dual-jurisdiction crew. Here EASA’s 13 hours exceeds the FAA’s 10, so EASA binds and the crew must be given three additional hours beyond the American floor.

def reconcile_rest(faa: timedelta, easa: timedelta) -> dict:
    binding = "EASA" if easa > faa else "FAA"
    return {
        "faa_hours": faa.total_seconds() / 3600,
        "easa_hours": easa.total_seconds() / 3600,
        "binding_regime": binding,
        "required_hours": max(faa, easa).total_seconds() / 3600,
        "extra_over_faa_hours": (max(faa, easa) - faa).total_seconds() / 3600,
    }


verdict = reconcile_rest(faa_rest, easa_rest)
# {'faa_hours': 10.0, 'easa_hours': 13.0, 'binding_regime': 'EASA',
#  'required_hours': 13.0, 'extra_over_faa_hours': 3.0}
FAA 10:00 flat floor vs EASA 13:00 relative floor After a 13-hour down-route duty, the FAA requires a flat 10 hours of rest while EASA requires the greater of the preceding duty or 10 hours, which is 13 hours. The bars are drawn to scale from a shared zero; EASA is three hours longer and therefore binds. 0h 7h 13h FAA 117 10:00 EASA 13:00 · binds +3 h over FAA
The FAA floor is a flat 10 hours; the EASA floor tracks the preceding duty, so a 13-hour rotation owes 13 hours of rest — three hours a scheduler planning to the FAA minimum would miss.

Verification queries and assertions

from datetime import timedelta

assert faa_min_rest(timedelta(hours=13)) == timedelta(hours=10)
assert easa_min_rest(timedelta(hours=13), at_home_base=False) == timedelta(hours=13)
# A short duty makes the two regimes agree at the floor:
assert easa_min_rest(timedelta(hours=8), at_home_base=False) == timedelta(hours=10)
assert reconcile_rest(timedelta(hours=10), timedelta(hours=13))["required_hours"] == 13.0

The final assertion pins the operational consequence: after a long duty the dual-jurisdiction crew is owed the EASA figure, and a roster built only to the FAA floor would publish an illegal short rest.

Failure modes and troubleshooting

Frequently Asked Questions

Why is the EASA rest longer than the FAA rest here?

Because EASA ties the floor to the preceding duty. A 13-hour duty demands 13 hours of rest down-route, whereas the FAA floor is a flat 10 hours regardless of how long the previous duty was. The longer the duty, the wider the gap between the two regimes.

Do the two regimes ever agree on rest?

Yes — whenever the preceding duty is at or below the EASA fixed floor. After an 8-hour down-route duty, both require 10 hours, so the reconciliation is a no-op. The divergence only appears once the duty exceeds the floor.

Does crossing the date line change the rest calculation?

Not the length — rest is measured in UTC elapsed time, which is unaffected by the date line. It does change the local clock the crew experiences and their acclimatisation state, which matters for the next duty’s FDP band, not for this rest floor.

How does commander’s discretion interact with these minimums?

Both regimes allow limited, documented reductions or extensions under defined circumstances, and those are governed and logged separately from the base floor computed here. This page resolves the scheduled minimum; a discretionary reduction is a distinct, audited event layered on top.

Back to FAA vs EASA Scenario Comparisons.