Store Labour Scheduling
Weekly shift assignment · Demand-driven
Assign store associates to shifts across a planning week so that hourly forecast traffic is covered at minimum labour cost, subject to worker availability, weekly hour caps, and fair-scheduling laws (e.g., NYC Fair Workweek, San Francisco Formula Retail Employee Rights). Integer programming with a staffing-pattern formulation; greedy + local-search heuristic in the solver. Connects empirical labour-and-sales evidence (Kesavan & Terwiesch 2015) to operational shift design.
Why it matters
Labour is retail’s largest controllable cost — and a top driver of conversion
Where the decision sits
Operational, weekly · downstream of forecast, upstream of execution
Labour scheduling sits between traffic forecasting (an upstream prediction problem) and shift execution (the operational reality of swaps, no-shows, and overtime). At a typical chain this is run weekly per store, optimised across ~10-50 associates and ~84 hourly slots (12-hour day × 7 days). Production systems integrate with workforce-management software (Kronos, Workday); the solver below illustrates the underlying MIP. Compare with scheduling family formulations; the structural cousins are healthcare nurse rostering and call-centre staffing.
Problem & formulation
Worker-shift MIP with demand coverage and fairness constraints
Sets and parameters
| Symbol | Meaning | Unit |
|---|---|---|
| \(w \in \mathcal{W}\) | Worker (associate) | finite |
| \(t \in \mathcal{T}\) | Time slot (hour-of-week) | \(\{0, \ldots, 83\}\) |
| \(s \in \mathcal{S}\) | Allowed shift pattern (start-hour + length combo) | finite |
| \(d_t\) | Forecast demand (associates needed) in slot \(t\) | FTEs |
| \(c_w\) | Hourly wage of worker \(w\) | $ / hr |
| \(a_{w,s}\) | 1 if worker \(w\) is available for shift \(s\) | binary |
| \(\bar H_w\) | Maximum weekly hours for \(w\) | hours |
| \(\underline H_w\) | Minimum guaranteed hours (per local law) | hours |
Decision variable
| Symbol | Meaning | Domain |
|---|---|---|
| \(x_{w,s}\) | 1 if worker \(w\) is assigned to shift \(s\) | binary |
Objective
Minimise total wage cost across the week:
Constraints
Fair-scheduling extensions (optional)
Modern fair-workweek laws add hard constraints:
- Predictability premium: changes within 14 days → pay penalty (encoded as variable cost).
- Right to rest: minimum 11 hours between shifts (clopening ban).
- Access to hours: existing part-time workers must be offered hours before new hires — preference order encoded in objective.
- Good-faith estimate: new hires must receive a written hours estimate.
Interactive solver
10 workers · 14 4-hour shifts (2 per day) · greedy demand-fill + 1-opt
Under the hood
14 shifts cover the week (2 per day × 7 days, each 4 hours: morning 09-13, evening 13-17). Workers split into FT (3 default, $20/hr, 40 hr cap) and PT (rest, $16/hr, 25 hr cap). Each worker's availability is randomly drawn (avg 70% of shifts available). Demand profile: lunch peak (slots 1, 5, 9, 13) and evening secondary peak. Solver: greedy — for each understaffed slot, fill with the cheapest available worker who hasn't hit hour cap; then 1-opt swap for cost reduction. Reports cost + coverage + utilisation.
Reading the solution
Three patterns to watch for
- FTs anchor the peaks. Lunch and evening peaks pull in full-time associates first because they need their guaranteed hours; PTs fill the off-peak gaps.
- Trade-off cost vs coverage. Understaffing one peak slot saves an hour of wage but loses conversion. The overstaff penalty parameter tunes how aggressively to over-cover.
- Availability bottlenecks. If many workers are unavailable on Saturday evening, the solver pays peak FT rates on a slot that should have been PT — the canvas highlights the mismatch.
Sensitivity questions
- Add 2 more PT workers? — coverage improves; total cost may stay flat (cheaper labour fills slots that were short).
- Tighten FT hour cap to 32 hrs? — PT coverage jumps; total cost slightly up; better Schedule Predictability compliance.
- Higher peak demand (6 → 8)? — understaffed hours rise; need to hire or train more workers.
Model extensions
Stochastic demand
Forecast as distribution; chance-constrained or two-stage SP variant. Trade-off coverage probability vs cost.
Multi-skill workers
Cashier, floor, stockroom skills. Generalised assignment with role-eligibility.
Fair-workweek strict mode
11-hour rest, 14-day notice, predictability premium for changes — turn the soft constraints in this solver into hard ones with predictability-pay terms.
Cross-store labour pool
Workers can cover multiple nearby stores. Bigger MIP; transportation cost added.
Joint with traffic forecast
End-to-end forecast + schedule; Kesavan-Terwiesch 2015 endogeneity (more labour → higher conversion → higher demand).
Worker preferences + utility
Soft constraints: preferred days off, max consecutive days. Multi-objective with worker satisfaction.
Healthcare scheduling sibling
Nurse rostering uses essentially the same MIP with stricter regulatory constraints.
Nurse rostering →Workforce planning sibling
Multi-month workforce sizing decision (hire/fire) sits upstream of weekly scheduling.
Workforce planning →Key references
Back to the retail domain
Store labour scheduling sits in the Place × Operational cell — weekly cadence, biggest controllable cost line, increasingly regulated.
Open Retail Landing