Lab Technician Duty Roster Generator

v2.1.0

Create a month roster, incorporate technician requests, preserve rolling Night fairness/continuity, and export an auditable CSV bundle.

Operational memory

Browser-local · automatic
Normal use needs no upload. Backups are optional and intended only for browser/device migration.

1. Month & calendar

Required
Weekends are calculated automatically from Month + Year, but can be corrected manually.

2. Technicians

Names persist on this browser
Code Technician name Action

3. Holidays / institutional OFF days

Click dates

Select declared holidays. A holiday falling on Sunday counts once for OFF entitlement. A holiday falling on Saturday reduces the monthly half-shift entitlement by one.

Mon
Tue
Wed
Thu
Fri
Sat
Sun

4. Previous-month continuity & carry-forward

Confirm actual duty after exchanges

Recent Night-duty history

Enter the actual Night counts after any mutual exchanges. These counts determine who should receive the extra Night(s) this month while current-month Night counts remain as equal as mathematically possible.

Technician Previous month Nights Month −2 Nights Month −3 Nights 3-month total

Pending balances from previous month

Technician Pending full OFFs Pending half-shifts

5. Technician requests

Optional
Enter only genuine requests. N may supersede normal rolling Night rotation; the engine will re-balance adjacent Night blocks and log the change. L means unavailable for the entire date and is kept separate from roster OFF entitlement.
— No requestM MorningA AfternoonN NightO Roster OFFL Leave / CL / LOP
Mon
Tue
Wed
Thu
Fri
Sat
Sun

6. Generate roster

Optimization
Priority: safe coverage & Leave → equal Night duty (current month, then rolling history) → continuous Night blocks (prefer 3, then 2; rollover allowed) → requested M/A/N/O (A→G priority when otherwise equivalent) → OFF & half entitlements → total duty-hour parity → Monday & Tuesday Afternoon staffingWednesday Morning & Afternoon staffing → remaining shift habituation and useful staffing. Roster OFFs are preferentially concentrated on Saturdays, Sundays and holidays.