A single screen for the chief pilot and dispatcher. Every active pilot's current status, FAR 117 rolling-window utilization, and next scheduled shift — recomputed on every page load from bookings + flight log.
ON_DUTY · ON_REST · EXHAUSTED · AVAILABLE — one pill per pilot, with the reason. Sort exhausted to the top so the dispatcher fixes the squeezes first.
24-hour / 7-day / 28-day flight-time gauges turn amber at 80% and red at the cap. The 1000-hour year guard rail lives one click away on the pilot profile.
Try to book a pilot past their 117 cap and the schedule mutation throws — server-side, not client-side. Plus a violation message that names the window.
FAR 117 (pilots) and 14 CFR 121.467 (flight attendants) are the legal minimums. Most bargaining agreements are stricter. Configure your contract's limits per crew group — minimum rest, maximum duty period, weekly time off, flight-time caps — and the scheduler enforces whichever is more restrictive, the regulation or your contract. A booking that would violate the binding limit is blocked at the source.
Yes. The duty board computes rolling-window accumulation across 24-hour (8h cap), 7-day (30h cap), 28-day (100h cap), and 365-day (1000h cap) windows for every active pilot. Scheduling blocks any new sim booking that would bust a cap.
Both simulator-booking instructor seat-time and self-logged flight entries roll into the totals. We deliberately exclude cancelled bookings so a misclick doesn't ground your pilot.
Yes — the rosterStatus query takes an optional `at` anchor time. The dispatcher can preview the 0600 picture before the day starts.
When the MULTI_BASE module is enabled, you can filter the duty board by base. Each base has its own FAR 117 window roll-up so a captain commuting between hubs stays cleanly attributed.
Yes. On top of the FAR 117 (pilot) and 14 CFR 121.467 (flight attendant) floors, you can configure your bargaining unit's stricter limits — minimum rest, maximum duty period, weekly time off, and flight-time caps — per crew group. The scheduler always enforces whichever is more restrictive, the regulation or your contract, and blocks a booking that would violate the binding limit. A contract value can only tighten a FAR limit, never relax it.