The Rook

Coverage without
overstaffing.

The right people on the floor, contract rules held, an even load across the team.
Employee SchedulingWeek 14
Staff6
Shifts29
Open10
Load spread4–6
STAFF
Mon
Tue
Wed
Thu
Fri
Sat
Sun
A. NovakRN
M06-14
M06-14
OFF
D14-22
D14-22
N22-06
PRF
B. CortezRN
D14-22
D14-22
D14-22
OFF
M06-14
M06-14
M06-14
C. HaddadLPN
PRF
N22-06
N22-06
N22-06
OFF
D14-22
D14-22
D. IlvesRN
N22-06
OFF
M06-14
M06-14
D14-22
AVD
N22-06
E. MarchalLPN
M06-14
D14-22
AVDD14–22
D14-22
N22-06
N22-06
OFF
F. OseiHCA
OFF
M06-14
M06-14
D14-22
D14-22
PRF
M06-14
COVERAGE
4/4
4/4
3/44/4
5/5
5/5
4/4
3/3
NovakRN
CortezRN
MarchalLPN
OseiHCA
COV
MON
M06–14
D14–22
M06–14
OFF
4/4
TUE
M06–14
D14–22
D14–22
M06–14
4/4
WED
OFF
D14–22
AVDD14–22
M06–14
3/44/4
THU
D14–22
OFF
D14–22
D14–22
5/5
FRI
D14–22
M06–14
N22–06
D14–22
5/5
SAT
N22–06
M06–14
N22–06
PRF
4/4
SUN
PRF
M06–14
OFF
M06–14
3/3

Demand is a minimum and a maximum per shift.

Demand is a weekly template: for every shift time and skill, a minimum and a maximum per weekday. Staffing below the minimum is penalised by that band’s priority; the room between minimum and maximum is optional capacity that can stay open.

Demand · weekly template
Bands4
Horizon2 weeks
Below minimum1
BandMonTueWedThuFriSatSun
06–14NurseReqP5
2–3
2–3
2–3
2–3
2–3
2–2
1–2
14–22NurseReqP5
2–2
2–2
2–2
2–2
2–2
2–2
1–1
22–06NurseReqP10
1–1
1–1
1–1
1–1
1–1
1–1
1–1
08–17Care assistantPrefP3
1–2
1–2
1–2
1–2
1–2
0–1
0–1
Day
06–14NurseReqP5
14–22NurseReqP5
22–06NurseReqP10
08–17CarePrefP3
Mon2–32–21–11–2
Tue2–32–21–11–2
Wed2–32–21–11–2
Thu2–32–21–11–2
Fri2–32–21–11–2
Sat2–22–21–10–1
Sun1–21–11–10–1

Minimum and maximum, per weekday

Each band states how many people a shift needs and how many it can use, day by day. The template repeats every week; one-off extras and cancellations override single dates.

Required and preferred bands

An open slot below minimum on a required band outranks every soft trade-off. On a preferred band it is a weighted preference.

Priorities order the open slots

Bands carry a priority from 1 to 10. When not everything can be staffed, the night desk at P10 is filled before the P3 day shift.

Required and preferred skills

A band’s required skill is hard: a shift that needs a nurse gets a nurse. A preferred skill is honoured when it can be.

Rules are set per contract.

Every employee works under a contract: hour caps and floors, rest, consecutive days, weekends and rotation patterns. Each rule is required or preferred per contract; required rules are never broken.

Full-time

€24/h · overtime €34 past 40h
Max 40h per weekReq
Min 32h per weekReq
Rest ≥11h between shiftsReq
≤5 consecutive daysReq
≤2 weekendsPref
No night → morningReq
Week A/B rotationPref

Part-time

€20/h · overtime €30 past 24h
Max 24h per weekReq
Min 16h per weekReq
Rest ≥11h between shiftsReq
≤4 consecutive daysPref
≤1 weekendPref
No night → morningReq

Student

€14/h · overtime €20 past 16h
Max 16h per weekReq
Rest ≥12h between shiftsReq
No night shiftsReq
Shifts inside 08–18Req
≤3 consecutive daysReq

Required or preferred, per rule

The same rule can be absolute in one contract and a preference in another. Required is enforced; preferred is minimised and reported when bent.

Rotation and sequence patterns

Weekly A/B rotation, forbidden sequences such as night into morning, shift pairings days apart, and split-day permissions are contract patterns the plan follows.

The availability calendar

An unavailable day is hard. An undesired day is penalised, a desired day rewarded, both with weights you set.

Personal limits

No-nights flags and personal time windows sit on the employee, above the contract. A shift outside the window is never assigned.

A sick call re-plans only the affected shifts.

Days before today are fixed, and the published roster is the baseline. When someone reports sick their shifts reopen, and the re-solve fills them with the least disruption to everyone else.

M. Peeters · sickTue–Thu
STAFF
Mon
Tue
Wed
Thu
Fri
M. PeetersRN
M06–14
M06–14SICK
N22–06SICK
D14–22SICK
OFF
D. IlvesRN
N22–06
M06–14
M06–14
M06–14
D14–22
A. NovakRN
M06–14
D14–22
N22–06
D14–22
M06–14
F. OseiHCA
OFF
M06–14
M06–14
D14–22
D14–22

The past is fixed

Everything before today is context, not decision. A re-solve only changes days still ahead.

Disruption is measured

Changes are scored against the published baseline: assignments that move cost the plan, so the repair stays small.

Reports from the phone

An employee reports sick, hands back a single shift, or requests a day off. Each reopens exactly that work for the next solve.

What-if capacity

Any employee can be excluded for one solve to see how the roster holds without them.

The roster is built from everyone’s preferences.

Employees can mark their own calendar from the phone: days off, days to avoid, days they want to work. The solver takes every mark into account at once: unavailable days are absolute, desired and undesired days are weighted, and fairness keeps the load even while it honours them. All of it is optional: the roster solves just as well with few marks or none.

Preferences · week 15
Requests12
Honoured11
Worked undesired1
STAFF
Mon
Tue
Wed
Thu
Fri
Sat
Sun
A. NovakRN
M06–14
PRFM06–14
D14–22
OFF
D14–22
N22–06
B. CortezRN
AVD
D14–22
D14–22
M06–14
OFF
M06–14
C. HaddadLPN
N22–06
N22–06
OFF
PRFN22–06
D14–22
AVDD14–22
D. IlvesRN
OFF
M06–14
PRFM06–14
M06–14
D14–22
D14–22
E. MarchalLPN
D14–22
OFF
M06–14
PRFD14–22
N22–06
AVD
NovakRN
HaddadLPN
IlvesRN
MarchalLPN
MON
M06–14
N22–06
OFF
D14–22
TUE
PRFM06–14
N22–06
M06–14
OFF
WED
D14–22
OFF
PRFM06–14
M06–14
THU
OFF
PRFN22–06
M06–14
FRI
D14–22
D14–22
PRFD14–22
SAT
AVDD14–22
D14–22
N22–06
SUN
N22–06
D14–22
AVD

Three marks per day

Unavailable is hard: no shift, ever. An undesired day is penalised and a desired day rewarded, with weights set per solve.

Requested from the phone

An employee requests a day off or hands back a shift; the mark enters the next solve. Self-service is a choice per team, not a requirement: planners can enter or override any mark themselves.

All preferences at once

The plan weighs every employee’s marks together rather than first come, first served. A preference the plan had to work against is listed, not hidden.

Fairness holds alongside

Shift counts stay balanced across the team while preferences are honoured, so the quiet ones do not end up carrying the week.

Open shifts get recommendations.

Click an open shift and the engine recommends who should take it: every employee is scored as if actually assigned, under the full rule set, and ranked with the reason attached. Assigning the top candidate fills the slot.

Open shift · Thu 14–22 · Nurserecommend
STAFF
Mon
Tue
Wed
Thu
Fri
OpenNurse
D 14–22
F. OseiHCA
OFF
M06–14
M06–14
D14–22
D14–22
B. CortezRN
D14–22
D14–22
D14–22
M06–14
C. HaddadLPN
PRF
N22–06
N22–06
N22–06
OFF
Candidates · Thu 14–22
1F. Oseifits every ruleOK
2B. Cortezbends week rotation1 pref
3C. Haddadrest below 11h after Wed nightBlocked
STAFF
Wed
Thu
Fri
OpenNurse
D 14–22
F. OseiHCA
M06–14
D14–22
D14–22
B. CortezRN
D14–22
M06–14
Candidates · Thu 14–22
1F. Oseifits every ruleOK
2B. Cortezbends week rotation1 pref
3C. Haddadrest below 11hBlocked

Ranked with the solver’s rules

Candidates are scored with the same constraints as a solve, including pins, frozen days and exclusions, and each carries the reason for its rank.

Assign by hand, pin in place

Shifts can be dragged between people or assigned from the list. A pinned shift stays with its holder through every re-solve.

Conflicts are flagged

A manual edit that breaks a hard rule is flagged on the board; one re-solve repairs the roster around what you placed.

Runs are comparable

Every solve is kept and can be compared against the baseline: filled, moved, dropped and cost, side by side.

Your own rules can be modelled in.

The constraints above are the standard set. Rules specific to your operation are added to the model as hard or soft constraints with their own weight. The solver treats them like the built-in ones: hard rules are never broken, soft rules are traded off against the rest.

Score analysisper constraint
Rest between shiftsHard0
Required skillHard0
Undesired daySoft ×2−14
Max one student per night shiftCustomHard0
A senior present on every shiftCustomHard0
Keep teams together on weekendsCustomSoft ×2−36

Hard or soft, per rule

A custom rule is either absolute or a weighted preference. Absolute rules are never broken; preferences carry a weight you set per solve.

Scored during the solve

Custom rules are evaluated on every candidate roster while the solver searches, not checked afterwards. A roster that breaks one is never proposed.

Visible in the score

Each rule reports its own contribution, so you can see what it costs the roster, retune its weight or switch it off.

From your wording to a rule

You describe the rule the way your planners state it; it becomes a named constraint in the model.