The CARs Calculator determines Flight Duty Period (FDP) legality for Canadian airline operations (CARs 705) based on the regulatory limits in CARs Part VII, Division III (§§700.19–700.72).
Calculator files: ALPAMobile.Application/Services/FlightTimeDutyTime/FTDTCalculator_CAN.cs + CAN/Rules_700_CAN.cs (1908 engine; ALPAMobile.Domain/Data/Models/FlightTimeDutyTime/CalculatorRest_CAN.cs serves the legacy path only) · Scope: Subpart 5 (705) — Airline Operations only
GatedFTDTCalculationEngine — the remote switch is the FTDTRestRulesEngine row of /api/settings/list genericSettings (ALPAMobile/Helpers/FTDTFeatureFlagsOptionsConfigurator.cs; precedence in ALPAMobile/Helpers/AppPropertiesFeatureFlags.cs, AB#2969). A missing row or off means the legacy engine for every member (no rest violations); shadow keeps members on legacy results while the new engine runs alongside for divergence logs; on makes the engine available, and it runs only for members who turn on Settings → FTDT Rest Rules Engine (off by default). The row is on only on gatewayapi (production); gatewayapiqa has no row, so builds pointed at QA never get the engine. The §700.42 timezone-dependent rest logic is implemented but dormant until the backend airports API ships timezone fields (ALPAMobile/Services/DataManagerAirportLookup.cs; backend ask tracked as ALPA Services AB#2371).| Time Period | Maximum Flight Time |
|---|---|
| 24 consecutive hours (single-pilot only) | 8 hours |
| 28 consecutive days | 112 hours |
| 90 consecutive days | 300 hours |
| 365 consecutive days | 1,000 hours |
§700.27(2) — Aggregation: Flight time from all flight operations (not just current employer) must be included. For augmented flights, the total flight time of the entire flight counts for each augmented crew member.
§700.28(6) Positioning exclusion: Positioning is not counted as a flight for FDP table column selection.
§700.28(8) Standby FDP start: For a crew member on standby, FDP begins when they report for duty at the location designated by the air operator.
| Item | FDP Start Time | 1–11 Flights | 12–17 Flights | 18+ Flights |
|---|---|---|---|---|
| 1 | 00:00–03:59 | 9 hrs | 9 hrs | 9 hrs |
| 2 | 04:00–04:59 | 10 hrs | 9 hrs | 9 hrs |
| 3 | 05:00–05:59 | 11 hrs | 10 hrs | 9 hrs |
| 4 | 06:00–06:59 | 12 hrs | 11 hrs | 10 hrs |
| 5 | 07:00–12:59 | 13 hrs | 12 hrs | 11 hrs |
| 6 | 13:00–16:59 | 12.5 hrs | 11.5 hrs | 10.5 hrs |
| 7 | 17:00–21:59 | 12 hrs | 11 hrs | 10 hrs |
| 8 | 22:00–22:59 | 11 hrs | 10 hrs | 9 hrs |
| 9 | 23:00–23:59 | 10 hrs | 9 hrs | 9 hrs |
| Item | FDP Start Time | 1–7 Flights | 8–11 Flights | 12+ Flights |
|---|---|---|---|---|
| 1 | 00:00–03:59 | 9 hrs | 9 hrs | 9 hrs |
| 2 | 04:00–04:59 | 10 hrs | 9 hrs | 9 hrs |
| 3 | 05:00–05:59 | 11 hrs | 10 hrs | 9 hrs |
| 4 | 06:00–06:59 | 12 hrs | 11 hrs | 10 hrs |
| 5 | 07:00–12:59 | 13 hrs | 12 hrs | 11 hrs |
| 6 | 13:00–16:59 | 12.5 hrs | 11.5 hrs | 10.5 hrs |
| 7 | 17:00–21:59 | 12 hrs | 11 hrs | 10 hrs |
| 8 | 22:00–22:59 | 11 hrs | 10 hrs | 9 hrs |
| 9 | 23:00–23:59 | 10 hrs | 9 hrs | 9 hrs |
| Item | FDP Start Time | 1–4 Flights | 5–6 Flights | 7+ Flights |
|---|---|---|---|---|
| 1 | 00:00–03:59 | 9 hrs | 9 hrs | 9 hrs |
| 2 | 04:00–04:59 | 10 hrs | 9 hrs | 9 hrs |
| 3 | 05:00–05:59 | 11 hrs | 10 hrs | 9 hrs |
| 4 | 06:00–06:59 | 12 hrs | 11 hrs | 10 hrs |
| 5 | 07:00–12:59 | 13 hrs | 12 hrs | 11 hrs |
| 6 | 13:00–16:59 | 12.5 hrs | 11.5 hrs | 10.5 hrs |
| 7 | 17:00–21:59 | 12 hrs | 11 hrs | 10 hrs |
| 8 | 22:00–22:59 | 11 hrs | 10 hrs | 9 hrs |
| 9 | 23:00–23:59 | 10 hrs | 9 hrs | 9 hrs |
| Item | FDP Start Time | Maximum FDP |
|---|---|---|
| 1 | 00:00–03:59 | 9 hrs |
| 2 | 04:00–04:59 | 10 hrs |
| 3 | 05:00–05:59 | 11 hrs |
| 4 | 06:00–06:59 | 12 hrs |
| 5 | 07:00–12:59 | 13 hrs |
| 6 | 13:00–16:59 | 12.5 hrs |
| 7 | 17:00–21:59 | 12 hrs |
| 8 | 22:00–22:59 | 11 hrs |
| 9 | 23:00–23:59 | 10 hrs |
Table 4 has no flight-count column — start time alone determines the maximum FDP.
| Time Zone Difference | Acclimatization Requirement |
|---|---|
| Less than 4 hours | Required rest provided AND 72 hours spent in same time zone |
| 4 hours or more | Required rest provided AND 96 hours spent in same time zone |
| Any difference | 24 hours per hour of difference from last acclimatized location |
If not acclimatized, use local time at the last acclimatized location (§700.19(2)) for table lookup. Unlike Part 117, there is no flat 30-minute FDP reduction for non-acclimatized crew.
Canadian time zones (§700.28(7)): Pacific, Mountain, Central, Eastern, and Atlantic (including Newfoundland and Labrador).
| Time Period | Maximum |
|---|---|
| 365 consecutive days | 2,200 hours |
| 28 consecutive days | 192 hours |
| 7 consecutive days (standard conditions) | 60 hours |
| 7 consecutive days (extended conditions) | 70 hours |
Conditions for 60-hour/7-day limit (§700.29(1)(c)): Air operator must provide (i) 1 single day free from duty in any 168 consecutive hours, AND (ii) 4 single days free from duty in any 672 consecutive hours.
70-hour/7-day limit (§700.29(1)(d)): More restrictive — requires 120 consecutive hours free from duty (including 5 consecutive local nights' rest) in any 504 consecutive hours, AND crew member is not assigned early/late/night duty, not assigned FDP > 12 hours, and has max 24 hours of work in any consecutive 48 hours. For this limit a reserve's duty begins at its reserve availability period's start, so a reserve available from 05:00 is early duty even when it reports at 08:00, and one available from 23:00 is night duty when it reports the next morning (interim reading; §700.41 still reads a reserve from its report) (700.01, AC 700-047 §4.34(3); AB#3375, CA reserve early duty from the availability start).
Hours of work for reserve/standby (§700.29(3)): Reserve availability period = 33% of period time. Standby = 100% of standby time.
At home base:
| Option | Rest Required |
|---|---|
| Standard | 12 consecutive hours |
| With travel time | 11 hours + travel time to/from rest location |
| Suitable accommodation provided | 10 hours in that accommodation |
Away from home base: 10 hours in suitable accommodation (standard).
What the app checks (Rest Rules Engine on; interim reading, José 2026-10-13, awaiting the Canadian SME; AB#3354): the home-base option follows two inputs the member records on the Canadian duty period the rest follows, beside "Immediate Positioning After FDP": Travel time to and from the rest location (whole minutes, 1 to 720, total for the rest; no travel is a blank field) and Operator provided suitable accommodation. With travel time recorded the rest is the shorter of 12 h and 11 h plus it, since §700.40(1)(a)(i) offers "either 12 hours, or 11 hours plus the travel time" (over 60 minutes of travel the 12 h figure applies, AB#3374); with accommodation recorded, 10 h (§700.40(1)(a)(ii)); with neither, 12 h; with both, 10 h (interim: the two are alternatives). A duty period that ended away from home base ignores both (10 h). The warning names the option, for example "Insufficient rest: 11:00 provided, 11:00 + 00:45 travel required (home base)" or "09:59 provided, 10:00 required (home base, accommodation provided)"; the §700.43(2) floor after positioning (whether the minutes were entered on the FDP or the positioning was logged as its own duty period: the options are read from the positioning record, or from the FDP when the positioning record has none; one record's options are read together, never mixed, and a toggle switched on and back off counts as none, AB#3371) and the base §700.63(3) extends read the same figure and cite the same subsection. A §700.40(2) raise still governs over any option. The form refuses a travel time of 0; the engine reads none. The two values stay on the device until the FTDT service carries the columns (ALPA Services AB#3355): they do not sync between devices yet. Before 2026-10-13 the app always required 12 h at home base. The rest is measured from the previous duty period's release; a reserve not called out and concluded through RAP END (its release left open, or not held by the service) ends at its RAP end, as the same reserve with its release written does, for the §700.40 rest and the §700.41 early, late and night classes alike; a reserve not called out has no flight duty period, so §700.40(2) never raises its rest (AB#3392).
§700.40(2) — Overtime rest extension: If duty exceeds the §700.28 max FDP by ≥1 hour, rest period must be the longer of: (a) the max FDP plus the overage amount, or (b) the standard §700.40(1) minimum.
One local night's rest required between: (a) end of late duty or night duty and the following early duty, or (b) end of early duty and the following late/night duty. Exception: does not apply when local time differs by more than 4 hours from last acclimatized location.
When FDP ends away from home base:
| Time Zone Difference | Rest Required |
|---|---|
| 4 hours | 11 consecutive hours in suitable accommodation |
| More than 4 hours | 14 consecutive hours in suitable accommodation |
When FDP ends at home base (returning from different time zone):
| TZ Diff | Away Duration | WOCL in FDP? | Required Rest |
|---|---|---|---|
| 4 hours | > 36 hrs | — | 13 consecutive hours |
| > 4 and ≤ 10 hours | ≤ 60 hrs | No | 1 local night's rest |
| > 4 and ≤ 10 hours | > 60 hrs | — | 2 local nights' rest |
| > 4 and ≤ 10 hours | Any | Yes | 2 local nights' rest |
| > 10 hours | ≤ 60 hrs | — | 2 local nights' rest |
| > 10 hours | > 60 hrs | — | 3 local nights' rest |
What the app checks (Rest Rules Engine on): §700.42 replaces §700.40 only when one of its paragraphs sets a rest for the interval. A homecoming difference of exactly 4 h with 36 h or less away meets no paragraph, so §700.40's home-base floor stays in force (verification fix, AB#3356; before 2026-10-13 the 4 h difference alone suppressed §700.40 and a 6 h rest passed). The hours of §700.42(1) and §700.42(2)(a) are compared with the rest after an extended FDP (§700.60(7), §700.63(3)) and the larger governs; the local nights of §700.42(2)(b)/(c) are checked beside it. The time away from home base in §700.42(2) (interim reading, José 2026-10-13, awaiting the Canadian SME; AB#3353) runs from the outbound, the latest leg before the homecoming that departs home base (its duty period's report when it is the first leg, else its departure), to the homecoming FDP's release; every leg of every prior record is read, so a leg landing at home base inside a record ends one stretch and the next leg departing home base starts the one that counts; a record with no flight or positioning legs (reserve or ground duty at the outstation) is skipped and does not end the stretch, and days off at home before the outbound do not count. When no outbound is logged the figure is assumed and the warning says so: from the last arrival at home base when one is logged, else the whole seven days before the next report (for an FDP a positioning joined, the seven days before its own report). After positioning (minutes entered on the FDP, positioning legs after its last flight, or its own duty period), §700.43 alone judges the rest after the positioning and its (2) floor carries the §700.42(2) rest (the 13 h, or the rest that holds the local nights measured from the end of the positioning, interim; AB#3366: a fixed span of 9 h per night plus 13 h between windows was 2 h short for three nights and short of the nights from most starts): no separate §700.42 line prints for that gap. Before 2026-10-13 the figure read 0 h for every homecoming FDP, so the 13 h of (2)(a) and the 36 h and 60 h steps of (2)(b)/(c) never applied. The warning names the figure, for example "2 local night(s) rest provided, 3 required (86.0h away)" or "… 2 required (144.0h away, WOCL=False) (time away assumed: no outbound from home base in the last 7 days)".
| FDP + Positioning Excess | Required Rest |
|---|---|
| Max FDP exceeded by ≤ 3 hours | = Total hours of work (FDP + positioning) |
| Max FDP exceeded by > 3 hours | = Total hours of work plus the amount of excess |
Rest shall not be shorter than the §700.40(1) minimum in any case. Positioning exceeding the max FDP by >3 hours requires crew member consent (§700.43(3)), and the total may not exceed the max FDP by more than 7 hours.
What the app checks (Rest Rules Engine on; interim readings, José 2026-10-13, awaiting the Canadian SME): the hours of work run from the FDP's report to the end of the positioning, less a qualifying split-duty break; the excess over the maximum is measured on the FDP plus the travel time with the break inside it, so the split's credit is not taken twice (José 2026-10-14, AB#3378, option B), and the warning then names both figures, for example "hours of work 16:00, FDP + positioning 19:00, 04:15 over the 14:45 maximum"; the maximum is the §700.28 maximum even for an augmented crew: the §700.28 table for the report, flights and average flight duration, plus the §700.50 credit as applied to the record, for either crew (interim). Positioning after the FDP is read from the "Immediate Positioning After FDP" minutes entered on the FDP, from positioning legs appended to the FDP's own record after its last flight (AB#3365: the rest after them begins at the record's release; read only when every such leg has ended, a leg still open keeping the record under §700.40 as before; minutes entered beside such legs are left out and logged, the legs being the record of the travel), or from a positioning-only duty period logged right after it: one that reports before the §700.40 rest after the FDP would have elapsed is positioning immediately after that FDP (no §700.40 rest is demanded between the two), and the rest after it is judged once, under §700.43(1)/(2) with the §700.40(1) floor (§700.40 and §700.42 do not run on that interval), the positioning measured by its legs; positioning that reports later stands alone and counts as an FDP for the rest after it (§700.43(4)). The warning names the rest provided and required with its basis, for example "13:00 provided, 15:00 required (hours of work 15:00, FDP + positioning 02:30 over the 12:30 maximum)". §700.43(3)(b), the 7 h cap, has its own measure and maximum (José 2026-10-22, project decision awaiting the SME, AB#3384): the FDP plus the positioning travel only, against the crew's own maximum, the §700.28 figure for an unaugmented crew and the §700.60 figure for an augmented one ("700.28 + 700.50" or "700.60 + 700.50" when it carries a split-duty credit); for an assigned reserve that stored figure is read without the §700.70(10) shortening, and no §700.63 extension is added, so the check errs toward flagging (Claude, 2026-10-26, SME to confirm; AB#3128). The FDP runs from the report to the last flight's Block In (CARs 101.01; applied by Claude within the ruling, SME to confirm); the travel is the block time of the positioning legs after it (on the FDP's own record the larger of the ended legs and the "Immediate Positioning After FDP" minutes, so ending a leg never lowers it; with a positioning duty period joined to it, the larger of the FDP's minutes and the logged travel, the FDP's ended legs plus the larger of the joined record's legs and the minutes entered on it: the FDP's minutes describe the whole positioning after the FDP, however it was logged, so they stand in for all of that logged travel and are never added to it, and inside the joined record its own minutes stand in for its own legs, decided by Claude under José's delegation on 2026-10-26, SME to confirm), so ground sits, connections between legs and debriefs are left out, and a leg still open is never counted. More than 7 hours over is a "§700.43(3)(b)" line on the record where the positioning ends, whether or not a later duty period is logged: the FDP's own record on its own positioning, and the positioning duty period on the whole travel, so when both exceed both records carry the line (the FDP's record is not recalculated when the positioning duty period is saved), for example "Positioning past the limit: FDP 14:00 + positioning travel 11:01 = 25:01, 07:01 over the 18:00 maximum (700.60); 700.43(3)(b) allows at most 07:00 over, even with the member's agreement". It is not checked with no concluded flight, a flight with no Block In, a flight or positioning leg with its Block In before its Block Out, no calculated maximum, or when the FDP before a positioning duty period cannot be recalculated. §700.43(3)(a), the member's agreement, is not checked. Whichever way the positioning was entered, §700.43 alone judges the interval after it: its (2) floor is the largest of the §700.40 rest (with the §700.40(2) raise when minutes were entered on the FDP; the §700.40(1) floor by where the positioning ended when it was its own duty period), the §700.42 rest when it governs, and the rest after an extended FDP (§700.60(7), §700.63(3)), and none of those prints a second line for the one gap (AB#3353 review, 2026-10-13; before, "§700.40 09:00 provided, 10:00 required" or a §700.42(2) or §700.60(7) line appeared beside the §700.43(2) line when minutes were entered on the FDP, and the own-duty-period shape dropped the §700.42(2) nights).
| Item | Max FDP | Additional Crew | Rest Facility |
|---|---|---|---|
| 1 | 14 hrs | 1 | Class 3 |
| 2 | 15 hrs | 1 | Class 1 or Class 2 |
| 3 | 15.25 hrs | 2 | Class 3 |
| 4 | 16.5 hrs | 2 | Class 2 |
| 5 | 18 hrs | 2 | Class 1 |
In-flight rest requirements (§700.60(2)):
| Number of Flights | In-Flight Rest Requirement |
|---|---|
| 1 flight | All crew members provided with in-flight rest in a rest facility |
| 2 or 3 flights | Crew flying final landing → 2 consecutive hours; all other crew → 90 consecutive minutes |
In-flight rest window (§700.60(6)): Between reaching 3,048 m (10,000 ft) above aerodrome elevation and 15 minutes before scheduled beginning of descent.
Post-extended-FDP rest (§700.60(7)): If FDP extended under §700.60, rest must be the longer of: (a) the duration of duty just completed, or (b) 14 hours in suitable accommodation (16 hours when ending at home base).
What the app checks (Rest Rules Engine on; interim reading, José 2026-10-13, awaiting the Canadian SME; AB#3356): an augmented crew's FDP, measured from the report to the last concluded flight's Block In, that ran past the §700.28 maximum for that duty (the table on its flights plus the §700.50 credit) counts as extended, whether the §700.60(1) table or a §700.63 extension allowed it. The rest before the next FDP must then be the longer of the duty period just completed (report to release) and 14 h, or 16 h when the duty period ended at home base. The warning reads, for example, "Insufficient rest after an extended flight duty period: 12:00 provided, 15:00 required (the duty period just completed 15:00; 14:00 in suitable accommodation away from home base; rest … to …) [interim reading: an augmented crew's FDP past the 700.28 maximum counts as extended]". It runs beside §700.40 and §700.42: the largest requirement governs and names its rule, and after positioning (minutes entered on the FDP, or a positioning-only duty period logged right after it) it is the §700.43(2) floor. An unaugmented FDP is not read as extended under §700.60(7) (its overage is §700.40(2)'s and, with the reason recorded, §700.63(3)'s).
FDP co-location rule (§700.60(4)): FDP for all crew must begin and end at the same location. Exception: for multi-flight FDPs where first flight is scheduled <105 minutes, additional crew may join after the first flight — but all must end at the same location.
An air operator shall not assign an FDP that: (1) occurs within the crew member's WOCL (02:00–05:59), AND (2) includes a flight that follows a scheduled flight of more than seven hours.
| Limit | Maximum |
|---|---|
| Maximum FDP (any operation) | 18 hours |
| Maximum scheduled flight time of any single flight | 16 hours |
These are absolute caps — the 18-hour FDP remains a hard limit even under FRMS exemptions.
| Reserve Availability Period | Notice Required |
|---|---|
| No part falls within WOCL (02:00–05:59) | ≥ 12 hours before start |
| Any part falls within WOCL | ≥ 32 hours before start |
Change restrictions (§700.70(2)): Start time may not change by >2 hours earlier or >4 hours later, or >8 hours total in 168 consecutive hours (unless 2 consecutive days free from duty are provided).
Maximum reserve availability period: 14 consecutive hours. Rest between RAPs: ≥10 consecutive hours.
If reserve availability period begins 02:00–05:59 and member is not contacted, reserve duty period may be extended by the shorter of: 2 hours, or 50% of the RAP time falling within 02:00–05:59. A report before 06:00 means the member was contacted inside 02:00–05:59, which voids the extension (AC 700-047 §4.86(1); José 2026-10-07).
| Break Time Period | FDP Extension Credit |
|---|---|
| Break minutes during 00:00–05:59 | 100%, after the break is reduced by 45 minutes |
| Break minutes during 06:00–23:59 | 50%, after the break is reduced by 45 minutes |
| UOC replanning after FDP begins | 50% of (break duration − 45 minutes) |
The 45 minutes come off the break once (§700.50(2); AC 700-047 §4.50(1)), and each remaining minute earns the rate of its band, so a break crossing 06:00 or midnight is credited in both. Which band the 45 minutes come out of is left to the operator (AC 700-047 §4.50(3)); the app takes them from the 100% band first, the lowest credit, as an interim ruling pending the SME (José 2026-10-06, open-questions register). Example: 04:30–07:30 earns 90 − 45 = 45 minutes plus 50% of 90 = 45 minutes, 1:30 in all.
Minimum break: 60 consecutive minutes in suitable accommodation. Night duty restriction: split duty extension allowed for maximum 3 consecutive nights (§700.50(3)).
| Operation Type | Max Extension |
|---|---|
| Single-pilot | +1 hour |
| Non-augmented | +2 hours |
| Augmented — 1 flight in FDP | +3 hours |
| Augmented — 2 or 3 flights in FDP | +2 hours |
UOC must occur within 60 minutes of FDP start. Post-extension rest must be extended by at least the same amount as the extension. Pilot-in-command must notify the air operator after an extended FDP.
What the app checks (§700.63(3); Rest Rules Engine on; interim reading, José 2026-10-13, awaiting the Canadian SME; AB#3356): when the member marks the duty period exceeded with unforeseen operational circumstances as the reason, the extension is the FDP (report to the last concluded flight's Block In) flown past the record's maximum (the §700.28 figure with its credit, or the §700.60(1) figure), and the rest otherwise required before the next FDP (§700.40(1) by where the duty ended; §700.42(1)'s hours; or §700.42(2)'s: 13 h under (a), or under (b)/(c) the rest that holds the local nights it names from the FDP's release, never less than the shortest over every start: one night 9:00, two 31:00, three 55:00; interim, AB#3366) grows by that extension. The warning reads, for example, "Insufficient rest after a flight duty period extended for an unforeseen operational circumstance: 10:30 provided, 10:45 required (700.40(1)(b) 10:00 extended by the 00:45 extension of the flight duty period; rest … to …) [interim reading: …]". The largest of §700.40(2), §700.60(7) and §700.63(3) governs and names its rule. Not checked: §700.63(3) on a split duty (the circumstance may be the §700.50(1)(c) replan of the break; the app logs why), the §700.63(1) caps (1/2/3/2 h) and the 60-minute window, and §700.63(2)/(4).
| Parameter | Limit | CARs Reference |
|---|---|---|
| Max flight time / 24 hrs (single pilot) | 8 hrs | §700.27(1)(d) |
| Max flight time / 28 days | 112 hrs | §700.27(1)(a) |
| Max flight time / 90 days | 300 hrs | §700.27(1)(b) |
| Max flight time / 365 days | 1,000 hrs | §700.27(1)(c) |
| Max hours of work / 7 days (standard) | 60 hrs | §700.29(1)(c) |
| Max hours of work / 7 days (extended) | 70 hrs | §700.29(1)(d) |
| Max hours of work / 28 days | 192 hrs | §700.29(1)(b) |
| Max hours of work / 365 days | 2,200 hrs | §700.29(1)(a) |
TimeZoneInfo.ConvertTime for all DST-aware arithmetic — no manual offset math.Source: Canadian Aviation Regulations (CARs), SOR/96-433, Part VII, Division III. Consolidated through SOR/2025-226. Always verify against the current version at laws-lois.justice.gc.ca.