WO2013149316A1 - Workforce scheduler - Google Patents

Workforce scheduler Download PDF

Info

Publication number
WO2013149316A1
WO2013149316A1 PCT/CA2012/050211 CA2012050211W WO2013149316A1 WO 2013149316 A1 WO2013149316 A1 WO 2013149316A1 CA 2012050211 W CA2012050211 W CA 2012050211W WO 2013149316 A1 WO2013149316 A1 WO 2013149316A1
Authority
WO
WIPO (PCT)
Prior art keywords
shift
list
workers
worker
work
Prior art date
Application number
PCT/CA2012/050211
Other languages
French (fr)
Inventor
Richard DILDA
Chun Hin LAU
Robert D. HORVATH
Original Assignee
Rosterware Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rosterware Inc. filed Critical Rosterware Inc.
Priority to PCT/CA2012/050211 priority Critical patent/WO2013149316A1/en
Publication of WO2013149316A1 publication Critical patent/WO2013149316A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group

Definitions

  • the present disclosure relates generally to the scheduling of workforces. More particularly, the present disclosure relates to an automatic workforce scheduler that implements fairness based on rules and preferences.
  • the present disclosure provides a non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce including workers.
  • the method comprises: selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types;
  • a non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce including workers.
  • the method comprises: selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types; selecting an initial shift type from the list of shift types, each worker having associated thereto a preference for the initial shift type, the initial shift type having associated thereto a list of shifts, the list of shifts having a number of shifts; randomizing a list of workers available for the initial shift type to obtain a first randomized list of workers; modifying, based on preferences of the workers for the initial shift type, the randomized list of workers, to obtain a first modified, randomized list of workers, the first modified, randomized list of workers having a number of workers; and if the number of shifts is greater than the number of workers, performing the following actions: assigning, in order of appearance in the first modified, randomized
  • the present disclosure provides a non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce including workers.
  • the method comprises: selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types;
  • the present disclosure provides a A non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce schedule having a plurality of shifts, the workforce schedule being for a workforce including workers.
  • the method comprises: selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types; selecting an initial shift type from the list of shift types, each worker having associated thereto a preference for the initial shift type, the initial shift type having associated thereto a list of shifts; randomizing a list of workers available for the initial shift type to obtain a randomized list of workers; modifying, based on preferences of the workers for the initial shift type, the randomized list of workers, to obtain a modified, randomized list of workers; selecting a first shift from the list of shifts associated to the initial shift type; verifying if the first worker in the modified, randomized list of workers is allowed to work the first shift; if the first worker is allowed to work the first shift, assigning the first worker to the first shift; if the first worker is not allowed to work the first shift, performing the following action until a worker in the modified, randomized list of workers is allowed to work the first shift: verifying, in order of appearance in the modified, randomized list of workers,
  • Figure 1A shows an embodiment of a method of the present disclosure.
  • Figure 1 B shows an embodiment of a schedule system of the present disclosure.
  • Figure 2 shows an example of a work profile for full-time nurses.
  • Figure 3 shows an example of a set of parameters upon which shift types can be based.
  • Figure 4 shows examples of listings of shift types for full-time and part time nurses.
  • Figure 5 shows examples of full-time nurse shifts.
  • Figure 6 shows examples of part-time nurse shifts.
  • Figure 7 shows an example of a one-week schedule.
  • Figure 8 shows an example of a list of workers.
  • Figure 9 shows an example of a scheduling flow in accordance with the present disclosure.
  • Figure 10 shows an example of a randomized list of work profiles.
  • Figure 11 shows an example of a randomized list of shift types.
  • Figure 12 shows an example of a randomized list of shifts.
  • Figure 13 shows an example of a randomized list of workers.
  • Figure 14 shows an example of pre-determined rules.
  • Figure 15 shows a partial view of an example of a schedule.
  • Figure 16 shows an example of a listing of workers (worker number) and of the number of shifts each worker is scheduled to work.
  • Figure 17 shows another example of a listing of workers (worker number) and of the number of shifts each worker is scheduled to work.
  • Figure 18 shows another example of a scheduling flow in accordance with the present disclosure.
  • Figure 19 shows yet another example of a listing of workers (worker number) and of the number of shifts each worker is scheduled to work.
  • Figure 20 shows an example of actions that can be used to determine if a worker is allowed to work a shift.
  • Figure 21 shows an example of server operating a schedule system of the present disclosure, the server being connected to several devices through the Internet.
  • Figure 22 shows an example of a flow for giving-away a shift in accordance with the present disclosure.
  • Figure 23 shows an example of a flow for trading a shift in accordance with the present disclosure.
  • Figure 24 shows an example of another flow for trading a shift in accordance with the present disclosure.
  • Figure 25 shows an example of a conflict check flow in accordance with the present disclosure.
  • Figure 26 shows an example of a system that integrate a schedule system, a time and attendance module, and a performance evaluation module.
  • the present disclosure relates to scheduling a workforce. That is, the present disclosure relates to the generation of a schedule, or work schedule, for workers of the workforce.
  • the schedule generated in accordance with the present disclosure can be a function of, amongst others, pre-determined rules and worker preferences for certain shifts or shift type in the schedule.
  • a worker preference can be a desire to work a particular shift or shift type, a desire to not work the particular shift or shift type, or no particular desire to work or not work the particular shift or shift type.
  • the rules upon which the schedule is generated can include rules related to Governmental laws, rules related to worker collective agreement rules, in-house rules to minimize overtime, etc.
  • Examples of such workforces include health-care workers (e.g., doctors, nurses, etc.), call-centers, etc.
  • Figure 1 A shows an example of a method of generating a workforce schedule in accordance with the present disclosure.
  • the characteristics that the schedule should have i.e., the schedule characteristics
  • the characteristics can include the type of workers for whom the schedule is generated (e.g., nurses) and the time span of the schedule (e.g., one month).
  • the characteristics can also include attributes of shifts defined in the schedule, such attributes can include, for example: (a) if and how the shifts can be traded by the workers themselves or amongst the workers; (b) whether or not the shifts can be edited by the workers themselves; (c) whether or not shift transactions between the workers require approval by a schedule administrator; (d) whether or not it is possible for a worker to give away a shift; (e) how requests for time off are treated; etc. Any other suitable characteristics can be determined at action 30.
  • the time span can be any suitable duration such as, for example, a year, six months, one month, a week, a day, etc.
  • the action 30 can be performed manually by a schedule administrator.
  • action 30 can be performed automatically by any suitably programmed computing device (computer, server, computing system, etc.).
  • action 30 can be performed by a computing device programmed to determine the characteristics of the schedule based on historical characteristics of schedules stored in a database accessible by the computing device.
  • work profiles are generated by the schedule administrator in accordance with the types of workers that will be used to populate the schedule.
  • There can be any suitable number of work profiles e.g., 1 , 2, 3, etc.).
  • Each work profile can include particulars of each type of worker susceptible to be scheduled to work a shift.
  • Such particulars can include how and when each type of worker gets paid, pay deduction codes, length of work shift, pay codes for work shifts, guaranteed minimum hours, overtime threshold, shift breakdown, etc.
  • a shift breakdown is to be understood as meaning how a shift can be partitioned into two or more time zones.
  • the action 32 can be performed manually by the schedule administrator or can be performed automatically by any suitably programmed computing device.
  • An example of automatically performing action 32 would be that of a computing device programmed to retrieve pre-defined work profiles from a database of work profiles, the database being accessible by the computing device.
  • the pay deduction codes, pay codes for work shifts, and any other particulars can be communicated to a Time and Attendance module.
  • Figure 2 shows an example of a full-time nurse work profile 42, the particulars of which include a Guaranteed Minimum Hours item 44, an Overtime
  • Threshold Limit item 46 a Shift Breakdown item 48, Pay Code item 50, and Deduction Code items 52.
  • the Shift Breakdown item 48 is weighted, which means that the shift type is determined by the shift type in which the majority of hours are worked.
  • shift types are associated to the work profiles generated at action 32.
  • the action 34 can be performed manually by the schedule administrator or can be performed automatically by any suitably programmed computing device.
  • An example of automatically performing action 34 would be that of a computing device programmed to retrieve pre-defined shift types from a database of shift types, the database being accessible by the computing device.
  • Figure 3 shows examples of parameters 53 upon which the shift types can be based.
  • the parameters 53 can include pre-determined workday time zones (also referred to simply as zones) 54, pre-determined categories 56, and pre-determined classes 58. Examples of workday time zones 54 are shown at 60 (Full-time nurses time zones) and at 62 (Part-time nurses time zones).
  • Categories 56 are shown at 64 (Full-time nurses: weekday (Monday to Friday), weekend (Saturday and Sunday)) and at 66 (Part-time nurses: weekday (Sunday to Thursday), weekend (Friday and Saturday)).
  • Classes 58 are shown at 68 (Full-time nurses and Part-time nurses:
  • Figure 4 shows a Full-time nurse shift type listing 72 and a Part-time nurse shift type listing 74. Both are based on (or generated from) the parameters 53 shown in the example of Figure 3.
  • shifts are assigned to each shift type in accordance with the settings of the shift type parameters.
  • Examples of Full-time nurse shifts based on the parameters 53 of Figure 3, are shown at Figure 5, where the Shift type number is the same as in the shift type listing 72 of Figure 4.
  • each time span entry e.g., 09:00-17:00, 17:00-00:00, or 00:00-09:00
  • Examples of Part-time nurse shifts also based on the parameters 53 of Figure 3, are shown at Figure 6, where the Shift type number being the same as in the shift type listing 74 of Figure 4.
  • each time span entry e.g., 08:00-16:00, 16:00-00:00, or 00:00- 08:00 constitutes a shift.
  • Action 36 can also include identifying how many shifts are required for each shift type on each day. For example, for the Full-time nurse shift type 1 (see Figure 5), there may be required three nurses on Sunday but four on Saturday. An example of a one-week schedule 76 for Full-time nurses is shown at Figure 7 where each time span entry (time zone, zone) has at its side the number of shifts (workers) required 78 for that time span. For the one-week schedule of Figure 7, there is a total of 1 10 shifts to be filled (populated).
  • Action 36 can be performed manually by the schedule administrator. Alternatively, action 36 can be performed automatically by any suitably programmed computing device. An example of automatically performing action 36 would be that of a computing device programmed to assigned shifts based on historical data, stored in a database accessible by the computing device, the historical data regarding assignment of shifts to shift types.
  • the schedule can be populated at action 38 of Figure 1A.
  • the scheduling can be effected by the Schedule system 20 shown at Figure 1 B.
  • the Schedule system 20 includes a Randomizer module 22, a Scheduler module 24 (which includes a Shift trading module), and a Rules module 26, details of which are provided below.
  • the schedule module can include a shift trading module 25, which will be described further below.
  • Figure 8 shows an example of a list of workers 80 from which workers can be drawn to populate the empty shifts of the schedule, for example, the schedule 76 of Figure 7.
  • the list of workers 80 of Figure 8 includes a name column 82, a Job column 84, a Work profile column 86, a Prefer column 88, and a Non-prefer column 90. The latter two can both be referred to as preferences.
  • Each worker in the list of workers 80 can have associated thereto tags that reflect specials skills of the worker. Examples of tags can include, for example, special language skills (Mandarin, Spanish, etc.), technical skills (pediatrics, emergency, etc.), etc. Such tags are shown at Figure 8 in a Tag column 91.
  • Each worker in the list of workers 80 has a pre-defined worker profile (or user profile) that can include the name, job, work profile (or work profiles), preferences, tags, time card, seniority, contact information, etc. of the worker in question.
  • Figure 9 shows an example of a method to populate empty shifts of a schedule.
  • the work profiles can be randomized.
  • a randomized list of work profiles 120 can be as shown in Figure 10, where the first Work profile in the list is the Full-time nurse profile and the second Work profile in the list is the Part-time nurse profile.
  • the randomization of the work profiles can be carried out by the Randomizer module 25 of the Schedule system 20 ( Figure 1 B).
  • the Randomizer module 25 can use any suitable randomization algorithm to randomize items in a list.
  • the first Work-profile is provided (input to the scheduler module 22 of Figure 1 B) at action 94.
  • the shift types associated to the First work profile provided at 94 are randomized to produce a list of randomized shifts types such as shown at Figure 11 where a randomized list 122 of shift types is shown.
  • the list 122 in this example corresponds to the randomized Full-time nurse shift type list 72 of Figure 4.
  • the randomization of the shift types can be carried out by the Randomizer module 25 of the Schedule system 20 ( Figure 1 B).
  • the first shift type in the list 122 is provided to the scheduler module 22. That is, in the present example, the On-call weekend evening shift type, which is the topmost shift of the list 122 of Figure 11 , is provided to the scheduler module 24 of Figure 1 B.
  • the shifts associated with the shift type provided at 98 are randomized. Also carried out at action 100, can be the tagging of one or more shifts with one or more requirements that should ultimately be met by the workers that will eventually be scheduled to work the shift. The tagging of the shifts can be carried out manually by the schedule administrator or automatically by any suitably programmed computing device.
  • the tagging could be effected by the computing device in accordance with historical tagging data stored in a database and accessible by the computing device.
  • the historical data can be data relating to how certain shifts of certain shifts types were tagged in the past.
  • Figure 12 shows a randomized list 124 of the shifts associated with the present example.
  • the first shift of the list 124 is Sunday 17:00-00:00, which has a Mandarin language tag.
  • the second shift of the list 124 is Saturday 17:00-00:00, which has a Trauma skill tag.
  • the randomization of the shifts can be carried out by the Randomizer module 25 of the Schedule system 20 ( Figure 1 B).
  • a list of available workers for the shift type can be randomized.
  • the Abi, Bob, and Carlo name entries can be randomized to obtain the randomized list 126 shown at Figure 13.
  • the randomized list 126 also shows the Prefer and Non-prefer indicators for each nurse, as well as the Tags for each nurse.
  • the randomization of the workers can be carried out by the Randomizer module 25 of the Schedule system 20 ( Figure 1 B).
  • the list 126 can be ordered in accordance with the Prefer and Non-Prefer indicators associated with each name in the list 126.
  • the first empty shift of the list 124 is Sunday 17:00- 00:00, which is a weekend evening shift.
  • the list 126 does not require any ordering based on the Prefer and Non-Prefer indicators.
  • the list 26 would be re-ordered, at action 104, as Abi, Carlo, and Bob, as Abi has a weekend night Prefer indicator.
  • her name would be brought up to the top of the list 26.
  • the list 26 would not require re-ordering, at action 106, and would remain as Carlo, Abi, and Bob, as Carlo has a weekday day Prefer indicator (Carlo is already at the top of the list and does not need to be pushed up the list) and Bob has a weekday day Non-Prefer indicator (Bob is already at the bottom of the list and, as such, does not require to be moved down the list.)
  • the ordering can be effected automatically by an ordering algorithm enabled by the Schedule system 20 of Figure 1 B.
  • the first empty shift of the list 124 is selected and, at action 108, it is determined if the first worker in the list 126 of Figure 13 is allowed to work the shift in question. This determination is based upon a set of predetermined rules applied by the rules module 26.
  • Figure 14 shows an example of predetermined rules 128, which can include shift rules 130, class rules 132, zone rules 134, and other rules 136.
  • Action 108 can be effected automatically by the Rules module 26 of the Schedule system 20 of Figure 1 B.
  • the rules module 26 verifies if the next worker in the list 126, in this example Abi, is allowed to work the shift in question (Saturday 17:00-00:00). If Abi is not allowed (rules are broken or her tags
  • the method of Figure 9 goes from action 116 to action 118 where it is determined if there is another work profile in the list 120 of Figure 10 that has yet to be considered. If there is such a work profile, the method of Figure 9 loops back from action 118 to action 94 where the next work profile in the list 120 of Figure 10 is provided to the scheduler module. If there is no such work profile, the method of Figure 9 proceeds to action 120 where the schedule can be provided to an administrator (schedule administrator) for editing, approval, or both.
  • an administrator scheduling administrator
  • Figure 15 shows a partial view of an example of a schedule 138 that can be provided at action 120 of Figure 9.
  • the schedule 138 corresponds to the schedule 78 of Figure 7, subsequent the schedule 78 having been filled (populated) as per the flow of Figure 9.
  • the cell for each shift type for each applicable day of the week indicates the number of required, filled, and empty shifts.
  • the total number of shifts for schedule 78 of Figure 7, and also for schedule 138 of Figure 15 is 1 10.
  • action 120 of Figure 9 can provide a listing of all the workers available to fill the empty shifts and the actual number of shifts that each worker has been assigned, and can also provide data related to the number of shifts filled and to statistical values related to that data.
  • Figure 16 shows a listing 140 for an example where twenty workers were available to fill the 1 10 empty shifts of schedule 78 of Figure 7 and for a scenario where the method of Figure 9 was able to fill 95 of those 1 10 empty shifts. Also show in Figure 16 is the number of shifts filled 142 and the statistical variance 144 in the number of shifts attributed to each worker.
  • the schedule administrator may wish to base schedule choice on factors other than the statistical values the proposed schedules presents. For example, the schedule administrator may have, amongst others, preferences relating to certain workers working in a same time zone.
  • Figure 18 shows another embodiment of the present disclosure.
  • the embodiment of Figure 18 can provide a schedule that is fairer, in terms of equi- distribution of shifts amongst workers, than that provided by the embodiment of Figure 9.
  • Actions 92 to 100 of Figure 18 can be the same as in the method shown at Figure 9.
  • action 101 it can be determined how many shifts have been attributed to each worker. Based on that determination, only the workers with the lowest number of shifts can be considered at action 103. That is, of all the workers susceptible to be selected to fill an empty shift, only those with the lowest number of shifts are randomized at action 103. In a first iteration of the method of Figure 18, all the workers will have zero shifts and, as such, action 101 can be skipped.
  • Figure 19 illustrates the fairness aspect of the embodiment of Figure 18.
  • Figure 19 shows an example of a listing of workers (identified by worker numbers 1- 20) and the number of shifts filled by each worker, as determined at action 101 of Figure 18. In this example, at action 103, only the workers having three shifts will be considered (randomized). The workers having greater than three shifts (cross-hatched worker numbers 3-8, 10-15, and 20) will not be considered until the other workers catch up in their number of shifts. Even though fairness is a consideration in filling shifts, it is still possible for workers to obtain noticeably more shifts than others. For example, if few workers have a tag required by many of the shifts in a schedule, they will accumulate more shifts than the workers who lack that particular tag. [0067]
  • Figure 20 shows an example of actions that can occur at action 108 of
  • Figures 9 and 18 in order to determine if a particular worker is allowed to work a shift.
  • the actions shown at Figure 20 refer to the rules 128 shown at Figure 14.
  • any other suitable sequence of actions to determine whether or not a worker can work a shift is within the scope of the present disclosure.
  • action 200 it is determined if the worker considered at action 108 of Figures 9 or 18 meets the minimal shift interval requirement. If not, the method proceed to action 112 (e.g., see Figure 9 or 18) where it determined if there is another worker who might be able to work the empty shift. If the worker does meet the minimal shift interval requirement, the method proceeds to action 202, where it is determined if the worker meets the maximum shifts per week requirement. If so, the method proceeds to action 112. If not, the method proceeds to action 204 where it is determined if the worker meets the maximum number of shifts in a row. If so, the method proceeds to action 112.
  • the method proceeds to action 206 where it is determined if the worker meets the maximum number of standards shifts per week. If so, the method proceeds to action 112. If not, the method proceeds to the next action to determine if the next requirement is met and so forth until action 208 where it is determined if the worker meets the tag requirement for the shift. If so, the method proceeds to action 110 where the worker is assigned to the shift in question.
  • sequence of rules check and tags check can be carried out in any suitable order without departing from the scope of the present disclosure. For example, tags checks could be carried out first followed by rules check. The rules check and the tags check can be carried out by the Rules module 26 of Figure 1 B.
  • the schedule administrator can populate the remaining empty shifts. This may require some of the aforementioned rules to be broken and to cause workers to be paid a premium.
  • the schedule can be published. That is, the schedule can be made available to the workers as described below.
  • Figure 21 shows an example of the schedule system 20 of Figure 1 B residing on a server 300 connected to the Internet 302.
  • the server 300 can be accessed remotely by the schedule administrator in order for the schedule administrator to set, modify, approve, and generally interact with the schedule and its parameters and rules.
  • the schedule administrator can access the server through a computing device 304 connected to the Internet 302 through any suitable connection means.
  • the computing device 304 can be a standalone computer, a laptop computer, a tablet computer or any other suitable type of computing device.
  • the server 300 can also be referred to as a computing device.
  • the server 300 and its schedule module 20 can be located remotely from the workplace for which the schedule is being drawn, provided there is a connection (communication link) between the server and the computing device 304 being used by the schedule administrator.
  • the workplace does not need to invest in server hardware and does not need to upload software or software updates. Rather, the workplace can simply pay for the scheduling service and access it remotely from the workplace through a communication link.
  • such an approach to workforce scheduling services falls under the category of cloud computing. Access can be through any suitable web browser present on the computing device 304.
  • the schedule can be made available to workers, or any other interested parties, through the Internet 302 (or any other suitable communication network).
  • workers having access to a computing device 306 connected to the Internet 302 can access the schedule through any suitable browser running on the computing device 306.
  • workers having access to a mobile device 308 connected to a cell network 310, which is itself connected to the Internet 302 can access the schedule provided the mobile device 308 has downloaded thereon an application suitable for interfacing with the server 300 and its schedule module 20.
  • workers having access to a WiFi device 312 connected to the cell network 310 through a WiFi access point 314 can also access the schedule provide the WiFi device 312 has downloaded thereon an application suitable for interfacing with the server 300 and its schedule module 20.
  • workers having access to a WiFi device 316 connected to the Internet 302 through a WiFi access point 318 can also access the schedule provided the WiFi device 316 has downloaded thereon an application suitable for interfacing with the server 300 and its schedule module 20.
  • the workers that have been scheduled to work shifts can view the schedule at their convenience, remotely from the workplace.
  • the workers In addition to the workers being able to view the schedule remotely through any suitable communication device, the present disclosure, in some
  • a worker can allow the workers to initiate transactions of shifts between themselves. That is, in some embodiments, a worker is able to request a shift trade with other workers, give-away a shift to another worker, and propose a shift trade.
  • Figure 22 is a flow chart showing how a worker can post a shift that the worker wishes to give-away.
  • posting a shift is to be understood as meaning that the worker can select, through any one the computing device 306, the mobile device 308, and the WiFi devices 312 and 316 of Figure 21 , one or more of his own shifts of the schedule displayed on the device and question, and initiate changes to the one or more shifts.
  • the flow starts at action 400, after which, at action 402, the worker selects a shift (a self shift) he wishes to give-away.
  • the selection can be made through any of the computing device 306, the mobile device 308, and the WiFi devices 312 and 316 of Figure 21 that the worker uses to view and interact with the schedule.
  • the Shift trading module 25 of Figure 1 B verifies if shift trading is allowed for the particular shift selected by the worker and/or for the worker attempting to give-away a shift. If no such shift trading is allowed, the flow ends at action 406. Conversely, if shift trading is allowed, the flow proceeds to action 408, where the shift trading module 25 determines if shift giveaways are allowed.
  • the flow ends at action 406. Conversely, if shift giveaways are allowed, the flow proceeds to action 410 where the selected shift is posted to the shift trading module 25.
  • the shift trading module 25 sends to the worker who has posted the shift (the sender or poster), a list of recipients (workers) who are nominally available to work the shift.
  • the poster can select all the nominally available recipients or only some of the nominally available recipients on the list. Nominally available recipients (workers) can be recipients who are not scheduled to work any shift that overlaps with the posted shift.
  • the shift trading module 25 submits, at action 414, the shift in question to the recipients 416 selected at action 412.
  • a conflict check on the selected recipients 416 is conducted at action 418.
  • the selected recipients 416 can view the giveaway shift, and any conflict they may be in with respect to the giveaway shift, on their computing device 306, mobile device 308, or WiFi devices 312 and 316 ( Figure 21).
  • the selected recipients 416 can accept the giveaway shift through their aforementioned devices at action 420 regardless of whether or not they are in conflict with the giveaway shift.
  • the recipient conflict check effected at action 418 is described further below.
  • the flow of Figure 22 can proceed, at action 422, to give away the shift on either a first come first served (FCFS) basis or on a worker seniority basis. If the giveaway shift is to be assigned on a seniority basis, the flow of Figure 22 proceeds to action 424 where an acceptance list of recipients having accepted the giveaway shift is built. At action 426, it is determined if a pre-determined waiting period has expired. In an embodiment, the recipients 416 may be given a 12 hour period (or any other suitable time period) for accepting the giveaway shift. If the pre-determined waiting period has not expired, action 424 can continue to build the acceptance list as more of the selected recipients 416 accept the giveaway shift.
  • FCFS first come first served
  • the flow proceeds to action 428 where the acceptance list is sorted or ordered in accordance with pre-determined seniority rules.
  • seniority rules can include: (1) worker date of hire, (2) worker years experience in the worker profile from which the giveaway shift is based, or any other suitable seniority rule.
  • the flow can proceed, at action 430, to request or not the approval of the schedule administrator. If approval is required, the flow proceeds to action 432 where a conflict check on the recipients is effected.
  • the conflict check of action 432 can be a repeat of the conflict check of action 418. As such, action 432 ensures that up-to-date conflict check information will be provided to the schedule administrator. Subsequent action 432, the list of recipients, sorted in accordance with seniority, and any conflict recipients may have, is provided to the schedule administrator for approval at action 434.
  • the administrator after having considered the recipients, their seniority, and any conflict they may have, can approve the assignment of the giveaway shift to one of the recipients (e.g., the most senior recipient) and, at action 436, the giveaway shift can be assigned to the most senior recipient, and the offer of the shift to the other recipients can be automatically cancelled. If the administrator does not approve any of the recipients, the flow ends at action 406.
  • Action 438 determines if the most senior recipient is in conflict with the giveaway shift.
  • Action 438 can be a repeat of action 418. Absent any conflict, the giveaway shift is attributed to the most senior recipient. If there is a conflict at 438, the most senior recipient is removed from the sorted recipient list at action 440 and the next most senior recipient is provided as input to action 438. Actions 438, 440, and 428, can be repeated iteratively until the giveaway shift is assigned to a recipient or until there no more recipients to consider for assignment of the giveaway shift.
  • the flow proceeds to action 442 where the flow can proceed to request or not the approval from the schedule administrator. If approval is required, the flow proceeds to action 444 where a recipient conflict check is conducted. This can be a repeat of the conflict check conducted at action 418.
  • the schedule administrator considers the recipient and any conflict he may have, and chooses to approve or not the recipient for the giveaway shift. If the administrator approves the recipient, the giveaway shift is assigned to the recipient at action 448. If the administrator does not approve the recipient, the flow ends at action 406.
  • the flow proceeds to action 450 where a conflict check is conducted on the recipient being considered.
  • the conflict check at action 450 can be a repeat of the conflict check conducted at action 418. Absent any such conflict, the giveaway shift is assigned, at action 448, to the recipient in question. If there is a conflict, the flow ends at action 406.
  • the flow therein shows how a worker can post a shift for trade.
  • the flow starts at action 500, after which, at action 502, the worker selects a shift he wishes to trade.
  • the selection can be made through any one the computing device 306, the mobile device 308, and the WiFi devices 312 and 316 of
  • the shift trading module 25 of Figure 1 B verifies if shift posting (and trading) is allowed for the selected shift and/or for the particular worker. If no such shift trading is allowed, the flow ends at action 506. Conversely, if shift posting (trading) is allowed, the flow proceeds to action 508, where the selected shift is posted to the shift trading module 25. As a result of posting the shift, the shift trading module 25 sends to the worker who has posted the shift (the poster), a list of recipients (workers) who are nominally available to work the shift. At action 510, the poster can select all the nominally available recipients or only some of the nominally available recipients on the list. In this example, nominally available recipients (workers) can be recipients who are scheduled to work another shift in the schedule and with whom the poster would like to trade.
  • the shift trading module 25 submits, at action 512, the shift in question to the recipients 514 selected at action 510.
  • a conflict check on the selected recipients 514 is conducted at action 516.
  • the selected recipients 514 can view the shift selected by the poster at action 502, and any conflict they may have with respect to the posted shift, on their computing device 306, mobile device 308, or WiFi devices 312 and 316 ( Figure 21).
  • the selected recipients 514 can propose one of their own shifts (a trade shift) to trade for the posted shift.
  • a conflict check regarding the trade shifts proposed by the recipients 514 is performed on the poster (the worker who posted the shift at action 508).
  • the trade shifts, and any related conflicts, are examples of their own shifts (a trade shift) to trade for the posted shift.
  • the flow ends at action 506.
  • the sender refuses the trade shift (or shifts) proposed by the recipients 514
  • the flow proceeds to action 524, where approval by the schedule administrator may be required. If approval is not required, the flow proceeds to action 526 where it is determined if there is any conflict with either the poster or the recipient that posted the trade shift. This conflict check can be a repeat of the conflict checks conducted at actions 516 and 520. If there is a conflict, the flow ends at action 506. Absent any conflict at action 526, the shifts, at action 528, are traded and the schedule is amended accordingly.
  • This conflict check can be a repeat of the conflict checks conducted at actions 516 and 520.
  • the schedule administrator considers the posted shift, the shift proposed in return (the trade shift), and the results of the conflict check at action 530. Based on this information, the schedule administrator can approve the trade (even in the presence of conflict) or not. If the trade is approved, the shifts in the proposed trade are assigned (traded) at action 528 and the schedule is amended accordingly. If the trade is not approved, the flow ends at action 506.
  • Figure 24 shows another embodiment of a flow of the present disclosure.
  • the flow of Figure 24 shows how a worker can select one of his shifts for trade and, at the same time, select a shift of another worker he wishes to trade for.
  • the flow of Figure 24 starts at action 600.
  • the sender (the poster, i.e., the worker who wishes to trade one of his shifts) selects one of his shifts he wishes to trade.
  • the selection can be made through any one of the computing device 306, the mobile device 308, and the WiFi devices 312 and 316 of Figure 21 that the worker uses to view the schedule.
  • the sender selects a shift of a colleague which he wishes to trade. Again, the selection can be made through the devices mentioned above.
  • the shift trading module 25 of Figure 1 B verifies if shift posting (shift trading) is allowed for the shift (shifts) in question and/or the workers in questions. If shift posting (shift trading) is not allowed, the flow ends at action 608.
  • shift posting shift trading
  • the flow proceeds to action 610 where the sender shift and the shift he wishes to trade for are posted (proposed) to the shift trading module 25. Also posted to the shift trading module 25 are the names of the sender and of the owner of the shift the sender wished to trade for.
  • a conflict check is conducted on the sender with respect to the recipient's shift.
  • the sender can, after having observed the result of the conflict check of action 612, submit the shift trade proposal to the recipient 616.
  • a conflict check on the recipient 616 is conducted with respect to the sender's shift.
  • the sender and recipient conflict checks (612, 616) are described further below.
  • the flow proceeds to action 620 where the recipient may accept the proposed trade or not. If the proposed trade is not accepted, the flow ends at action 608. Conversely, if the recipient 616 accepts the proposed trade, the flow proceeds to action 622 where approval from the schedule administrator may be required or not. If not required, the flow proceeds to action 624 where conflicts checks on the sender and on the recipient are conducted. If there is a conflict, the flow ends at action 608. Absent any conflict at action 624, the flow proceeds to action 626 where the proposed trade is accepted, the shifts assigned, and the schedule updated in accordance with the traded shifts.
  • action 628 if approval by the schedule administrator is required, the flow proceeds to action 628 where conflicts checks on the sender and on the recipients are conducted. The results of action 628 are provided to the schedule administrator who can approve or not of the proposed trade at action 630. If the schedule administrator approves, the flow proceeds to action 626 where the schedule is updated in accordance with the proposed trade. If the schedule administrator does not approve the trade, the flow ends at action 608.
  • Figure 25 shows an example of a flow of conflict check that can be performed in any one of the actions 418, 444, 432, 438, 450, 516, 520, 526, 530, 612, 618, 624, and 628 shown at Figures 22, 23, and 24.
  • the flow of Figure 25 starts at action 700. Subsequently, at action 702, it is determined if there are conflicts such as a time-off conflicts (action 704) or shift/rule conflicts (action 708). It there is a time-off conflict, the flow ends at action 706. If there is a shift/rule conflict, the reasons for the conflict are returned at action 710.
  • the present disclosure also relates to a system that integrates the schedule module 20 of Figure 1 B with a time and attendance module and a performance evaluation module.
  • Figure 26 shows such a system 800, which includes the schedule system 20, a time and attendance module 802, and a performance evaluation module 804. All the data generated in any one of the modules 20, 802, and 804 can be passed (communicated) to the other modules.
  • Embodiments of the disclosure can be represented as a computer program product stored in a machine-readable medium (also referred to as a computer-readable medium, a processor-readable medium, or a computer usable medium having a computer-readable program code embodied therein).
  • the machine-readable medium can be any suitable tangible, non-transitory medium, including magnetic, optical, or electrical storage medium including a diskette, compact disk read only memory (CD-ROM), memory device (volatile or non-volatile), or similar storage mechanism.
  • the machine- readable medium can contain various sets of instructions, code sequences, configuration information, or other data, which, when executed, cause a processor to perform steps in a method according to an embodiment of the disclosure.

Abstract

A system and method to automatically schedule a workforce. The system and method can take into account rules that can be based on collective agreements, worker preferences for certain shift types, and fairness in the number of shifts assigned to each worker. Also disclosed are methods that allow workers to trade shifts amongst themselves with or without requiring approval from a schedule administrator.

Description

WORKFORCE SCHEDULER
FIELD
[0001] The present disclosure relates generally to the scheduling of workforces. More particularly, the present disclosure relates to an automatic workforce scheduler that implements fairness based on rules and preferences.
BACKGROUND
[0002] Scheduling large size workforces can be time-consuming and costly, particularly when it is desirable to distribute work shifts fairly (equitably) amongst workers.
Even though workforce scheduling products exist and can lead to quicker and less expensive scheduling, the fairness aspect of shift assignment often lacks suppleness and cannot easily be adapted to fit workforces having different needs.
[0003] Further, modifying a schedule based in accordance with requests from users is still a time-consuming and costly process.
[0004] Therefore, improvements in workforce scheduling are desirable.
SUMMARY
[0005] It is an object of the present disclosure to obviate or mitigate at least one disadvantage of previous scheduling of workforces.
[0006] In a first aspect, the present disclosure provides a non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce including workers. The method comprises: selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types;
selecting an initial shift type from the list of shift types, each worker having associated thereto a preference for the initial shift type, the initial shift type having associated thereto a list of shifts; randomizing a list of workers available for the initial shift type to obtain a randomized list of workers; modifying, based on preferences of the workers for the initial shift type, the randomized list of workers, to obtain a modified, randomized list of workers; selecting an initial shift from the list of shifts associated to the initial shift type; assigning a first worker of the modified, randomized list of workers to the initial shift; selecting a subsequent shift from the list of shifts; and assigning a subsequent worker of the modified, randomized list to the subsequent shift. [0007] In a second aspect, there is provided a non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce including workers. The method comprises: selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types; selecting an initial shift type from the list of shift types, each worker having associated thereto a preference for the initial shift type, the initial shift type having associated thereto a list of shifts, the list of shifts having a number of shifts; randomizing a list of workers available for the initial shift type to obtain a first randomized list of workers; modifying, based on preferences of the workers for the initial shift type, the randomized list of workers, to obtain a first modified, randomized list of workers, the first modified, randomized list of workers having a number of workers; and if the number of shifts is greater than the number of workers, performing the following actions: assigning, in order of appearance in the first modified, randomized list of workers, each worker to a shift having the same order of appearance in the list of shifts, unassigned shifts in the list of shifts forming an unassigned set of shifts; randomizing the list of workers available for the initial shift type to obtain a second randomized list of workers, modifying, based on the preferences of the workers for the initial shift type, the second randomized list of workers, to obtain a second modified, randomized list of workers; and assigning, in order of appearance in the second modified, randomized list of workers, each worker to a shift having the same order of appearance in the unassigned set of shifts.
[0008] In third aspect, the present disclosure provides a non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce including workers. The method comprises: selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types;
selecting an initial shift type from the list of shift types, each worker having associated thereto a preference for the initial shift type, the initial shift type having associated thereto a list of shifts; randomizing a list of workers available for the initial shift type to obtain a randomized list of workers; modifying, based on preferences of the workers for the initial shift type, the randomized list of workers, to obtain a modified, randomized list of workers; selecting a first shift from the list of shifts associated to the initial shift type; verifying if the first worker in the modified, randomized list of workers is allowed to work the first shift; if the first worker is allowed to work the first shift, assigning the first worker to the first shift; if the first worker is not allowed to work the first shift, performing the following actions until a worker in the modified, randomized list of workers is allowed to work the first shift: verifying, in order of appearance in the modified, randomized list of workers, if the next worker in the modified, randomized list of workers is allowed to work the first shift; and assigning the next worker allowed to work the first shift to the first shift.
[0009] In a fourth aspect, the present disclosure provides a A non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce schedule having a plurality of shifts, the workforce schedule being for a workforce including workers. The method comprises: selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types; selecting an initial shift type from the list of shift types, each worker having associated thereto a preference for the initial shift type, the initial shift type having associated thereto a list of shifts; randomizing a list of workers available for the initial shift type to obtain a randomized list of workers; modifying, based on preferences of the workers for the initial shift type, the randomized list of workers, to obtain a modified, randomized list of workers; selecting a first shift from the list of shifts associated to the initial shift type; verifying if the first worker in the modified, randomized list of workers is allowed to work the first shift; if the first worker is allowed to work the first shift, assigning the first worker to the first shift; if the first worker is not allowed to work the first shift, performing the following action until a worker in the modified, randomized list of workers is allowed to work the first shift: verifying, in order of appearance in the modified, randomized list of workers, if the next worker in the modified, randomized list of workers is allowed to work the first shift; and assigning the next worker allowed to work the first shift to the first shift.
[0010] Other aspects and features of the present disclosure will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments in conjunction with the accompanying figures.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Embodiments of the present disclosure will now be described, by way of example only, with reference to the attached Figures.
[0012] Figure 1A shows an embodiment of a method of the present disclosure.
[0013] Figure 1 B shows an embodiment of a schedule system of the present disclosure.
[0014] Figure 2 shows an example of a work profile for full-time nurses. [0015] Figure 3 shows an example of a set of parameters upon which shift types can be based.
[0016] Figure 4 shows examples of listings of shift types for full-time and part time nurses.
[0017] Figure 5 shows examples of full-time nurse shifts.
[0018] Figure 6 shows examples of part-time nurse shifts.
[0019] Figure 7 shows an example of a one-week schedule.
[0020] Figure 8 shows an example of a list of workers.
[0021] Figure 9 shows an example of a scheduling flow in accordance with the present disclosure.
[0022] Figure 10 shows an example of a randomized list of work profiles.
[0023] Figure 11 shows an example of a randomized list of shift types.
[0024] Figure 12 shows an example of a randomized list of shifts.
[0025] Figure 13 shows an example of a randomized list of workers.
[0026] Figure 14 shows an example of pre-determined rules.
[0027] Figure 15 shows a partial view of an example of a schedule.
[0028] Figure 16 shows an example of a listing of workers (worker number) and of the number of shifts each worker is scheduled to work.
[0029] Figure 17 shows another example of a listing of workers (worker number) and of the number of shifts each worker is scheduled to work.
[0030] Figure 18 shows another example of a scheduling flow in accordance with the present disclosure.
[0031] Figure 19 shows yet another example of a listing of workers (worker number) and of the number of shifts each worker is scheduled to work.
[0032] Figure 20 shows an example of actions that can be used to determine if a worker is allowed to work a shift.
[0033] Figure 21 shows an example of server operating a schedule system of the present disclosure, the server being connected to several devices through the Internet.
[0034] Figure 22 shows an example of a flow for giving-away a shift in accordance with the present disclosure.
[0035] Figure 23 shows an example of a flow for trading a shift in accordance with the present disclosure.
[0036] Figure 24 shows an example of another flow for trading a shift in accordance with the present disclosure. [0037] Figure 25 shows an example of a conflict check flow in accordance with the present disclosure.
[0038] Figure 26 shows an example of a system that integrate a schedule system, a time and attendance module, and a performance evaluation module.
DETAILED DESCRIPTION
[0039] The present disclosure relates to scheduling a workforce. That is, the present disclosure relates to the generation of a schedule, or work schedule, for workers of the workforce. The schedule generated in accordance with the present disclosure can be a function of, amongst others, pre-determined rules and worker preferences for certain shifts or shift type in the schedule. A worker preference can be a desire to work a particular shift or shift type, a desire to not work the particular shift or shift type, or no particular desire to work or not work the particular shift or shift type.
[0040] The rules upon which the schedule is generated can include rules related to Governmental laws, rules related to worker collective agreement rules, in-house rules to minimize overtime, etc.
[0041] The present disclosure applies to any suitable type of workforce.
Examples of such workforces include health-care workers (e.g., doctors, nurses, etc.), call-centers, etc.
[0042] Figure 1 A shows an example of a method of generating a workforce schedule in accordance with the present disclosure. At action 30, the characteristics that the schedule should have (i.e., the schedule characteristics) are determined. The characteristics can include the type of workers for whom the schedule is generated (e.g., nurses) and the time span of the schedule (e.g., one month). The characteristics can also include attributes of shifts defined in the schedule, such attributes can include, for example: (a) if and how the shifts can be traded by the workers themselves or amongst the workers; (b) whether or not the shifts can be edited by the workers themselves; (c) whether or not shift transactions between the workers require approval by a schedule administrator; (d) whether or not it is possible for a worker to give away a shift; (e) how requests for time off are treated; etc. Any other suitable characteristics can be determined at action 30. The time span can be any suitable duration such as, for example, a year, six months, one month, a week, a day, etc. The action 30 can be performed manually by a schedule administrator. Alternatively, action 30 can be performed automatically by any suitably programmed computing device (computer, server, computing system, etc.). For example, action 30 can be performed by a computing device programmed to determine the characteristics of the schedule based on historical characteristics of schedules stored in a database accessible by the computing device.
[0043] At action 32, work profiles are generated by the schedule administrator in accordance with the types of workers that will be used to populate the schedule. There can be any suitable number of work profiles (e.g., 1 , 2, 3, etc.). There is one work profile for each type of worker in the organization that may be scheduled to work a shift within the schedule. For example, if the schedule is for nurses, there may be, within the organization, full-time and part-time nurses that may be scheduled for a shift. In this example, there would be one work profile for full-time nurses and one work profile for part-time nurses, for a total of two work profiles. Each work profile can include particulars of each type of worker susceptible to be scheduled to work a shift. Such particulars can include how and when each type of worker gets paid, pay deduction codes, length of work shift, pay codes for work shifts, guaranteed minimum hours, overtime threshold, shift breakdown, etc. For the purpose of this disclosure, a shift breakdown is to be understood as meaning how a shift can be partitioned into two or more time zones. The action 32 can be performed manually by the schedule administrator or can be performed automatically by any suitably programmed computing device. An example of automatically performing action 32 would be that of a computing device programmed to retrieve pre-defined work profiles from a database of work profiles, the database being accessible by the computing device.
[0044] As will be discussed elsewhere in the disclosure, the pay deduction codes, pay codes for work shifts, and any other particulars can be communicated to a Time and Attendance module.
[0045] Figure 2 shows an example of a full-time nurse work profile 42, the particulars of which include a Guaranteed Minimum Hours item 44, an Overtime
Threshold Limit item 46, a Shift Breakdown item 48, Pay Code item 50, and Deduction Code items 52. In the present example, the Shift Breakdown item 48 is weighted, which means that the shift type is determined by the shift type in which the majority of hours are worked.
[0046] Returning to Figure 1A, at action 34, shift types are associated to the work profiles generated at action 32. The action 34 can be performed manually by the schedule administrator or can be performed automatically by any suitably programmed computing device. An example of automatically performing action 34 would be that of a computing device programmed to retrieve pre-defined shift types from a database of shift types, the database being accessible by the computing device. [0047] Figure 3 shows examples of parameters 53 upon which the shift types can be based. The parameters 53 can include pre-determined workday time zones (also referred to simply as zones) 54, pre-determined categories 56, and pre-determined classes 58. Examples of workday time zones 54 are shown at 60 (Full-time nurses time zones) and at 62 (Part-time nurses time zones). Examples of Categories 56 are shown at 64 (Full-time nurses: weekday (Monday to Friday), weekend (Saturday and Sunday)) and at 66 (Part-time nurses: weekday (Sunday to Thursday), weekend (Friday and Saturday)). Examples of Classes 58 are shown at 68 (Full-time nurses and Part-time nurses:
Standard) and at 70 (Full-time nurses and Part-time nurses: On-call). Any other suitable parameters can be included in the parameters 53 without departing from the scope of the present disclosure (e.g., holidays such as New Year's Day, Good Friday, Labor Day, Thanksgiving, etc.).
[0048] Figure 4 shows a Full-time nurse shift type listing 72 and a Part-time nurse shift type listing 74. Both are based on (or generated from) the parameters 53 shown in the example of Figure 3. Each shift type listing (72, 74) has twelve possible shift types, which is the number of possible combinations of their respective parameters 53 shown at Figure 3. That is, for example, a shift type for a Full-time nurse can be either in the Standard class 68 or in the On-call class 70 (two possibilities); the shift type for the Fulltime nurse can be for a Weekday or a Weekend (two possibilities) as shown at reference numeral 64; and, the shift type for the Full time nurse can for a Day, Evening, or Night shift (three possibilities) as shown at reference numeral 60. As such, the number of possible shift types is 2x2x3=12. The same reasoning goes for the Part-time nurse shift types.
[0049] Returning to Figure 1A, at action 36, shifts are assigned to each shift type in accordance with the settings of the shift type parameters. Examples of Full-time nurse shifts, based on the parameters 53 of Figure 3, are shown at Figure 5, where the Shift type number is the same as in the shift type listing 72 of Figure 4. In Figure 5, each time span entry (e.g., 09:00-17:00, 17:00-00:00, or 00:00-09:00) constitutes a shift. Examples of Part-time nurse shifts, also based on the parameters 53 of Figure 3, are shown at Figure 6, where the Shift type number being the same as in the shift type listing 74 of Figure 4. In Figure 6, each time span entry (e.g., 08:00-16:00, 16:00-00:00, or 00:00- 08:00) constitutes a shift.
[0050] Action 36 can also include identifying how many shifts are required for each shift type on each day. For example, for the Full-time nurse shift type 1 (see Figure 5), there may be required three nurses on Sunday but four on Saturday. An example of a one-week schedule 76 for Full-time nurses is shown at Figure 7 where each time span entry (time zone, zone) has at its side the number of shifts (workers) required 78 for that time span. For the one-week schedule of Figure 7, there is a total of 1 10 shifts to be filled (populated). Action 36 can be performed manually by the schedule administrator. Alternatively, action 36 can be performed automatically by any suitably programmed computing device. An example of automatically performing action 36 would be that of a computing device programmed to assigned shifts based on historical data, stored in a database accessible by the computing device, the historical data regarding assignment of shifts to shift types.
[0051] Once the number of shifts for each shift type and for each day of the week is determined, the schedule can be populated at action 38 of Figure 1A. The scheduling can be effected by the Schedule system 20 shown at Figure 1 B. The Schedule system 20 includes a Randomizer module 22, a Scheduler module 24 (which includes a Shift trading module), and a Rules module 26, details of which are provided below. The schedule module can include a shift trading module 25, which will be described further below.
[0052] Figure 8 shows an example of a list of workers 80 from which workers can be drawn to populate the empty shifts of the schedule, for example, the schedule 76 of Figure 7. The list of workers 80 of Figure 8 includes a name column 82, a Job column 84, a Work profile column 86, a Prefer column 88, and a Non-prefer column 90. The latter two can both be referred to as preferences. Each worker in the list of workers 80 can have associated thereto tags that reflect specials skills of the worker. Examples of tags can include, for example, special language skills (Mandarin, Spanish, etc.), technical skills (pediatrics, emergency, etc.), etc. Such tags are shown at Figure 8 in a Tag column 91.
[0053] Each worker in the list of workers 80 has a pre-defined worker profile (or user profile) that can include the name, job, work profile (or work profiles), preferences, tags, time card, seniority, contact information, etc. of the worker in question.
[0054] Figure 9 shows an example of a method to populate empty shifts of a schedule. At action 92, the work profiles can be randomized. In the previous example where there are two Work profiles, one for Full-time nurses and one for Part-time nurses, a randomized list of work profiles 120 can be as shown in Figure 10, where the first Work profile in the list is the Full-time nurse profile and the second Work profile in the list is the Part-time nurse profile. The randomization of the work profiles can be carried out by the Randomizer module 25 of the Schedule system 20 (Figure 1 B). The Randomizer module 25 can use any suitable randomization algorithm to randomize items in a list.
[0055] Returning to Figure 9, the first Work-profile is provided (input to the scheduler module 22 of Figure 1 B) at action 94. At action 96, the shift types associated to the First work profile provided at 94 are randomized to produce a list of randomized shifts types such as shown at Figure 11 where a randomized list 122 of shift types is shown. The list 122 in this example corresponds to the randomized Full-time nurse shift type list 72 of Figure 4. The randomization of the shift types can be carried out by the Randomizer module 25 of the Schedule system 20 (Figure 1 B).
[0056] Returning to Figure 9, at action 98, the first shift type in the list 122 is provided to the scheduler module 22. That is, in the present example, the On-call weekend evening shift type, which is the topmost shift of the list 122 of Figure 11 , is provided to the scheduler module 24 of Figure 1 B. At action 100 of Figure 9, the shifts associated with the shift type provided at 98 are randomized. Also carried out at action 100, can be the tagging of one or more shifts with one or more requirements that should ultimately be met by the workers that will eventually be scheduled to work the shift. The tagging of the shifts can be carried out manually by the schedule administrator or automatically by any suitably programmed computing device. If performed automatically, the tagging could be effected by the computing device in accordance with historical tagging data stored in a database and accessible by the computing device. The historical data can be data relating to how certain shifts of certain shifts types were tagged in the past. Figure 12 shows a randomized list 124 of the shifts associated with the present example. The first shift of the list 124 is Sunday 17:00-00:00, which has a Mandarin language tag. The second shift of the list 124 is Saturday 17:00-00:00, which has a Trauma skill tag. The randomization of the shifts can be carried out by the Randomizer module 25 of the Schedule system 20 (Figure 1 B).
[0057] Returning to Figure 9, at action 102, a list of available workers for the shift type (shift) can be randomized. For example, referring now back to Figure 8, the Abi, Bob, and Carlo name entries can be randomized to obtain the randomized list 126 shown at Figure 13. The randomized list 126 also shows the Prefer and Non-prefer indicators for each nurse, as well as the Tags for each nurse. The randomization of the workers can be carried out by the Randomizer module 25 of the Schedule system 20 (Figure 1 B).
[0058] Returning to Figure 9, at action 104, the list 126 can be ordered in accordance with the Prefer and Non-Prefer indicators associated with each name in the list 126. In the present example, the first empty shift of the list 124 is Sunday 17:00- 00:00, which is a weekend evening shift. As neither Carlo, Abi, nor Bob have a Prefer or Non-Prefer indicator associated with weekend evening shifts, the list 126 does not require any ordering based on the Prefer and Non-Prefer indicators. (In the case where the shift, instead of being a weekend evening shift, were a weekend night shift, the list 26 would be re-ordered, at action 104, as Abi, Carlo, and Bob, as Abi has a weekend night Prefer indicator. As such, her name would be brought up to the top of the list 26. In another case where the shift, instead of being a weekend evening shift, were a weekday day shift, the list 26 would not require re-ordering, at action 106, and would remain as Carlo, Abi, and Bob, as Carlo has a weekday day Prefer indicator (Carlo is already at the top of the list and does not need to be pushed up the list) and Bob has a weekday day Non-Prefer indicator (Bob is already at the bottom of the list and, as such, does not require to be moved down the list.) The ordering can be effected automatically by an ordering algorithm enabled by the Schedule system 20 of Figure 1 B.
[0059] Returning to Figure 9, at action 106, the first empty shift of the list 124 is selected and, at action 108, it is determined if the first worker in the list 126 of Figure 13 is allowed to work the shift in question. This determination is based upon a set of predetermined rules applied by the rules module 26. Figure 14 shows an example of predetermined rules 128, which can include shift rules 130, class rules 132, zone rules 134, and other rules 136. Action 108 can be effected automatically by the Rules module 26 of the Schedule system 20 of Figure 1 B.
[0060] If it is determined that the worker (in this case Carlo) can work the shift in question (in this case Sunday 17:00-00:00), and that Carlo's tags (Tags_Carlo) qualify him to work the shift in question (i.e., Carlo has Mandarin language skills), then Carlo is assigned to that shift at action 110. Subsequently, at action 114, it is determined if there is another shift in the list 124 that has not been considered (or if there is another same shift to be filled - see number of shifts 78 at Figure 7). If there is such a shift, then the method of Figure 9 loops back to action 106 where the next shift (in this example, Saturday 17:00-00:00) is selected. Subsequently, at action 108, the rules module 26 verifies if the next worker in the list 126, in this example Abi, is allowed to work the shift in question (Saturday 17:00-00:00). If Abi is not allowed (rules are broken or her tags
(Tags_Abi) do not qualify her to work the shift in question, then the flow of Figure 9 goes to action 112 where it is determined if there is a remaining worker (or remaining workers) in the list 126 that might be able to work the selected shift. That is, action 112 determines if the list 126 includes workers that have not yet been considered for the current shift type. In the present example, Bob is such a worker. As such, the method of Figure 9 loops back from action 112 to action 108 and determines if Bob is allowed to work the shift in question and if his tags (Tags_Bob) qualify him to work the shift in question. If he is, then, at action 110, he is assigned to the shift.
[0061] Subsequently, at action 114, it is determined if there is another shift in the list 124 of Figure 12 that needs to be considered (either all the shifts of the list 124 have been filled or, in certain cases, some of the shifts were considered but not filled due to workers not being allowed to work those shifts either because of broken rules or inadequate tags). The method of Figure 9 goes to action 116 where it is determined if other shift types in the list 122 of Figure 11 have yet to be considered. If there is shift type that has yet to be considered, the method of Figure 9 loops back from action 116 to action 98 where the next shift type in the list 122 of Figure 11 is provided to the scheduler module 24 (Figure 1 B) . If every shift type has been considered, the method of Figure 9 goes from action 116 to action 118 where it is determined if there is another work profile in the list 120 of Figure 10 that has yet to be considered. If there is such a work profile, the method of Figure 9 loops back from action 118 to action 94 where the next work profile in the list 120 of Figure 10 is provided to the scheduler module. If there is no such work profile, the method of Figure 9 proceeds to action 120 where the schedule can be provided to an administrator (schedule administrator) for editing, approval, or both.
[0062] Figure 15 shows a partial view of an example of a schedule 138 that can be provided at action 120 of Figure 9. The schedule 138 corresponds to the schedule 78 of Figure 7, subsequent the schedule 78 having been filled (populated) as per the flow of Figure 9. As shown in the example of Figure 15, the cell for each shift type for each applicable day of the week indicates the number of required, filled, and empty shifts. As stated above, the total number of shifts for schedule 78 of Figure 7, and also for schedule 138 of Figure 15 is 1 10.
[0063] In addition to providing the schedule 138, action 120 of Figure 9 can provide a listing of all the workers available to fill the empty shifts and the actual number of shifts that each worker has been assigned, and can also provide data related to the number of shifts filled and to statistical values related to that data. Figure 16 shows a listing 140 for an example where twenty workers were available to fill the 1 10 empty shifts of schedule 78 of Figure 7 and for a scenario where the method of Figure 9 was able to fill 95 of those 1 10 empty shifts. Also show in Figure 16 is the number of shifts filled 142 and the statistical variance 144 in the number of shifts attributed to each worker.
[0064] In an embodiment of the present disclosure, it is possible to generate several listings such as listing 140 of Figure 16 in order to evaluate which schedule allows for the most shifts to be filled and to evaluate which as the lowest statistical variance in the number of shifts attributed to each worker. A low variance number indicates that shifts are more equally distributed amongst workers than for a high variance number. As will be understood by the skilled worker, any other suitable statistical indicator can be used without departing from the scope of the present disclosure. As an example, Figure 17 shows another listing 146, the number of shifts filled 148, and the statistical variance 150 in the number of shifts attributed to each worker. Even though a set of proposed schedules, each with a statistical indicator value, can be provided to the schedule administrator, the schedule administrator may wish to base schedule choice on factors other than the statistical values the proposed schedules presents. For example, the schedule administrator may have, amongst others, preferences relating to certain workers working in a same time zone.
[0065] Figure 18 shows another embodiment of the present disclosure. The embodiment of Figure 18 can provide a schedule that is fairer, in terms of equi- distribution of shifts amongst workers, than that provided by the embodiment of Figure 9. Actions 92 to 100 of Figure 18 can be the same as in the method shown at Figure 9. At action 101 , it can be determined how many shifts have been attributed to each worker. Based on that determination, only the workers with the lowest number of shifts can be considered at action 103. That is, of all the workers susceptible to be selected to fill an empty shift, only those with the lowest number of shifts are randomized at action 103. In a first iteration of the method of Figure 18, all the workers will have zero shifts and, as such, action 101 can be skipped.
[0066] Subsequent action 103, actions 104 to 114 occur as in the flow of Figure
9. However, if, at action 114, it is determined that there is another shift to be considered, the method of Figure 18 loops back to action 101 where it is determined how many shifts each worker has. Figure 19 illustrates the fairness aspect of the embodiment of Figure 18. Figure 19 shows an example of a listing of workers (identified by worker numbers 1- 20) and the number of shifts filled by each worker, as determined at action 101 of Figure 18. In this example, at action 103, only the workers having three shifts will be considered (randomized). The workers having greater than three shifts (cross-hatched worker numbers 3-8, 10-15, and 20) will not be considered until the other workers catch up in their number of shifts. Even though fairness is a consideration in filling shifts, it is still possible for workers to obtain noticeably more shifts than others. For example, if few workers have a tag required by many of the shifts in a schedule, they will accumulate more shifts than the workers who lack that particular tag. [0067] Figure 20 shows an example of actions that can occur at action 108 of
Figures 9 and 18 in order to determine if a particular worker is allowed to work a shift. The actions shown at Figure 20 refer to the rules 128 shown at Figure 14. As will be understood by the skilled worker, any other suitable sequence of actions to determine whether or not a worker can work a shift is within the scope of the present disclosure.
[0068] With reference to Figure 20, at action 200, it is determined if the worker considered at action 108 of Figures 9 or 18 meets the minimal shift interval requirement. If not, the method proceed to action 112 (e.g., see Figure 9 or 18) where it determined if there is another worker who might be able to work the empty shift. If the worker does meet the minimal shift interval requirement, the method proceeds to action 202, where it is determined if the worker meets the maximum shifts per week requirement. If so, the method proceeds to action 112. If not, the method proceeds to action 204 where it is determined if the worker meets the maximum number of shifts in a row. If so, the method proceeds to action 112. If not, and if the shift is a standard shift, the method proceeds to action 206 where it is determined if the worker meets the maximum number of standards shifts per week. If so, the method proceeds to action 112. If not, the method proceeds to the next action to determine if the next requirement is met and so forth until action 208 where it is determined if the worker meets the tag requirement for the shift. If so, the method proceeds to action 110 where the worker is assigned to the shift in question. As will be understood by the skilled worker, the sequence of rules check and tags check can be carried out in any suitable order without departing from the scope of the present disclosure. For example, tags checks could be carried out first followed by rules check. The rules check and the tags check can be carried out by the Rules module 26 of Figure 1 B.
[0069] Once the schedule has been provided to a schedule administrator at action 120 (Figures 9 and 18), the schedule administrator can populate the remaining empty shifts. This may require some of the aforementioned rules to be broken and to cause workers to be paid a premium. Once the schedule has been filled by the administrator, the schedule can be published. That is, the schedule can be made available to the workers as described below.
[0070] Figure 21 shows an example of the schedule system 20 of Figure 1 B residing on a server 300 connected to the Internet 302. The server 300 can be accessed remotely by the schedule administrator in order for the schedule administrator to set, modify, approve, and generally interact with the schedule and its parameters and rules. The schedule administrator can access the server through a computing device 304 connected to the Internet 302 through any suitable connection means. The computing device 304 can be a standalone computer, a laptop computer, a tablet computer or any other suitable type of computing device. The server 300 can also be referred to as a computing device.
[0071] The server 300 and its schedule module 20 can be located remotely from the workplace for which the schedule is being drawn, provided there is a connection (communication link) between the server and the computing device 304 being used by the schedule administrator. As such, the workplace does not need to invest in server hardware and does not need to upload software or software updates. Rather, the workplace can simply pay for the scheduling service and access it remotely from the workplace through a communication link. As will be understood by the skilled worker, such an approach to workforce scheduling services falls under the category of cloud computing. Access can be through any suitable web browser present on the computing device 304.
[0072] As mentioned above, once the schedule provided at action 120 of Figures
9 and 18 has been modified, approved, or both by the schedule administrator, it can be published. That is, the schedule can be made available to workers, or any other interested parties, through the Internet 302 (or any other suitable communication network). For example, workers having access to a computing device 306 connected to the Internet 302 can access the schedule through any suitable browser running on the computing device 306. Also, workers having access to a mobile device 308 connected to a cell network 310, which is itself connected to the Internet 302 can access the schedule provided the mobile device 308 has downloaded thereon an application suitable for interfacing with the server 300 and its schedule module 20. Further, workers having access to a WiFi device 312 connected to the cell network 310 through a WiFi access point 314 can also access the schedule provide the WiFi device 312 has downloaded thereon an application suitable for interfacing with the server 300 and its schedule module 20. Furthermore, workers having access to a WiFi device 316 connected to the Internet 302 through a WiFi access point 318 can also access the schedule provided the WiFi device 316 has downloaded thereon an application suitable for interfacing with the server 300 and its schedule module 20.
[0073] Therefore, the workers that have been scheduled to work shifts (e.g., the shifts in schedule 138 of Figure 15) can view the schedule at their convenience, remotely from the workplace. [0074] In addition to the workers being able to view the schedule remotely through any suitable communication device, the present disclosure, in some
embodiments, can allow the workers to initiate transactions of shifts between themselves. That is, in some embodiments, a worker is able to request a shift trade with other workers, give-away a shift to another worker, and propose a shift trade.
[0075] Figure 22 is a flow chart showing how a worker can post a shift that the worker wishes to give-away. In the context of the present disclosure, posting a shift is to be understood as meaning that the worker can select, through any one the computing device 306, the mobile device 308, and the WiFi devices 312 and 316 of Figure 21 , one or more of his own shifts of the schedule displayed on the device and question, and initiate changes to the one or more shifts.
[0076] With reference to Figure 22, the flow starts at action 400, after which, at action 402, the worker selects a shift (a self shift) he wishes to give-away. The selection can be made through any of the computing device 306, the mobile device 308, and the WiFi devices 312 and 316 of Figure 21 that the worker uses to view and interact with the schedule. At action 404 of Figure 22, the Shift trading module 25 of Figure 1 B verifies if shift trading is allowed for the particular shift selected by the worker and/or for the worker attempting to give-away a shift. If no such shift trading is allowed, the flow ends at action 406. Conversely, if shift trading is allowed, the flow proceeds to action 408, where the shift trading module 25 determines if shift giveaways are allowed. If no such shift giveaways are allowed, the flow ends at action 406. Conversely, if shift giveaways are allowed, the flow proceeds to action 410 where the selected shift is posted to the shift trading module 25. As a result of posting the shift, the shift trading module 25 sends to the worker who has posted the shift (the sender or poster), a list of recipients (workers) who are nominally available to work the shift. At action 412, the poster can select all the nominally available recipients or only some of the nominally available recipients on the list. Nominally available recipients (workers) can be recipients who are not scheduled to work any shift that overlaps with the posted shift.
[0077] Subsequent the selection of the recipients at 412, the shift trading module 25 submits, at action 414, the shift in question to the recipients 416 selected at action 412. A conflict check on the selected recipients 416 is conducted at action 418. The selected recipients 416 can view the giveaway shift, and any conflict they may be in with respect to the giveaway shift, on their computing device 306, mobile device 308, or WiFi devices 312 and 316 (Figure 21). In the present embodiment, the selected recipients 416 can accept the giveaway shift through their aforementioned devices at action 420 regardless of whether or not they are in conflict with the giveaway shift. The recipient conflict check effected at action 418 is described further below.
[0078] The flow of Figure 22 can proceed, at action 422, to give away the shift on either a first come first served (FCFS) basis or on a worker seniority basis. If the giveaway shift is to be assigned on a seniority basis, the flow of Figure 22 proceeds to action 424 where an acceptance list of recipients having accepted the giveaway shift is built. At action 426, it is determined if a pre-determined waiting period has expired. In an embodiment, the recipients 416 may be given a 12 hour period (or any other suitable time period) for accepting the giveaway shift. If the pre-determined waiting period has not expired, action 424 can continue to build the acceptance list as more of the selected recipients 416 accept the giveaway shift. Subsequent the pre-determined waiting period, the flow proceeds to action 428 where the acceptance list is sorted or ordered in accordance with pre-determined seniority rules. Examples of such seniority rules can include: (1) worker date of hire, (2) worker years experience in the worker profile from which the giveaway shift is based, or any other suitable seniority rule.
[0079] The flow can proceed, at action 430, to request or not the approval of the schedule administrator. If approval is required, the flow proceeds to action 432 where a conflict check on the recipients is effected. The conflict check of action 432 can be a repeat of the conflict check of action 418. As such, action 432 ensures that up-to-date conflict check information will be provided to the schedule administrator. Subsequent action 432, the list of recipients, sorted in accordance with seniority, and any conflict recipients may have, is provided to the schedule administrator for approval at action 434. The administrator, after having considered the recipients, their seniority, and any conflict they may have, can approve the assignment of the giveaway shift to one of the recipients (e.g., the most senior recipient) and, at action 436, the giveaway shift can be assigned to the most senior recipient, and the offer of the shift to the other recipients can be automatically cancelled. If the administrator does not approve any of the recipients, the flow ends at action 406.
[0080] If the approval of the administrator is not required at action 430, the flow proceeds to action 438 where it is determined if the most senior recipient is in conflict with the giveaway shift. Action 438 can be a repeat of action 418. Absent any conflict, the giveaway shift is attributed to the most senior recipient. If there is a conflict at 438, the most senior recipient is removed from the sorted recipient list at action 440 and the next most senior recipient is provided as input to action 438. Actions 438, 440, and 428, can be repeated iteratively until the giveaway shift is assigned to a recipient or until there no more recipients to consider for assignment of the giveaway shift.
[0081] Returning now to action 422 for the case where the recipients are to be assigned to the giveaway shift on a first come first served basis. In this case, the flow proceeds to action 442 where the flow can proceed to request or not the approval from the schedule administrator. If approval is required, the flow proceeds to action 444 where a recipient conflict check is conducted. This can be a repeat of the conflict check conducted at action 418. At action 446, the schedule administrator considers the recipient and any conflict he may have, and chooses to approve or not the recipient for the giveaway shift. If the administrator approves the recipient, the giveaway shift is assigned to the recipient at action 448. If the administrator does not approve the recipient, the flow ends at action 406.
[0082] Returning to action 442, if the flow does not require administrator approval of the recipient for filling the giveaway shift, the flow proceeds to action 450 where a conflict check is conducted on the recipient being considered. The conflict check at action 450 can be a repeat of the conflict check conducted at action 418. Absent any such conflict, the giveaway shift is assigned, at action 448, to the recipient in question. If there is a conflict, the flow ends at action 406.
[0083] With reference to Figure 23, the flow therein shows how a worker can post a shift for trade. The flow starts at action 500, after which, at action 502, the worker selects a shift he wishes to trade. The selection can be made through any one the computing device 306, the mobile device 308, and the WiFi devices 312 and 316 of
Figure 21 that the worker uses to view the schedule. At action 504 of Figure 23, the shift trading module 25 of Figure 1 B verifies if shift posting (and trading) is allowed for the selected shift and/or for the particular worker. If no such shift trading is allowed, the flow ends at action 506. Conversely, if shift posting (trading) is allowed, the flow proceeds to action 508, where the selected shift is posted to the shift trading module 25. As a result of posting the shift, the shift trading module 25 sends to the worker who has posted the shift (the poster), a list of recipients (workers) who are nominally available to work the shift. At action 510, the poster can select all the nominally available recipients or only some of the nominally available recipients on the list. In this example, nominally available recipients (workers) can be recipients who are scheduled to work another shift in the schedule and with whom the poster would like to trade.
[0084] Subsequent the selection of the recipients at 510, the shift trading module 25 submits, at action 512, the shift in question to the recipients 514 selected at action 510. A conflict check on the selected recipients 514 is conducted at action 516. The selected recipients 514 can view the shift selected by the poster at action 502, and any conflict they may have with respect to the posted shift, on their computing device 306, mobile device 308, or WiFi devices 312 and 316 (Figure 21). In the present embodiment, at action 518, the selected recipients 514 can propose one of their own shifts (a trade shift) to trade for the posted shift. Subsequent action 518, a conflict check regarding the trade shifts proposed by the recipients 514 is performed on the poster (the worker who posted the shift at action 508). The trade shifts, and any related conflicts, are
subsequently displayed to the poster who can accept or not, at action 522, one of the proposed trade shifts through any of his aforementioned devices, regardless of whether or not the poster has a conflict with the trade shift. The recipient conflict check effected at action 516, and the sender conflict check effected at action 520, are described further below.
[0085] If, at action 522, the sender refuses the trade shift (or shifts) proposed by the recipients 514, the flow ends at action 506. Conversely, if the sender accepts of the trade shifts proposed by one of the recipients 514, the flow proceeds to action 524, where approval by the schedule administrator may be required. If approval is not required, the flow proceeds to action 526 where it is determined if there is any conflict with either the poster or the recipient that posted the trade shift. This conflict check can be a repeat of the conflict checks conducted at actions 516 and 520. If there is a conflict, the flow ends at action 506. Absent any conflict at action 526, the shifts, at action 528, are traded and the schedule is amended accordingly.
[0086] Returning to action 524, if approval is required, the flow proceeds to action
530 where it is determined if there is any conflict with either the poster or the recipient that proposed the trade shift. This conflict check can be a repeat of the conflict checks conducted at actions 516 and 520. At action 532, the schedule administrator considers the posted shift, the shift proposed in return (the trade shift), and the results of the conflict check at action 530. Based on this information, the schedule administrator can approve the trade (even in the presence of conflict) or not. If the trade is approved, the shifts in the proposed trade are assigned (traded) at action 528 and the schedule is amended accordingly. If the trade is not approved, the flow ends at action 506.
[0087] Figure 24 shows another embodiment of a flow of the present disclosure.
The flow of Figure 24 shows how a worker can select one of his shifts for trade and, at the same time, select a shift of another worker he wishes to trade for. The flow of Figure 24 starts at action 600. At action 602, the sender (the poster, i.e., the worker who wishes to trade one of his shifts) selects one of his shifts he wishes to trade. The selection can be made through any one of the computing device 306, the mobile device 308, and the WiFi devices 312 and 316 of Figure 21 that the worker uses to view the schedule. At action 604, the sender selects a shift of a colleague which he wishes to trade. Again, the selection can be made through the devices mentioned above.
[0088] At action 606, the shift trading module 25 of Figure 1 B verifies if shift posting (shift trading) is allowed for the shift (shifts) in question and/or the workers in questions. If shift posting (shift trading) is not allowed, the flow ends at action 608.
Conversely, if shift posting (shift trading) is allowed, the flow proceeds to action 610 where the sender shift and the shift he wishes to trade for are posted (proposed) to the shift trading module 25. Also posted to the shift trading module 25 are the names of the sender and of the owner of the shift the sender wished to trade for. At action 612, a conflict check is conducted on the sender with respect to the recipient's shift. At action 614, the sender can, after having observed the result of the conflict check of action 612, submit the shift trade proposal to the recipient 616. At action 618, a conflict check on the recipient 616 is conducted with respect to the sender's shift. The sender and recipient conflict checks (612, 616) are described further below.
[0089] The flow proceeds to action 620 where the recipient may accept the proposed trade or not. If the proposed trade is not accepted, the flow ends at action 608. Conversely, if the recipient 616 accepts the proposed trade, the flow proceeds to action 622 where approval from the schedule administrator may be required or not. If not required, the flow proceeds to action 624 where conflicts checks on the sender and on the recipient are conducted. If there is a conflict, the flow ends at action 608. Absent any conflict at action 624, the flow proceeds to action 626 where the proposed trade is accepted, the shifts assigned, and the schedule updated in accordance with the traded shifts.
[0090] Returning to action 622, if approval by the schedule administrator is required, the flow proceeds to action 628 where conflicts checks on the sender and on the recipients are conducted. The results of action 628 are provided to the schedule administrator who can approve or not of the proposed trade at action 630. If the schedule administrator approves, the flow proceeds to action 626 where the schedule is updated in accordance with the proposed trade. If the schedule administrator does not approve the trade, the flow ends at action 608.
[0091] Figure 25 shows an example of a flow of conflict check that can be performed in any one of the actions 418, 444, 432, 438, 450, 516, 520, 526, 530, 612, 618, 624, and 628 shown at Figures 22, 23, and 24. The flow of Figure 25 starts at action 700. Subsequently, at action 702, it is determined if there are conflicts such as a time-off conflicts (action 704) or shift/rule conflicts (action 708). It there is a time-off conflict, the flow ends at action 706. If there is a shift/rule conflict, the reasons for the conflict are returned at action 710.
[0092] The present disclosure also relates to a system that integrates the schedule module 20 of Figure 1 B with a time and attendance module and a performance evaluation module. Figure 26 shows such a system 800, which includes the schedule system 20, a time and attendance module 802, and a performance evaluation module 804. All the data generated in any one of the modules 20, 802, and 804 can be passed (communicated) to the other modules.
[0093] In the preceding description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the embodiments. However, it will be apparent to one skilled in the art that these specific details are not required. In other instances, well-known electrical structures and circuits are shown in block diagram form in order not to obscure the understanding. For example, specific details are not provided as to whether the embodiments described herein are implemented as a software routine, hardware circuit, firmware, or a combination thereof.
[0094] Embodiments of the disclosure can be represented as a computer program product stored in a machine-readable medium (also referred to as a computer-readable medium, a processor-readable medium, or a computer usable medium having a computer-readable program code embodied therein). The machine-readable medium can be any suitable tangible, non-transitory medium, including magnetic, optical, or electrical storage medium including a diskette, compact disk read only memory (CD-ROM), memory device (volatile or non-volatile), or similar storage mechanism. The machine- readable medium can contain various sets of instructions, code sequences, configuration information, or other data, which, when executed, cause a processor to perform steps in a method according to an embodiment of the disclosure. Those of ordinary skill in the art will appreciate that other instructions and operations necessary to implement the described implementations can also be stored on the machine-readable medium. The instructions stored on the machine-readable medium can be executed by a processor or other suitable processing device, and can interface with circuitry to perform the described tasks.
[0095] The above-described embodiments are intended to be examples only. Alterations, modifications and variations can be effected to the particular embodiments by those of skill in the art without departing from the scope, which is defined solely by the claims appended hereto.

Claims

1. A non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce including workers, the method comprising:
selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types;
selecting an initial shift type from the list of shift types, each worker having
associated thereto a preference for the initial shift type, the initial shift type having associated thereto a list of shifts;
randomizing a list of workers available for the initial shift type to obtain a
randomized list of workers;
modifying, based on preferences of the workers for the initial shift type, the
randomized list of workers, to obtain a modified, randomized list of workers; selecting an initial shift from the list of shifts associated to the initial shift type; assigning a first worker of the modified, randomized list of workers to the initial shift;
selecting a subsequent shift from the list of shifts; and
assigning a subsequent worker of the modified, randomized list to the subsequent shift.
2. The non-transitory tangible computer-readable medium of claim 1 wherein selecting an initial work profile is preceded by randomly ordering the work profiles in the list of work profiles.
3. The non-transitory tangible computer-readable medium of claim 1 wherein selecting an initial shift type from the list of shift types is preceded by randomly ordering the list of shift types.
4. The non-transitory tangible computer-readable medium of claim 1 wherein selecting the initial shift from the list of shifts associated to the initial shift type is preceded by randomly the list shifts.
5. A non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce including workers, the method comprising:
selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types;
selecting an initial shift type from the list of shift types, each worker having
associated thereto a preference for the initial shift type, the initial shift type having associated thereto a list of shifts, the list of shifts having a number of shifts;
randomizing a list of workers available for the initial shift type to obtain a first randomized list of workers;
modifying, based on preferences of the workers for the initial shift type, the
randomized list of workers, to obtain a first modified, randomized list of workers, the first modified, randomized list of workers having a number of workers; and
if the number of shifts is greater than the number of workers, performing the
following actions:
assigning, in order of appearance in the first modified, randomized list of workers, each worker to a shift having the same order of appearance in the list of shifts, unassigned shifts in the list of shifts forming an unassigned set of shifts;
randomizing the list of workers available for the initial shift type to obtain a second randomized list of workers,
modifying, based on the preferences of the workers for the initial shift type, the second randomized list of workers, to obtain a second modified, randomized list of workers; and
assigning, in order of appearance in the second modified, randomized list of workers, each worker to a shift having the same order of appearance in the unassigned set of shifts.
6. A non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce including workers, the method comprising:
selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types; selecting an initial shift type from the list of shift types, each worker having associated thereto a preference for the initial shift type, the initial shift type having associated thereto a list of shifts;
randomizing a list of workers available for the initial shift type to obtain a
randomized list of workers;
modifying, based on preferences of the workers for the initial shift type, the
randomized list of workers, to obtain a modified, randomized list of workers; selecting a first shift from the list of shifts associated to the initial shift type;
verifying if the first worker in the modified, randomized list of workers is allowed to work the first shift;
if the first worker is allowed to work the first shift, assigning the first worker to the first shift;
if the first worker is not allowed to work the first shift, performing the following actions until a worker in the modified, randomized list of workers is allowed to work the first shift:
verifying, in order of appearance in the modified, randomized list of workers, if the next worker in the modified, randomized list of workers is allowed to work the first shift;
and
assigning the next worker allowed to work the first shift to the first shift.
7. The non-transitory tangible computer-readable medium of claim 6 wherein verifying if the first worker in the modified, randomized list of workers is allowed to work the first shift includes verifying if the first worker has exceeded a pre-determined number of shifts within a predetermined time period.
8. The non-transitory tangible computer-readable medium of claim 6 wherein verifying if the first worker in the modified, randomized list of workers is allowed to work the first shift includes verifying if the first worker has been off work for a pre-determined period of time since a last shift of the first worker.
9. The non-transitory tangible computer-readable medium of claim 6 wherein verifying if the first worker in the modified, randomized list of workers is allowed to work the first shift includes verifying if the first worker will be paid overtime if assigned to the first shift.
10. A non-transitory tangible computer readable medium having stored thereon instructions to be carried out by a computing device to perform a method of populating a workforce schedule, the workforce schedule having a plurality of shifts, the workforce schedule being for a workforce including workers, the method comprising:
selecting an initial work profile from a list of work profiles, the initial work profile having associated thereto a list of shift types;
selecting an initial shift type from the list of shift types, each worker having
associated thereto a preference for the initial shift type, the initial shift type having associated thereto a list of shifts;
randomizing a list of workers available for the initial shift type to obtain a
randomized list of workers;
modifying, based on preferences of the workers for the initial shift type, the
randomized list of workers, to obtain a modified, randomized list of workers; selecting a first shift from the list of shifts associated to the initial shift type;
verifying if the first worker in the modified, randomized list of workers is allowed to work the first shift;
if the first worker is allowed to work the first shift, assigning the first worker to the first shift;
if the first worker is not allowed to work the first shift, performing the following action until a worker in the modified, randomized list of workers is allowed to work the first shift:
verifying, in order of appearance in the modified, randomized list of workers, if the next worker in the modified, randomized list of workers is allowed to work the first shift;
and
assigning the next worker allowed to work the first shift to the first shift.
PCT/CA2012/050211 2012-04-02 2012-04-02 Workforce scheduler WO2013149316A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CA2012/050211 WO2013149316A1 (en) 2012-04-02 2012-04-02 Workforce scheduler

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2012/050211 WO2013149316A1 (en) 2012-04-02 2012-04-02 Workforce scheduler

Publications (1)

Publication Number Publication Date
WO2013149316A1 true WO2013149316A1 (en) 2013-10-10

Family

ID=49299878

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA2012/050211 WO2013149316A1 (en) 2012-04-02 2012-04-02 Workforce scheduler

Country Status (1)

Country Link
WO (1) WO2013149316A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3001363A1 (en) * 2014-09-22 2016-03-30 Fujitsu Limited Apparatus, scheduling method and program
JP2019079249A (en) * 2017-10-24 2019-05-23 株式会社リテイルサイエンス Work assignment device, work assignment system, work assignment method, and program
US20190206549A1 (en) * 2017-12-31 2019-07-04 Teletracking Technologies, Inc. Response to emergency department surge prediction
CN111950863A (en) * 2020-07-22 2020-11-17 多点(深圳)数字科技有限公司 Information display method and terminal equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823315B1 (en) * 1999-11-03 2004-11-23 Kronos Technology Systems Limited Partnership Dynamic workforce scheduler

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823315B1 (en) * 1999-11-03 2004-11-23 Kronos Technology Systems Limited Partnership Dynamic workforce scheduler

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3001363A1 (en) * 2014-09-22 2016-03-30 Fujitsu Limited Apparatus, scheduling method and program
JP2019079249A (en) * 2017-10-24 2019-05-23 株式会社リテイルサイエンス Work assignment device, work assignment system, work assignment method, and program
US20190206549A1 (en) * 2017-12-31 2019-07-04 Teletracking Technologies, Inc. Response to emergency department surge prediction
US11705240B2 (en) * 2017-12-31 2023-07-18 Teletracking Technologies, Inc. Response to emergency department surge prediction
CN111950863A (en) * 2020-07-22 2020-11-17 多点(深圳)数字科技有限公司 Information display method and terminal equipment
CN111950863B (en) * 2020-07-22 2023-09-12 多点(深圳)数字科技有限公司 Information display method and terminal equipment

Similar Documents

Publication Publication Date Title
US8140366B2 (en) Method, system and program product for filling job orders
US20190073623A1 (en) Unified Workforce Platform
US20160012368A1 (en) Real-Time User Interface for Prioritized Professional Work Queue
Wachtel et al. Review of behavioral operations experimental studies of newsvendor problems for operating room management
US9679265B1 (en) Method and apparatus for real time automated intelligent self-scheduling
US20070250370A1 (en) Scheduling application and distribution method
US20080306805A1 (en) Method and Apparatus for Queue-Based Automated Staff Scheduling
US20150154528A1 (en) Task manager for healthcare providers
US20110161128A1 (en) Scheduling and Assigning Units of Work
US20210295984A1 (en) Optimized patient schedules based on patient workflow and resource availability
US20060224477A1 (en) Automated auction method for staffing work shifts
Yan et al. Sequential appointment scheduling considering patient choice and service fairness
US20130262171A1 (en) System and Method for Directing and Monitoring the Activities of Remote Agents
US20080255919A1 (en) System and method for schedule notification
US20120060166A1 (en) Day management using an integrated calendar
CA2792721A1 (en) Methods of employee scheduling and management
JPWO2006097971A1 (en) Career development system
US20230178228A1 (en) System and Method of Dynamically Generating Work Assignments
US20060074740A1 (en) Medical facility employee scheduling method using patient acuity information
EP2461284A1 (en) Group reservation support system
Kolker Healthcare management engineering: What does this fancy term really mean?: The use of operations management methodology for quantitative decision-making in healthcare settings
US20140278653A1 (en) Method And System For Optimizing Field Service Appoint Scheduling
US20170169364A1 (en) System and Method for Booking a Service
US8620712B1 (en) Method and system of intelligent matching for meetings
US20160171452A1 (en) Automated Consecutive Scheduling

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12873534

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12873534

Country of ref document: EP

Kind code of ref document: A1