Experiment

ไทย

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.

Class 24 · 2024 The forecast. A year of porter jobs became each hub’s work, hour by hour, and the porters were grouped by how they work. Class 25 · 2025 The first engine. In their first week we turned to rostering together. They wrote the engine that searches for the month that fits. Mutrack Built in full. The web application, the Evaluator, the modes, and a real team’s month: three to five days down to ten minutes.

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.

HomeSchedulesRosterReportsSettings

Logistics

PlanTemplateMembersLeavesDay Off
Template
Search & Filter

1 Templates

Logistics TeamSlot
Logistics TeamConfiguration
ShiftsMembersAdd Shift

8 shifts

OrderNameStartEndDurationHeadcounts
1 Day Long 07:0019:0012 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:0018:0010 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:0017:008 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:0019:0010 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:0020:0010 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:0018:008 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:0022:0011 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:0007:0012 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
PlanCreate Schedule
Search schedules…All statusesAll Templates

1 Plans2 Plans

Schedule NameTemplateMonthOptimization ModeStatus
December 2026Logistics TeamDecember 2026Coverage DraftPublished View AssignmentSee Schedule
November 2026Logistics TeamNovember 2026CoveragePublished

Create Schedule

Optional — if no budget is set for this month yet, leave it blank

CancelCreate Schedule

December 2026Draft PlanPublished Schedule
SummaryCalendarShiftHeadcountsCapacityViolations Search members… All Roles All Genders

30 members

NameGenderRoleNormal HoursOvertime HoursTotal HoursWorkdayDays off
Ananya PongpanitchLogistics SupervisorFemaleSupervisor 000031
Anucha BoonmeePorterMaleAgent 000031
Chaiwat InthongSenior PorterMaleSenior 000031
Jiraporn WongsaSenior PorterFemaleSenior 000031
Kittipong ChaiyasitPorterMaleAgent 000031
Pongpisut PatamadechaPorterMaleAgent 000031
Siriporn ThongdeePorterFemaleAgent 000031
Tachapol UdomaekPorterMaleAgent 000031
Tanagorn RattanapanPorterMaleAgent 000031
Traitod PrachayutMessengerMaleAgent 000031
Wanpen SukjaiPorterFemaleAgent 000031
Wiroj SaengthongSenior PorterMaleSenior 000031
Apichat MoonsriPorterMaleAgent 000031
Duangjai PhetcharaPorterFemaleAgent 000031
Kanokwan PetchrungPorterFemaleAgent 000031
Kriangkrai SomboonPorterMaleAgent 000031
NNantana SrisukShift SupervisorFemaleSupervisor 000031
Naruemon ChaisriPorterFemaleAgent 000031
Nattapon SrichaiPorterMaleAgent 000031
Phichit BoonchuPorterMaleAgent 000031
Pornthip SaengdaoPorterFemaleAgent 000031
PPrasit WongwanShift SupervisorMaleSupervisor 000031
Ratchanee BoonrodSenior PorterFemaleSenior 000031
Sakda PhonsriSenior PorterMaleSenior 000031
Somsak ThongmakPorterMaleAgent 000031
Sunisa WongprasertPorterFemaleAgent 000031
Surasak InkaewPorterMaleAgent 000031
Thawatchai KaewkhamPorterMaleAgent 000031
Weerapong SaelimSenior PorterMaleSenior 000031
Yupin NakprasertPorterFemaleAgent 000031
NameGenderRoleNormal HoursOvertime HoursTotal HoursWorkdayDays off
Ananya PongpanitchLogistics SupervisorFemaleSupervisor 24002402011
Anucha BoonmeePorterMaleAgent 24002402011
Chaiwat InthongSenior PorterMaleSenior 25202522110
Jiraporn WongsaSenior PorterFemaleSenior 25202522110
Kittipong ChaiyasitPorterMaleAgent 24002402011
Pongpisut PatamadechaPorterMaleAgent 2640264229
Siriporn ThongdeePorterFemaleAgent 25202522110
Tachapol UdomaekPorterMaleAgent 24002402011
Tanagorn RattanapanPorterMaleAgent 2640264229
Traitod PrachayutMessengerMaleAgent 25202522110
Wanpen SukjaiPorterFemaleAgent 24002402011
Wiroj SaengthongSenior PorterMaleSenior 24002402011
Apichat MoonsriPorterMaleAgent 24002402011
Duangjai PhetcharaPorterFemaleAgent 2640264229
Kanokwan PetchrungPorterFemaleAgent 25202522110
Kriangkrai SomboonPorterMaleAgent 24002402011
NNantana SrisukShift SupervisorFemaleSupervisor 2640264229
Naruemon ChaisriPorterFemaleAgent 24002402011
Nattapon SrichaiPorterMaleAgent 25202522110
Phichit BoonchuPorterMaleAgent 24002402011
Pornthip SaengdaoPorterFemaleAgent 24002402011
PPrasit WongwanShift SupervisorMaleSupervisor 24002402011
Ratchanee BoonrodSenior PorterFemaleSenior 24002402011
Sakda PhonsriSenior PorterMaleSenior 22802281912
Somsak ThongmakPorterMaleAgent 25202522110
Sunisa WongprasertPorterFemaleAgent 24002402011
Surasak InkaewPorterMaleAgent 25202522110
Thawatchai KaewkhamPorterMaleAgent 24002402011
Weerapong SaelimSenior PorterMaleSenior 25202522110
Yupin NakprasertPorterFemaleAgent 25202522110
NameGenderRoleNormal HoursOvertime HoursTotal HoursWorkdayDays off
Ananya PongpanitchLogistics SupervisorFemaleSupervisor 24002402011
Anucha BoonmeePorterMaleAgent 24002402011
Chaiwat InthongSenior PorterMaleSenior 2640264229
Jiraporn WongsaSenior PorterFemaleSenior 25202522110
Kittipong ChaiyasitPorterMaleAgent 24002402011
Pongpisut PatamadechaPorterMaleAgent 2640264229
Siriporn ThongdeePorterFemaleAgent 25202522110
Tachapol UdomaekPorterMaleAgent 24002402011
Tanagorn RattanapanPorterMaleAgent 2640264229
Traitod PrachayutMessengerMaleAgent 25202522110
Wanpen SukjaiPorterFemaleAgent 24002402011
Wiroj SaengthongSenior PorterMaleSenior 24002402011
Apichat MoonsriPorterMaleAgent 24002402011
Duangjai PhetcharaPorterFemaleAgent 2640264229
Kanokwan PetchrungPorterFemaleAgent 25202522110
Kriangkrai SomboonPorterMaleAgent 24002402011
NNantana SrisukShift SupervisorFemaleSupervisor 2640264229
Naruemon ChaisriPorterFemaleAgent 24002402011
Nattapon SrichaiPorterMaleAgent 25202522110
Phichit BoonchuPorterMaleAgent 24002402011
Pornthip SaengdaoPorterFemaleAgent 24002402011
PPrasit WongwanShift SupervisorMaleSupervisor 24002402011
Ratchanee BoonrodSenior PorterFemaleSenior 24002402011
Sakda PhonsriSenior PorterMaleSenior 24002402011
Somsak ThongmakPorterMaleAgent 25202522110
Sunisa WongprasertPorterFemaleAgent 24002402011
Surasak InkaewPorterMaleAgent 25202522110
Thawatchai KaewkhamPorterMaleAgent 24002402011
Weerapong SaelimSenior PorterMaleSenior 25202522110
Yupin NakprasertPorterFemaleAgent 2640264229
Members 1Tue2Wed3Thu4Fri5Sat6Sun7Mon8Tue9Wed10Thu11Fri12Sat13Sun14Mon15Tue16Wed17Thu18Fri19Sat20Sun21Mon22Tue23Wed24Thu25Fri26Sat27Sun28Mon29Tue30Wed31Thu
Ananya PongpanitchLogistics Supervisor Day Long07:00–19:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Afternoon11:00–22:00 Afternoon11:00–22:00 Afternoon11:00–22:00 Day OffAll day Afternoon11:00–22:00 Day Long07:00–19:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Day OffAll day Day OffAll day Day Long07:00–19:00 Afternoon11:00–22:00 Afternoon11:00–22:00 Afternoon11:00–22:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day OffAll day Day Long07:00–19:00 Day Long07:00–19:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Day OffAll day Afternoon11:00–22:00
Anucha BoonmeePorter Day OffAll day Mid Day10:00–18:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Night19:00–07:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day Standard08:00–18:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day Standard08:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Day Extended09:00–19:00 Day OffAll day Afternoon11:00–22:00 Day OffAll day Day OffAll day Afternoon11:00–22:00 Mid Morning10:00–20:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Standard08:00–18:00 Day Short09:00–17:00 Night19:00–07:00 Day OffAll day
Chaiwat InthongSenior Porter Mid Day10:00–18:00 Mid Day10:00–18:00 Day OffAll day Day Standard08:00–18:00 Day OffAll day Mid Day10:00–18:00 Day Extended09:00–19:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Extended09:00–19:00 Day Standard08:00–18:00 Day Standard08:00–18:00 Day Extended09:00–19:00 Night19:00–07:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Standard08:00–18:00 Day Extended09:00–19:00 Day Standard08:00–18:00 Mid Day10:00–18:00 Day Extended09:00–19:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Night19:00–07:00 Day OffAll day Day Standard08:00–18:00
Jiraporn WongsaSenior Porter Day Extended09:00–19:00 Day OffAll day Day Standard08:00–18:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day Standard08:00–18:00 Day OffAll day Day Extended09:00–19:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Extended09:00–19:00 Day Standard08:00–18:00 Mid Day10:00–18:00 Day Extended09:00–19:00 Mid Day10:00–18:00 Night19:00–07:00 Night19:00–07:00 Day OffAll day Day Standard08:00–18:00 Day Standard08:00–18:00 Only 1h rest before 08:00 (after 23 Dec) Day OffAll day Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Day Extended09:00–19:00
Kittipong ChaiyasitPorter Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Short09:00–17:00 Day Extended09:00–19:00 Mid Morning10:00–20:00 Mid Morning10:00–20:00 Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day OffAll day Mid Day10:00–18:00 Afternoon11:00–22:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Mid Day10:00–18:00 Mid Morning10:00–20:00 Day Short09:00–17:00 Day OffAll day Day Long07:00–19:00 Day Standard08:00–18:00 Day Long07:00–19:00 Night19:00–07:00
Pongpisut PatamadechaPorter Day Long07:00–19:00 Afternoon11:00–22:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Standard08:00–18:00 Day Short09:00–17:00 Day Extended09:00–19:00 Mid Morning10:00–20:00 Day Short09:00–17:00 Afternoon11:00–22:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day OffAll day Day OffAll day Mid Morning10:00–20:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Day Extended09:00–19:00 Day Standard08:00–18:00 Day Standard08:00–18:00 Day Standard08:00–18:00 Day Short09:00–17:00 Day OffAll day
Siriporn ThongdeePorter Day OffAll day Day Standard08:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Night19:00–07:00 Day OffAll day Day Short09:00–17:00 Day Standard08:00–18:00 Mid Day10:00–18:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Day Short09:00–17:00 Day OffAll day Mid Morning10:00–20:00 Mid Day10:00–18:00 Day Long07:00–19:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Day OffAll day Day Long07:00–19:00 Day OffAll day Day Short09:00–17:00
Tachapol UdomaekPorter Day Long07:00–19:00 Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Extended09:00–19:00 Mid Morning10:00–20:00 Mid Morning10:00–20:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Mid Morning10:00–20:00 Mid Morning10:00–20:00 Night19:00–07:00 Day OffAll day Day OffAll day Afternoon11:00–22:00 Day Long07:00–19:00 Day Standard08:00–18:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Extended09:00–19:00 Mid Morning10:00–20:00 Mid Morning10:00–20:00 Day OffAll day Day OffAll day Day OffAll day Afternoon11:00–22:00
Tanagorn RattanapanPorter Mid Morning10:00–20:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Day OffAll day Day OffAll day Afternoon11:00–22:00 Day Long07:00–19:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day Standard08:00–18:00 Day Extended09:00–19:00 Mid Morning10:00–20:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Day OffAll day Mid Morning10:00–20:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Mid Morning10:00–20:00 Mid Day10:00–18:00 Mid Day10:00–18:00 Day Short09:00–17:00 Mid Morning10:00–20:00
Traitod PrachayutMessenger Day Short09:00–17:00 Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Mid Morning10:00–20:00 Mid Day10:00–18:00 Afternoon11:00–22:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Mid Morning10:00–20:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Short09:00–17:00 Day Extended09:00–19:00 Mid Morning10:00–20:00 Day OffAll day Day OffAll day Day OffAll day Mid Morning10:00–20:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Day Extended09:00–19:00 Mid Morning10:00–20:00 Day OffAll day Day Standard08:00–18:00 Day Short09:00–17:00
Wanpen SukjaiPorter Day Standard08:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day Long07:00–19:00 Afternoon11:00–22:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Day Short09:00–17:00 Mid Day10:00–18:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day Long07:00–19:00 Afternoon11:00–22:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Mid Day10:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Day OffAll day
Wiroj SaengthongSenior Porter Day Standard08:00–18:00 Day Extended09:00–19:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Night19:00–07:00 Day OffAll day Day Standard08:00–18:00 Day Extended09:00–19:00 Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day Standard08:00–18:00 Mid Day10:00–18:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Day OffAll day Mid Day10:00–18:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Extended09:00–19:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Mid Day10:00–18:00
Apichat MoonsriPorter Day Extended09:00–19:00 Mid Morning10:00–20:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Mid Day10:00–18:00 Day Standard08:00–18:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Extended09:00–19:00 Mid Morning10:00–20:00 Mid Morning10:00–20:00 Night19:00–07:00 Day OffAll day Day OffAll day Afternoon11:00–22:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Standard08:00–18:00 Mid Day10:00–18:00 Afternoon11:00–22:00 Day OffAll day Day OffAll day Day OffAll day
Duangjai PhetcharaPorter Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Mid Morning10:00–20:00 Mid Morning10:00–20:00 Day OffAll day Day OffAll day Mid Morning10:00–20:00 Day Short09:00–17:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Day Extended09:00–19:00 Day Extended09:00–19:00 Mid Morning10:00–20:00 Day OffAll day Day Long07:00–19:00 Day Standard08:00–18:00 Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Mid Morning10:00–20:00 Mid Morning10:00–20:00 Day OffAll day
Kanokwan PetchrungPorter Night19:00–07:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Short09:00–17:00 Day Extended09:00–19:00 Afternoon11:00–22:00 Day Short09:00–17:00 Day OffAll day Mid Day10:00–18:00 Mid Day10:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Day Extended09:00–19:00 Afternoon11:00–22:00 Day OffAll day Mid Morning10:00–20:00
Kriangkrai SomboonPorter Mid Morning10:00–20:00 Mid Day10:00–18:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Day Long07:00–19:00 Day Standard08:00–18:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Standard08:00–18:00 Day Short09:00–17:00 Night19:00–07:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Day Long07:00–19:00 Day OffAll day Mid Morning10:00–20:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day OffAll day Day OffAll day Mid Morning10:00–20:00 Mid Day10:00–18:00 Day Long07:00–19:00
NNantana SrisukShift Supervisor Day OffAll day Day OffAll day Afternoon11:00–22:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Long07:00–19:00 Afternoon11:00–22:00 Day OffAll day Day OffAll day Afternoon11:00–22:00 Afternoon11:00–22:00 Afternoon11:00–22:00 Day Long07:00–19:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day OffAll day Day Long07:00–19:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Afternoon11:00–22:00 Afternoon11:00–22:00 Day OffAll day Afternoon11:00–22:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Long07:00–19:00 Day OffAll day
Naruemon ChaisriPorter Day Short09:00–17:00 Day OffAll day Day OffAll day Day Extended09:00–19:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Day Extended09:00–19:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Extended09:00–19:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Mid Day10:00–18:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Mid Day10:00–18:00 Day Long07:00–19:00 Day Long07:00–19:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day OffAll day Day Short09:00–17:00
Nattapon SrichaiPorter Mid Day10:00–18:00 Day Long07:00–19:00 Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Mid Morning10:00–20:00 Mid Day10:00–18:00 Afternoon11:00–22:00 Day OffAll day Day OffAll day Day Extended09:00–19:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Short09:00–17:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Extended09:00–19:00
Phichit BoonchuPorter Day OffAll day Day OffAll day Day Long07:00–19:00 Day Standard08:00–18:00 Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day Long07:00–19:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Day OffAll day Day OffAll day Mid Morning10:00–20:00 Mid Morning10:00–20:00 Day Standard08:00–18:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Extended09:00–19:00 Mid Morning10:00–20:00 Night19:00–07:00 Day OffAll day Day OffAll day Afternoon11:00–22:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Standard08:00–18:00 Day OffAll day
Pornthip SaengdaoPorter Day OffAll day Day Extended09:00–19:00 Mid Morning10:00–20:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day Long07:00–19:00 Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Extended09:00–19:00 Day Long07:00–19:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Mid Morning10:00–20:00 Mid Day10:00–18:00 Mid Day10:00–18:00 Day Standard08:00–18:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Mid Morning10:00–20:00 Mid Day10:00–18:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day
PPrasit WongwanShift Supervisor Afternoon11:00–22:00 Afternoon11:00–22:00 Day Long07:00–19:00 Afternoon11:00–22:00 Day OffAll day Day OffAll day Day OffAll day Afternoon11:00–22:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Long07:00–19:00 Afternoon11:00–22:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day OffAll day Day Long07:00–19:00 Afternoon11:00–22:00 Afternoon11:00–22:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day OffAll day Afternoon11:00–22:00 Afternoon11:00–22:00 Afternoon11:00–22:00 Day Long07:00–19:00
Ratchanee BoonrodSenior Porter Day OffAll day Day Standard08:00–18:00 Day Extended09:00–19:00 Day Extended09:00–19:00 Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day Extended09:00–19:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day OffAll day Day OffAll day Day Standard08:00–18:00 Day OffAll day Mid Day10:00–18:00 Mid Day10:00–18:00 Day Extended09:00–19:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Extended09:00–19:00 Day Standard08:00–18:00 Day OffAll day Night19:00–07:00 Day OffAll day Day Extended09:00–19:00 Mid Day10:00–18:00 Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day
Sakda PhonsriSenior Porter Night19:00–07:00 Day OffAll day Day OffAll day Day OffAll day Day Extended09:00–19:00 Day Standard08:00–18:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day Standard08:00–18:00 Mid Day10:00–18:00 Day Extended09:00–19:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Standard08:00–18:00 Day Extended09:00–19:00 Night19:00–07:00 Day OffAll day Night19:00–07:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Day Extended09:00–19:00 Mid Day10:00–18:00 Day OffAll day Day Standard08:00–18:00 Day Extended09:00–19:00 Day Standard08:00–18:00 Day OffAll day
Somsak ThongmakPorter Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Day Extended09:00–19:00 Mid Morning10:00–20:00 Day Standard08:00–18:00 Day Long07:00–19:00 Day OffAll day Day Short09:00–17:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day Standard08:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Day OffAll day Mid Morning10:00–20:00 Mid Day10:00–18:00 Mid Day10:00–18:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Day Extended09:00–19:00 Afternoon11:00–22:00 Day Standard08:00–18:00
Sunisa WongprasertPorter Afternoon11:00–22:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Day OffAll day Mid Day10:00–18:00 Day Standard08:00–18:00 Day Extended09:00–19:00 Day Extended09:00–19:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Mid Day10:00–18:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Extended09:00–19:00 Day OffAll day Mid Day10:00–18:00 Afternoon11:00–22:00 Day Long07:00–19:00 Night19:00–07:00 Day OffAll day Day Long07:00–19:00 Day Standard08:00–18:00
Surasak InkaewPorter Day OffAll day Day OffAll day Mid Day10:00–18:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Mid Morning10:00–20:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Mid Day10:00–18:00 Afternoon11:00–22:00 Mid Day10:00–18:00 Day Long07:00–19:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Day Standard08:00–18:00 Day Short09:00–17:00 Day OffAll day Day OffAll day Mid Morning10:00–20:00 Mid Day10:00–18:00 Mid Morning10:00–20:00 Mid Day10:00–18:00
Thawatchai KaewkhamPorter Day OffAll day Day OffAll day Day Extended09:00–19:00 Mid Morning10:00–20:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Mid Day10:00–18:00 Day Short09:00–17:00 Mid Morning10:00–20:00 Day OffAll day Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Short09:00–17:00 Day Short09:00–17:00 Night19:00–07:00 Day OffAll day Afternoon11:00–22:00 Day Long07:00–19:00 Day Long07:00–19:00 Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day OffAll day Mid Day10:00–18:00 Day Long07:00–19:00
Weerapong SaelimSenior Porter Day OffAll day Night19:00–07:00 Night19:00–07:00 Day OffAll day Mid Day10:00–18:00 Day Extended09:00–19:00 Day OffAll day Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Day Extended09:00–19:00 Mid Day10:00–18:00 Day Extended09:00–19:00 Day Extended09:00–19:00 Day OffAll day Night19:00–07:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Extended09:00–19:00 Day Standard08:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Standard08:00–18:00 Day Extended09:00–19:00 Mid Day10:00–18:00 Day Extended09:00–19:00 Night19:00–07:00
Yupin NakprasertPorter Mid Day10:00–18:00 Day OffAll day Day OffAll day Mid Day10:00–18:00 Mid Morning10:00–20:00 Mid Day10:00–18:00 Night19:00–07:00 Day OffAll day Day OffAll day Day Long07:00–19:00 Day Standard08:00–18:00 Day Long07:00–19:00 Day Short09:00–17:00 Day OffAll day Day Long07:00–19:00 Day Standard08:00–18:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day Standard08:00–18:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Short09:00–17:00 Day Extended09:00–19:00 Afternoon11:00–22:00 Day Long07:00–19:00 Day OffAll day Day OffAll day Day Short09:00–17:00 Day Extended09:00–19:00 Mid Day10:00–18:00
ResultConditions

Run Information

Period
December 2026
Optimization Mode
Coverage
Shifts
248
Members
30
Leaves
5
Population
—
Generation
—
Run Duration
—
Period
December 2026
Optimization Mode
Coverage
Shifts
248
Members
30
Leaves
5
Population
50
Generation
50
Run Duration
2m 10s
Period
December 2026
Optimization Mode
Coverage
Shifts
248
Members
30
Leaves
5
Population
100
Generation
100
Run Duration
7m 30s

ConstraintsAll constraints met

Supervisor shortfall0

Senior shortfall0

Agent shortfall0

Leave violation0

Fixed assignment0

Forbidden assignment0

Gender restriction0

Rest between shifts0

Weekly rest0

Skill floor shortfall0

Constraints2 constraints unmet

Supervisor shortfall0

Senior shortfall2

Agent shortfall1

Leave violation0

Fixed assignment0

Forbidden assignment0

Gender restriction0

Rest between shifts0

Weekly rest0

Skill floor shortfall0

ConstraintsAll constraints met

Supervisor shortfall0

Senior shortfall0

Agent shortfall0

Leave violation0

Fixed assignment0

Forbidden assignment0

Gender restriction0

Rest between shifts0

Weekly rest0

Skill floor shortfall0

Constraints1 constraint unmet

Supervisor shortfall0

Senior shortfall0

Agent shortfall0

Leave violation0

Fixed assignment0

Forbidden assignment0

Gender restriction0

Rest between shifts1

Weekly rest0

Skill floor shortfall0

Run OptimizerRe-run Optimizer Evaluate Reset to Checkpoint Set as Checkpoint Close Publish

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 extra welcome Agent shortfall extra welcome 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 extra welcome Agent shortfall extra welcome 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 extra welcome Agent shortfall extra welcome 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 extra welcome Agent shortfall extra welcome 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 extra welcome Agent shortfall extra welcome 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 extra welcome Agent shortfall extra welcome 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

Next, the plan meets the work. Roster is to work natively with Dispatcher and People, so that a month’s staffing rests on the demand the hospital really has: how many jobs come in, at which hours, and who is on duty to take them. Each application becomes more complete on its own, and more powerful together.

Two women at a white table, each at a laptop, planning a roster together.

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 →