Scope: CARs Part VII Subpart 5 (705) — Airline Operations ONLY (equivalent to USA Part 121 / Part 117)
Regulation: Canadian Aviation Regulations (SOR/96-433) §700.19 onward — Flight Crew Member Fatigue Management
Related Work Item: Feature #1908 — FTDT Rest Rules
Division III (§700.19 onwards): Flight Crew Member Fatigue Management
| Component | Notes |
|---|---|
DutyPeriod_CAN (base class) | Exists |
DutyPeriod_CAN_UnAugmented | Standard flight operations |
DutyPeriod_CAN_Augmented | Augmented crew operations |
DutyPeriod_CAN_UnAugmented_R | Reserve operations |
DutyPeriod_CAN_Augmented_R | Augmented reserve operations |
CalculatorRest_CAN.cs | 10.4 KB — partial implementation |
Gap: Rest requirement rules (§§700.40–700.43, §700.50, §700.70) largely unimplemented. See the TDD Implementation Plan for full status.
| Aspect | USA (Part 117) | Canada (CARs 705) |
|---|---|---|
| Regulatory structure | Single part (117) for all commercial ops | Part VII divisions vary by operation type |
| Rest period terminology | "Rest period" | "Rest period" + "Local night's rest" + "Time free from duty" |
| Weekly rest requirement | 30 hours in 168 hours | 1 single day free from duty per 168h (§700.29(1)(c)) |
| Pre-duty rest minimum | 10 hours (8h sleep opportunity) | 12h at home base / 10h away or 10h in suitable accommodation |
| Time zone rest | 56h + 3 physiological nights (§117.25(d)) | Up to 3 local nights (§700.42, TZ diff dependent) |
| Acclimation | 72h in theater or 36h free from duty | <4h TZ: 72h in same zone; ≥4h TZ: 96h in same zone |
| Crew self-declaration | §117.25(f) — crew may refuse if insufficient rest | §700.26 — crew shall advise of fatigue; air operator shall not assign |
| Deadhead rest extension | §117.25(g) — rest = max(deadhead duration, 10h) | §700.43 — positioning rest rules |
| FRMS | Not explicitly in Part 117 | §700.200 — exemptions via FRMS (Transport Canada process) |
| Reserve operations | §117.21 (RAP + FDP limits) | §700.70 (RAP advance notice, RDP max, WOCL extension) |
The following questions from the original analysis have been resolved by extracting the full regulatory text:
| Question | Answer (CARs 705) |
|---|---|
| Minimum pre-duty rest period? | 12h at home base; 10h away (§700.40) |
| Sleep opportunity requirement? | No equivalent to Part 117's 8h uninterrupted sleep — CARs uses "suitable accommodation" standard |
| Weekly rest requirement? | 1 single day free from duty per 168h (§700.29(1)(c)) |
| Home base return rest rules? | §700.42(2): up to 3 local nights depending on TZ diff + hours away |
| Acclimation/theater change rules? | §700.28(5): <4h TZ diff = 72h; ≥4h TZ diff = 96h (no longitude threshold like Part 117) |
| Crew self-declaration provisions? | §700.26: crew shall advise of fatigue; operator cannot assign a fatigued crew member |
| Deadhead rest extensions? | §700.43: positioning rest (different mechanism from Part 117 §117.25(g) deadhead rules) |
| How does FRMS work? | §700.200: notice of intent to TC + FRMS plan + 90-day reporting; max 3 years, then §700.234 |
| CARs 705 FDP limits? | §700.28: 4 tables by avg flight duration + flight count; see full text |
| Cumulative limits? | §700.27: 112h/28d, 300h/90d, 1000h/365d; §700.29: 2200h/365d, 192h/28d, 60h/7d |
New properties for DutyPeriod_CAN base class:
// CARs rest requirements
public TimeSpan PreDutyRestDuration_CAN { get; set; }
public DateTimeOffset PreDutyRestStart_CAN { get; set; }
public DateTimeOffset PreDutyRestEnd_CAN { get; set; }
// CARs time zone tracking
public int TimeZoneDifferenceFromHomeHours { get; set; }
public double HoursAwayFromHomeConsecutive { get; set; }
// CARs 705 — reserve tracking
public int CARsOperationType { get; set; } = CARsOperationType.Airline_705;
// FRMS exemption flag
public bool HasFRMSExemption { get; set; }
public string FRMSExemptionNumber { get; set; }
New validation class: FTDTRestValidator_CAN (parallel to FTDTRestValidator_USA)
Calculator integration:
public static void CalculateDutyPeriod(IDutyPeriod dutyPeriod)
{
// Existing calculations...
// NEW: Validate CARs rest requirements
FTDTRestValidator_CAN.ValidatePreDutyRest_CAN(dutyPeriod);
FTDTRestValidator_CAN.ValidateWeeklyRest_CAN(dutyPeriod);
FTDTRestValidator_CAN.ValidateTimeZoneRest_CAN(dutyPeriod); // §700.42
FTDTRestValidator_CAN.ValidatePositioningRest_CAN(dutyPeriod); // §700.43
if (dutyPeriod.HasFRMSExemption)
FTDTRestValidator_CAN.ValidateFRMSExemption_CAN(dutyPeriod);
}
| Document | Status |
|---|---|
| index-can.html (CARs FTDT overview) | ✅ Created |
| definitions-can.html | ✅ Created |
| calculator-can.html | ✅ Created |
| duty-period-can.html | ✅ Created |
| use-cases-can.html | ✅ Created |
| resources-can.html | ✅ Created |
| cars-705-flight-duty-limits.html (full regulatory text) | ✅ Created |