Excel for input and output. Python for thousands of comparisons.
50 employees, local processing
Thousands of possible combinations (patterns + shifts)
Balance between demand and cost
Constraints (vacations, preferences)
You define patterns in Excel. The solver proves the best assignment — it doesn't try them one by one.
Define shift patterns, employees, vacations, production demand
Python creates schedule for each employee per pattern
CP-SAT proves the best assignment (patterns + shifts)
Finds combination that best matches demand
When you've chosen pattern for each employee:
Just generate schedule
When the system finds the proven-best solution:
CP-SAT proves the best assignment
Retrieves shift patterns, employee list (with vacations), production demand per day/hour
Python tries: Employee A gets pattern 1 with shift 0, Employee B gets pattern 2 with shift 3, etc.
According to pattern (e.g. 7 days work, 3 days off) and shift. Considers vacations (no shifts during vacation). ~1 sec for 50 employees
Creates schedule for entire team: how many employees work each day/hour
Calculates deviation: how much schedule matches demand (e.g. need 10 employees during day, schedule gives 8)
CP-SAT proves the assignment with the smallest deviation (best match to demand) — or the best possible within a fixed time budget. This takes seconds for 50 employees with 3 patterns.
Creating one schedule is fast (~1 sec). Finding the best one looks like it needs astronomically many tries — but the solver proves it directly instead of trying them one by one.
With 3 patterns and 50 employees:
CP-SAT uses branch-and-bound to rule out whole regions of bad solutions → a proven optimum (or the best within a time budget) in seconds
The solver doesn't sample — it proves the best schedule for your demand, respecting locked patterns and vacations.
~1 sek: When you've already chosen pattern for each employee and just want to see the result
seconds: When you want the solver to prove the best solution for you
These are three different patterns you can create in Excel
Pattern 1: Work 7 days (6AM-2PM), then 3 days off
Pattern 2: Work 6 days (2PM-10PM), then 4 days off
Pattern 3: Work 5 days (10PM-6AM), then 2 days off
System tries all combinations: Which employee gets which pattern, and with how much shift offset (0, 1, 2, 3... days).
With 3 patterns and 50 employees:
Total combinations: 3050 ≈ 7 × 1073
Far too many to try one by one — but the solver (OR-Tools CP-SAT) proves the optimum directly, in seconds.
Day work × base hourly rate
Premium pay for evening and night shifts
Increased pay for work on public holidays
Hours beyond regular work period
Create as many shift patterns as needed
Automatic consideration of employee vacations
Automatic comparison with production requirements
Total calculation incl. overtime and premiums
Familiar interface, easy to modify
Powerful analysis, works on all systems
You define the shift patterns yourself — so union rules are encoded up front. With a fixed vendor product, adding a rule means a paid modification.
Generate schedule (patterns set)
Prove the optimum
Familiar interface
Download sample or contact for more information
Ready with patterns and employee list
Python script that runs on your machine
Contact for assistance