Skip to content
SkyRosterBook a working session

Platform · Sector planning

Before a roster line is drawn, something has to say what the airspace actually needs

Sector planning turns raw airspace geography into a staffing table: how many people, with what qualification, at what position, covering what airspace, at what time of day. It is the demand side tactical rostering staffs against (see /platform/tactical-rostering), built in four layers, each resting on the one before.

The build order

  1. 1

    Working positions

    The atomic unit: a console or task, with its own qualifications required, its own colour on the grid, and its own duration limits.

  2. 2

    Sectors

    Airspace, grouped by unit, with one or more divisions, each holding sub-sectors that carry an instantaneous and an hourly capacity.

  3. 3

    Sector configurations

    Attaches demand: which sector divisions, and how many people at which working position, covering which of them.

  4. 4

    Sector openings

    One day's plan: a sector configuration assigned to every 15 minutes of the 24-hour day, 96 slots in all.

The day

Ninety-six quarter-hours, and what moves between them

Drag through one operational day and watch the sector configuration change the staffing need underneath it.

Sector opening · one operational day

modelled

Ninety-six quarter-hours

A sector opening assigns a sector configuration to every fifteen minutes of the day, all ninety-six of them. It is what the tactical roster is staffed against. Move the playhead and watch 02:00. Then switch the model to sixty minutes and watch 17:30 disappear.

Model resolution

An hourly model cannot see a fifteen-minute peak. Sampled on the hour, this day is misread in4 of its 96 quarter-hours, including17:30–17:45, which needs 10positions while the hourly model shows 8.

The timeline scrolls sideways. Row labels stay put.

Enable JavaScript to move the playhead. The full day is drawn above.
Time02:00 – 02:15
Sector configurationBand-boxed BB1 sector open
Positions required2Executive ACC ×1 · Air ACC ×1
Controllers assigned2Fully staffed

At sixty minutes the 02:00 hour is sampled once, at 02:00. Here that matches the quarter-hour underneath it.

Read this day as a table
The modelled sector opening, as eleven runs of sector configuration.
TimeSector configurationSectorsPositions requiredControllers assigned
00:00 – 02:00Three-sector split S3366
02:00 – 05:00Band-boxed BB122
05:00 – 06:00Two-sector split S2244
06:00 – 07:00Three-sector split S3365–6 ▲ short
07:00 – 11:00Four-sector split S4488
11:00 – 13:00Three-sector split S3366
13:00 – 17:30Four-sector split S4487–8 ▲ short
17:30 – 17:45Five-sector split S55109 ▲ short
17:45 – 20:00Four-sector split S4488
20:00 – 22:00Three-sector split S3366
22:00 – 24:00Two-sector split S2244
Position-quarter-hours across the day594588 · 6 quarter-hours short
  • SectorAn ATC airspace sector covered by controllers on duty.
  • Sector openingA sector-planning definition of which sector configurations are open across the operational day; it produces the working-position demand the tactical roster staffs against.
  • Working positionAn operational ATC working position a controller occupies during a shift.
  • Band-boxingGrouping sectors in quiet periods so fewer controllers manage a larger area.

The atomic unit

A working position is more than a label on a shift

A generic scheduling tool has shifts. SkyRoster has shifts made of individually time-boxed working positions, each carrying its own qualifications required, a roster display code and colour, and three ATC-specific timing parameters: a minimum and maximum duration in minutes on the position, and a minimum rest time in minutes required before it.

Those three numbers are not decoration. Every "maximum time on position" and "minimum rest before position" rule the tactical engine enforces (see /platform/tactical-rostering) is ultimately parameterised per working position, right down to the individual console, not set once for a whole shift.

Sectors

Capacity that can be grouped or split as demand moves

A sector is airspace, grouped by unit, with one or more divisions; each division holds one or more sub-sectors, and each sub-sector carries an instantaneous capacity and an hourly capacity. This is ATC's own "band-boxing" practice, built into the data model directly: when traffic is heavy, sectors are opened separately, each with its own controller; when traffic is light, sectors are grouped so fewer controllers cover a larger combined area. A sector referenced by a sector configuration cannot be deleted while that reference exists, so shrinking a sector out of use is a deliberate, blocked-until-you-mean-it action, not an accident.

Turning airspace into a staffing table

Sector configuration: the link between airspace planning and headcount planning

A sector configuration attaches operational demand to a unit: it names one or more sector divisions, then a table of staffing requirements, each pairing a working position with the sectors it covers and how many people are required. The qualification for that row is auto-filled from the working position itself, not typed in separately, so a staffing requirement can never quietly drift out of sync with what the position actually needs.

Working positions offered here are filtered to whichever units the configuration covers. A position that exists in the wider catalogue but is not attached to this unit simply will not appear as an option, which keeps a large multi-unit organisation's configuration screens from turning into one long, irrelevant list.

The finest-grained demand signal

Sector opening: the day, in ninety-six fifteen-minute slots

A sector opening is one day's operational plan: a sector configuration assigned to every 15-minute slot of the 24-hour day, 96 slots in total. All 96 are required before it can be saved, though one popover assignment can fill a contiguous range in a single action, and an end time of 00:00 is read as end of day, so opening the day at midnight and applying to midnight fills the whole 24 hours at once. Every one of those 96 assignments is logged individually in the change history, and a sector opening cannot be deleted while a tactical roster still references it.

Why quarter-hour resolution

What an hourly demand model hides

Air traffic inside a single hour is rarely flat. A bank of arrivals in the first twenty minutes, a lull after, a shift-change wave at the top of the next hour: an hourly model can only carry one staffing number for that entire sixty minutes, so it has to either overstaff the quiet part of the hour or understaff the busy part. Averaging a peak away does not make it smaller; it just moves the shortfall somewhere the demand model can no longer see it.

A 15-minute grid lets the same clock hour carry four different demand figures, so a genuine arrival bank or a shift-change overlap shows up as an actual staffing requirement instead of disappearing into an hourly average. It is also the resolution the tactical workbench's own time-interval setting has to respect: the interval a supervisor chooses (15, 30 or 60 minutes) is checked against each working position's own maximum duration, so the granularity of the demand plan and the granularity of a genuine, ATC-specific fatigue limit are talking about the same clock.

Guardrails, not obstacles

Why some things here refuse to be deleted

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.