IP Library Granted Patent US 11,367,026
Granted Patent B2
US 11,367,026 · App. 16/173,132 · Granted Jun 21, 2022

Systems and methods for automatic scheduling of a workforce

Inventors: Jason Fama (Redwood, CA); Michael Zeoli (Sunderland, MA); Edward Hamilton (San Jose, CA)
Assignee: Verint Americas Inc.
G06Q10/06311G06Q10/063116G06Q10/063G06Q10/0631
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,367,026
App. No.
16/173,132
Granted
Jun 21, 2022
Kind
B2
Abstract

Systems and methods are disclosed for scheduling a workforce. In one embodiment, the method comprises receiving a shift activity template; receiving an association between the shift activity template and at least one worker; and scheduling a plurality of schedulable objects. The scheduling is performed in accordance with a workload forecast and schedule constraints. Each of the schedulable objects is based on the shift activity template. The shift activity template describes a worker activity performed during a shift. The template has range of start times and a variable length for the activity. The activity is associated with a queue.

Claims (63)

1. A method for queue hopping, comprising:

receiving, at a processor, a shift-variable length activity template association, the shift-variable length activity template association including a shift and a variable length activity template describing a variable length activity related to at least one queue performed during a shift, the variable length activity template being a data structure including a plurality of fields, the plurality of fields including the variable length activity, a range of start times, a variable length for the at least one activity, and the at least one related queue, the at least one related queue that has varying incoming volumes of work at different times during the shift;

receiving, by the processor, at least one worker identification associated with the shift for the shift-variable length activity template association;

creating at least one schedulable object for each worker identification received with the at least one shift-variable length activity template association, the schedulable object being a data structure including fields for the plurality of fields from the variable length activity template, the associated shift, and the associated at least one worker identification;

scheduling, with the processor, a plurality of the created schedulable objects using heuristic searches in accordance with a workload forecast and schedule constraints;

adjusting, with the processor, a scheduled time for the schedulable object within the shift to evaluate combinations of scheduled times for the schedulable object by binding the schedulable object to a respective period in the shift;

identifying, by the processor, schedulable objects that are in excess of a minimum number of schedulable objects for the shift, wherein the minimum number of schedulable objects for the shift is a minimum value of the variable length field of the data structure associated with the variable length activity template for the schedulable object;

for the identified excess schedulable objects performing, by the processor, an additional binding adding a no_binding indication to the schedulable object;

identifying, by the processor, at least one queue experiencing a backlog and binding at least a portion of the excess schedulable objects to a respective time period in the shift for the at least one queue with the backlog; and

directing, by the processor, output from the queue to the at least one worker identification in accordance with the scheduling and binding.

2. The method of claim 1 , wherein the heuristic searches comprise one of a quick search, chronological search, activity oriented search and a swap search.

3. The method of claim 2 , wherein the quick search comprises:

creating, for each shift-variable length activity template associations, a maximum count of schedulable objects, where each schedulable object contains a list of possibilities consisting of every start-time/activity pair given a start time window defined in the variable length activity template, a shift length, a list of flexible activities defined in the at least one shift-variable length activity template associations, and skills of a worker identification;

ordering the schedulable objects such that non-required objects are first; and

scheduling for each worker identification using an existing local search and scoring, to optimize work rules and service goal scores.

4. The method of claim 2 , wherein the chronological search comprises:

selecting a non-required schedulable object;

filtering a list of possibilities for that schedulable object such that it only contains a start chronologically ordered start time;

scheduling using an existing local search and scoring to optimize work rules and service goal scores; and

if an optional schedulable object is bound, replacing it with a required schedulable object.

5. The method of claim 2 , wherein the activity oriented search comprises: creating a list of possible variable length activity orderings; and

for each ordering, each variable length activity in the ordering and non-required schedulable object,

filtering the list of possible variable length activity orderings for that schedulable object such that it only contains the variable length activity in the ordering;

scheduling using an existing local search and scoring to optimize work rules and service goal scores; and

if an optional schedulable object is bound, replacing it with a required schedulable object.

6. The method of claim 2 , wherein the swap search comprises:

swapping two activity blocks where an activity of a first block is not the same as an activity of a second block and worker identifications associated with the first block and the second block are the same; and

comparing a performance improvement based on the swapping.

7. The method of claim 1 , further comprising determining a score that represents one of plural alternatives, where the alternatives include scheduling to achieve service level on as many queues as possible, scheduling activities on the queues that have the most activities, and scheduling activities proportionately to a workload on each queue.

8. A method for queue hopping, comprising:

receiving, at a processor, a shift-variable length activity template association, the shift-variable length activity template association including a shift and a variable length activity template describing a variable length activity related to at least one queue performed during a shift, the variable length activity template being a data structure including a plurality of fields, the plurality of fields including the variable length activity, a range of start times, a variable length for the at least one variable length activity, and the at least one related queue;

receiving, by the processor, an association between the shift-variable length activity template association and at least one worker identification;

creating at least one schedulable object for each worker identification received with the at least one shift-variable length activity template association, the schedulable object being a data structure including fields for the plurality of fields from the variable length activity template, the associated shift, and the associated at least one worker identification

defining, by the processor, a time bank of weekly target hours for the at least one worker identification over a predetermined period; and

scheduling, by the processor, a plurality of the created schedulable objects associated with the at least one worker identification in accordance with a workload forecast, schedule constraints and the time bank;

adjusting, with the processor, a scheduled time for the schedulable object within the shift to evaluate combinations of scheduled times for the schedulable object by binding the schedulable object to a respective period in the shift;

identifying, by the processor, schedulable objects that are in excess of a minimum number of schedulable objects for a respective period in the shift;

for the identified excess schedulable objects, performing, by the processor, an additional binding adding a no_binding indication to the schedulable object;

identifying, by the processor, at least one queue experiencing a backlog and binding at least a portion of the excess schedulable objects to the at least one queue with the backlog; and

directing, by the processor, output of the schedulable objects to the at least one worker identification in accordance with the scheduling and binding.

9. The method of claim 8 , further comprising:

defining plural time banks for the at least one worker identification; and

assigning one of the time banks to the at least one worker identification in accordance with the workload forecast.

10. The method of claim 8 , further comprising scheduling the at least one worker identification within a campaign having a duration of the predetermined period.

11. The method of claim 10 , further comprising tracking hours worked by the at least one worker identification during the campaign.

12. The method of claim 8 , further comprising projecting the workload forecast in accordance with an hours per week worked by employees, vacation hours per week taken by employees, overtime hours, retraining time, layoff plans and hiring plans.

13. The method of claim 8 , further comprising defining intermediate periods within the time bank to reflect workload forecasts having a duration less than the predetermined period.

14. The method of claim 13 , wherein the duration is associated with a seasonal adjustment or product release.

15. A method for queue hopping, comprising:

receiving, at a processor, a shift-variable length activity template association, the shift-variable length activity template association including a shift and a variable length activity template describing a variable length activity performed during a shift, the variable length activity template being a data structure including a plurality of fields, the plurality of fields including the variable length activity, a range of start times and a variable length for the at least one activity, the at least one variable length activity being associated with a first queue that is based on a second queue;

receiving, by the processor, an association between the at least one shift-variable length activity template association and at least one worker identification;

creating at least one schedulable object for each work identification received with the at least one shift-variable length activity template association, the schedulable object being a data structure including fields for the plurality of fields from the variable length activity template, the associated shift, and the associated at least one worker;

scheduling, with the processor, a plurality of the created schedulable objects in accordance with a workload forecast of the first queue and a schedule of the second queue;

adjusting, with the processor, a scheduled time for the schedulable object within the shift to evaluate combinations of scheduled times for the worker identification associated with the schedulable object by binding the schedulable object to a respective period in the shift;

identifying, by the processor, schedulable objects that are in excess of a minimum number of schedulable objects for a respective period in the shift;

for the identified excess schedulable objects, performing, by the processor, an additional binding adding a no_binding to the schedulable object;

identifying, by the processor, at least one queue experiencing a backlog and binding at least a portion of the excess schedulable objects to the at least one queue with the backlog; and

directing the output of the second queue to the at least one worker identification in accordance with the scheduling and binding.

16. The method of claim 15 , further comprising iteratively scheduling the plurality of schedulable objects for subsequent queues.

17. The method of claim 16 , wherein the first queue and the second queue are defined as a tier, and wherein the subsequent queues are layered in tiers to create a cycle.

18. The method of claim 17 , wherein the tiers within the cycle converge to create a score.

19. The method of claim 18 , wherein the convergence of the cycle is set in accordance with a cycle delta threshold, a cycle count threshold and a processing time threshold.

20. The method of claim 15 , wherein a production rate of the second queue is modified by a chain proportion value when a forecast of the first queue is generated.

Assignments (2)
SECURITY INTEREST Recorded Dec 23, 2025
From: VERINT AMERICAS INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 074034/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2019
From: FAMA, JASON; ZEOLI, MICHAEL; HAMILTON, EDWARD
To: VERINT AMERICAS INC.
Reel/Frame 048269/0636 →
Continuity (6)
Continuation 12916678 · Nov 1, 2010
Provisional Application 61256579 · Oct 30, 2009
Provisional Application 61256586 · Oct 30, 2009
Provisional Application 61256599 · Oct 30, 2009
Related Publication 20190130329A1 · May 2, 2019
Related Publication 20210398040A9 · Dec 23, 2021