Skip to content
SkyRosterBook a working session

Platform · Tactical rostering

A published shift says who works. Tactical says who stands where.

Strategic rostering decides who is on duty. Tactical rostering decides which physical or operational position they staff, in what time interval, for that shift. The two are deliberately separate systems, joined only through the sector opening (see /platform/sector-planning): a published roster's manpower requirements do not decide which positions the tactical workbench offers. The sector opening's demand does.

The tactical workbench is opened per published roster, and it is restricted to heads of unit and the organisation manager. Regular employees do not open it; they see the result of it on their own phone, through the mobile app's read-only view of their own day.

Set up once per roster

A configuration dialog that only appears the first time

Sector opening

Which day-plan of demand to staff against. This is what supplies the positions on offer.

Time interval

15, 30 or 60 minutes. It must not exceed any working position's own maximum duration; a mismatch is rejected with a validation message naming the offending position.

Preferred allocation

Optional. Selecting one enables the bulk "Allocate Preferred" actions below.

These settings persist per roster. Reopening the same roster later skips the dialog and loads the workbench directly.

Filling positions

Manual first, then bulk actions, then a check that changes nothing

A supervisor clicks an open cell in an employee's row to get an assignment popover, and picks a working position from a dropdown of open demand, formatted by sector configuration, position code and qualification, for example [SC1][EXE][ACC]. An assignment can be pinned or locked. Clicking an already-assigned cell opens a read-only summary; changing it means clearing it first, then reassigning.

Allocate Preferred

The bulk position-filler. Places working-position assignments for one interval, or every interval, using the preferred allocation chosen for this session.

Enforce tactical template

Binds the session to a chosen tactical template over a time window. It does not, by itself, add a single assignment; it sets up the template so later allocation draws from it.

Allocate Trainees and Support

Mirrors an instructor's placed positions onto their attached trainee or support row, but only for slots whose qualification that person is actually registered in.

Simple solve / Check solution / Clear solution

The solver-adjacent controls. Check Solution scores the current grid without changing it; Clear Solution empties every assignment in the interval.

The standing doctrine

Preferred allocation: decide the pattern once, apply it every day

A Preferred Allocation is a saved plan of which working positions each shift type should be assigned to, across every 15-minute interval of a 24-hour day. It is built against a Unit, Sector Opening and manpower-requirement combination, as a grid: one row per shift type, one column per quarter-hour. This is where a unit encodes a rule like "the Morning shift's third controller always goes on Executive ACC" once, instead of re-deciding it by hand every session.

When a manpower requirement calls for two or more employees on the same shift type, the grid renders one row per required employee, labelled (1/3), (2/3), (3/3), and totals allocated against required across all of them in the footer.

Tactical threshold limits

How much shortfall is acceptable, set separately for day and night

Demanding that the tactical solver fill one hundred per cent of every staffing requirement is not always operationally possible during a genuine shortage. A Tactical Threshold Limit table configures the acceptable shortfall for the tactical solver instead, as a percentage or an absolute headcount, tracked separately for night and day. configured

Every table has exactly two rows, one for night and one for day, reflecting that night operations often run leaner and daytime traffic usually tolerates less slack. It is not user-addable or reorderable beyond that.

Trainees and support

On a position, not just on a shift, with worked time split accordingly

A working slot can carry either a trainee or a support employee attached to the instructor, never both. Picking a working position for an instructor who is registered as an instructor in that slot's qualification reveals Trainee and Support dropdowns, scoped to people on the same shift who are registered as trainee or substitute for that qualification.

Worked-time crediting

When an instructor shares a slot with a trainee or support employee, the instructor is credited only 50% of the slot's duration toward their own worked time; the trainee and the support employee are each credited the full 100%. An instructor working alone is credited 100%. This feeds directly into the competency system's currency requirements, so on-the-job training time counts fully for the person being trained, and correctly discounts the instructor's own record for time spent supervising rather than working solo.

The eligibility gate

A trainee or support employee can only be placed on a slot whose qualification they hold the trainee or substitution flag for. The instructor is not bound by their own shift's qualification when picking positions; an instructor on an ACC shift may legitimately work an approach position. It is only the shadowing trainee or support employee who must hold the matching qualification for wherever the instructor moves.

The four views

Coverage-first, headcount-first, or accounting-first

Resource View

Every employee, trainee and support person, with qualifications, shift badges and licence-validity indicators. The default surface for clicking a cell to assign.

Position View

Every required working position by qualification and sector, with min/max totals at three levels of detail and a count of what is still unallocated.

Occupancy View

Working, unused, present and total headcount over the period, broken down per sector. The at-a-glance are-we-over-or-under-staffed view.

Summary View

Worked hours per qualification and working position, after the interval is saved. The post-hoc accounting view.

The solver underneath

A dedicated engine, separate from the strategic solver

Tactical allocation has its own rules engine, distinct from the strategic roster's optimiser. It encodes nineteen named constraint families, each independently tunable hard or soft, each independently weighted, and each configurable per unit under Tactical Settings. verified

Fatigue and attention

Maximum and minimum time on a position, and minimum rest time before one, each set on the working position itself, right down to the individual console.

Qualification currency

Required worked minutes per qualification and per working position, tracked across multiple rolling windows at once, for example one figure per 30 days and a separate one per 90.

Operational preference

A soft rule that prefers keeping a controller on the same sector across consecutive positions rather than moving them between sectors, plus a fairness rule that spreads position time across the eligible pool.

A supervisor can also define specific sequences of working positions to forbid outright, for example never placing someone on an executive position directly after an assistant one, under its own Unwanted Patterns screen.

What this module does not do

Read this before you assume more than it claims

Bring us a month that went wrong.

A working session is 45 minutes with your own roster on screen, not a canned demo. Bring a pattern that fought you and we will walk through what the engine would have done with it.