One of the issues that we encountered was that a generalized algorithm was tough. Different companies had different requirements for an algorithm, and it started to feel like a consulting company. For instance, if a big box retailer would rather be slightly underscheduled at peak time rather than adding additional employees (and being over-scheduled near the peak time). A high-end boutique retailer (like a diamond shop) might be the opposite - each sales brings in so much money that they overstaff at non-peak hours so that they can service customers during peak hours.