TFLYXTFLYX®
← Back to the archive

ACT III · Build

Inside ShiftMate's Fairness Engine: How the Weighted Fair Rotation Algorithm Works

What actually happens when you hit 'Auto-Schedule' — and why a fairness score, not just a filled grid, is the point.

ACT III · BUILD🎬 Case Study6 min read

Most scheduling tools treat auto-generation as a bin-packing problem: fit staff into slots until the grid is full. ShiftMate's auto-schedule is built around a different question — not just "is this grid full," but "is this fair." That distinction is the whole reason the Weighted Fair Rotation approach exists.

What the algorithm actually reads

  • Availability — which days and shifts each staff member can actually work
  • Leave dates — approved time off that should never be touched
  • Max shifts — the ceiling each person has agreed to, so nobody gets quietly overloaded
  • Rest days — protecting the gap between shifts, not just the shifts themselves

From those four inputs, ShiftMate drafts a full week's roster automatically. The output isn't presented as final — it's presented as a draft with a fairness score, because the honest position is that no algorithm should get the last word on a schedule that affects real people's week.

Why a fairness score, specifically

A schedule can be 100% "complete" — every slot filled, no gaps — and still be badly unfair, if the same one or two people are quietly absorbing every closing shift and every weekend. That pattern is invisible in a normal grid view. It only becomes visible when someone adds it up across weeks, which almost nobody has time to do by hand.

The fairness score is a 0–100% rating shown before you publish the roster — a single number that answers the question 'is this actually balanced,' so a business owner catches the imbalance before their best closer quietly starts looking for a new job.

Draft, don't dictate

Every auto-generated roster stays fully editable — drag shifts, swap staff, override the algorithm's draft, with full undo and redo history so nothing is a one-way decision. The algorithm's job is to remove the blank-page problem and surface the fairness pattern. The business owner's job is still to make the final call, because they know things about their team no algorithm reads from a spreadsheet — who's covering an exam that week, who asked for lighter hours, who just wants more shifts.

Why this took longer to build than the export feature

Exporting a schedule to Excel is, relatively speaking, the easy part. Weighing four different constraints against each other — availability, leave, max shifts, rest days — and producing a result that's not just valid but fair, is the part that actually required design thinking, not just engineering. It's also the feature that makes ShiftMate meaningfully different from "a nicer-looking spreadsheet," which is the bar most scheduling tools quietly settle for.

Let the fairness engine draft your next roster

See your team's fairness score before you publish — free for 14 days.