What automatic assignment respects#

For: Manager | Admin You’ll need: Nothing.

A generated plan is meant to be one you could have written by hand — legal, staffed by people who are actually allowed to do the work, and fair. This article lists what the run treats as unbreakable, what it merely prefers, and what it can’t know.

Never broken#

These are hard limits. A run leaves a shift empty rather than break one:

  • Who may do the work — the person holds that position at that location, and meets the position’s required skills.

  • Availability — someone who tracks availability is only planned inside a window they marked as available. Someone who doesn’t track availability needs no window, but a block marked unavailable still rules the time out. See How availability gates the coverage candidate pool.

  • Approved absences — holiday, sick leave, and any other approved absence block the time, whether or not the person tracks availability.

  • No double-booking — one person, one shift at a time.

  • Rest between shifts, maximum hours per day and per week, maximum consecutive days, and the weekly continuous rest your work policies require. See Daily and weekly limits.

  • The past — a shift that has already ended is never staffed or changed, whatever you tick. One still running can be.

  • Maximum headcount — a shift is never overstaffed past the position’s ceiling. One exception: the ceiling yields to frozen (published) assignments the run may not touch, so a deliberately overstaffed published shift can’t make the run infeasible.

Preferred, not forced#

These steer the result. The run trades them off against each other rather than treating any one as absolute:

  • Target headcount — every shift is filled toward its target. Falling short is a heavily penalized last resort, which is why a shortfall is always reported.

  • Skill coverage — “at least two first-aiders on every shift” is honored whenever qualified people are available.

  • Your existing draft picks — people you already put on a shift tend to stay there. Moving them costs the run something, so it only happens when it buys a genuinely better plan.

  • Preferred people on a shift profile — people named as preferred on the shift’s profile are favored, weighing even more than a person’s own stated preference.

  • Stated preferences — someone who marked the shift’s hours as preferred is favored over someone who is merely available. This counts only for people who track their availability.

  • The usual crew — when the run was started with ‘Keep the usual crew’, the people who worked the matching shifts last period are favored. This weighs below a person’s stated preference, so crew inertia never overrides what someone asked for.

  • A fair spread of hours — people on contracted hours are moved toward those hours rather than loaded unevenly. Casual staff are exempt.

  • Cost — where two plans are otherwise equally good, the one with less overtime wins.

What it can’t know#

  • It doesn’t create shifts. The run staffs what’s already on the calendar. Build the shape first — see Three ways to build a schedule. Shifts assigned before or after the selected dates, and at other locations in your company, count toward working-time and rest limits. Their assignments stay unchanged. The report only lists changes and gaps within the scope you selected.

  • It doesn’t know your judgment calls — who’s still being trained, who shouldn’t close alone, who you promised Friday off verbally. Read the report and adjust.

  • Existing problems aren’t made worse, but they aren’t fixed either. If a published shift already breaks a rule, the run plans around it and flags it rather than refusing to work.

Note

The result is the same every time for the same input — this is a constraint solver, not a language model, and it doesn’t guess.

A shift with approved hours is frozen as a whole. When staffing to demand, a read-only shift contributes only the people already assigned to it; its empty places cannot take demand away from shifts the run can staff.

An assignment offered as the return shift in a swap is also protected from automatic replacement and undo.

A shift posted to the marketplace as an open shift is left alone while that offer still takes responses: the run neither staffs it nor changes who is on it.

Verify it worked#

The run report’s error and warning count is the honest answer: a plan you can publish shows no errors. Anything the run couldn’t satisfy is listed rather than hidden.