Workforce Scheduling Software

Automatically balance shifts across workers using constraint programming — respecting availability, costs, and labor rules.

The problem

Manual shift scheduling is a weekly puzzle that takes hours to solve and still produces suboptimal results. Managers juggle worker availability, maximum hours, consecutive day limits, cost differences, and location staffing requirements in a spreadsheet. When a worker calls in sick, the entire schedule needs manual adjustment. Unbalanced workloads lead to burnout for some workers and underutilization for others, while overstaffing at one location means understaffing at another.

The solution

Formict's shift optimization engine uses Google OR-Tools CP-SAT (Constraint Programming - Satisfiability) solver to generate weekly schedules automatically. Define worker constraints — availability per day, cost per hour, max hours per day/week, max consecutive days, and day-off preferences. Set location demand with minimum and maximum workers needed per day. Choose from 4 optimization goals: minimize cost, balance workload, maximize coverage, or split equally. The solver produces assignments in seconds, and applying results creates Shift and ShiftInstance records directly in the system.

Frequently asked questions
What scheduling constraints are supported?
Worker constraints include: availability per day of the week, cost per hour, maximum hours per day, maximum hours per week, maximum consecutive working days, and preferred days off. Location constraints include minimum and maximum workers needed per location per day. The solver respects all constraints simultaneously.
What optimization goals can I choose?
Four goals: Minimize Cost (lowest total labor cost based on worker hourly rates), Balance Workload (even hours distribution measured by coefficient of variation), Maximize Coverage (fill as many location-day demand slots as possible), and Split Equally (most even distribution of shifts across workers).
How do I handle last-minute schedule changes?
Re-run the optimizer with updated worker availability. Workers marked as unavailable for specific days are excluded from assignment. The solver regenerates the optimal schedule in seconds. ShiftInstance records track the status of each shift occurrence: SCHEDULED, COMPLETED, CANCELLED, or NO_SHOW.
How does attendance verification work with schedules?
Shift schedules integrate with the attendance system. Workers check in/out via the mobile app with GPS coordinates and optional photo verification. The system calculates early/late duration against the shift start time, applies the configurable late threshold (default 15 minutes), and flags attendance as PENDING, COMPLETED, LATE, ABSENT, or PARTIAL.
Can I see schedule balance metrics?
Yes. Optimization results include workload balance metrics with coefficient of variation, showing how evenly shifts are distributed. The results also show unassigned workers (those without shifts), demand gaps (locations with unfilled staffing needs), and per-worker assignment summaries with total hours and cost.
Does it support multiple locations?
Yes. Define staffing demand per location per day with minimum and maximum worker counts. The solver assigns workers to locations while respecting all constraints. Workers can be assigned to specific locations, and the system tracks which location each shift is for.

Ready to optimize your field operations?

Start with the free plan. No credit card required.