Roster
A month’s roster, planned in minutes, and argued with.
Every month, someone sits down to decide who works when. For a team of thirty porters, that takes three to five days. Every shift needs its supervisor, its seniors and its porters; people have asked for days off; everyone needs rest between shifts and a day off in every week; and the same few should not always get the nights. A person can hold any two of these in mind at once. Roster holds them all, and plans the month in ten minutes at most.
Where it came from
Roster began with our interns. In 2024, Class 24 took a year of porter jobs, predicted the work at each hub hour by hour, and grouped the porters by how they worked. Class 25 came to build on it, and in their first week we decided together to turn to rostering. They wrote Roster’s first engine; I have built the rest on what they started, and their ideas still shape it.
How it plans a month
A manager describes her team once: who is on it, the shifts, how many of each role every shift needs on each day of the week, and the rules. Then each month she asks for a plan. Roster first looks over what she has given it, then searches: a genetic algorithm breeds generation after generation of possible rosters and keeps the best, telling her as it goes what it is doing.
Logistics TeamConfiguration 8 shifts
| Order | Name | Start | End | Duration | Headcounts |
| 1 | Day Long | 07:00 | 19:00 | 12 hours | 3 MondaySupervisor: 1Senior: 0Agent: 2 3 TuesdaySupervisor: 1Senior: 0Agent: 2 3 WednesdaySupervisor: 1Senior: 0Agent: 2 3 ThursdaySupervisor: 1Senior: 0Agent: 2 3 FridaySupervisor: 1Senior: 0Agent: 2 3 SaturdaySupervisor: 1Senior: 0Agent: 2 3 SundaySupervisor: 1Senior: 0Agent: 2 |
| 2 | Day Standard | 08:00 | 18:00 | 10 hours | 3 MondaySupervisor: 0Senior: 1Agent: 2 3 TuesdaySupervisor: 0Senior: 1Agent: 2 3 WednesdaySupervisor: 0Senior: 1Agent: 2 3 ThursdaySupervisor: 0Senior: 1Agent: 2 3 FridaySupervisor: 0Senior: 1Agent: 2 3 SaturdaySupervisor: 0Senior: 1Agent: 2 3 SundaySupervisor: 0Senior: 1Agent: 2 |
| 3 | Day Short | 09:00 | 17:00 | 8 hours | 3 MondaySupervisor: 0Senior: 0Agent: 3 3 TuesdaySupervisor: 0Senior: 0Agent: 3 3 WednesdaySupervisor: 0Senior: 0Agent: 3 3 ThursdaySupervisor: 0Senior: 0Agent: 3 3 FridaySupervisor: 0Senior: 0Agent: 3 3 SaturdaySupervisor: 0Senior: 0Agent: 3 3 SundaySupervisor: 0Senior: 0Agent: 3 |
| 4 | Day Extended | 09:00 | 19:00 | 10 hours | 2 MondaySupervisor: 0Senior: 1Agent: 1 2 TuesdaySupervisor: 0Senior: 1Agent: 1 2 WednesdaySupervisor: 0Senior: 1Agent: 1 2 ThursdaySupervisor: 0Senior: 1Agent: 1 2 FridaySupervisor: 0Senior: 1Agent: 1 2 SaturdaySupervisor: 0Senior: 1Agent: 1 2 SundaySupervisor: 0Senior: 1Agent: 1 |
| 5 | Mid Morning | 10:00 | 20:00 | 10 hours | 2 MondaySupervisor: 0Senior: 0Agent: 2 2 TuesdaySupervisor: 0Senior: 0Agent: 2 2 WednesdaySupervisor: 0Senior: 0Agent: 2 2 ThursdaySupervisor: 0Senior: 0Agent: 2 2 FridaySupervisor: 0Senior: 0Agent: 2 2 SaturdaySupervisor: 0Senior: 0Agent: 2 2 SundaySupervisor: 0Senior: 0Agent: 2 |
| 6 | Mid Day | 10:00 | 18:00 | 8 hours | 3 MondaySupervisor: 0Senior: 1Agent: 2 3 TuesdaySupervisor: 0Senior: 1Agent: 2 3 WednesdaySupervisor: 0Senior: 1Agent: 2 3 ThursdaySupervisor: 0Senior: 1Agent: 2 3 FridaySupervisor: 0Senior: 1Agent: 2 3 SaturdaySupervisor: 0Senior: 1Agent: 2 3 SundaySupervisor: 0Senior: 1Agent: 2 |
| 7 | Afternoon | 11:00 | 22:00 | 11 hours | 2 MondaySupervisor: 1Senior: 0Agent: 1 2 TuesdaySupervisor: 1Senior: 0Agent: 1 2 WednesdaySupervisor: 1Senior: 0Agent: 1 2 ThursdaySupervisor: 1Senior: 0Agent: 1 2 FridaySupervisor: 1Senior: 0Agent: 1 2 SaturdaySupervisor: 1Senior: 0Agent: 1 2 SundaySupervisor: 1Senior: 0Agent: 1 |
| 8 | Night | 19:00 | 07:00 | 12 hours + 1 day | 2 MondaySupervisor: 0Senior: 1Agent: 1 2 TuesdaySupervisor: 0Senior: 1Agent: 1 2 WednesdaySupervisor: 0Senior: 1Agent: 1 2 ThursdaySupervisor: 0Senior: 1Agent: 1 2 FridaySupervisor: 0Senior: 1Agent: 1 2 SaturdaySupervisor: 0Senior: 1Agent: 1 2 SundaySupervisor: 0Senior: 1Agent: 1 |
- Schedule Policy
- Min Rest Hours
- 8h
- Max Workdays/Week
- 5 days
1 Plans2 Plans
| Schedule Name | Template | Month | Optimization Mode | Status | |
| December 2026 | Logistics Team | December 2026 | Coverage | DraftPublished | |
| November 2026 | Logistics Team | November 2026 | Coverage | Published | |
Create Schedule
Optional — if no budget is set for this month yet, leave it blank
CancelCreate Schedule
December 2026Draft PlanPublished Schedule Manage Assignment
Jiraporn Wongsa · 24 Dec
Day Long07:00–19:00Day Standard08:00–18:00Day Short09:00–17:00Day Extended09:00–19:00Mid Morning10:00–20:00Mid Day10:00–18:00Afternoon11:00–22:00Night19:00–07:00 Day OffAll day 2 constraints unmet
This run left 2 constraints unmet. Roster can try once more with a deeper search, taking roughly three to four times as long as the run you just waited for.
Show the resultSearch deeper
Optimizing...
Looked over the inputs — no structural bottleneck
Starting from a baseline schedule, then refining it step by step
Passed the 25%-better mark
Passed the 50%-better mark
Passed the 75%-better mark
Progress stalled — shaking things up to explore new options
Finished refining the schedule
Run in backgroundCancel
Seen best on a laptop, where it plays in full.Built not to be trusted
Roster does not trust its own optimizer, and neither should the manager. It never sums a roster up in one score; it names the problems instead, a senior short on the 12th, too little rest before a morning. When it falls short of her rules it says so, and offers one deeper search rather than quietly giving up. The machine’s roster is kept apart from her edits, so she can always go back to either. It is a tool for a human decision, not an automation that removes one.
The rules it keeps
Every shift covered
The supervisors, seniors and staff each shift needs, set for every day of the week.
Rest
Hours of rest between shifts, and days off in every week, as the team’s policy sets them.
What people asked for
Days of leave kept, and shifts someone must or must not work.
The Evaluator
When the manager fixes the plan by hand, the Evaluator rechecks it and names every rule it now breaks.
Four ways to plan a month
Each month the manager chooses what Roster must not give way on. Some rules hold in every mode: leave granted, rest between shifts, a day off each week, the shifts someone must or must not work. The mode decides what comes first after them.
Won’t break
Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Improves
Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Supervisor shortfall Senior shortfall Agent shortfall Leave violation Fixed assignment Forbidden assignment Hours boundary Gender restriction Rest between shifts Weekly overtime cap Consecutive extra shifts Weekly rest Skill floor shortfall Demand range Coverage
Roster’s default. Every shift staffed exactly as asked, in each role: too many is as wrong as too few. And no one works too many extra shifts in a row.
Balanced
Nothing comes first. Beyond the rules every mode keeps, each concern, a short-staffed shift included, is weighed against the others.
Well-Being
The team’s health first: no one works too many extra shifts in a row. Everything else is weighed after it.
Service Quality
The most hands on the floor. No shift may be short, and more staff and seniors than asked are welcome on the busiest shifts; supervisors stay exact.
Ten times better
It has already planned a real porter team’s month, about thirty people, from the engine straight to the spreadsheet they work from. Three to five days of a manager’s work became ten minutes. That is what we mean by the 10X improvement philosophy we talk about in Join us: not the same steps done faster, but the work done differently.
Join us →
Where it stands
Roster is an experiment, and a very promising one. Its engine and the web application a manager plans in are built. Still to come: signing in, a view for the team themselves, the mobile app, planning by each person’s number of shifts, and keeping cost down, which it already calculates but does not yet optimize.
Where it is going
Tell us about your hospital
If someone in your hospital spends days on next month’s roster, we’d like to hear how it is done today.
Write to Mutrack →