Aviation / Crew scheduling

Automate and optimize airline crew scheduling

Every airline has a system that holds its pairings, crew qualifications, and bids. Few have anything that decides who flies each seat so that every roster stays legal, fair, and stable when a pilot calls in sick. Let's solve that.

One solve crews every pairing, reserve slot, and training session

Timefold assigns crew to pairings, reserve, and training as one optimization problem. Rank, base, fleet, qualifications, availability, minimum rest, rolling block and duty limits, and consecutive duty days are enforced as hard constraints, so every roster is legal before it is published. Within those rules, the model crews as many flights as possible, then balances cost, seniority bids, fairness, and roster stability.

Where Timefold goes beyond manual rostering

Four things decide whether a bid period works. Timefold bakes them into the model.

Legal by construction

Rest, rolling block and duty limits, and qualifications are hard rules, and rosters close to a limit are flagged as near-misses.

Rest that absorbs delays

The model avoids rest that is legal with only minutes to spare, so one late inbound does not cascade into an illegal next pairing.

Seniority without spreadsheets

Pairing bids and day-off requests are weighted by seniority, while undesirable duties and credit are spread fairly.

Re-plans that keep the roster calm

Duties in the lock window stay put, and only seats crew can no longer legally fly are re-crewed.

Crew is the airline cost line that optimization moves

Crew is one of an airline's largest operating costs, and pilots and flight attendants are scarce. Every unproductive duty, missed bid, or last-minute roster change shows up in cost, crew satisfaction, and on-time performance.

~32%

Of airline costs go to staff

Ahead of fuel at about 18%.

3-15%

Savings from pairing optimization

The range industry reports cite for crew cost per block hour.

10,000+

Pilots at the largest carriers

Spread over multiple bases and fleets, too many to roster by hand.

~14 days

From roster publication to flying

After that, every change lands on crew who already planned their lives around it.

Constraints the model expresses today

Rank, base, and fleet matching

Every seat goes to a crew member of the right rank, from the pairing's base, and qualified on its fleet.

Valid qualifications only

A crew member is only rostered on a duty when every qualification it requires is still valid on its last day.

Minimum rest between duties

Release to next report always meets the minimum rest, and duties for one crew member never overlap.

Rolling flight and duty limits

Block time over any 28 days, duty time over any seven days, and consecutive duty days stay within the limits you configure, including flying from before the horizon.

Leave, sickness, and training respected

Nobody is rostered while on leave, sick, or in fixed training, and training sessions only go to crew who are due for that course.

Reserve coverage

Reserve slots are filled with reserve crew only, and calling a reserve out onto a pairing carries a cost, so it happens where it is needed.

Seniority-weighted bids

Pairing bids and day-off requests are honored where possible, with a senior crew member's request weighing more than a junior's.

Fair share of undesirable duties

Red-eyes, weekends, and holidays are spread across crew, and credit hours are balanced instead of piling onto a few people.

Stable re-plans

Duties already in execution, binding awards, and published positions inside the lock window stay put when the model replans. Seats a crew member can no longer legally fly are released and re-crewed.

Open seats stay visible

A seat no legal crew member can fill is left open and flagged instead of breaking the roster, weighted by the number of flights it grounds.

FAQ

Do you have questions? We have answers.

Isn't crew rostering just filling seats on pairings?
+

Filling one seat is easy. Filling every seat while each crew member keeps legal rest, stays inside rolling 7-day and 28-day limits, matches rank, base, fleet, and qualifications, and still gets a fair share of their bids is not. Move one pairing to another pilot and their rest, cumulative hours, and consecutive duty days all change, and so do the options for everyone else. That is a constraint problem, not a seat chart.

What does the model optimize for?
+

Legality comes first and is never traded away. Next, the model crews as many flights as possible, then fills reserve slots and books due training. Within that, every soft goal is priced in cents so you can tune it in money terms: changes to the published roster weigh the most, followed by reserve callouts, duties next to leave, fleet mixing, denied day-off requests, missed pairing bids, pay above guarantee, and a fair spread of undesirable duties and credit.

What happens when a seat can't be crewed legally?
+

It is left open and flagged, rather than filled with someone who would break a rest or duty limit. The model leaves the fewest flights uncrewed, so crew control sees exactly which seats need a pickup, a swap, or a reserve while there is still time to act.

How does it handle a sick call or a re-plan?
+

A re-plan starts from the published roster. Duties already under way, binding awards, reserve callouts already made, and published positions inside the lock window stay where they are. When a crew member in that window can no longer legally fly, for example after a sick call, their seat is released and the model re-crews it, typically from reserve. Every other change to the published roster costs more the sooner it reports, so the roster crew already know stays as stable as possible.

Does this replace our crew management system?
+

No. Timefold sits as an optimization layer between the systems that hold your schedule, crew, and qualification data, such as Sabre AirVision or your HR system, and the crew management system, crew apps, and ops center that execute the roster. It can also be embedded in a CMS like Jeppesen, AIMS, or PDC FlightCrew. It reads pairings and crew data and writes back an assignment per seat; it does not replace the CMS, HR system, or crew mobile app.

Does it support FAA Part 117 and EASA FTL?
+

The model enforces minimum rest, maximum block time over 28 days, maximum duty time over seven days, and maximum consecutive duty days, with the limits set per dataset. That lets one carrier run Part 117 values and another EASA or stricter union limits. It also flags rosters that come close to a limit, so you see near-misses before publication. Your compliance team stays responsible for the rule values and legal sign-off.

When scheduling works, everything works.

Less waste. More control. Teams that trust the plan.