Skip to content
SkyRosterBook a working session

Platform · Shift swaps

Two people agree to swap a shift. The engine re-checks everything the roster was built to respect.

A swap changes a published roster, so it has to pass the same qualification, rest and overtime rules the roster itself was solved against. That is the reason self-service swapping is safe to allow at all without a supervisor manually re-checking each one by hand.

Try it interactively: the Swap Check tool →

Try it

Every check, reported at once

A swap is a change to a published roster, so it is re-checked against everything the roster was built to respect. Pick a case and watch.

Try a swap

verified

It doesn't stop at the first broken rule.

Two controllers propose to trade shifts. SkyRoster runs 24 automated checks against the trade: qualifications, rest, overtime, allowances, team and unit membership. It does not stop at the first one that fails; it reports every broken rule at once. Pick a scenario below, or set the qualifications, shifts and duty pattern yourself and press Check this swap.

Turn on JavaScript to change these controllers, dates and duty patterns. The worked example below already shows every check.

Controller A
Shift
Controller B
Shift

Allowed: all 24 checks passed.

Roster integrity

The two sides of the swap have to be a coherent, exchangeable pair in the first place.

3 passed

  • Pass
    Blocks aligned

    Both blocks are the same length and cover the same dates.

  • Pass
    Same roster

    All shifts belong to the same published roster.

  • Pass
    Shifts must differ

    The two sides differ in date, shift type or qualification.

Eligibility and qualifications

Both employees must actually be allowed to work the shift they are about to receive.

2 passed · 2 not applicable

Organisation and team

A swap cannot move work across an organisational boundary the employee does not belong to.

1 passed · 2 not applicable

  • Not applicable
    Same employee category

    Both fictional controllers are modelled as the same employee category.

  • Not applicable
    Team membership

    Neither shift here is bound to a specific team.

  • Pass
    Unit membership

    Both employees hold membership in the unit of every shift they receive.

Fatigue and rest

The resulting schedule still has to be safe to work.

2 passed

Absence and conflicting requests

The shifts must not already be spoken for by leave, duty, or another pending request.

4 passed

Pay, allowance and limits

A swap must not quietly move money, banked hours, or monthly quotas between two people.

1 passed · 7 not applicable

Both controllers here are fictional, and so are their shifts and duty patterns. No customer data appears anywhere on this site.

The lifecycle

Five stages, from picking a shift to the roster actually changing

1 · Selection

From the Team Scheduler, an employee enables swap mode, taps their own shift, then a colleague's. A team lead browsing the wider crew grid can select across two different people's rows and propose the swap on their behalf.

2 · Eligibility check

Every rule below runs against the exact shifts selected, live, before the request can be submitted.

3 · Creation

The request goes Pending and both shifts are locked in the roster, nobody else can touch them while the swap is under review.

4 · Approval

Multi-step, configured per the unit that owns the roster the swapped shifts belong to, not either employee's home unit.configured

5 · Exchange

On approval, the two shifts are physically exchanged in the published roster. Any work request or shift extension tied to either shift transfers to its new owner, along with its Bank of Working Hours and overtime accounting.

Reversible up to approval

A Pending or Rejected swap can be reverted, which unwinds the lock and returns both shifts to their previous state.

Every rule, at once

24 automated checks, and a refusal always names which one failed

The engine does not stop at the first broken rule. It accumulates every violation and reports all of them together, so a refused swap can show a qualification mismatch and a rest-time violation in the same answer, instead of forcing someone to fix one problem, try again, and discover the next.verified

ConcernWhat is checked
Structural & roster integrityBoth blocks belong to the same roster; not identical shifts; blocks are aligned in size and start/end dates; neither shift is already in another pending swap; no pending shift extension on either side (a temporary limitation, not yet supported); neither side is an office/admin shift, only operational shifts are swappable.
Qualification, team & competencyEach receiving employee is qualified for the shift they would receive, is a member of that shift's team, and holds membership for the unit the shift belongs to.
Rest & safetyEach receiver's minimum rest time against the shifts adjacent to the swap date is respected.
Conflicts with other approved activityNo active suspension overlaps the received shift; no conflict with already-approved leave or duty; no pending work request attached; a day-off shift explicitly flagged non-replaceable cannot be swapped.
Bank of Working Hours, overtime & allowance protectionA shift originally obtained via Bank of Working Hours can only move if the receiver's remaining balance covers the net change; a shift, work request, shift extension or instructor allowance already consumed cannot be swapped away; net overtime change stays within the employee's monthly cap; both employees must share the same controller/non-controller classification, checked before any of the above so the accounting can assume matching regimes.
Monthly volume capsWork/off request count and shift extension count both stay within their configured monthly limits per employee.

A further structural check, run separately at request creation and not counted among the 23, requires both blocks to be consecutive calendar days, start on the same day, and be equal length, together with the 23, 24 checks whenever a swap is created.

Against races

The same rules run three times, because the roster can change between clicks

Suggestion

While browsing candidates in the roster, the engine pre-filters who could realistically be offered as a swap partner.

Pre-create

A final check the instant the request is submitted, in case the roster changed between browsing and submitting.

Accept-time

Re-validated again when an approver clicks Accept, in case anything changed during approval. A swap that looked valid at suggestion time can still fail here.

Hours follow the shift

Bank of Working Hours and overtime transfer with a swap, not with a person

If a swapped-away shift was itself obtained through a Work Request, its Bank of Working Hours or overtime accounting does not stay with the person who is leaving it, it moves to whoever receives it.

Re-validated on receipt

The engine checks that the receiving employee has enough remaining balance, or enough overtime headroom, to accept the transfer before it lets the swap go through.

Net across the whole swap

For a multi-shift swap, the change is computed net across every shift in the exchange, a swap that balances overall can pass even if one leg of it looks unbalanced on its own.

Air traffic controllers carry distinct Bank of Working Hours and overtime rules from other 24/7 staff, a controller picking up a Work Request on what would otherwise be a normal working day is not charged for it at all, avoiding double-counting. Two employees of different classification can never be paired in the same swap, specifically so this accounting can assume both sides play by the same rules.

Your swap rules are not these swap rules.

Every organisation restricts who may swap with whom differently. Bring yours to a working session and we will show you which of these 24 checks map onto them and which would need a new rule.