WO1996022648A1 - Answering telephone calls - Google Patents

Answering telephone calls Download PDF

Info

Publication number
WO1996022648A1
WO1996022648A1 PCT/GB1996/000086 GB9600086W WO9622648A1 WO 1996022648 A1 WO1996022648 A1 WO 1996022648A1 GB 9600086 W GB9600086 W GB 9600086W WO 9622648 A1 WO9622648 A1 WO 9622648A1
Authority
WO
WIPO (PCT)
Prior art keywords
agent
day
agents
work
queue
Prior art date
Application number
PCT/GB1996/000086
Other languages
French (fr)
Inventor
Andrew Noble
Duncan Singleterry
Blaise Francis Egan
Nye Hughes
Original Assignee
British Telecommunications Plc
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 British Telecommunications Plc filed Critical British Telecommunications Plc
Priority to AU43964/96A priority Critical patent/AU4396496A/en
Publication of WO1996022648A1 publication Critical patent/WO1996022648A1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/22Arrangements for supervision, monitoring or testing
    • H04M3/36Statistical metering, e.g. recording occasions when traffic exceeds capacity of trunks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/523Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/523Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
    • H04M3/5232Call distribution algorithms
    • H04M3/5233Operator skill based call distribution

Definitions

  • the present invention relates to a telephone answering apparatus and a method of answering telephone calls.
  • the present invention relates to answering telephone calls, in which incoming calls are directed to agent-stations.
  • Telephone answering systems are known in which centres having a plurality of agent-stations are responsible for responding to incoming calls. For example, systems of this type may be responsible for dealing with customer enquiries, fault reports or product orders etc.
  • the availability of active agent-stations that is. stations to which calls may be directed given that an agent is available to answer a call, should match the demand for calls to be answered. It is therefore known to forecast the rate of incoming calls and manually schedule agent-station activation in response to this demand.
  • the translation of an estimated demand, preferably based on a history of incoming calls, into a requirement for agent-station activation is a sophisticated procedure and most known techniques produce far from ideal results. The problem is particularly difficult given the excessively large number of variables present and direct functional modelling is not possible within realistic time frames.
  • agent-station schedules must then be generated which must now satisfy further operational requirements, such as the availability of agents and their contractual obligations, in addition to constraints established by the incoming call rates. Again, mathematical modelling of such a situation is extremely difficult, due to the excessively large number of variables and an alternative approach is required if schedules are to be established within realistic time frames.
  • a telephone answering apparatus comprisins a plurality of agent-stations: and switching means for directing incoming calls to said agent-stations, characterized by storage means for storing signals indicative of previous incoming calls; forecasting means for forecasting levels of incoming calls at intervals within an operational period; translating means for translating said forecasted levels into active agent- station requirements with reference to said stored data and scheduling means arranged to schedule agent-station activation in response to said requirements by allocating station active times substantially in response to agent availability by- following translated active agent-station requirements up a gradient towards a demand level peak.
  • the present invention provides an advantage of significantly reducing processing time by taking a heuristic approach towards the establishment of agent- station activation schedules derived from active agent-station requirements.
  • the scheduling means is arranged to follow said demand level up a gradient of greatest slope.
  • the scheduling means is arranged to initiate scheduling from the start of a period or the end of a period, according to the position of peak demand within said period.
  • the start of the period is chosen if said peak demand is closer to said start than to said end.
  • an advantage of the preferred embodiment is that an attempt is made to satisfy' the demand level peak with reference to the steepest slope.
  • the peak is satisfied with reference to activation end times so as to work towards the demand level peak backwards up the gradient of greatest slope.
  • a method of answering telephone calls comprising steps of directing incoming calls to a plurality of agent-stations, characterised by storing signals indicative or previous incoming calls; forecasting levels of incoming calls at intervals within an operational period; translating forecasted levels into active agent-station requirements with reference to said stored data; and scheduling agent-station activation in response to said requirements by allocating station active times substantially in response to agent availability by following translated active agent- station requirements up a gradient towards a demand level peak.
  • a first group of agent-stations are arranged to process calls of a first type and a second group of agent-stations are arranged to process calls of a second type.
  • an establishment having shared resources, may be capable of processing many different call types.
  • call handling may be distributed over a geographical area.
  • a first schedule is produced for agent-stations located at a first geographical location and a second schedule is produced for agent-stations located at a second geographical location.
  • Figure 1 shows a telephone answering system, including automatic call distribution equipment and agent-stations at several sites;
  • Figure 2 shows a typical histogram of the number of calls which arrive on each day of the week
  • Figure 3 shows a typical histogram of the number of calls which arrive within a day of the week
  • Figure 4 details the equipment necessary to implement the telephone answering system shown in Figure 1, including a storage means, a forecaster, a translator and a scheduler;
  • Figure 5 details information stored on the storage means shown in Figure 4;
  • Figure 6 shows a typical timetable of the forecasting and scheduling performed by the forecaster and scheduler shown in Figure 4;
  • Figure 7 shows a summary of the operations performed by the forecaster shown in Figure 4, including the data cleansing of daily totals, data cleansing of time slot totals, choosing a statistical model and forecasting the number of calls:
  • Figure 8 details the data cleansing of daily totals shown in Figure 7;
  • Figure 9 details the data cleansing of time slot totals shown in Figure 7;
  • Figure 10 details the process of choosing a statistical model shown in Figure 7;
  • Figure 11 details the process of forecasting a number of calls shown in Figure 7:
  • Figure 12A shows an equation used by processing circuitry in the translator shown in Figure 4, including a probability term
  • Figure 12B details an evaluation for the probability term used in Figure 12 A, including the Erlang loss function:
  • Figure 12C details a traditional equation for evaluating the Erlang loss function as shown in Figure 12B;
  • Figure 13A details an improved equation for evaluating the Erlang loss function shown in Figure 12B;
  • FIGs 1 B and 13C detail terms required to evaluate the equation as shown in Figure 13 A:
  • Figure 14 details processes for translating a call arrival rate into a required number of active agent-stations used by the translator shown in Figure 4, including calculating a probability
  • Figure 15 details processes for evaluating the probability shown in Figure 14, including evaluating a perturbation factor and evaluating a normalisation factor;
  • Figure 16 details values stored in a look-up table used to calculate the perturbation factor used in Figure 1 :
  • Figure 17 details values stored in a look-up table used to evaluate a normalisation factor used in Figure 15;
  • Figure 18 summarises steps performed by the scheduler shown in Figure 4. including appo ⁇ ioning demand to sites, removing fixed shift workers, identifying peak demand time, setting attendance start times, setting attendance end times. fitting in meal breaks, stretching, training and correspondence and balancing;
  • FIG 19 details the process of appo ⁇ ioning demand to sites shown in Figure 18:
  • Figure 20 details the process of removing fixed shift workers shown in Figure 18:
  • Figure 21 details the process of identifying the peak demand time shown in
  • Figure 18 Figures 22A and 22B detail the process of setting attendance start times shown in Figure 18;
  • Figure 23 details the process of setting attendance end times shown in Figure 18
  • Figure 24 details the process of fitting in meal breaks shown in Figure 18;
  • Figure 25 details the process of stretching shown in Figure 18
  • Figures 26A and 26B detail the process of training and correspondence shown in Figure 18;
  • Figure 27A details the process of balancing shown in Figure 18. including moving one agent resource unit from surplus to deficit:
  • Figure 27B details the process of moving one agent resource unit from surplus to deficit shown in Figure 27A.
  • Figure 28 summarises the process for data cleansing used to prepare data for forecasting by the forecaster shown in Figure 4. including identifying outliers:
  • Figure 29 details processes used in identifying outliers shown in Figure 28, including examining a differenced series and identifying outliers in original data series:
  • Figures 30 to 32 detail tests used when examining the differenced series and identifying outliers in the original data series shown in Figure 29:
  • Figure 33 summarises steps performed in the forecaster shown in Figure 4 for forecasting levels of off-line work, including computing smoothing constants, calculating new levels and trends and performing a forecast;
  • Figures 34 and 35 show steps used when performing the process for calculating smoothing constants shown in Figure 33:
  • Figure 36 details a graphic representation of the type of grid constructed in order to perform the calculation of smoothing constants shown in Figure 33;
  • Figure 37 details the process for calculating levels and trends shown in Figure 33:
  • Figures 38 and 39 show forecasting formulae used in the process of generating a forecast shown in Figure 33;
  • Figure 40 summarises the steps used to forecast off-line work, including the forecasting method summarised in Figure 33;
  • Figure 41 details steps performed by the forecaster shown in Figure 4, for forecasting the number of calls which will be made in each time slot of a day, including forecasting steps;
  • Figure 42 details equations used to impose upper and lower boundaries on forecasting steps shown in Figure 41 ;
  • Figures 43 A and 43B detail processes used in the scheduler shown in Figure
  • allocating work to each site per day allocating pre-allocated indirect work within each site to a day, allocating off-line work within each site to a day. allocating undetermined indirect work within each site to a day. allocating call work within a day to each time slot, allocating pre-allocated indirect work within a day to each time slot, allocating agent hours within each day to each time slot, allocating off-line work within each day to each time slot, scheduling attendances, allocating work to attendances, stretching, checking tolerances, adjusting flexi-hours between days, adjusting time for off-line work, adjusting attendances for fixed shift agents. adjusting individual attendances within each day. and reducing the amount of off- line work carried forward and overtime;
  • Figure 44A and 44B detail the process of allocating work to each site per day shown in Figure 43A;
  • Figure 45 details the process of allocating pre-allocated indirect work within a site to a day shown in Figure 43A
  • Figure 46A details a table constructed when performing the process of allocating off-line work within a site to each day shown in Figure 43A;
  • FIGs 46B and 46C detail the process of allocating off-line work within each site to each day shown in Figure 43 A:
  • Figure 47 details the process for allocating undetermined indirect work within each site to each dav shown in Figure 43A;
  • Figure 48 details the allocation of call work within each day to each time slot shown in Figure 43A:
  • Figure 49 details the process for allocating pre-allocated indirect work within each day to each time slot shown in Figure 43A
  • Figure 50 details an equation used in the process for allocating agent hours within each day to each time slot shown in Figure 43A;
  • Figure 51A details a table constructed when performing the process of allocating off-line work within each day to each time slot shown in Figure 43A;
  • FIG. 5 IB details the process of allocating off-line work within each day to each time slot shown in Figure 43 A;
  • FIGS 52A, 52B and 52C detail the process of scheduling attendances shown in Figure 43A;
  • Figures 53A to 53G detail the process of allocating work to attendances shown in Figure 43A
  • Figures 54A to 54D detail the process of stretching as shown in Figure 43B;
  • FIGS 55A to 55E detail the process of checking tolerances shown in Figure 43B;
  • Figures 56A and 56B detail the process of adjusting flexi-hours between days shown in Figure 43 B:
  • Figure 57 details the process of adjusting time for off-line work shown in
  • Figures 58A and 58B detail the process of adjusting attendances for fixed shift agents shown in Figure 43B;
  • Figures 59A and 59B detail the process of adjusting individual attendances within each day shown in Figure 43B:
  • Figure 60 details the process of reducing the amount of work carried forward shown in Figure 43 B:
  • FIGS 61 A. to 6 detail the process of allocating overtime shown in Figure 43 B. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • a public switched telephone network 101 connected by several lines to automatic call distribution equipment 102 is shown in Figure 1.
  • the automatic call distribution equipment 102 is also connected to a number of agent-stations 103 at company sites 104 to 107.
  • Customers dialling a company telephone number may have their call diverted to any of the agent-stations 103 located at any of the sites.
  • the advantage of this arrangement is that a critical service provided by the company may be dealt with by the first agent available at any of the sites.
  • a customer dials a number, such as "150", which connects the customer to the automatic call distribution equipment 102 providing the service for the number "150".
  • the automatic call distribution equipment 102 diverts the call to an agent-station 103 so that the customer does not need to go through the process of speaking to an intermediate operator, or wait a long time in a telephone queue at one particular site, when the same telephone queue at a different site is empty or less full.
  • the automatic call distribution equipment 102 is arranged to operate in the following way. If several agents are free when a call comes in. the call is diverted to the agent who has been inactive for the longest time. Alternatively, if several calls are waiting to be answered, and no agents are free at the time, calls are held until an agent is free, with the call which has been waiting the longest given access to the first agent who becomes available. Typically a company will require a particular quality of service, specified in terms of the probability of callers h. ving to wait greater than a specific period of time before their call is answered. An example of this is a ten percent probability that any incoming call will be answered within fifteen seconds. From a statistical point of view, this is the same as saying that ninety percent of incoming calls will be answered within fifteen seconds.
  • Each of the agent-stations 103, at each of the sites A to D 104 to 107 shown in Figure 1. may be manned by an agent. In order to minimise waiting times for callers, it is possible to make forecasts of the variation in the number of calls which will be received throughout each day, and attempt may then be made to match the number of active agent-stations to that forecast.
  • the automatic call distribution equipment 102 provides a record of calls made to the relevant telephone number, and this information is used as the basis for a forecast of calls which will be received in the future. Automation of the forecasting process makes it possible to provide a forecast for each timeslot within each day for which a forecast is made. Typically a timeslot is fifteen or thirty minutes in length, and forecasts are made for two weeks ahead.
  • FIG. 3 An example of a typical histogram of the number of calls made during each timeslot of a typical day is shown in Figure 3. From this histogram it can be seen that an advantage will be gained if it is possible to allocate active agent-stations in accordance with forecasts made for each timeslot of each day.
  • Data storage equipment 401 records information from the automatic call distribution equipment 102.
  • Information from the data store 401 is supplied to estimating equipment 405. comprising a forecaster 402. translator 403 and scheduler 404.
  • the forecaster receives data which details the total number of calls made during each timeslot on each day of the week. The forecaster can thereby have access to a history of system usage so that a forecast of future usage can be made.
  • Electrical signals representing a forecast for the number of calls arriving in a particular timeslot on a particular day are supplied to a translator 403.
  • the translator 403 converts these signals so as to represent the number of active agent- stations which are required to meet this forecast demand in order to meet the quality of service requirements.
  • Electrical signals representing the number of agent-stations required in each timeslot are supplied to a scheduler 404. which also receives data from a data store 406, which contains information about agent availability.
  • the scheduler generates electrical signals in response to signals from the translator 403 and the data store 406. in order to control the automatic distribution equipment 102.
  • the scheduler 404 supplies control signals to the automatic call distribution equipment 102 and to the agent- stations defining when stations are to be activated in each timeslot of each day of the week.
  • the telephone answering system is under the supervision of a human system controller, who may intervene during the process of generating a forecast or generating a schedule, when exceptional conditions are identified by the estimating equipment 405.
  • the data store 401 stores two types of information, represented by the histograms shown in Figures 2 and 3.
  • the first type of information is the total number of calls made on each day of the week. This type of information is stored for each week over a period of up to two years.
  • the forecaster operates on information about the number of calls made on each day of the week, from a sample window of two years.
  • Total daily calls are updated on the data store 401 a week at a time.
  • a week ' s daily data from two years ago is discarded.
  • the two year window of daily data stored is a moving window.
  • two years " data may not be available, and this special situation is detailed below.
  • the second type of data stored by the data store 401 corresponds to that shown in the histogram in Figure 3.
  • Data for the timeslot usage of the automatic call distribution equipment 102 is recorded for a period of thirteen weeks.
  • data such as that shown in Figure 3 is available for use by the forecaster 402.
  • the window of historical data for timeslots is a moving window, so that as each new day ' s hourly data is recorded, the data from thirteen weeks ago may be discarded.
  • Timeslot data for each day is also updated on a weekly basis, so that in practice as each week ' s worth of timeslot data is updated, timeslot data from fourteen weeks ago is discarded.
  • Daily and timeslot data and their periods of storage are summarised in Figure 5.
  • the forecaster uses data for the total number of daily calls made over the last two years and data for the total number of calls made in each timeslot over the last thirteen weeks to provide a forecast of future requirements expressed in the same terms.
  • Timeslots may be thirty or fifteen minutes in length, such that a forecast may be made with improved accuracy when fifteen minute timeslots are provided.
  • the forecast may be made to predict calls many weeks into the future, with diminishing accuracy as a function of time.
  • the system controller typically requires knowledge of the schedule for the week after the current one.
  • the forecast may be made for two weeks in the future, so that the system controller has one week in which to receive the schedule and communicate to the agents whose stations have been selected for activation during each particular timeslot. Agents may then provide helpful feedback as to any problems they encounter with the implementation of the schedule, while still having time to make adjustments to the plan if necessary.
  • This timing is summarised in Figure 6.
  • processes 701 and 702 daily and timeslot data is cleansed to remove anomalies, which may otherwise adversely affect the accuracy of a forecast.
  • process 703 a statistical model is chosen which best fits the daily total data.
  • process 704 a forecast is made using the statistical model selected in process 703. of the total number of calls which will be made on each day in the forecast. Forecasts for each timeslot are then made by a process of proportional allocation of forecasted daily totals in response to an analysis of recorded timeslot call distribution for the same day in preceding weeks.
  • Data cleansing 701 of daily totals shown in Figure 7 is detailed in Figure 8.
  • known anomalous days are identified for exclusion from the data series.
  • a typical known anomalous day would be a bank holiday, or a religious holiday. These are days on which it is unlikely that the number of calls which were handled by the automatic call distributor 102 is typical. Thus data for these days is excluded from the data used to make a forecast.
  • Each of these days is identified by a flag, such that the data may later be replaced by an interpolated value.
  • process 802 the mean and standard deviation of all of the non-excluded daily totals are calculated.
  • process 803 each of the daily totals is examined to see whether it lies outside the range defined by the mean plus or minus 2.5 multiplied by the standard deviation (SD).
  • SD standard deviation
  • the list of "outliers" generated in process 803 is supplied to the system controller in process 804.
  • the system controller identifies which of the listed days should be excluded from the data set.
  • a forecast can only be made using a complete data set. so data for days identified in process 801 and process 804 for exclusion must be replaced by estimated values which will have a minimal effect on the accuracy of a forecast. This is carried out in process 805. where a cubic spline interpolation is usually performed on data from the same day in preceding and/or subsequent weeks.
  • the process 702 for data cleansing of timeslot data shown in Figure 7 is detailed in Figure 9.
  • the day of week is set to a value of zero, which corresponds to Monday, in process 901.
  • steps 902 to 904 will be performed for all Mondays within the thirteen weeks of recorded sub-hourly total call data.
  • mean and standard deviation values are generated from totals for each sub-houriy interval of the selected day in each week.
  • the day value is zero (Monday)
  • the mean and standard deviation are calculated for recorded totals for the first timeslot interval recorded for each Monday over the thirteen weeks.
  • the mean and standard deviation is calculated similarly for the remaining sub- hourly intervals from Monday the values over the thirteen week period.
  • a number of mean and standard deviation pair values are generated. corresponding to the number of timeslots within each day.
  • a list is generated of periods within days in which the timeslot call total is outside the range of the mean plus or minus two and a half times the standard deviation, as calculated in process 902. The purpose of this is to identify periods of the day during which sympathetic call rates occur. This may happen for a variety of reasons, for example unusual weather conditions or advertising on television, etc.
  • the system controller is provided with the list of periods during which anomalous data has appeared. The system controller is prompted to identify which of these listed periods is to be excluded from the data set.
  • process 906 the day value is incremented, and in process 907 the selected day is checked to see if it has been incremented beyond the limit of seven, in which case each day of the week has been considered, indicating that data cleansing of the timeslot data has been completed. At this point the control is returned to process
  • Forecasts are normally generated for one week ahead, and forecasts are made for each day of the week. Thus, for example, forecasts are made for Mondays by considering known data for previous Mondays. Thus the processes 1002 to 1010 shown in Figure 10 are performed seven times, once for each day of the week.
  • a day counter is used to indicate which day of the week is currently being used as the basis for a forecast.
  • a question is asked as to whether less than 27 weeks' data is available. If this is the case, a special low data forecast model is used. If twenty seven weeks or more data is available, control is diverted to process 1003.
  • the data which is being considered is data for the total number of calls made on each day. Thus it is possible that the records for the data being considered will consist of up to two years " worth of daily records for total calls made.
  • process 1003 an attempt is made to fit the daily call total data against a
  • the result of process 1003 may indicate use of the ARIMA(0,1.1) model, use of a linear data model, use of a low data model, or use of an ARIMA( 1.0,0) model.
  • process 1004 a test is made to see whether a good match has been made with the ARIMA (0,1,1) model. If this is the case, the ARIMA (0,1,1) model is used to generate a forecast. If the match is not a good one. control is directed to process 1005, which interprets the results from the attempt to fit the ARIMA (0,1,1) model performed in process 1003, to see if a linear data model is more suitable.
  • control is directed to process 1006 which interprets the results from process 1003 to see if a low data model is suitable for performing a forecast. If this is not the case control is directed to process 1007.
  • process 1007 an attempt is made to fit the data against an ARIMA (1,0,0) statistical model, which is a similar process to that performed in process 1003.
  • process 1008 a check is made to see if a good match has been achieved with the ARIMA (1,0,0) model. If this is not the case, control is diverted to process 1009 where the results from 1007 are interpreted to see whether a linear data model would be more suitable. If this is not the case, control is diverted to process 1010 which assumes the use of a low data model as default.
  • Processes 1003 and 1007. which employ ARIMA statistical models, are available in the form of sub-routines from The Numerical Algorithms Group Limited. Wilkinson House. Jordan Hill Road. Oxford OX2 SDR. England. These sub-routines may be used to define circuit operations in the forecasting equipment 402. The sets of output conditions which are tested in processes 1004. 1005. 1006. 1008 and 1009 are performed by interpreting result conditions which are defined in the algorithm documentation also available from the Numerical Algorithms Group Limited at the above address.
  • a forecast of the number of calls made on each day in the forecast period will be made.
  • the process 704 for forecasting the number of calls is detailed in Figure 1 1.
  • a forecast is made using the selected model for the selected day in the next two weeks. Thus. for example, if the currently selected day is a Monday the forecast made in process
  • the forecast is made by applying the selected model to the known data, and extrapolating the known data according to the prope ⁇ ies of the model.
  • forecasts are made for Mondays by applying the selected model to data for previous Mondays.
  • Forecasts are made for Tuesdays by applying a (possibly different) model to data for previous Tuesdays.
  • process 1102 the average number of calls in each timeslot from the previous recorded thirteen instances of the currently selected day is calculated.
  • the results from process 1102 give the call distribution profile likely to occur on a particular day of the week. For example, the profile for Mondays is likely to be different from the profile for Fridays.
  • a forecast for timeslots within a day is generated by appo ⁇ ioning the daily total predicted in process 1101, in the profile that has been calculated in process 1102.
  • a forecast is made of the total number of calls using a statistical model, and a forecast is made of the relative distribution of the calls across a day in timeslots by appo ⁇ ioning the total number of daily calls according to the average number of calls from previously recorded instances of timeslots for the currently selected day.
  • process 1104 the day number is incremented to select the next day.
  • process 1 105 the day value is checked to see if all seven days have been forecasted.
  • Known queuing theory provides equations for calculating the probability of a customer waiting longer than a c ⁇ ain period of time, given a call arrival rate and a number of agents capable of handling incoming calls.
  • An equation of this type is shown in Figure 12A.
  • the "target” is a probability of ten percent that a caller will have to wait for more than 15 seconds before the call is answered.
  • the call arrival rate "r" required by the equation shown in Figure 12 A, may be derived by dividing the calls forecast by the time (i.e. timeslot length) in which they are expected to arrive.
  • the equation in Figure 12A treats the number of agents as a known quantity, with the probability of waiting greater than a ce ⁇ ain period of time as the unknown.
  • the problem which must be solved is the other way round: the forecaster 402 provides a call arrival rate and the scheduler needs to know how many agents are required to handle these calls in order to meet the target of ninety percent of calls answered within fifteen seconds. Unfonunately it is not practical to derive such a relationship from the equation shown in Figure 12 A, and an iterative search, or "binary chop" method for solving this equation is used.
  • the target probability is zero point one (0.1).
  • a target probability of zero point one corresponds to a ten per cent (10%) chance of a caller having to wait for a period greater than "t" seconds. Alternatively this may be viewed as a ninety percent chance that all calls , will be answered in less than or equal to "t" seconds.
  • MAXAGENTS in process 1401.
  • An initial calculation of the probability of waiting for greater than "t" seconds is performed in process 1402. with the maximum number of agents, n, available to handle calls as its input.
  • the probability is compared against the target probability of zero point one (0.1 ). If the target probability is not met with the maximum number of agents, clearly it is impossible for the target to be met at all. and this results in the system controller being alerted to a timeslot in which quality of service cannot be met. If the probability can be met by the maximum number of agents available it will be possible to perform the binary chop search successfully and determine the minimum number of agents which would meet the target.
  • the contents of two registers are defined, these two registers are called HIGHER and LOWER.
  • the contents of the register known as HIGHER define the upper limit of the range in which the numerical value of n that matches the target probability is to be found.
  • the contents of the register known as LOWER define the lower boundary of this range.
  • the end condition for the binary chop is defined by the point at which the values in the HIGHER and LOWER registers converge.
  • a test is made to see if the higher and lower registers are near enough in value to end the binary chop. If the HIGHER and LOWER registers are different by a value of one or less, this signifies the end of the search, and the current value for n gives the number of agents which best matches the target probability. If the HIGHER and LOWER registers have not converged, process 1406 diverts control to process 1407.
  • process 1407 the numerical range encompassed by the contents of the HIGHER and LOWER registers is calculated, and the next test value of "n" is defined as being half way through that range.
  • the probability of waiting for longer than "t” seconds is calculated, given input values of "n" agents, and call rate "r” for the period in which the rate of incoming calls is translated into required manpower.
  • process 1409 the outcome from the calculation in process 1408 is examined to see if it is greater than zero point one. which is the target probability. If the probability calculated in 1408 is greater than the target probability then the number of agents that are required must be between the current value of "n” and the contents of HIGHER. Thus in process 1410 the contents of register LOWER are set to the current value of "n". If the probability evaluated in process 1408 is less than the target probability, it is possible that too many agents have been used to meet the target probability. Thus in process 141 1 the range in which the minimum number of agents that match the target probability is redefined, by placing the value of "n” into the register HIGHER. Thus process 1411 redefines the range as between the current value of LOWER and the current value of "n”. After process 1410. or process 1411 , has been completed, control is diverted back to process 1406.
  • Tne probability calculation shown in Figure 12A and used in processes 1402 and 1408 is very sensitive to changes in the call arrival rate, which is directly calculated from the forecasted number of calls which are likely to arrive in a particular timeslot of the day.
  • the call arrival rate can be expected to change up and down throughout the fifteen or thirty minute duration of the timeslot. Due to the non-linearity of the equation shown in Figure 12 A, positive and negative variations in call arrival rate throughout the timeslot period do not tend to cancel each other out.
  • a range of call forecasts is identified and a plurality of forecasts within this range are translated, to produce a plurality of potential requirements. Weighted averages of these translated requirements are then considered, with reference to a normal distribution.
  • the probability of calls answered for a variety of call arrival rates centred on the forecast value are calculated, and the average of these is taken. Thirty points around the forecasted value, plus the forecasted value itself, are taken.
  • the average used is a weighted average, with the weights taken from a normal distribution curve.
  • a flow chart detailing processes 1402 and 1408 using perturbed values for call arrival rate is shown in Figure 15.
  • a register COUNT is set to the value one.
  • an accumulating register is re-set to zero.
  • the call arrival rate, "r" which is shown in Figure 12A is assigned to a value equal to the forecasted call arrival rate plus the product of an output from a look-up table PERT and the coefficient of variation. VAR. for the timeslot under consideration.
  • the look-up table PERT is indexed by the register COUNT, and thus the look-up table contains thirty-one locations.
  • the coefficient of variation, VAR. of the timeslot is calculated by dividing the standard deviation for the timeslot by the apportionment factor for the timeslot.
  • the apportionment factor for the timeslot is that which has been previously used in the forecaster 402 to apportion the forecasted daily totals to individual timeslots of the day. used in process 1103.
  • the perturbation of the call arrival rate "r" which is calculated in process 1503. will be correspondingly high.
  • the probability of waiting for greater than "t" seconds is calculated as previously described using the equation shown in Figure 12 A.
  • process 1505 the result from process 1504 is multiplied by a weighting factor, and the resulting product is added to the accumulator ' s contents.
  • the weighting factor which is used is given by a second look-up table
  • NORM which is indexed by the register COUNT.
  • process 1506 the value of COUNT is incremented, and in process 1507 the value of COUNT is checked to see if it has gone beyond the maximum value of thirty-one. If the value of COUNT is not greater than thirty-one, control is directed to process 1503, and the steps which have previously been described are performed again. If the value of COUNT is greater than thirty-one. control is directed to process 1508. In process 1508 the contents of the accumulator are returned as the value for probability.
  • the look-up table for perturbation amounts used in process 1503 is shown in Figure 16.
  • Each of the thirty one locations in the look-up table called PERT contain a number representing a magnitude of perturbation which may be added to a forecasted value.
  • the range of values stored in the look-up table represented in Figure 16 is multiplied by VAR and added to RATE in process 1503 in order to reflect the likely range of values resulting from variation of call arrival rate within a timeslot.
  • the look-up table NORM used in process 1505 is shown in Figure 17.
  • the value in each of the thirty-one locations of the NORM look-up table shown in Figure 17 correspond to the likelihood of a degree of perturbation indexed by the look-up table represented in Figure 16.
  • a large negative or positive perturbation is less likely to occur than a zero magnitude of perturbation, and this is represented by the distribution of values shown in Figure 17.
  • the distribution of values shown in Figure 17 is known as a normal distribution, which is known in statistical theory.
  • the NORM look-up table has specific amplitude values designed such that the sum of all the values in the thirty one locations of the look-up table is equal to unity.
  • the value calculated by accumulating thirty one products of calculated probabilities and looked up weighting factors represents a single probability in the same way as the probability which may be calculated without the use of a weighting factor.
  • the value returned from process 1508 has a probability value in the range zero to one.
  • the flow chart shown in Figure 15 defines operations which are carried out each time a probability is calculated in either of processes 1402 and 1408.
  • the best value of "n" resulting from the binary chop procedure shown in Figure 14 enables the forecasted number of calls in a given timeslot to be translated into a forecast of the number of active agent-stations required to handle calls in the timeslot.
  • the scheduler 404 shown in Figure 4 is arranged to receive a forecast for the number of active agent-stations required to handle calls in each timeslot of the day, and generates a set of attendance signals for activating agent-stations, controlling the automatic call distribution equipment 102 and a set of attendances for workers at one or a number of sites.
  • the operations performed by the scheduler 404 are summarised in Figure 18.
  • a first company site for which a schedule is to be generated is selected.
  • Two types of workers are taken into consideration in the present embodiment: firstly, fixed shift workers, whose start, end and break times are pre-determined: and. secondly, flexiworkers. whose start, meal break and end times may be variable within certain known restrictions. Scheduling of fixed shift workers is fixed, and so the work that these agents will be able to do is allowed for in the scheduling process at an early stage, so that flexiworkers may be assigned to the remaining estimated workload, in order to match the changing call arrival rate throughout different periods of the day.
  • process 1902 a calculation is made of the number of hours worked by fixed shift workers on the forecast day.
  • process 1903 a calculation is made of the number of hours worked by flexiworkers on each forecast day.
  • the number of hours worked by flexiworkers in a day is calculated by adding the total number of hours worked by all flexiworkers in a week and dividing by the number of days worked bv flexiworkers in a week. This gives a notional value for the number of hours worked by flexiworkers in a day, which may not be strictly accurate but will be a reasonably close approximation.
  • process 1904 the sums calculated in processes 1902 and 1903 are added together to give the total number of hours worked at a particular site on a particular day.
  • process 1905 a question is asked to see if any other sites remain for which the processes 1902 to 1904 must be performed. If the number of site hours worked in a day has been calculated for all sites, control is diverted to process 1906, where a calculation is made of the total number of hours worked on all sites within a day. Processes 1907, 1908 and 1909 form a loop for apportioning demand to sites. In process 1908 the proportion of the total forecast demand allocated to the site is calculated by dividing the product of the site hours and the forecasted demand for all sites divided by the total number of man hours worked at all sites. Once all sites have been apportioned a proportion of the demand total in this way, control is returned to process 1802 in Figure 18.
  • process 1802 the first company site is selected, and in process 1803 the first day of the week is selected.
  • the remaining processes 1804 to 1810 will be performed for each day of the week, and for each company site.
  • the balancing process 1812 will be performed once only for each company site.
  • the process for removing fixed shift workers 1804 is detailed in Figure 20.
  • process 2001 the first time slot of the day is considered.
  • process 2002 the number of fixed shift workers working during the first time slot is subtracted from the time slot forecast of agents required.
  • process 2003 the modified time slot forecast is recorded.
  • process 2004 looping is performed to ensure that all time slots in the day are calculated in this way. Once all time slots have been finished. control is returned to process 1805 in Figure 18.
  • the modified time slot forecast for each period of the day- defines the number of flexitime agents which are required to fulfil the demand for that time slot.
  • process 1805 for identifying a peak demand time shown in Figure 18 is detailed in Figure 21.
  • a search is performed on each time slot of the day to find out which of the time slots has the maximum forecast demand.
  • a test is made to see whether the time slot is closest to the beginning or end of the day. If the time slot with the maximum demand is closest to the beginning of the day, control is returned to process 1806 of Figure 18. If the time slot with the maximum demand is nearest to the end of the day.
  • process 2103 records this condition and modifies the configuration of the scheduler circuitry such that processes 1806 to 1810 shown in Figure 18 will proceed by working from the end of the day to the beginning of the day. This is achieved by indexing the time slot forecast with an inve ⁇ ed time value, such that in all other respects process 1806 to 1810 may operate as if working from the beginning of the day to the end of the day.
  • process 2201 the first time slot of the day is selected.
  • the actual first time slot which is used is dependent upon the decision made in process 1805. Thus if the peak demand time identified in process 1805 was nearest to the end of the day, the first time slot considered in process 2201 will in fact be the last time slot available for work during the day.
  • process 2202 the number of working agents is reset to zero.
  • control is diverted to process 1807, as no more agents are available to start work. If agents are available control is diverted to process 2204. where a question is asked as to whether the forecast demand is greater than the number of agents currently working in the considered time slot. If the demand is greater than the number of working agents, control is diverted to process 2205.
  • process 2205 a difference is calculated between the forecast demand and the number of agents which are currently working in the time slot.
  • this difference is compared against the number of agents available to start work. If the difference is greater than the number of agents available to start work control is diverted to process 2208. If the difference is not greater than the number of agents available to start work, new agents are identified to start work in the currently considered time slot. Thereafter control is diverted to process 2209.
  • process 2208 a condition exists that not enough agents are available to start work to cover the forecasted demand for the current time slot. Thus, all the remaining agents available to start work are assigned.
  • process 2209 a question is asked as to whether another time slot is available for consideration as a valid starting period.
  • Valid time slots for starting work are defined by the system controller, and typically this may provide a range of starting time slots between 8.30am and 10.30am in the morning (or 6.30pm to 4.30pm if time slots are being considered in reverse order as the result of a decision made in process 1805).
  • control is dive ⁇ ed from process 2209 to process 2203. whereafter the steps previously described are repeated. If there are no time slots left in the valid sta ⁇ period, process 2209 dive ⁇ s control to process 2210 in Figure 22B.
  • process 2210 the start times for the remaining agents are spread evenly across time slots in the valid start period. Thus, for example, if there are five time slots in the valid start period and five agents remain available to start work in that period after the processes of Figure 22A have been completed, one of the five remaining agents begins work in each of the five available time slots. On completion of process 2210. control is returned to process 1807 in Figure 18.
  • a notional end time is calculated by adding the start time, the average day length and the lunch time.
  • the average day length is calculated from dividing the number of hours worked by a flexiworker in the week by the number of days worked by the flexiworker in the week. Thus for example if a flexiworker works for a total of 36 hours in a week, and five days are worked within a week, an average day length of 7.2 hours is used.
  • the notional end time calculated in process 2301 will probably result in an end time which does not coincide with the end of a particular time slot.
  • the notional end time is adjusted to coincide with the end of an actual time slot period, in such a way as to minimise the divergence of the average number of hours worked by flexiworkers on each day of the week.
  • Each particular company site will have a period of the day during which lunch breaks may occur. Furthermore the duration of the lunch break for a particular site is also predetermined. Thus given that there will be a fixed number of time slots during which lunch breaks may occur and a fixed period of time for a lunch break, there will be a small number of start and end times for lunch breaks. For example, a site may have a lunch period beginning at 11.30am and ending at
  • a first possible lunch break may occur from 11.30am to 12.30pm, a second lunch break period may begin at 12.00pm and end at 1.00pm. a third from 12.30pm to 1.30pm, a fourth from 1.00pm to 2.00pm. and a fifth from 1.30pm to 2.30pm.
  • process 2401 the number of possible start times for lunch breaks at a site is calculated.
  • process 2402 the number of agents commencing lunch in each possible start time for a lunch period is calculated by dividing the workforce by the number of possible start times for lunch.
  • Re-allocating procedures of the scheduler are arranged to identify times during which the number of allocated active stations falls below a predetermined level. Under such circumstances, station active times are re-allocated so as to increase the number of active stations for these identified times, in accordance with the procedure identified as "stretching".
  • process 2502 the number of agents required is calculated as being equal to the forecast demand for the time slot where no agents have been allocated divided by 4.
  • process 2503 the start times of the number of agents calculated in process 2502 is delayed to the degree required to cover the time slots during which zero allocation has occurred. Thereafter control is returned to process 1810 in Figure 18.
  • Figure 18 is detailed in Figures 26A and 26B. So far schedules have been defined for agents answering telephone calls. However a company usually has requirements for training and off-line work such as correspondence, which must be taken into account when scheduling agents for call work. Any surplus in the number of agents on calls may thus be used for training or off-line work.
  • agents required at a predetermined time of day for training have their attendance records updated.
  • the system controller could have specified that two workers are required for a period of one hour between 2.00 pm and 3.00 pm on a particular day. In this case there is no scheduling to be performed, as the time when training is required is fixed precisely.
  • the scheduler removes these two agents from answering calls and assigns them to their training periods. This is performed automatically unless this results in a time slot during which no agents are available to answer calls. The scheduler will always ensure that at least one agent remains to answer calls.
  • variable training requirements are considered.
  • the system controller may specify that two people are required for training for a period of one hour at a particular time on a particular day.
  • agents are allocated training times from time slots where there is a surplus of agents answering calls. If there is no time slot during which there is a surplus, agents are assigned to their training period for minimum impact on the percentage of calls answered.
  • the scheduler ensures that at least one agent remains to answer calls during each time slot.
  • the allocation of correspondence work to agents is more complex than that required for training, as the correspondence requirement may be specified in man hours, rather than time required for a particular agent.
  • the number of man hours required for correspondence is defined.
  • the first correspondence time slot is selected for consideration. The system controller will have defined a period of time during the day when the correspondence may be performed, for example from 2.30 pm to 6.00 pm.
  • a question is asked as to whether there is a surplus of agents answering calls in the currently considered time slot. If this is the case the surplus manpower is allocated to perform correspondence, reducing the previously calculated number of man hours required for correspondence by the appropriate amount.
  • the remaining number of man hours required to be allocated for correspondence is checked to see if this value has been reduced to zero. If this is the case, allocation for correspondence is completed and control is returned to process 181 1 in Figure 18.
  • process 2608 a check is performed to see if another co ⁇ espondence time slot is available in the day. If this is the case, control is diverted to process 2605 and the steps previously described are repeated. If another correspondence time slot does not exist, process 2608 diverts control to process 2609. where the first correspondence time slot of the day is selected.
  • one agent performing calls is assigned to perform correspondence, reducing the number of man hours remaining for allocation for correspondence by an appropriate amount.
  • Process 2601 also performs a check to ensure that at least one agent remains for answering calls. In process 2611 a check is performed to see if all co ⁇ espondence has been accounted for.
  • steps 2609 to 2612 are performed iteratively until all co ⁇ espondence has been assigned. It is possible that this process may fail, for example when more co ⁇ espondence man hours are required than there are agents to answer calls in the co ⁇ espondence period. However, given usual working conditions, this situation should not occur frequently.
  • process 1811 in Figure 18. a check is performed to see if all days have been considered in the scheduling processes so far described. If another day remains for scheduling, control is diverted to process 1804. and steps 1804 to 1810 are performed again. If all days have been considered, control is diverted to process 1812.
  • the process of balancing 1812. shown in Figure 18, is summarised in Figure 27 A.
  • process 2701 timeslots before the morning peak and after the afternoon peak, in every day of the week, is examined to see whether it contains a deficit or a surplus of agents answering calls. Scope for balancing exists if there is at least one period of surplus and one period of deficit. If this condition is not met control is returned to process 1813 of Figure 18. If this condition is met. the balancing process may be performed.
  • a first surplus period is selected for consideration.
  • a first deficit period is selected for consideration.
  • conditions are examined to see if it is possible to move an agent resource unit from surplus to deficit and if this is the case, attendance records are updated accordingly.
  • process 2705 a check is made to see if another deficit is available for consideration. If another deficit exists control is diverted to 2704. which is repeated for the new deficit period with the previously selected surplus period. If all deficit periods have been considered control is diverted from process 2705 to process 2706.
  • processes 2702 to 2706 form a nested loop which enables each surplus period to be matched with each deficit period, in order to see if it is possible to move an agent resource unit from surplus to deficit, and thus achieve a better balance of manpower resources.
  • process 2704 of checking and moving an agent resource from surplus to deficit is detailed in Figure 27B.
  • process 2701 a question is asked as to whether the surplus is in the morning or in the afternoon. If the surplus is in the morning control is dive ⁇ ed to process 271 1, where a question is asked as to whether a station has been scheduled to become active in the surplus period. If there is no- one starting work in the surplus period control is returned to process 2705 in Figure 27A. If someone is starting work in the surplus period, process 271 1 diverts control to process 2713, where a question is asked as to whether a deficit exists in the morning or afternoon. If the deficit is in the morning, control is dive ⁇ ed to process 2714.
  • process 2716 a set of conditions exist which make it possible to transfer one agent resource unit from a surplus period to a deficit period. For example an agent may be assigned to start work half an hour later than had previously been determined, because the time slot in which that agent had previously been assigned to start work contained a surplus of agents answering calls.
  • processes 2710 to 2715 identify a condition in which a shifting of the start or end time of an agent ' s working dav mav be used to remove a surplus, and a shifting of the agent ' s starting or ending time at another point in the week may be used to counterbalance a co ⁇ esponding deficit.
  • the scheduler 404 supplies electrical signals to the automatic call distribution equipment 102 defining the schedule for a pa ⁇ icular day. in terms of which of the agent- stations to which it is connected are active in each timeslot. Signals are also supplied to the agent-stations, and agents are notified of their schedule a week in advance.
  • an agent provides an indication to the automatic call distribution equipment 102 to define his or her agent-station as being active, without electrical signals being directly sent from the scheduler 404 to the automatic call distribution equipment 102.
  • the apparatus that has been described additionally includes means for forecasting off-line work.
  • different types of calls and off-line work may be specified. For example customer complaints and customer bills are two possible types of off-line co ⁇ espondence which may be received at a site. Forecasting and scheduling of different types of work is performed so as to optimise the use of several types of agents, which may include agents having the ability to perform more than one type of call or off-line work.
  • the second embodiment includes the ability to forecast and schedule multiple call queues.
  • the automatic call distribution equipment 102 may be arranged to receive calls on two different numbers, such as " 150" and "151 ". and to divert these to active agent-stations manned by agents having skills appropriate to dealing with a particular type of call.
  • Forecasting and scheduling for a number of call queues and types of off-line work (called off-line queues), is a considerably more complex task than that performed by the forecasting and scheduling apparatus which has previously been described.
  • the solution is known as Integrated Resource Management, integrating as it does multiple telephone answering and off-line forecasting and scheduling.
  • the forecaster 402 shown in Figure 4 provides a forecast for different types of off-line correspondence.
  • the data store 401 contains records for daily totals of different types of off-line work.
  • Each item of off-line co ⁇ espondence which is received on a particular site on a particular day is categorised, and recorded as a single item in the forecasting records.
  • off-line correspondence is recorded in terms of the number of items of a particular type of off-line co ⁇ espondence which arrive on a particular day; and a forecast is made in the same terms.
  • Each of several off-line queues is forecast in the same way. Daily totals of a particular type of off-line correspondence are recorded over a period of up to two years. There is one off-line data series for Mondays, one for Tuesdays, one for Wednesdays and so on. At least five days ' worth of data in each of these series is required in order to make a valid forecast. If less than five days data are available the system controller is alerted to this condition, and if necessary arbitrary data may be used in order to make a forecast possible.
  • Each of these different types of work is identified as a queue.
  • Each off-line work queue co ⁇ esponds to a type of co ⁇ espondenc ⁇ which might be expected by the company in the course of a day ' s work, for example. customer queries, complaints or bills.
  • Up to two years of daily totals for each type of queue are available to perform a forecast of the likely level of work demanded by a particular queue at some point in the future.
  • forecasting may be performed by the forecaster 402
  • it is necessary to perform data cleansing it is necessary to perform data cleansing.
  • Steps for data cleansing are summarised in Figure 28.
  • unusual or e ⁇ oneous data is identified.
  • process 2855 data items which have been identified in this way are re-calculated by a process of interpolation between known acceptable values in the data series.
  • an output data series is generated which may then form the basis for an accurate forecast.
  • process 2851 all zero values from the daily totals of queue activity are identified and excluded. Zero values can either be the result of the office being closed on the day. or from the data having been lost. In either case the data is not suitable for use in forecasting.
  • Bank Holidays are excluded from the daily totals. Bank Holidays may be identified with reference to a database structure implemented in the forecasting equipment. Bank Holidays may occur on different days in different countries, and this must be reflected in the records. The data recorded on a Bank Holiday is unlikely to be representative of the same day when it is not a bank holiday, for example a May Day Bank Holiday Monday is unlikely to contribute meaningfully to the data series of other Mondays which are normal working days.
  • Such days may be ones where an unusually large or small amount of off-line work has occu ⁇ ed. For example an unusually large amount of co ⁇ espondence may be received in a repair co ⁇ espondenc ⁇ queue immediately after a storm or other bad weather. In such cases the data recorded for the day will not be representative of JJ what is likely to happen in the forecast week (since neither event is predictable in the future) and so should be excluded from the data series used for forecasting.
  • Figure 29 This differs from that described for the previous embodiment in that a difference series is used.
  • process 2951 a differenced series is generated from the original data series.
  • the differenced series is generated by considering each daily total in turn, and recording the difference between consecutive daily totals.
  • the first item in the differenced series will be the result of subtracting the first item of the original series of daily totals from the second item in the original series of said totals.
  • the second item in the differenced series will be the result of subtracting the second item in the original series of daily totals from the third item in the series of daily totals, and so on.
  • the next step is to calculate the mean of the differenced series, and this is represented by the equation shown in process 2952.
  • the standard deviation of the differenced series may also be calculated. using an equation which is shown in process 2953.
  • process 2954 the differenced series is examined and compared against range values calculated from the mean and standard deviation values which were computed in processes 2952 and 2953. in order to identify outliers in the original data series.
  • the rules which are applied to determine which of the original data series is an outlier are summarised in Figures 30 to 32. In Figure 30 full rules are given, which may be applied when the item in the data series is neither the first nor the last item. In the first rule the currently considered data item in the differenced series is compared against the value of the mean plus two times the standard deviation.
  • the missing value is replaced by a value computed using the cubic spline method.
  • the cubic spline method which is implemented are provided in two commercially available sub-routines from the Numerical Algorithms Group.
  • the two routines which are "E02BAF" and "E02BBF".
  • the sub-routine E02BAF computes a weighted least-squares approximation to the data points by a cubic spline method.
  • the sub-routine E02BBF computes the value of the missing value using this approximation.
  • These sub-routines may be used to define the operation of forecasting circuitry. Documentation for these sub-routines is available on request from The Numerical Algorithms Group Limited. Wilkinson House. Jordan Hill
  • the cubic spline method requires that the four closest non-missing values are identified on each side of the missing value. These points are numbered according to where they fall in the series of values eg. 4, 5, 7 and 10 and these numbers. along with the values themselves and the position of the missing value to be estimated, are fed into the process. The process is to fit a series of cubics to the valid points and then to use this series to estimate the missing value.
  • This mean is calculated using four values near to the missing one. These four values should be chosen as the first two non- interpolated values preceding the missing value and the first two non-missing values that follow the missing value. Where there are fewer than four non-missing values in the weeks after the missing value, and these values have not been replaced using the method for replacing the missing values at the beginning of the data series, missing values are replaced using a forecasted value.
  • the method used for forecasting is identical to that used in making a true forecast for one week ahead, as will be described later on.
  • the data series to be fed into the process will be the series of values up to and including the value immediately preceding the missing value.
  • the previously interpolated values are included in the input. If it is necessary to estimate more than one value by this method then for the second missing value the forecast value for the first missing value is included in the input data.
  • the forecasting method for off-line work differs from that used for forecasting the number of calls.
  • the forecasting method is a bounded variation of
  • Boundaries are imposed upon the forecast such that a maximum and a minimum level are defined, in order to prevent impossible or unlikely forecasts being made by extrapolating a data series, which has trend, too far in the future.
  • process 3302 a data series is computed for levels and trends L(m and T(m). which are used in the forecasting equations.
  • Process 3302 requires as its input the new values calculated for alpha and beta in process 3301.
  • a forecast is performed using the values for alpha, beta.
  • the process 3301 for computing smoothing constants alpha and beta, shown in Figure 33. is detailed in Figures 34, 35 and 36.
  • Figure 34 several values are initialized in lines 3401 to 3405.
  • the first value L(l) in a series of values known as "levels" is initialised to the first value Items(l) in a series of values representing the number of items received for off-line work on a particular day and of a particular type.
  • L(l) represents the level measured at the first day in the current data series being considered, which for example may be a Monday.
  • L(2) would represent the level measured on the Monday in the subsequent week.
  • the level for the current week in the series would be represented by the term LU04).
  • the same indexing methodology is used to denote the series of Items(m) and T(m).
  • the trend for the first week of the currently considered data series is set to zero.
  • the value for alpha is set to an arbitrary initial value of the zero point one (0.1).
  • the value for beta is also set to an arbitrary value of zero point one (0.1).
  • the value of a variable "m" is set to the value 2. The value of m is used to index the calculations performed in lines 3406 to 3409 for each of the recorded weeks in the data series.
  • level values are calculated, given an input of a previous level value, a previous trend value and the value for alpha.
  • the trend series values are calculated given previous values for level, a previous value for the trend and a known value for beta.
  • a test is performed on the value of the trend calculated in line 3407, to see if this is less than a particular threshold value. in which case a lower boundary is placed upon the trend.
  • T(m) may be calculated. This process is summarised in Figure 35.
  • a variable ESS is set to zero. ESS will provide a running total of the accumulated forecast errors. ESS is an acronym for "E ⁇ or Sum of Squares".
  • the variable m is set to a value of one.
  • a variable n is set to a value of 1 also. The n variable is used to indicate the number of weeks in the future for which a forecast is being made.
  • the value of n remains unchanged, as forecasts made for a week in the future at each instance of recorded observations will be compared against the known data for a week in the future.
  • Lines 3504 to 3508 are looped for each week for which the data series is valid.
  • a test is made to see if the trend for the cu ⁇ ently considered week is greater than or equal to zero. If this is the case a forecast is made using the equation shown in line 3504. If the cu ⁇ ently considered trend is less than zero a different forecast equation is used, which is shown in line 3505.
  • the equation shown in line 3505 has a lower boundary limit, such that a forecast made for a large number of weeks in the future will tend towards a minimum value of half the series level at the time the forecast is made.
  • the equation in line 3504 is a ⁇ anged such that forecasts made a long time in the future will be limited to a ceiling of twice the series level at the time the forecast is made.
  • the forecasting equations shown in lines 3504 and 3505 provide a ceiling and a floor in order to prevent unlikely or impossible forecasts from being made.
  • the equations shown in lines 3504 and 3505 constitute a bounded variant of the statistical technique known as Holt ' s method.
  • the forecasted value calculated in line 3504 or line 3505 is subtracted from the known recorded observations for Items(m+1).
  • the e ⁇ or measured for the cu ⁇ ent instance of the forecasted data series is squared in order to remove any negative quantities, and added to the sum of e ⁇ ors squared ESS.
  • the value of m is incremented, and at line 3509 this value is checked to see if all valid weeks have been considered.
  • the value of ESS provides an indication of the accuracy with which forecasts have been made for the currently selected values for smoothing constants alpha and beta.
  • An initial assumption for the alpha and beta values was made in lines 3403 and 3404 of Figure 34.
  • the steps shown in Figures 34 and 35 are performed for a sequence of alpha and beta values, which are summarised, with example values, in the table shown in Figure 36. Values for alpha range from zero to one in steps of point one (.1), and these are compared against values for beta, also ranging from zero to one in steps of point one (.1).
  • Stepping through values of alpha and beta with an increment value of zero point one (0.1) enables an area within the grid to be selected for further searching at a greater accuracy of grid intervals of 0.01 or 0.05.
  • Stepping through values of alpha and beta with an increment value of zero point one (0.1) enables an area within the grid to be selected for further searching at a greater accuracy of grid intervals of 0.01 or 0.05.
  • the subsequent search can be made to a grid interval of zero point zero one (0.01) in order to give a much greater accuracy for selected values of alpha and beta. If there are fewer than ten weeks data with which to estimate the smoothing constants, it is not worth using a fine grid interval of zero point zero one (0.01 ): a grid interval of zero point zero five (0.05) will suffice.
  • a first and second grid search is performed in order to select the values for alpha and beta for which a minimum ESS value is produced.
  • process 3301 shown in Figure 33 is completed, and new levels and trends for the data series may be calculated in process 3302.
  • Process 3302 is represented in detail in Figure 37. The steps shown in Figure 37 are the same as those shown in Figure 34, except that the values for alpha and beta will have been calculated previously to a high degree of accuracy in process 3301.
  • the forecast is made using the values for alpha, beta. L(m) and T(m. which have been computed in processes 3301 and 3302.
  • Figure 38 details the equation used to provide a forecast for n weeks in the future when the trend for the current week ' s data is positive.
  • Figure 39 details the equation used to provide a forecast n weeks in the future where the trend is negative.
  • the equations shown in Figure 38 and 39 are the same as those used in lines 3504 and 3505 shown in
  • each type of off-line co ⁇ espondence work is considered as a queue.
  • the first off-line queue is selected for forecasting.
  • the first day (which is a Monday) is selected for forecasting.
  • a forecast is made of the number of items which wiil arrive on the forecast day. The forecast is made using the variant of Holt ' s method which has previously been described. Thus, for example, a forecast is made of the number of letters of a particular type which are expected to a ⁇ ive on the day which is considered.
  • process 00 ⁇ the number of items forecast in process 4003 is multiplied by the average handling time for the queue which is being considered.
  • process 4005 a test is made to see if another day remains to be forecast.
  • process 4006 a check is made to see if another queue requires forecasting. This concludes the steps required for forecasting off-line work.
  • process 4101 a check is made to see if more than twenty-six weeks data is available for input to the forecasting process. If twenty-six weeks or less data is available control is diverted to process 4107, where a low data forecast is performed. If more than twenty-six weeks data is available control is diverted to process 4102. where an attempt is made to fit an ARIMA (0.1,1) statistical model to the data.
  • process 4103 where an attempt is made to fit an ARIMA (1.0.0) model. Only two outcomes are possible from process 4103. It is possible that the model will fit sufficiently well that a forecast may be performed, or alternatively the ARIMA (1,0.0) will fail to fit the available data series. In the latter case control will be dive ⁇ ed to process 4104, in which the system controller will be prompted to identify whether or not there has been a change in growth in the data series that is being used as the basis for the current forecast.
  • the data series is presented in the form of a graph, for example on a visual display unit connected to the forecasting equipment 402. If the system controller fails to identify a change in growth over the period for which data is available, control is directed to process 4107. in which a low data forecast is performed. If the system controller identifies that a change in growth has occurred, control is diverted to process 4105. In process 4105 the system controller is further asked to try and establish which is the first week of data that was affected by the change in growth. If the system controller cannot identify the week that was first affected, then an assumption will be made that it is the week twenty-seven weeks in the past, relevant to the present data. The reason for choosing twenty-seven weeks is that this is the minimum number of weeks required to perform a forecast using one of the ARIMA statistical models in processes 4102 and 4103.
  • the system controller is able to identify the first week affected, then it will be necessary to work out what would be the effect of creating a new data series starting with this week as the first week in the data series, and going to the most recent week of available data. If this would result in twenty-seven or more weeks ' data being in the series then a new series is created. If this would result in fewer than twenty-seven weeks ' data, then the new data series is created containing the most recent twenty-seven weeks " worth of data.
  • the next step is to repeat the data cleansing process which has already been described, and this is represented in process 4106. It is then possible to attempt to refit the ARIMA (0,1,1) model in process 4102 and the procedure repeats as has already been described for fitting of the various statistical models summarised by the steps shown in Figure 41 (but excluding processes 4104. 4105 and 4106. as these can only be performed once).
  • Processes 4102 and 4103. in which ARIM ⁇ statistical models are compared with the data series, are performed using a combination of operations which are defined in sub-routines available from The Numerical Algorithms Group (address given above).
  • the routines that are used are tailored versions of standard routines available from The Numerical Algorithms Group Limited.
  • the routines are: gl3aac. gl3abc. gl3adc, gl3afc and gl3ahc. Documentation detailing the use of these routines to implement ARIMA (0.1,1) and ARIMA (1.0.0) statistical models is available from The Numerical Algorithms Group Limited.
  • the low data forecast in process 4107 in Figure 41 is implemented by calculating, for each day of the week separately, the mean value for the number of calls received on the given day of the week. This mean value is then rounded to an integer and is supplied as an electrical signal at the output of the forecaster 402.
  • the linear forecast 4108 is used when the sub-routine gl3aac. in attempting to fit the ARIMA (0,1,1) model fails to run successfully and terminates with a special set of output conditions indicating that the use of a linear forecast would be appropriate. This case arises when the data lies on, or very close to, a straight line and the sub-routine is. unable to complete one of its intermediate calculations.
  • the linear forecast used instead of the ARIMA model uses the fact that the data is on a straight line to produce its forecast.
  • the equation used is such that the forecast is made by adding on to the most recent value an estimate of the change in the number of calls that arrive in the period between data observations.
  • This estimate is calculated by calculating the difference between the most recently observed daily total for the day on which the forecast has been made, and the earliest observation for data on the same day. and dividing this by the number of weeks for which recorded observations are available.
  • the ARIMA (0,1.1) model produces forecasts which are on a straight line. This line can be modified to be a curve asymptotic to a predefined ceiling or floor, so that long range forecasts are sensible.
  • the unbounded forecast for n periods ahead is given by the equation:
  • FORECAST L ⁇ n.G (i.e. the one period ahead forecast is given by L+G and the two period ahead forecast by L+2G and so on).
  • L -and G are produced by performing an unbounded forecast for one period ahead and two periods ahead.
  • L is given by twice the one week ahead forecast minus the two week ahead forecast, and G is given by subtracting the first of the forecasts from the second of the forecasts. Given these values for L and
  • the bounded linear forecast again uses the equations shown in Figure 42.
  • the values for L and G are readily available as a result of performing an unbounded linear forecast. Whether used for the ARIMA (0.1.1 ) or linear forecasts, the equations given in Figure 42 result in an upper and a lower boundary of one point five ( 1.5) and zero point five (0.5) times the value of L.
  • This ratio is the adjustment factor to be applied to the number of calls which are being forecast for the cu ⁇ ently considered Bank Holiday or Bank Holiday affected day in the future.
  • the forecast for a Bank Holiday or Bank Holiday affected day is the forecasted number of calls multiplied by the adjustment factor.
  • the new forecast number is rounded to the nearest integer before being used as forecast data.
  • the scheduler 404 uses information supplied by the forecaster 402 (off-line forecasts) and translator 403(online/call queue forecasts) in order to generate a schedule of active agent-stations, and an attendance record for agents working at those stations.
  • system controller In addition to the number of agents required to handle calls and off-line work, the system controller is able to specify other types of work, known as indirect work (i.e. training), for which it is assumed that the system controller will have supplied, for each time slot of indirect work that is to be scheduled, information from which the number of agents involved may be derived, and information on the length of time involved.
  • indirect work i.e. training
  • the system controller may also define the day of the week when the work is to be scheduled and also the time of day.
  • indirect work will be in the form of training for agents.
  • the procedures performed by the scheduler 404 shown in Figure 4 are summarised in Figures 43A and 43B.
  • the scheduler will generate a schedule of active agent-station requirements at each company site and the weekly attendance pattern for every agent. At all times the scheduler 404 aims to minimise and proportionally distribute any excesses or shortfalls in work.
  • the problem that the scheduler addresses has no obvious starting point since it is not possible to say when you need to schedule someone to attend until you know when the work is to be done; but for off-line work such as co ⁇ espondence the time at which it is to be done may not be known.
  • the scheduler 404 chooses as its starting point to make assumptions as to when people are to be working, and then notionally divides the work across company sites in proportion to the amount of agent time available on each site. Once this has been done it is possible to create a work demand profile for each time slot of each day in the week. This in turn allows the individual attendances to be fixed. Having done this it is then possible to review the results to see if they can be improved.
  • FIGS 43A and 43B In process 4301 a notional allocation of forecasted call work is made to each site. In order to do this, assumptions have to be made about how much work will be done on each site. This is complicated by the fact that certain call queues may be networked across several sites. In processes 4302 to 4305 work is notionally allocated within each site to a specific day of the week.
  • process 4310 Having made an allocation of work to each day of each site the next step is to make an allocation of work to time slots within each of the days. This is performed in processes 4306 to 4310.
  • a profile will have been generated for the work demand for each time slot of the day, for each day of the week and for each site that includes all the work that has to be dealt with by the scheduler 404.
  • process 431 1 start and end times of each agent ' s attendance are determined, along with the timing of each meal and non-meal break.
  • process 4312 the work demand allocated in processes 4306 to 4310 is allocated to the attendances which have been determined in process 4311. At the end of process 4312 an initial set of attendances has been created.
  • the remaining processes, shown in Figure 43B, are a series of checking and balancing strategies for optimising the initial set of attendances generated by the steps shown in Figure 43 A.
  • the first of these steps is to check to see that the agent attendances cover all the time slots when the office is open. This process is called stretching, and is represented in process 4313.
  • the next step is to check that the attendance pattern that results from the individual attendances is consistent with a set of tolerances which have been supplied by the system controller. These tolerances define the amount by which it is permissible to underachieve the quality of service target. This is represented in process 4314.
  • Processes 4401 to 4406 shown in Figure 44A are performed on a weekly basis, and processes 4407 to 4415. shown in Figure 44B. are performed on a daily basis. In process 4401 the total weekly off-line commitment, measured in agent hours. is calculated for each site.
  • process 4402 a calculation is made of the total indirect work commitment, again measured in agent hours, for each site across the week.
  • a typical example of indirect work is training, where an agent will be specified to do a certain amount of training work within the week.
  • the calculation performed in process 4402 is the product of the number of people required and the length of the indirect session. The result of this calculation is denoted "B".
  • a calculation is performed for each site in which a sum is made of the agent hours required for all the forecast caller work in time slots when only that site is open. This is a sum of the product of the forecast number of agents multiplied by the length of the forecast time slot. The result of this calculation is denoted "C".
  • process 4404 a calculation is made of the total amount of off-line, indirect and call work commitment for each site by calculating the sum of A+B ⁇ C. which are defined in processes 4401. 4402 and 4403 respectively. The result of this is called "D".
  • process 4405 a calculation is made of the total number of agent hours available at each site within the week. This calculation is performed with reference to a database containing details of the type of contract which is associated with each agent. A number of different types of contract exist. These are: fixed shift 1 , fixed shift 2. fixed shift 3, fixed shift 4 and flexible agents. The differences between these five types of contracts will be explained later, where they become significant. The result of process 4405 is denoted "E”.
  • process 4406 a calculation is made for each site of the proportion of the total number of hours that are available for call work. This is calculated with reference to the results of process 4404 and 4405. The result of this is called "F”.
  • Processes 4407 to 4413 shown in Figure 44B are performed in order to create for each site a profile of the number of agent hours required to deal with call queue work on each day of the week.
  • a calculation is performed for each site and for each day of the number of agent hours available per call skill (agents having a particular skill will be able to deal with a particular call queue; skills are associated with queues). For agents who possess more than one skill the hours are split equally between the skills of the agent.
  • the spare days for each agent are allocated in such a way that the spare days are equally distributed over the week. For example in the case of agents working five days out of Monday to Saturday a first agent is allocated Monday as a spare day, a second agent is allocated Tuesday as a spare day etc.. until all agents have been considered. If there are more agents of this type than days in the week, this process is continued with Monday again once the last day of the week has been reached.
  • the result of process 4407 is denoted "G”.
  • process 4408 a calculation is made of the remaining number of agent hours at each site for each queue on each day by multiplying F (the result of process 4406) and G (the result of process 4407) This result is called "H".
  • process 4409 the number of agent hours for each call skill across all sites is calculated. This is equal to the sum of the values generated by process 4408 for each site. The result of this calculation is called "J".
  • process 4410 a calculation is made of the proportion of agent hours available for each call queue at each site. This is made by dividing H by J. and is called "K".
  • process 4412 a calculation similar to that made in process 441 1 is carried out, except that time slots in which only one site is open are considered. The result of this is called "M".
  • process 4414 the values of N calculated for each site, day and queue are multiplied by co ⁇ esponding values of K to give the proportion of the total calls for each queue which will be handled by each site. The result of this calculation is "O”.
  • a similar calculation of apportionment is performed in process 4415. with the exception that the total calls for all queues are used (the values for N summed across queues). This calculation is denoted "P", and represents the apportionment of all calls to each site for each day.
  • the aim of process 4302 is to add any pre-allocated indirect work (i.e. training) to the number of agent hours required to deal with call work on each day of the week.
  • pre-allocated work is defined as indirect work that has been specified to occur on a given day but not necessarily within particular timeslots.
  • Process 4302 shown in Figure 43 A is detailed in Figure 45.
  • process 4501 a calculation is made of the total number of agent hours required to do indirect work which has been specified to be performed on a particular day. Thus a total "R" for each day of the week worked on a particular site.
  • Each calculation is performed by adding the amount of indirect work specified to particular time slots on a particular day and the amount of indirect work specified to a particular day but not a particular time slot.
  • process 4502 a calculation is made of the number of agent hours required at each site for calls and specific indirect work on each day.
  • a total "S” is generated by adding R ⁇ P for each day of the week on each site.
  • control is diverted to process 4303 shown in Figure 43A.
  • the aim of process 4303 is to calculate the maximum number of agent hours available on each site on each day. This calculation is performed by referring to a database of agents, detailing the type of contract which each agent works. Using this information it is possible to generate a value "T" for the maximum number of agent hours available to each site on each day.
  • the timing of the meal breaks can either be fixed or variable for each day of the schedule period.
  • the fixed meal break rules are described in the day specific rules below, while the variable meal break rules are described in the week specific rules. Only one of these options can be applied to an agent in a schedule period.
  • Day Specific Rules For each fixed shift 1 agent within an attendance pattern, the followin'-i details will be fixed by the user for each day of the week: Stan time of attendance for each day of working. End time of attendance for each day of working. Stan time of meal break for each working day. End time of meal break for each working day.
  • the following rules will apply to all fixed shift 1 agents within an attendance pattern for the duration of the schedule. The exact values may differ for each agent in the attendance. These rules allow the scheduler to decide the timing of the breaks in order to match demand as closely as possible: earliest and latest an agent may be scheduled a lunch break, the minimum and maximum time that a person can work, from the start of an attendance, before a non-meal break is scheduled (in hours), and the minimum and maximum time that an agent may work between breaks.
  • the length of the working day The days on which attendances may be scheduled.
  • the number of post-meal non-meal breaks to be scheduled The length of non-meal breaks to be scheduled.
  • Week Specific Rules For each fixed shift 2 agent it is for the scheduler to decide the following details of their attendances.
  • the agent's starting time The agent's starting time.
  • the agent's finishing time The number of days that the agent is to be scheduled to work.
  • the specific values for each of these rules will be supplied by the user. These last two rules can be made optional by setting the minimum to be zero and the maximum to be large e.g. 24. The specific values for each of these rules will be supplied by the system controller.
  • the number of hours that have to be worked in a day before the agent is entitled to a meal break The length of the meal break to be scheduled.
  • the number of days that the agent is to be scheduled to work is the number of days that the agent is to be scheduled to work.
  • the earliest and latest an agent may be scheduled to start work.
  • the earliest and latest an agent may be scheduled to end work.
  • Week Specific Rules For fixed shift 4 agents all the details of the attendance, including all meal and non-meal breaks are fixed by the system controller for each day of the week. Week Specific Rules:
  • the number of meal breaks per attendance (0, 1 or 2); this value is constant for each day of the week.
  • the agent's starting time The agent's finishing time. The number of days that the agent is to be scheduled to work.
  • the timing of the agent's meal break The timing of non-meal breaks.
  • the scheduler may fix these things, the following rules will apply to all flexible agents within an attendance pattern for the duration of the schedule. The exact values may differ for each agent in the attendance pattern.
  • non-meal breaks can be optional by setting the minimum to be zero and the maximum to be large e.g. 24.
  • the length of meal break will be defined. In some cases it may be possible for there to be more than one possible length, and in these circumstances the system controller will define the number of meal breaks and the proportion of the agents that are to be allocated to each one.
  • process 4303 The purpose of process 4303 is to distribute a site's off-line commitment over the whole week, while ensuring that all work is completed on time and that no more than a maximum amount specified by the system controller is carried forward into the next week.
  • a calculation is made of the number of agent hours required to perform work for each off-line queue on the day of consideration.
  • a value W is calculated by subtracting MINALLOC from the total number of agent hours free for off-line work on the day under consideration.
  • a queue with the shortest lead time is selected.
  • Each off ⁇ line queue has an associated lead time.
  • an off-line queue for dealing with customer complaints may have a lead time of two days, another off-line queue may have a lead time of one day. If there is more than one queue with the shortest lead time, the queue is chosen arbitrarily.
  • "W" is allocated to the queue selected in process 4605.
  • the number of man hours required to perform work for the queue under consideration is reduced, preferably to zero, by removing a corresponding number of agent hours from the value of "W". This may result in reducing "W" to zero, in which case the queue under consideration may not have enough agent hours allocated to it in order for it to be completed.
  • process 4607 the value of "W” to checked to see if it is zero. If the value of "W” is zero, control is diverted to process 4611 in Figure 46C. If the value of "W” is not equal to zero, control is diverted to process 4608. In process 4608 a check is performed to see if all off-line queues have been considered on the day in question.
  • control is diverted to process 4605. If all off-line queues have been considered on the day under consideration, control is directed to process 4609. In process 4609 the next day is selected. In process
  • process 4610 a check is made to see if all days in the working week have been considered. If more days exist, control is diverted to process 4603. If all days have been considered, this concludes the process of distributing a site ' s off-line commitment over the whole week.
  • process 4611 a question is asked as to whether all queues with a lead time of one day or less have been considered. If they have been considered, control is diverted to process 4613. If other queues with lead times of one day or less remain to be considered, control is directed to process 4612.
  • process 4612 the value of MINALLOC is re-calculated using the equation shown.
  • the remaining work is equal to the sum of the remaining work within each queue having a lead time of one day or less.
  • the number of days analyzed includes the current day (i.e. when considering Monday, the number of days analyzed equals one. and when Tuesday, the number of days analyzed equals two).
  • Control is thereafter diverted to process 4602, and processes 4603 etc. are repeated using the new value for MINALLOC.
  • process 4613 the next day is selected.
  • process 4614 a check is made to see if all days have been considered. If all days have not been considered, control is directed to process 4603.
  • the amount of off-line work that may be carried forward into the next week is defined by the system controller. For example, an item in a queue with a lead time of two days which arrives on a Friday may be dealt with on Saturday or on the Monday of the following week. In this way items from queues having different lead times and which arrive on different days may have lead times which overlap and thus contribute to the total amount of work which h?s to be done by the end of a particular day.
  • control is directed to process 4617, where the amount of remaining off-line to be carried forward is recorded. Thereafter control is redirected to process 4305. If too much work remains to be carried over into the next week, control is directed to process 4616. where MINALLOC is re-calculated using the equation shown.
  • Figures 46B and 46C represent an iterative sequence which attempts to balance the distribution of a site ' s off-line commitment over a week, by initially considering ideal values, and gradually reducing these until the commitment has been met.
  • each site ' s undetermined indirect work is allocated to the day on which it will have the least impact.
  • An example of undetermined indirect work is a training session which has been specified for a period of time, for example three hours. occurring anywhere within the working week.
  • process 4305 of allocating undetermined indirect work at each site into days is detailed in Figure 47.
  • process 4701 the quantity of work in each undetermined indirect queue (session) is calculated in agent hours.
  • process 4702 the number of agent hours available at each site on each dav is calculated. Initially this will be calculated by subtracting the work allocated in process 4304 from the number of agent hours available on each site on each day.
  • process 4703 a session of indirect work is assigned to the valid day with the most agent hours available.
  • process 4704 a test is made to see whether another session is required. If this is the case control is directed to process 4702, where a re-calculation is made of the number of agent hours available at the site under consideration on the day on which the previous session allocation was made. If no more sessions remain process 4305 is completed, and control is directed to process 4306.
  • process 4703 it is necessary to know which days are valid for a particular session. For a day to be valid, an agent involved in the session under consideration cannot already have a session of indirect work on that day.
  • process 4306 shown in Figure 43 A, an allocation is made of call queue work within each day to each time slot.
  • the purpose of this process is to create. for each site, a profile of the number of agents required to answer calls for each time slot of each day in the week.
  • the processes required to do this are detailed in Figure 48.
  • time slots are considered for which only one site is open.
  • the forecasted number of active agent-stations for each of these timeslots in each call queue are added to the total number of agents required for each call queue and each timeslot at the site which is open at those times.
  • time slots are considered where more than one site is open.
  • Allocations of the forecasted number of active agent-stations required to handle each call queue is made to each site using the equation shown in process 4802. This uses two values: forecasted required number of active agent-stations in a queue
  • process 4903 the values calculated in process 4902 are summed across queues to calculate a number of agents required for this type of work within each site within each time slot. Thereafter control is returned to process 4308.
  • process 4308 shown in Figure 43 A, a calculation is made of the maximum number of agents available to each time slot of the day within a site. For fixed shift 1 and fixed shift 4 agents it is possible to calculate the exact number of agents available within each time slot, as the contracts for these types of agents do not provide any flexibility for starting and ending times for their work. For fixed shift 2. fixed shift 3 and flexible agents an equation shown in
  • Figure 50 is used to allocate the number of these types of agents to each time slot.
  • the number of agent hours for a particular type of agent, for example fixed shift 2 agents, available in a day is divided by the number of agent hours required in a day to answer calls. The result of this division is then multiplied by the number of agents required to answer calls in the time slot cu ⁇ ently under consideration. The result of this multiplication gives the number of agents of a particular type which should be allocated to the time slot.
  • This equation is applied to fixed shift 2 agents, fixed shift 3 agents and flexible agents in turn. The three results thus produced are added together in order to form the total number of agents allocated to each timeslot of the dav.
  • process 4309 the off-line work which was allocated to each day in process 4304 is allocated to each time slot.
  • the overall method of the process with which this is done is analogous to that used in process 4304 for allocating off-line work within a week to each day.
  • the aim of the process is to allocate a day ' s undetermined indirect work to the time slots on which it will have the least impact on the achievement of the quality of service target.
  • Figure 51 A details the series of calculations, in tabular form, which are done to allocate work to timeslots. For each timeslot a calculation is made of the number of agents free for off-line work by subtracting the amount of work to be done (which was calculated in process 4903) from the number of agents available to the site (which was calculated in process 4308). It should be noted that the amount of work to be done (from process 4903) is expressed in agent hours. and this must be converted into numbers of agents in a time slot before it can be used in the calculations shown in Figure 51 A.
  • the process for implementing allocation of indirect work to time slots in which it will have the least detrimental effect is detailed in Figure 5 IB. In process 5101 the first day of the week is selected for consideration.
  • a value MINALLOC is set to be equal to the smallest of the Z values shown in Figure 51 A.
  • the first time slot of the day is selected for consideration.
  • a calculation is made of the number of agents required for each off-line queue within the time slot cu ⁇ ently under consideration.
  • a value AVAILPER ⁇ LLOC is set to be equal to the value of MINALLOC subtracted from the number of agents free for off-line work at the current considered time slot.
  • a queue is selected for consideration which has the shortest lead time. If two or more queues qualify in having the shortest lead time the queue which is chosen is that which has the earliest final valid time slot.
  • the queue which is chosen is that which has the smallest number of valid time slots. If two or more queues still remain after the last judgement has been made, then the queue to consider first is chosen arbitrarilv. For each off-line queue, it is possible for the system controller to specify in which time slots the work must be undertaken. Therefore work can only be allocated to a "valid" time slot, i.e. it is within a range of time slots specified for that queue. If a time slot is not valid, the queue with the next shortest lead time is considered.
  • process 5107 the quantity of work expressed by the value of AV AILPERALLOC is- assigned to the queue that is being considered.
  • process 5108 a check is made to see if this has resulted in the value of AV AILPERALLOC being reduced to zero. If this is not the case control is diverted to process 5109. If AV AILPERALLOC is set to zero, control is diverted to process 5110.
  • process 5109 a check is made to see if another valid queue for the cu ⁇ ently considered time slot exists. If this is the case then control is diverted back to process 5106, where another queue with the next shortest lead time is selected for consideration. If another valid queue does not exist, control is diverted to process 5112 where a question is asked to see whether any work remains to be done in invalid queues (for which valid time slots are not available). If this is the case then control is redirected to process 5103, where the first time slot is considered again. If work does not remain in any invalid queues another date may be considered and control is directed to process 5102. In process 5110 a condition has been reached where AV AILPERALLOC has been set to zero.
  • control is diverted to process 5104, where a re-calculation is made of the number of agents required to handle each off-line queue. If at process 5110 no time slots remain which are valid for queues which may be considered, control is diverted to process 511 1, where MINALLOC is re-calculated according to the equation shown. This has the effect of reducing the value of MINALLOC such that it is more likely that work will be allocated to the queues under consideration in the currently considered day. After process 5111 has been performed, control is directed to process 5103. where the first time slot of the day is reconsidered, and the processes 5103 etc. may be repeated until they are successful.
  • the scheduler 404 makes a calculation of the sums of off-line work allocations to agents for each day of the week. This value will be used in processes 4312 to 4321 shown in Figures 43A and 43B respectively.
  • process 4310 an allocation is made of undetermined indirect work within each day to each time slot. Undetermined indirect work is in two forms: indirect work which has been specified by the system controller to be performed on a particular day but not within a particular timeslot, and indirect work which has not been specified by the system controller to be performed on any particular day or time slot, but which has been allocated to be performed on a particular day in process 4305.
  • Each queue of indirect work is considered separately.
  • a queue in this instance is a discrete session of work.
  • Each session may cover one of a number of time slots in a day.
  • Each queue is considered in turn and allocated to the period of the day with the highest number of agents available. In this case the period is the same length of time as that covered by the session.
  • a search is performed for the period of the day where there are four consecutive time slots having the highest number of agents available to do the indirect work. Only those time slots are considered in which all agents are able to attend. If two or more periods meet the above requirements, then the period may be arbitrarily chosen. This process is repeated for each queue of indirect work.
  • the measurement considered should be the demand per unit time, rather than just the number of agents and items required to handle queues within a particular time slot.
  • start times are being allocated at the beginning of the day.
  • the purpose of this method is to ensure that the time of the day during which demand changes most swiftly is the same period of the day when agents are allocated with the greatest degree of efficiency.
  • the reason for this is that the period of the day when demand changes most swiftly is also that period of the day when the peak demand is most likely to occur, and thus an inefficient allocation of agent resources would have the greatest impact on customer satisfaction at this time.
  • start times are allocated for fixed shift 2. fixed shift 3 and flexible agents who have indirect work commitments. The allocation for each agent is made with the latest possible start time in the day that ensures the indirect work falls within the working day.
  • allocations are made of the start times for the remaimng fixed shift 2 agents (those who did not have their start times allocated in process 5204). Allocations of fixed shift 2 agents' start times are made with the aim of making as close a match as possible to the number of agents that have been predicted to be required in a particular time slot.
  • agents are assigned from each group in turn, starting with the group that contains the lowest percentage of its agents already allocated a start time. If there are two groups with the same percentage of agents already allocated start times, then the group is chosen which has the largest number of agents.
  • each time an agent in a group is allocated a start time the percentage number of agents which have been allocated start times within that group is re ⁇ calculated and a comparison is made with the percentage of agents which have been allocated start times in other groups.
  • the next agent chosen in an attempt to match the required number of agents for the time slot is selected from the group which has the smallest percentage of agents allocated start times. This may the same or a different group to the one from which an agent was previously chosen.
  • allocations are made for start times for the remaining flexible agents (those flexible agents not allocated start times process 5204). Allocations are made in the same way as for allocating sta ⁇ times for fixed shift 2 agents described for process 5206.
  • end times are set for the fixed shift 2 agents and flexible agents. In the case of the fixed shift 2 agents the end times are equal to the sta ⁇ time plus the day length plus the meal break length. In the case of flexible agents the end time is set by adding the start time to the end of the meal break plus the average day length. It is a possibility that strict application of this rule will result in a flexible agent being allocated an end time which is later than the latest an agent mav be scheduled to end work according to the rules for flexible agents. In this case the end time will be set to the latest time which is valid for an end time for the flexible agent.
  • the average day length of each attendance is calculated by dividing the number of hours worked in a week by the number of days worked in a week. This may result in an average day length which does not match the intervals with which time slots are measured, i.e. fifteen or thirty minutes. For example a person who starts work at 09:00 hours cannot work an average day of 7.2 hours and finish work at the end of a time slot. To overcome this, for each attendance in turn, the scheduler allocates an end time that is as close as possible to the end time required to keep the average daily attendance as close as possible to its desired value.
  • the first two agents start work at 08:30 hours.
  • the first agent would be given an attendance of seven hours plus lunch time and an end time of
  • meal break start and end times are set for fixed shift 1, fixed shift 2 and flexible agents.
  • Meal break start times are allocated in such a way as to minimise the difference between the forecast number of agents required during a particular time slot and the number of agents working during that time slot. Allocation of a meal break start time begins with an identification of the first time slot in which a meal break is valid. If this requires one less attendance than currently allocated, then one attendance is scheduled a meal break. If there is a choice of attendances the one with the earliest start time is chosen. However, if for a given time slot there is no reduction in the number of agents required then no attendances are scheduled a meal break start time during that time slot.
  • the scheduler allocates the meal break start times to the attendances with the earliest start times. If a flexible agent has specified a split meal break (i.e. two half hour slots) then the attendance is given a start time for the first meal break equal to the first time slot in which, obeying the agent rules, a meal break can begin. The attendance is given a start time for the second meal break equal to the last time slot in which, obeying the agent rules, a meal break can begin. The end times of the split lunch breaks are then calculated as the start time plus the duration of each break. At no time are two split lunch breaks allowed to be scheduled in consecutive periods.
  • a split meal break i.e. two half hour slots
  • the end times for the meal breaks are calculated for each attendance as being equal to the meal break start time plus the meal break length.
  • sta ⁇ and end times for the first pre-meal non- meal breaks are set for all the agents who have already been scheduled sta ⁇ ing times. Again, this is done in such a way as to minimise the difference between the number of agents working during a time slot of the day and the number of agents which have been forecast to be required during that time slot.
  • the first time slot in which a pre-meal non-meal break is valid is considered. If. for example, three fewer agents are required during this time slot than are already known to be working, then three attendances may be allocated to a pre-meal non-meal break, and a start time for this break is set. Agents with attendances having the earliest start times are chosen first. If it is not necessary to reduce the number of agents working in the currentlv considered time slot in order to meet the forecast number of agents required, the next valid time slot is considered.
  • This process is repeated until either all attendances have been allocated a pre-meal non-meal break start time, or the final time slot for which a first pre-meal non-meal break is valid has been reached. If the latter condition arises and some attendances have not been scheduled a pre-meal non-meal break start time, then these should be spread as evenly as possible over the valid time slots, starting with the first time slot for which a pre-meal non-meal break start time is valid.
  • the agent chosen is the one which has the earliest start time. End times of the first pre-meal non-meal break are equal to the break ' s start time plus the length of the break.
  • subsequent post-meal non-meal breaks are set according to the same methodology as described for process 521 1.
  • the first post-meal non-meal breaks and subsequent post-meal non-meal breaks are allocated to agents using the same methods as described for processes 5211 and
  • start times are allocated to fixed shift 3 agents. Furthermore, an initial attempt to define end times is also made for these agents. Start times for fixed shift 3 agents are selected by identifying the difference between the number of agents already scheduled to work in a particular time slot and the number required: start times are scheduled to reduce this difference. This process is applied starting at the first time slot of the day and continuing through all time slots until either the last time slot valid for a fixed shift 3 agent to start work is reached, or all fixed shift 3 agents have been allocated a start time. Thus if eight people are required in the first time slot the site is opened and eight attendances are scheduled to begin in this time slot then no fixed shift 3 attendances are allocated.
  • next time slot requires fifteen people and only four attendances are scheduled to start in this time slot then three fixed shift 3 attendances are allocated to start in this time slot, thus ensuring that a total of fifteen agents will be scheduled to attend in the time slot.
  • each fixed shift 3 agent is allocated an end time by choosing between the earliest of one of the following:
  • process 5216 the end times for fixed shift 3 agents are reconsidered to see if it is possible to improve the match of the predicted number of agents required with the number of agents actually working by allocating earlier end times to fixed shift 3 agent attendances.
  • (b) does not result in an indirect work commitment being invalidated. If there is a choice between agents then the agent with the latest sta ⁇ time is the one whose end time is not adjusted. This process continues, working back into the day. until the time slot is reached for which the earliest end time could be scheduled and all attendance lengths have been reduced as much as possible.
  • meal break start and end times are set for fixed shift 3 agents. If there is a choice of time slots in which attendances for fixed shift 3 workers can start their meal break then attendances are chosen in order to minimise the difference between the number of agents required to work during a time slot and the number of agents actually working. Thus if the time slot in which a meal break start time is valid requires one less attendance than currently working then one attendance is scheduled a meal break.
  • This process begins with the earliest time slot for which a meal break start time is valid. If there is a choice of agent for a particular time slot, allocate the meal break start times to the attendances with the earliest start times. The end times for the meal breaks of fixed shift 3 agents are calculated by adding the meal break duration to the meal break start time.
  • pre-meal non-meal breaks and post- meal non-meal breaks are allocated to fixed shift 3 agent attendances according to the rules described for processes 5211 to 5214.
  • the purpose of allocating break times separately for different types of workers, is that the point in which the scheduling is performed can reflect the flexibility of the workers to whom breaks are being allocated. For example fixed shift 3 agents are more flexible in their allocation of break times than other types of agents, and thus are the last type of agents to have their break times scheduled in the scheduling process.
  • process 5222 a check is made that the agent rules for fixed shift 3 agents have not been violated by any of the previously described processes.
  • the agent should be allocated to work in the period with the smallest average positive difference.
  • An agent may have more than one skill: this and other considerations must be taken into account in order to provide the most efficient allocation of skilled agents to queues.
  • the minimum queue length is the minimum amount of time for an agent to be working on a particular queue. Minimum queue length requirements are specified so that agents are not required to move from one queue discipline to another several times during the day. which would be inefficient for the agent.
  • Agents may have a priority for working on a particular queue. This is a reflection of the fact that a multi-skilled agent may work better when using a particular skill, perhaps as a result of greater experience, or personal preference.
  • the overriding constraint is the quality of the schedule, and therefore on occasions the priority and niinimum queue length rules can be broken to allow a better schedule. However the occasions on which these rules are broken are kept to a minimum.
  • the process of allocating work to attendances 4312 shown in Figure 43 A is detailed in Figures 53 A and 53B.
  • indirect work is allocated to the attendances of agents which have already been defined in time slots throughout the day. For example, for each time slot of the day a number of agents will have been defined as being required for indirect work. The agents associated with the indirect work are allocated to the specific attendances.
  • Processes 5302 to 5310 allocate work defined in the first timeslot of the day to agents. In process 5302 all the single skilled agents scheduled to work in the first timeslot are allocated work from the queue for which their skill is valid. Processes 5303 to 5310 deal with allocating work to agents who have more than one skill. In process 5303 a calculation is made of the number of agents allocated to a particular queue over the number of agents required to handle work for a particular queue. This value is denoted in the flow chart as "X". In process 5304 a question is asked as to whether all agents have been allocated work. If this is the case control is diverted to process 531 1. If agents remain to be allocated work. control is diverted to process 5305.
  • a queue is selected which has the lowest value of "X" which was calculated in process 5303. This has the effect of selecting the queue with the lowest proportion of agents currently allocated for the next allocation of an agent.
  • a question is asked as to whether there are any agents available who have a priority for work in that particular queue.
  • control is thereafter directed to process 5303. If there are no agents with a priority for the queue, control is directed to process 5308.
  • process 5308 a question is asked as to whether there is a group of agents with the required skill (groups of agents usually have the same skill or skills). If no such group exists, control is directed to process 5310. where the value of "X" is set to infinity (or some arbitrary large value which has the same effect). Thereafter control is directed to process 5305, where a different queue may be selected.
  • control is directed to process 5309. If more than one group exists having agents available with the required skill, an agent is selected from the group which has the smallest total number of skills. Thereafter control is directed to process 5303.
  • Processes 5303 to 5310 are continued on an agent-by-agent basis until all agents which are scheduled to start work in the first time slot have been allocated work. Processes for allocating work to agents in the timeslots over the rest of the day are shown in Figures 53B to 53G. The next timeslot of the day is selected for consideration in process 5311. In any timeslot. agents are only considered who are working in that timeslot already, i.e. agents are not considered who have not yet started the day, who have finished the day or who are having a meal or non-meal break.
  • process 5312 Those single skilled agents who are working are allocated queue work in process 5312. Once single skilled agents have been allocated work, the remaining work can be spread over the multi-skilled agents in order to achieve an efficient use of the available manpower resources.
  • process 5313 a question is asked as to whether there are any unallocated agents that were working on a queue with a minimum length in the previous timeslot which is under-allocated in the present timeslot. If this is the case an advantage can be gained by selecting an agent meeting these conditions: as such an agent may be assigned to continue working on the same queue in the cu ⁇ ent timeslot.
  • Such an agent is selected for consideration in process 5314.
  • process 5315 the question is asked as to whether the agent has already reached the minimum queue length.
  • the minimum queue length is the prefe ⁇ ed minimum length of time for which an agent will be working on one particular queue discipline. If an agent has already worked for this minimum length of time, the resource may be better used elsewhere.
  • process 5316 a question is asked as to whether the agent still has responsibility for the queue. An agent is considered as having responsibility if he or she has been identified by the system controller as being suitable for work on a queue of a particular type. For example, in some circumstances an agent may have the required skill to work on a particular queue, but for whatever reason, the system controller does not want the agent to work on that particular queue.
  • process 5318 a question is asked as to whether all agents have been allocated to queues. If all agents have been allocated, the allocation process is over for the current timeslot, and control is directed to process 5324. At process 5324 a question is asked as to whether there are any more timeslots left for consideration in the day. If this is the case the control is directed to process 5312. and the processes that have been described already are repeated for the next timeslot in the day. If there are no more timeslots. control is directed to process 5313 shown in Figure 43B.
  • process 5318 it is possible that some agents remain to be allocated to queues. If this is the case, control is directed to process 5319, in which a calculation is made by dividing the number of agents allocated to a queue by the number of agents required for that queue. It is possible that the number of agents required will be zero, in which case the theoretical value resulting would be infinity.
  • process 5322 the queue having the lowest value for X is selected for consideration.
  • process 5323 an agent is assigned to do work on the queue that is selected in process 5322. Thereafter control is directed to process 5318. and the processes previously described are repeated until all agents have been allocated to queues for the currently considered timeslot.
  • process 5323 The process for assigning an agent to do work represented by process 5323 is detailed in Figures 53D to 53G.
  • process 5325 a question is asked as to whether any agents are available who have a priority for the queue under consideration. If no agents are available with priority for the currently considered queue, control is directed to process 5336 shown in Figure 53E. Otherwise control is directed to process 5326.
  • process 5326 an agent is selected from the group which has the fewest skills.
  • agents there may be several agents available with priority for the queue. distributed across several working groups. Each group will have an associated number of skills. Thus an agent is selected from the group which has the fewest skills. It is possible that only one agent or one group exists to meet the criteria in which case that agent or that group is selected.
  • process 5327 a question is asked as to whether there is more than one agent available. If only one agent is available, work is assigned to that agent in process 5328. Thereafter control is directed to process 5318 in Figure 53C. If more than one agent is available, control is directed to process 5329.
  • process 5329 a question is asked as to whether any of the available agents were working on the currently considered queue in the previous timeslot. If this is not the case then control is directed to process 5331. If this is the case, work is assigned to the agent in process 5330. that has the shortest time since either:
  • process 5331 a question is asked as to whether any of the available agents are starting work in the currently considered timeslot. If this is not the case then control is directed to process 5333 in Figure 53E. If there are any agents starting work in the currently considered timeslot, then work for the cu ⁇ ently considered queue is assigned to one of these agents in process 5332.
  • process 5333 as shown in Figure 53E, a question is asked as to whether there are any agents that have worked on the currently considered queue for at least one timeslot in their attendance. If this is not the case, control is directed to process 5335. If there were any available agents who have worked on the queue for at least one timeslot in the attendance on the day in question, control is directed to process 5334, where work is assigned to the agent who has spent most time on the queue currently under consideration.
  • process 5336 a question is asked as to whether there are any unallocated agents which have the required skill for the queue under consideration and have worked on the queue under consideration in a previous timeslot on the day. Of the agents meeting these criteria those which are members of the groups with the fewest skills meeting these criteria are selected for consideration.
  • process 5337 a question is asked as to whether more than one agent is available for consideration. If only one agent is available for consideration, work is assigned to that agent in process 5338. Otherwise control is directed to process
  • process 5340 a question is asked as to whether there are any unallocated agents in groups with the required skill. Of those agents meeting this criteria those in groups of the fewest number of skills are selected for consideration.
  • process 5341 a question is asked as to whether more than one agent has the required skill. If only one agent has the required skill, work is assigned to that agent in process 5342. If more than one agent is available with the required skill. control is directed to process 5343.
  • process 5343 a question is asked as to whether any of these unallocated agents are scheduled to start their attendance in the cu ⁇ ently considered timeslot. If the answer to this is affirmative, work is assigned to one of these agents in process 5344. Otherwise control is directed to process 5345 shown in Figure 53G.
  • process 5345 a question is asked as to whether any of the unallocated agents cu ⁇ ently being considered have already worked on the cu ⁇ ently considered queue for at least one timeslot in their attendance. If not. control is directed to process 5347. Otherwise, in process 5346, work is allocated to the agent who has spent the most time on this queue in their attendance so far.
  • process 5348 a condition has been reached where it is known that no agent is suitable for working on the currently considered queue.
  • the value of X for the queue currently being considered is set to infinity (or the arbitrarily large value used to represent infinity), and no agents are assigned. Thereafter control is directed to process 5320.
  • the process of stretching 4313 shown in Figure 43B may be performed. This process is detailed in Figures 54A to 54D.
  • the aim of stretching is to ensure that, for each call queue. the attendances determined in process 4312 cover all the timeslots that are required
  • the calculation is made of the number of agents scheduled to attend a call queue in each timeslot on each day of the week.
  • control is directed to process 5402. where the first day containing a zero allocated timeslot is selected.
  • TARGET For each queue for which there are zero values a calculation is made of a value known as the TARGET. An average is calculated for the forecast number of call agents required in the timeslots which have a zero allocation.
  • the latest zero allocated timeslot in the day is selected for consideration. For example, there may be several queues near the end of the day having a zero allocation. The timeslot which is selected is the latest of these timeslots which has a zero allocation.
  • process 5405 a calculation is made of the number of agents allocated divided by the value for TARGET which has been calculated in process 5403. Thereafter control is directed to process 5406 in Figure 54B.
  • Each queue in the currently considered timeslot which has a zero allocation is compared to see which has the lowest value of Y calculated previously in process
  • process 5406 the queue having the lowest value of Y is selected for consideration.
  • agents who have been scheduled indirect work in the first timeslot of their working day agents who do not have the skill for the queue under consideration
  • agents who by delaying their start by one timeslot would break the condition of the latest start time (g) agents, who by delaying their end time by one timeslot would break the condition of latest end time (h) agents who are the only agent working on a particular call queue in their starting timeslot.
  • Agents not fitting into one of the above categories are selected for analysis in process 5407.
  • process 5408 a question is asked as to whether there are any agents who can have their start time and end time delayed by one timeslot without needing to adjust meal breaks and non-meal breaks. Furthermore, if any such agents are available for consideration, those having the latest start time are selected for further consideration. If no such agents exist, control is directed to process 541 1 in Figure 54C. If an agent or agents exist that meet these criteria a check is made to see if any of these agents have a priority for the cu ⁇ ently considered queue. If such an agent is available it is selected for further consideration, otherwise any agent may be selected.
  • process 541 1 shown in Figure 54C a question is asked as to whether there are any agents who can have their start time, end time and break times all delayed by one timeslot. Of these, if there are any. those agents having the latest start time are selected for further consideration. If no such agents are available. control is directed to process 5415 in Figure 54D. If such agents are available, control is directed to process 5412. If an agent selected for consideration in this way has a priority for the queue under consideration, it is selected for stretching, otherwise any agent may be selected. Once selected, the agent's attendance may be altered by the steps summarised in process 5413. Thereafter control is directed to process 5414 shown in Figure 54D.
  • process 5414 a question is asked as to whether sufficient agents have been reallocated in order for the target value for each queue to be met. If this is not the case, control is directed to process 5405, and an attempt made to stretch the allocation of another agent. If the target for each queue has been met in the current timeslot, control is directed to process 5415.
  • control is directed to process 5417, where a question is asked as to whether there are any remaining days in the week with zero values. If there are any days with zero values, the next day with a zero value is selected for consideration, and the control is directed to process 5403, and the steps previously described are repeated for stretching on that day. If no more days with zero values are available, control is directed to process 4314. This concludes the process of stretching.
  • the system controller specifies a tolerance level. expressed as a percentage of the original target, which must be met by the scheduler 404.
  • a secondary tolerance level of seventy percent, of the original ninety percent of calls answered in fifteen seconds, may be specified for a particular call queue.
  • less critical call queues for example those not handling emergencies may be handled with a slightly lower quality of service than other call queues.
  • each queue has a tolerance specified by the system controller.
  • the process 4314, "tolerances" shown in Figure 43B. attempts to ensure that, where the primary quality of service cannot be met. the quality of service for a particular queue at least falls within its range of tolerance.
  • each timeslot of the day is examined in turn, and the difference between the number of hours scheduled for each timeslot and queue and the number of hours required to meet the tolerances for each timeslot and queue are calculated. For off-line queues this calculation is performed by taking the number of agent hours needed to meet the tolerance from the agent hours scheduled.
  • Differences are then calculated for each call queue between the number of agents allocated to an agent-station, and the number of active agent-stations required to meet the revised quality of service. For off-line queues, differences are calculated for each queue as a whole by taking the number of agent hours needed to meet the tolerance from the number of agent hours scheduled.
  • the first timeslot of the day is selected.
  • the difference between the number of hours scheduled and the numbers of hours to meet the quality of service in each queue is calculated. For call queues this is calculated for the timeslot under consideration. For off-line queues this is calculated for the queue as a whole.
  • a question is asked as to whether all the differences are of the same sign. For example, if all the differences are positive, then all queues have a surplus quality of service and no swapping needs to be done. If all the differences are negative, it is impossible to improve the quality of service for one queue without reducing the quality of service in another even further. Thus, in the latter case, no swapping can be done.
  • control is directed to 5505, where another timeslot is considered.
  • process 5504 an attempt is made to move the surplus to the deficit between the queues. After this has been done, another timeslot may be considered at process 5505. If other timeslots exist for consideration, control is directed to process 5502. and the steps previously described are repeated until there are no more timeslots available. Each day of the week for which a forecast is being made is considered in this way. Having considered all timeslots. control is directed to process 4315 shown in Figure 43B.
  • Process 5504 where an attempt is made to move surplus to a deficit between queues, is detailed in Figures 55B to 55E.
  • Process 5531 in Figure 55B identifies the highest negative difference (quality of service deficit > in the timeslot and queues under consideration. A calculation is then made of the number of agents required to bring this level within the next highest negative difference. If there is no next highest negative difference, the value for the next highest negative difference is set to zero.
  • process 5532 a question is asked as to whether the highest negative difference which has been identified in process 5531 is in a call queue. If this is not the case, control is directed to process 5541 in Figure 55D.
  • process 5533 The highest positive difference in the same timeslot as the highest negative difference already identified, is identified in process 5533.
  • process 5534 a question is asked as to whether the highest positive difference identified in process 5533 is in a call queue. If not. control is directed to process 5539 in Figure 55C.
  • control is directed to process 5535.
  • the question in asked in process 5535 as to whether there are any agents working on the call queue(s) with the highest positive difference who have the required skills to do the work on the call queue with the highest negative difference. If there are, control is directed to process 5538. Otherwise control is directed to process 5536, where a question is asked as to whether another positive difference is available for consideration. If this is the case, control is then directed to process 5533.
  • control is directed to process 5537. where a question is asked as to whether another negative difference is available for consideration. If another negative difference is available, control is directed to process 5531. Otherwise control is directed to process 5505, where another timeslot is selected for consideration.
  • process 5538 it is possible to re-schedule agents from the queue having a surplus to the queue having a deficit. Agents are re-scheduled according to the criteria summarised in process 5538. Thereafter control is directed to process 5505.
  • control is directed to process 5534 who have skills for working on the call queue with the highest negative difference identified in process 5531. If this is not the case, control is directed to process 5536. where another positive difference may be considered. Otherwise control is directed to process 5540. where agents are re-scheduled from the queue in surplus to the queue in deficit according to the criteria summarised in process 5540. Thereafter control is directed to process 5505.
  • process 5541 the situation exists that a negative difference (quality of surface deficit) has been identified in an off-line queue. Because the deficit is in an off-line queue, this may be swapped with a surplus in any queue in any timeslot on the same day. Thus in process 5541 an identification is made of the highest positive difference in any timeslot on the day.
  • a question is asked as to whether this highest positive difference is in a call queue. If this is not the case, control is directed to process 5547 shown in Figure 55E. Otherwise control is directed to process 5543.
  • process 5543 a question is asked as to whether there are any agents in the surplus call queue who have skills for the deficit off-line queue. If there are such agents, control is directed to process 5546. Otherwise control is directed to process 5544, where another positive difference is selected for consideration. Thereafter control may be directed to process 5541. Alternatively, if there are no more positive differences for consideration, control is directed to process 5545, where another negative difference may be considered.
  • process 5546 the agents in the queues identified are re-scheduled from the queue in surplus to the queue in deficit according to the criteria summarised in process 5546.
  • process 5547 a question is asked as to whether there are any timeslots in the day in which work is also being done on the off-line queue with the largest deficit. If this is not the case, control is directed to process 5544 in Figure 55D. where another positive difference is selected for consideration. Otherwise control is directed to process 5548.
  • process 5548 a question is asked as to whether there are any agents in the selected timeslots working on off-line queue(s) with the highest positive difference and skill to work on the off-line queue with the highest negative difference. If there are any such agents control is directed to process 5549. and agents are re-scheduled from the queue in surplus to the queue in deficit according to the criteria shown.
  • control is directed to process 5544. where another positive difference may be selected for consideration. This concludes the process of checking and optimising quality of service tolerances.
  • Processes 4315 to 4320 shown in Figure 43B constitute a series of steps known as "balancing".
  • the aim of balancing is to see whether the attendances that have been created can be adjusted to better fit the demand.
  • Each of the processes 4315 to 4320 will now be considered in detail.
  • FIGS 56A and 56B This process is carried out for each flexible agent in turn. and for each day of the week in turn.
  • a first flexible agent is selected for consideration.
  • a first original day is selected for consideration.
  • processes 5603 to 5605 a series of questions is asked in order to identify if the agent is scheduled to work on a call queue in the first timeslot of the attendance of the day currently under consideration, and if it is possible to delay starting the attendance by one timeslot without breaking limits for the latest start time, the minimum before the first pre-meal non-meal break and the minimum day length which have been specified by the system controller. If the agent fails any of these criteria control is directed to process 5608 shown in Figure 56B. Otherwise control is directed to process 5606.
  • process 5606 an attempt is made to identify any suitable timeslots in the rest of the week at the start or end of the agent ' s attendance in which a call queue matching the agent ' s skill is in deficit. A timeslot thus identified is then checked to see if assigning it to the agent ' s attendance would cause any of the following agent rules to be broken: maximum day length, minimum or maximum time between breaks, minimum time before first pre-meal non-meal break and earliest and latest start and end times. If there is no timeslot meeting these criteria, control is directed to process 5608. Otherwise the agent ' s attendance is re-scheduled by delaying the start of attendance by one timeslot on the original day. and by adjusting the agent ' s attendance on the day for which the timeslot " s deficit has been identified, thus moving one timeslot unit from surplus to deficit. Thereafter control is directed to process 5603. and the processes previously described are repeated.
  • processes 5608 and 5609 a series of questions is asked in order to identify if the agent is scheduled to work on a call queue in the last timeslot of the attendance on the original day and if it is possible to bring forward the ending of the attendance by one timeslot without breaking the rules for: the earliest end time, the minimum time between breaks and the minimum day length. If these criteria are not met. control is directed to process 5613. Otherwise, in process 5601 a question is asked as to whether the agent ' s call queue is in surplus at the end of the attendance. If this is not the case, again control is directed to process 5613.
  • process 5611 an attempt is made to identify any suitable timeslots in the week at the start or end of the agent's attendance in which a call queue matching the agent ' s skills is in deficit. A check is made to see if the timeslot would be suitable for the agent to work in by checking that the following agent rules are not broken: maximum length of day, minimum or maximum time between breaks, minimum time before the first pre-meal non-meal break and the earliest and latest start and end times. If no such timeslots exist, control is directed to process 5603.
  • process 5612 the agent's attendance is re-scheduled by reducing the length of attendance on the original day by one timeslot (the last timeslot in the attendance) and increasing the attendance in the period with the biggest deficit by one timeslot. Thereafter control is directed to process 5608. and the steps previously described are repeated.
  • process 5613 a question is asked as to whether there is another original day to be considered. If this is the case then control is directed to process 5603. Otherwise control is directed to process 5614, where an attempt is made to select another flexible agent. If more flexible agents remained for consideration, control is directed to process 5602. Otherwise control is directed to process 4316 in Figure 43B.
  • process 5701 a selection is made of the first off ⁇ line queue, the first day of the work and the first timeslot.
  • process 5702 a question is asked as to whether there are any call queues in deficit for the cu ⁇ ent timeslot under consideration. If there are no calls in deficit, control is directed to process 5709. Otherwise, in process 5703. if there is more than one call queue in deficit for the current timeslot, that queue with the largest deficit is selected for consideration.
  • process 5704 a question is asked as to whether there are any agents with skills for the selected call queue which is in deficit in the current timeslot who are currently assigned to do off-line work for the currently considered off-line queue. If there are none, control is directed to process 5702. If there are such agents. control is directed to process 5705. where a question is asked as to whether it is possible for the off-line work to be re-scheduled to a different timeslot of the day. In order for this to be possible four criteria must be met:
  • the off-line work can be done without breaking the rules (i.e. valid off-line timeslots) when such work is to be scheduled, (c) there is a surplus of agents scheduled to work on the call queue (i.e. the number of agents scheduled is in excess of the forecast number of agents required), (d) the timeslots are of the same length.
  • the one which is chosen is that which has the largest surplus of agents scheduled to work on the call queue.
  • control is directed to process 5702. Otherwise control is directed to process 5706, where a selection is made of the agent most suitable to do the re-scheduled off-line work. Firstly an attempt is made to try and find an agent with a priority for the off-line work in the timeslot identified in process 5705. if there is no such type of agent, then an attempt is made to select an agent where a continuous period of work can be created for that agent who gets closer to the minimum queue length for the off-line queue to which the agent is being assigned. If there is no such agent, then an attempt is made to choose an agent who is working on the off-line queue in the preceding timeslot (if there is one). If none of these criteria are met an agent is selected arbitrarily.
  • process 5708 having identified agents for re-scheduling, the agent's work is re-scheduled.
  • the current off-line queue under consideration in the current timeslot has one agent unit assigned to perform work on a call queue which is in deficit in the current timeslot, and the deficit thus created in the off-line queue in the current timeslot is made up for by assigning a different agent at a different time of the day to the same off-line work queue from a call queue which at that time is in surplus. Thereafter control is directed to process 5702, where other call queues may be considered.
  • control is directed to process 5709.
  • process 5709 a question is asked as to whether another timeslot exists in the day under consideration. If there is another timeslot, then this is selected and control is directed to process 5702. Otherwise control is directed to process 5710, in which a question is asked as to whether there is another day in the week for which the schedule is being made. If there is another day, then this is selected and control is directed to process 5702. Otherwise control is directed to process 5711, where a question is asked as to whether there is another off-line queue for consideration. If there is another off-line queue, this is selected and the control is directed to process 5702. Otherwise control is directed to 4317. This completes the process of adjusting time for off-line work.
  • the process 4317 for adjusting attendances for fixed shift 3 agents shown in Figure 43B is detailed in Figures 58A and 58B. This process is only carried out if there are fixed shift 3 agents who are not scheduled to work the maximum number of weekly hours. Thus, in process 5801. a question is asked as to whether there are any fixed shift 3 agents not yet working the maximum number of weekly hours. If all fixed shift 3 agents are already working their maximum number of hours in the week, control is directed to process 4318. Otherwise, it may be possible to adjust the attendances for fixed shift 3 agents and control is directed to process 5802. Adjustments are carried out on a timeslot-by-timeslot basis. Thus in process 5802 the first timeslot is considered in which a fixed shift 3 agent is working.
  • process 5803 a question is asked as to whether any of the call queues in the timeslot currently under consideration have a deficit of agents that are required to fulfil the forecast demand. If there are no call queues in deficit in the cu ⁇ ent timeslot, control is directed to process 5808, where another timeslot may be considered.
  • process 5804 a question is asked as to whether more than one queue has been identified in process 5803. If there is more than one queue, control is directed to process 5809 in Figure 58B. Otherwise control is directed to process 5805.
  • process 5805 a question is asked as to whether there is a fixed shift 3 attendance, for an agent with the skills required for the queue cu ⁇ ently being considered, which can be extended to cover this timeslot without breaking any of the rules of attendances (i.e. maximum daily hours. maximum weekly hours and time to/between breaks). If there are no such agents, control is directed to process 5808, where another timeslot may be considered.
  • process 5806 if there is more than one agent it is necessary to choose which of these agents is most suitable for having their attendance extended to cover the current timeslot. In summary, the following criteria are used. First of all an attempt is made to try and find an agent with a priority for the queue. If there is no such agent, then an attempt is made to try and find the one with the most time spent already working on the queue. If no agent meets these criteria, then an agent may be selected arbitrarily.
  • process 5807 the agent selected in process 5806 has his attendance extended to cover the current timeslot. and work in the cu ⁇ ent timeslot for that agent is defined as work on the call queue identified in process 5803. Thereafter control is directed to process 5803 once again, where other call queues which are in deficit in the cu ⁇ ent timeslot may be considered.
  • control will have been directed to process 5809 in Figure 58B.
  • process 5809 the queue with the largest deficit is selected.
  • process 5810 a question is asked as to whether there is any fixed shift 3 attendance for an agent with the required for the call queue in deficit which can be extended to cover the timeslot without breaking the rules. If there is such an agent, control is directed to process 5806. Otherwise control is directed to process 5811, where the queue with the next highest deficit from die list of queues identified in process 5803, is selected.
  • process 5812 a question is asked as to whether there is more than one queue remaining in the list of queues with next highest deficit. If there is more than one queue, control is directed to process 5809. Alternatively control is directed to process 5805, and the steps which have been previously described are repeated. Once all timeslots for each day of the week have been considered, control is directed to process 4318.
  • Process 4318 for re-scheduling attendances for one queue to another is identical to that used for checking tolerances in process 4314.
  • Processes 4315. 4316 and 4317 may have resulted in a set of attendances which may be further optimised when subjected to the same process of optimisation that was tried earlier in process 5314.
  • the first attendance is selected from the list of attendances for fixed shift 2. fixed shift 3 and flexible agents.
  • process 5902 a question is asked as to whether it is possible to delay the sta ⁇ and end times of the attendance without changing breaks. This is only possible if the rules regarding the agents " start and finish times and the agents' break times are not violated.
  • the period between breaks, the time to the first break and the latest that a break may be scheduled must all be considered. If the attendance does not meet these criteria control is directed to process 5905. Otherwise control is directed to process 5903, in which a question is asked as to whether delaying the attendance start and end times without changing breaks would be beneficial. This means finding out whether a better fit between the forecast number of agents and the number scheduled can be achieved by taking the agent off the queue that he or she was scheduled to work on in the first timeslot of the day and allocating him or her to a queue, for which he or she has the skills, in the timeslot after the attendance was due to finish.
  • Producing a better fit between the forecast number of agents and the number scheduled implies that there are more agents scheduled to attend than are required in the first timeslot, and fewer agents are scheduled to attend than are required in the timeslot after the attendance was due to finish. If no benefit is to be gained, then control is directed to process 5905.
  • the agent ' s attendance is adjusted so that it starts one timeslot later and ends one timeslot later. If there is only one queue that the agent can be assigned to in the last timeslot that is beneficial, then the agent is assigned to this queue. However if there is more than one queue then the agent must be assigned to the queue using one of the following criteria: firstly, if it is possible, the queue is chosen for which the agent has priority. If this is not possible then a queue is chosen that the agent was working on in the preceding timeslot. If this is not possible then a queue is chosen that the agent has been working on for the longest total of time in the same day. If no queue meets these criteria then the queue is chosen arbitrarily.
  • control is directed to process 5902. where the same attendance is considered again. Thus, it may be possible that an advantage can be gained from delaying the attendance by several timeslot periods without changing breaks.
  • process 5905 a check is made to see if it is possible to delay the start, end and break times of the attendance by one timeslot. If this is not possible, control is directed to process 5908 in Figure 59B.
  • process 5906 control is directed to process 5906, where a question is asked as to whether this would be beneficial. The same criteria are applied as have been described for process 5903. If delaying the attendance start and end break times would be beneficial, control is directed to process 5907.
  • the attendance is adjusted so that it starts one timeslot later, ends one timeslot later, and has all breaks allocated one timeslot later.
  • the agent is now attending when previously he or she was not attending, the following rules are used to determine which queue he or she would be assigned to: if there is only one queue that the agent can be assigned to that is beneficial, then the agent is assigned to this queue. If there is more than one queue which would be beneficial, then the agent is assigned to a queue using the following criteria.
  • a queue is chosen for which the agent has priority. If this is not possible then a queue is chosen that the agent was working on in an adjacent timeslot so that a minimum queue length is satisfied. If the latter is not possible, then a queue is chosen that the agent has been working for the longest total amount of time in the day. If none of the above criteria are satisfied, the agent may be assigned a queue arbitrarily.
  • process 5908 shown in Figure 59B a check is made to see if it is possible to make the attendance start and end times earlier by one timeslot without changing the breaks. If this is not possible without violating the agent rules, control is directed to process 5911. Alternatively, control is directed to process 5909. where a question is asked as to whether this would be beneficial.
  • control is directed to process 5910.
  • process 5910 If making attendance start and end times earlier by one timeslot without changing meal breaks is beneficial, control is directed to process 5910.
  • the attendance is adjusted so that it starts one timeslot earlier and ends one timeslot earlier. For those periods in which the agent is attending where he or she was not previously attending, a queue is assigned according to the prioritised criteria which have previously been described for this operation.
  • a check is made to see if it is possible to bring forward the start and end time of the attendance by one timeslot and also bring forward all the meal breaks by one timeslot. without violating any of the agent rules. If this is not possible, control is directed to process 5914.
  • control is directed to process 5912.
  • Processes 5912 and 5913 apply similar criteria to those described for processes 5909 and 5910.
  • the list of fixed shift 2. fixed shift 3 and flexible agent attendances is consulted to see if another attendance is available for consideration. If another attendance is available, control is directed to process 5902 in Figure 59A. Alternatively, control is directed to process 4320 in Figure 43B.
  • the final step in balancing is process 4320, reducing the amount of off-line work carried forward to the next week. This is only done if the amount of work carried forward is not zero. If it is zero, then control is directed to process 4321. In order to establish whether the amount of work carried forward is or is not zero it is necessary, for each off-line queue in turn, to work out how much work is carried forward. This is done by subtracting the total number of agent hours scheduled for the queue in the week, from the total number of agents " hours of work that have been forecast for the queue in the week. If the result of this subtraction is zero for all off-line queues, then the amount of work ca ⁇ ied forward is zero.
  • the process of trying to reduce it- is conducted, in turn, for each off-line queue where work is to be carried forward. Starting with the first such queue, the earliest day is found on which the work to be carried forward could be carried out.
  • the earliest day is determined by comparing the amount of work to be carried forward to the forecast of work arriving on each day of the week. If the amount of work carried forward is less than or equal to the forecast for the amount of work arriving on the last day of the working week, then the last day of the working week is the earliest day on which work which is carried forward could be done.
  • the earliest day is not the last day of the working week. In these circumstances the day before is tested to see if that is the earliest day. A comparison is now made to see whether the amount of work carried forward is less than or equal to the forecast for the last two days of the week. If it is, then the day before the last day of the working week is the earliest day. This process can be continued until the earliest day is found. If the earliest day is not the last day of the working week then it will be necessary to keep track of how much of the work can be done on that day. This will be equal to the amount of work carried forward minus the forecast for all days after the earliest day. No work may be allocated prior to the day on which it has been forecast to arrive.
  • each off-line queue which is contributing to the work which is being carried forward to the next week is considered in turn.
  • For each off-line queue that is considered each day of the week is also considered.
  • a first off-line queue having work being carried forward into the next week is selected for consideration.
  • a current day is selected for consideration.
  • process 6003 a question is asked as to whether there is any call queue having a surplus of agents in any timeslot where the off-line work being considered could be done. If there are no such call queues, control is directed to process 6007, where another day may be considered. Otherwise, control is directed to process
  • process 6004 where a question is asked as to whether any agents working on call queues identified in process 6003 have the skill to do the off-line work that is currently under consideration. If there are no such agents, control is directed to process 6007. Alternatively, control is directed to process 6005. In process 6005, agents are chosen for re-assignment to the off-line work.
  • each agent is selected in turn and re-assigned to the off-line work. This is continued until either all such agents have been re-assigned or all the carried forward work for the off-line queue has been allocated. If there is a choice of agent to re-assign, the following rules are used. Firstly an attempt is made to use agents with a priority for the off-line work. Secondly, agents are used whose transfer would create attendances that would be for the minimum queue length. Thirdly, agents are chosen who are working on the off ⁇ line queue in the preceding timeslot. Fourthly, agents are chosen who are working in the off-line queue in the following timeslot. Finally, agents are chosen having the longest total amount of time spent on the queue in the day.
  • process 6006 a check is made to see if all the ca ⁇ ied-forward work for the cu ⁇ ently considered off-line queue has been re-assigned to agents. If this is not the case, then control is directed to process 6003. Alternatively, if all the carried- forward work has been dealt with, another day may be selected in process 6007. and control directed again to process 6003. If all days have been considered for the cu ⁇ ent off-line queue, another off-line queue may be selected in process 6008. and control directed to process 6002. where the first cu ⁇ ent day is selected again. Having completed these operations for all days and all off-line queues which contribute work to be ca ⁇ ied forward into the next week, control is directed to process 4321.
  • the aim of the overtime process 4321, shown in Figure 43B is to make the best use of any overtime that has been sanctioned for agents.
  • the overtime will be added to the start or the end of individual attendances, one timeslot at a time. Details of the implementation of the overtime process 4321 shown in Figure 43B
  • process 6101 a calculation is made for each day of the difference between the number of agents scheduled for each queue and the number of agents required to meet the demand for each queue. For call queues this needs to be calculated for each timeslot of the day, while for off-line queues it will need to be calculated once for each queue.
  • process 6102 a check is made to see if all the differences are positive. If all differences are positive there is no need for any ove ⁇ ime. and the process of scheduling is completed. If some of the differences are negative, control is directed to process 6103.
  • process 6103 a question is asked as to whether the highest negative difference is in a call queue. If the highest negative difference is in a call queue. control is directed to process 6104, where an attempt is made to allocate agent overtime to the call queue. If the highest negative difference identified in process 6103 is in an off-line queue, control is directed to process 6105, where overtime is allocated to counteract the deficit identified in the off-line queue.
  • control is directed to process 6101, where the differences between the number of agents scheduled for each queue and the number of agents required for each queue is re-calculated.
  • the test in process 6102 is repeated, until all differences are positive, or until there are no agents left who can be allocated overtime.
  • 61 A is detailed in Figure 6 IB and 61C.
  • process 6106 a calculation is made of the number of agents required to bring the highest negative difference level with the second highest negative difference. If there is no second highest negative difference, the second highest negative difference is arbitrarily considered to be zero in this calculation.
  • process 6107 a check is made to see if there are any agents due to end their day in the previous timeslot or any agents due to start the day in the next timeslot. If neither of these criteria are met, control is directed to process 6120 in Figure 61C. Otherwise control is directed to process 6108.
  • process 6108 it is necessary to consider if there are any agents suitable for overtime. Suitable agents are those that are allowed overtime, have the skill for the call queue with the highest negative difference, and have not yet reached their maximum amount of overtime per day. If such agents exist then control is directed to process 6110. Alternatively, if there are no agents of this type, control is directed to process 6109.
  • process 6109 the current highest negative difference which is being considered is cleared. This highest negative difference is then excluded from re ⁇ calculation when the differences are re-calculated in process 6101. Thereafter control is directed to process 6101. where differences apart from the highest negative difference that was just considered are re-calculated.
  • one of the agents identified in process 6108 is selected for overtime. Preferably an agent will be selected who has a priority for the queue under consideration. The second most important consideration is to select agents that have already been allocated overtime.
  • process 6111 the attendance record of the agent selected in process 6110 is updated. For the agent selected, the attendance is extended by one timeslot, and the agent is allocated to the call queue with the highest negative difference. A question is asked in process 6112 as to whether more agents are required. If this is the case, control is directed to process 6107 and the processes previously described are repeated. Alternatively, control is directed to process 6101.
  • process 6120 shown in Figure 61 C a question is asked as to whether any agents on off-line work are suitable for overtime. If none of these agents are suitable for overtime, control is directed to process 6121. where the cu ⁇ ent highest negative difference is cleared and prevented from re-calculation. Thereafter control is directed to process 6101. Alternatively if there are agents on off-line work suitable for overtime, control is directed to process 6122. where an agent is selected. Priority is given to those agents who have a priority for the call queue.
  • process 6123 the agent selected in process 6122 has their attendance extended by converting the timeslot with the highest negative difference from the off-line queue to the call queue, and by extending the attendance of the agent by one timeslot and allocating the off-line queue that has been replaced. Thereafter control is directed to process 6112 in Figure 61B.
  • the process 6105 for allocating overtime to an off-line queue shown in Figure 61 A is detailed in Figure 6 ID.
  • process 6130 a calculation is made of the number of agents required to bring the highest negative difference level with the second highest negative difference.
  • control is directed to process 6133, where an agent is selected. It is preferable to select agents that have a priority for the off-line queue associated with the largest negative difference. In process 6134 the selected agent has their attendance extended until either:
  • process 6135 a question is asked as to whether more agents are required for overtime in order to bring the highest negative difference level with the second highest difference. If more agents are required, control is directed to process 6131.
  • the number of calls answered by the telephone answering system is automatically monitored in real time. If the number of calls differs significantly from the forecasted number of calls, an alert may be triggered. The system controller may then make a decision as to whether or not to perform a re-forecast within that day, so that a more accurate schedule may be made for the remainder of the day.
  • red alert indicates that there is strong evidence that the observed values are different to the forecast
  • amber alert indicates that there is some evidence, but it is not as strong as in the case of a red alert.
  • TEST 1 The real time data observations must cover a period of at least one and a half hours.
  • TEST 2 There must be at least two hours remaining in the working day, otherwise there will not be sufficient time for the reforecast/reschedule to be acted upon.
  • TEST 3 Is the divergence from forecasted values consistent across the observed timeslots ? For example, if there are five observed timeslots for a call queue, then all five must be greater than the forecast values or all five must be less than the forecast values. If one value is greater than the forecast and the other four are less, the test is failed. When the number of observed timeslots is greater than or equal to eight, this test is modified to say that at least j-l of the differences must be of the same sign.
  • TEST 4 Is the difference big enough ? This test is dependant on whether the original forecast was made with a Box- Jenkins ARIMA model or not. a) ARIMA forecast. When a Box- Jenkins ARIMA forecast is made for a particular day of the week, an estimate of the standard deviation (SD) associated with the forecast value is also available.
  • SD standard deviation
  • a red alert is triggered when the differences between observed and forecast values are outside the range: forecast +/- 2 x SD.
  • a red alert is triggered when the differences are outside the range: forecast x 0.85 to forecast x 1.15.
  • An amber alert is triggered when differences are outside the range: forecast x 0.88 to forecast x 1.12.
  • Test 1 An exception to these four tests is when a re-forecast has already taken place in the day, and it may be necessary to perform an additional re-forecast.
  • Test 1 the only modification is that the number of observations in the day is replaced by the number of observations since. the reforecast was made.
  • Test 2 is unchanged.
  • Test 3 is modified so that the differences are calculated against the re-forecast values and not the original forecast. The differences are only calculated from the timeslot when the re-forecast took place.
  • Test 4 is modified, in that no standard deviation is available for the re-forecast values, and so it is necessary to apply the criteria for a non-ARIMA forecast.
  • a ratio is calculated for the total number of observed calls received so far, divided by the forecast number of calls for that same period.
  • a forecast for each remaining timeslot of the day is then generated by multiplying this ratio by the original forecast for the number of calls in those timeslots. Electrical signals representing this new forecast may then be supplied to the translator 403, which translates this into active agent-station requirements.

Abstract

A telephone answering facility has a plurality of agent-stations (103), along with a switch (102) for directing incoming calls to these agent-stations. Signals indicative of previous incoming calls are stored (401), from which forecasts are produced which forecast levels of incoming calls at intervals within an operational period. These forecasts are translated (403) into active agent-station requirements from which actual activation schedules are generated. Said schedules are produced (404) by allocating station active times substantially in response to agent availability by following translated active agent-station requirements up a gradient towards a demand level peak.

Description

Title: ANSWERING TELEPHONE CALLS
The present invention relates to a telephone answering apparatus and a method of answering telephone calls. In particular, the present invention relates to answering telephone calls, in which incoming calls are directed to agent-stations.
INTRODUCTION
Telephone answering systems are known in which centres having a plurality of agent-stations are responsible for responding to incoming calls. For example, systems of this type may be responsible for dealing with customer enquiries, fault reports or product orders etc. The availability of active agent-stations, that is. stations to which calls may be directed given that an agent is available to answer a call, should match the demand for calls to be answered. It is therefore known to forecast the rate of incoming calls and manually schedule agent-station activation in response to this demand. The translation of an estimated demand, preferably based on a history of incoming calls, into a requirement for agent-station activation is a sophisticated procedure and most known techniques produce far from ideal results. The problem is particularly difficult given the excessively large number of variables present and direct functional modelling is not possible within realistic time frames. Furthermore, once a requirement has been produced for agent-station activation, individual agent-station schedules must then be generated which must now satisfy further operational requirements, such as the availability of agents and their contractual obligations, in addition to constraints established by the incoming call rates. Again, mathematical modelling of such a situation is extremely difficult, due to the excessively large number of variables and an alternative approach is required if schedules are to be established within realistic time frames.
SUMMARY OF THE INVENTION
According to a first aspect of the present invention, there is provided a telephone answering apparatus comprisins a plurality of agent-stations: and switching means for directing incoming calls to said agent-stations, characterized by storage means for storing signals indicative of previous incoming calls; forecasting means for forecasting levels of incoming calls at intervals within an operational period; translating means for translating said forecasted levels into active agent- station requirements with reference to said stored data and scheduling means arranged to schedule agent-station activation in response to said requirements by allocating station active times substantially in response to agent availability by- following translated active agent-station requirements up a gradient towards a demand level peak. The present invention provides an advantage of significantly reducing processing time by taking a heuristic approach towards the establishment of agent- station activation schedules derived from active agent-station requirements.
In a preferred embodiment, the scheduling means is arranged to follow said demand level up a gradient of greatest slope. Preferably, the scheduling means is arranged to initiate scheduling from the start of a period or the end of a period, according to the position of peak demand within said period.
In a preferred embodiment, the start of the period is chosen if said peak demand is closer to said start than to said end.
Thus, an advantage of the preferred embodiment is that an attempt is made to satisfy' the demand level peak with reference to the steepest slope. Thus, if the demand level peak is positioned towards the end of the day. the peak is satisfied with reference to activation end times so as to work towards the demand level peak backwards up the gradient of greatest slope.
According to a second aspect of the present invention, there is provided a method of answering telephone calls, comprising steps of directing incoming calls to a plurality of agent-stations, characterised by storing signals indicative or previous incoming calls; forecasting levels of incoming calls at intervals within an operational period; translating forecasted levels into active agent-station requirements with reference to said stored data; and scheduling agent-station activation in response to said requirements by allocating station active times substantially in response to agent availability by following translated active agent- station requirements up a gradient towards a demand level peak.
In a preferred embodiment, a first group of agent-stations are arranged to process calls of a first type and a second group of agent-stations are arranged to process calls of a second type. Thus, in this way, an establishment, having shared resources, may be capable of processing many different call types. Similarly, call handling may be distributed over a geographical area. Thus, in a preferred embodiment, a first schedule is produced for agent-stations located at a first geographical location and a second schedule is produced for agent-stations located at a second geographical location.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows a telephone answering system, including automatic call distribution equipment and agent-stations at several sites;
Figure 2 shows a typical histogram of the number of calls which arrive on each day of the week;
Figure 3 shows a typical histogram of the number of calls which arrive within a day of the week;
Figure 4 details the equipment necessary to implement the telephone answering system shown in Figure 1, including a storage means, a forecaster, a translator and a scheduler;
Figure 5 details information stored on the storage means shown in Figure 4; Figure 6 shows a typical timetable of the forecasting and scheduling performed by the forecaster and scheduler shown in Figure 4;
Figure 7 shows a summary of the operations performed by the forecaster shown in Figure 4, including the data cleansing of daily totals, data cleansing of time slot totals, choosing a statistical model and forecasting the number of calls: Figure 8 details the data cleansing of daily totals shown in Figure 7; Figure 9 details the data cleansing of time slot totals shown in Figure 7; Figure 10 details the process of choosing a statistical model shown in Figure 7; Figure 11 details the process of forecasting a number of calls shown in Figure 7:
Figure 12A shows an equation used by processing circuitry in the translator shown in Figure 4, including a probability term; Figure 12B details an evaluation for the probability term used in Figure 12 A, including the Erlang loss function:
Figure 12C details a traditional equation for evaluating the Erlang loss function as shown in Figure 12B;
Figure 13A details an improved equation for evaluating the Erlang loss function shown in Figure 12B;
Figures 1 B and 13C detail terms required to evaluate the equation as shown in Figure 13 A:
Figure 14 details processes for translating a call arrival rate into a required number of active agent-stations used by the translator shown in Figure 4, including calculating a probability;
Figure 15 details processes for evaluating the probability shown in Figure 14, including evaluating a perturbation factor and evaluating a normalisation factor;
Figure 16 details values stored in a look-up table used to calculate the perturbation factor used in Figure 1 : Figure 17 details values stored in a look-up table used to evaluate a normalisation factor used in Figure 15;
Figure 18 summarises steps performed by the scheduler shown in Figure 4. including appoπioning demand to sites, removing fixed shift workers, identifying peak demand time, setting attendance start times, setting attendance end times. fitting in meal breaks, stretching, training and correspondence and balancing;
Figure 19 details the process of appoπioning demand to sites shown in Figure 18:
Figure 20 details the process of removing fixed shift workers shown in Figure 18: Figure 21 details the process of identifying the peak demand time shown in
Figure 18: Figures 22A and 22B detail the process of setting attendance start times shown in Figure 18;
Figure 23 details the process of setting attendance end times shown in Figure 18; Figure 24 details the process of fitting in meal breaks shown in Figure 18;
Figure 25 details the process of stretching shown in Figure 18; Figures 26A and 26B detail the process of training and correspondence shown in Figure 18;
Figure 27A details the process of balancing shown in Figure 18. including moving one agent resource unit from surplus to deficit:
Figure 27B details the process of moving one agent resource unit from surplus to deficit shown in Figure 27A.
The remaining figures detail an advanced alternative embodiment of the invention, in which: Figure 28 summarises the process for data cleansing used to prepare data for forecasting by the forecaster shown in Figure 4. including identifying outliers:
Figure 29 details processes used in identifying outliers shown in Figure 28, including examining a differenced series and identifying outliers in original data series: Figures 30 to 32 detail tests used when examining the differenced series and identifying outliers in the original data series shown in Figure 29:
Figure 33 summarises steps performed in the forecaster shown in Figure 4 for forecasting levels of off-line work, including computing smoothing constants, calculating new levels and trends and performing a forecast; Figures 34 and 35 show steps used when performing the process for calculating smoothing constants shown in Figure 33:
Figure 36 details a graphic representation of the type of grid constructed in order to perform the calculation of smoothing constants shown in Figure 33;
Figure 37 details the process for calculating levels and trends shown in Figure 33: Figures 38 and 39 show forecasting formulae used in the process of generating a forecast shown in Figure 33;
Figure 40 summarises the steps used to forecast off-line work, including the forecasting method summarised in Figure 33; Figure 41 details steps performed by the forecaster shown in Figure 4, for forecasting the number of calls which will be made in each time slot of a day, including forecasting steps;
Figure 42 details equations used to impose upper and lower boundaries on forecasting steps shown in Figure 41 ; Figures 43 A and 43B detail processes used in the scheduler shown in Figure
4, including allocating work to each site per day. allocating pre-allocated indirect work within each site to a day, allocating off-line work within each site to a day. allocating undetermined indirect work within each site to a day. allocating call work within a day to each time slot, allocating pre-allocated indirect work within a day to each time slot, allocating agent hours within each day to each time slot, allocating off-line work within each day to each time slot, scheduling attendances, allocating work to attendances, stretching, checking tolerances, adjusting flexi-hours between days, adjusting time for off-line work, adjusting attendances for fixed shift agents. adjusting individual attendances within each day. and reducing the amount of off- line work carried forward and overtime;
Figure 44A and 44B detail the process of allocating work to each site per day shown in Figure 43A;
Figure 45 details the process of allocating pre-allocated indirect work within a site to a day shown in Figure 43A; Figure 46A details a table constructed when performing the process of allocating off-line work within a site to each day shown in Figure 43A;
Figures 46B and 46C detail the process of allocating off-line work within each site to each day shown in Figure 43 A:
Figure 47 details the process for allocating undetermined indirect work within each site to each dav shown in Figure 43A; Figure 48 details the allocation of call work within each day to each time slot shown in Figure 43A:
Figure 49 details the process for allocating pre-allocated indirect work within each day to each time slot shown in Figure 43A; Figure 50 details an equation used in the process for allocating agent hours within each day to each time slot shown in Figure 43A;
Figure 51A details a table constructed when performing the process of allocating off-line work within each day to each time slot shown in Figure 43A;
Figure 5 IB details the process of allocating off-line work within each day to each time slot shown in Figure 43 A;
Figures 52A, 52B and 52C detail the process of scheduling attendances shown in Figure 43A;
Figures 53A to 53G detail the process of allocating work to attendances shown in Figure 43A: Figures 54A to 54D detail the process of stretching as shown in Figure 43B;
Figures 55A to 55E detail the process of checking tolerances shown in Figure 43B;
Figures 56A and 56B detail the process of adjusting flexi-hours between days shown in Figure 43 B: Figure 57 details the process of adjusting time for off-line work shown in
Figure 43B:
Figures 58A and 58B detail the process of adjusting attendances for fixed shift agents shown in Figure 43B;
Figures 59A and 59B detail the process of adjusting individual attendances within each day shown in Figure 43B:
Figure 60 details the process of reducing the amount of work carried forward shown in Figure 43 B: and
Figures 61 A. to 6 ID detail the process of allocating overtime shown in Figure 43 B. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
The invention will now be described by way of example only with reference to the accompanying drawings identified above.
A public switched telephone network 101 connected by several lines to automatic call distribution equipment 102 is shown in Figure 1. The automatic call distribution equipment 102 is also connected to a number of agent-stations 103 at company sites 104 to 107. Customers dialling a company telephone number may have their call diverted to any of the agent-stations 103 located at any of the sites. The advantage of this arrangement is that a critical service provided by the company may be dealt with by the first agent available at any of the sites.
Typically a customer dials a number, such as "150", which connects the customer to the automatic call distribution equipment 102 providing the service for the number "150". The automatic call distribution equipment 102 diverts the call to an agent-station 103 so that the customer does not need to go through the process of speaking to an intermediate operator, or wait a long time in a telephone queue at one particular site, when the same telephone queue at a different site is empty or less full.
The automatic call distribution equipment 102 is arranged to operate in the following way. If several agents are free when a call comes in. the call is diverted to the agent who has been inactive for the longest time. Alternatively, if several calls are waiting to be answered, and no agents are free at the time, calls are held until an agent is free, with the call which has been waiting the longest given access to the first agent who becomes available. Typically a company will require a particular quality of service, specified in terms of the probability of callers h. ving to wait greater than a specific period of time before their call is answered. An example of this is a ten percent probability that any incoming call will be answered within fifteen seconds. From a statistical point of view, this is the same as saying that ninety percent of incoming calls will be answered within fifteen seconds.
Each of the agent-stations 103, at each of the sites A to D 104 to 107 shown in Figure 1. may be manned by an agent. In order to minimise waiting times for callers, it is possible to make forecasts of the variation in the number of calls which will be received throughout each day, and attempt may then be made to match the number of active agent-stations to that forecast.
The automatic call distribution equipment 102 provides a record of calls made to the relevant telephone number, and this information is used as the basis for a forecast of calls which will be received in the future. Automation of the forecasting process makes it possible to provide a forecast for each timeslot within each day for which a forecast is made. Typically a timeslot is fifteen or thirty minutes in length, and forecasts are made for two weeks ahead.
An example of a histogram of the number of calls made on each day of the week is shown in Figure 2. Given that it may be possible to predict these figures with some degree of accuracy, it can be seen that a clear advantage may be gained by activating agent-stations in accordance with the number of calls which are likely to be received on a particular day.
An example of a typical histogram of the number of calls made during each timeslot of a typical day is shown in Figure 3. From this histogram it can be seen that an advantage will be gained if it is possible to allocate active agent-stations in accordance with forecasts made for each timeslot of each day.
A telephone answering system is shown in Figure 4. Data storage equipment 401 records information from the automatic call distribution equipment 102. Information from the data store 401 is supplied to estimating equipment 405. comprising a forecaster 402. translator 403 and scheduler 404. The forecaster receives data which details the total number of calls made during each timeslot on each day of the week. The forecaster can thereby have access to a history of system usage so that a forecast of future usage can be made. Electrical signals representing a forecast for the number of calls arriving in a particular timeslot on a particular day are supplied to a translator 403. The translator 403 converts these signals so as to represent the number of active agent- stations which are required to meet this forecast demand in order to meet the quality of service requirements. Electrical signals representing the number of agent-stations required in each timeslot are supplied to a scheduler 404. which also receives data from a data store 406, which contains information about agent availability. The scheduler generates electrical signals in response to signals from the translator 403 and the data store 406. in order to control the automatic distribution equipment 102. The scheduler 404 supplies control signals to the automatic call distribution equipment 102 and to the agent- stations defining when stations are to be activated in each timeslot of each day of the week.
The telephone answering system is under the supervision of a human system controller, who may intervene during the process of generating a forecast or generating a schedule, when exceptional conditions are identified by the estimating equipment 405.
The data store 401 stores two types of information, represented by the histograms shown in Figures 2 and 3. The first type of information is the total number of calls made on each day of the week. This type of information is stored for each week over a period of up to two years. Thus the forecaster operates on information about the number of calls made on each day of the week, from a sample window of two years. Total daily calls are updated on the data store 401 a week at a time. As each new week of daily data is updated, a week's daily data from two years ago is discarded. Thus the two year window of daily data stored is a moving window. In some instances, particularly when setting up a telephone answering system, two years" data may not be available, and this special situation is detailed below.
The second type of data stored by the data store 401 corresponds to that shown in the histogram in Figure 3. Data for the timeslot usage of the automatic call distribution equipment 102 is recorded for a period of thirteen weeks. Thus for each day over a window of thirteen weeks, data such as that shown in Figure 3 is available for use by the forecaster 402. As with the data for the total number of calls made each day. the window of historical data for timeslots is a moving window, so that as each new day's hourly data is recorded, the data from thirteen weeks ago may be discarded. Timeslot data for each day is also updated on a weekly basis, so that in practice as each week's worth of timeslot data is updated, timeslot data from fourteen weeks ago is discarded. Again special conditions may exist where this data is not available, as detailed below. Daily and timeslot data and their periods of storage are summarised in Figure 5. The forecaster uses data for the total number of daily calls made over the last two years and data for the total number of calls made in each timeslot over the last thirteen weeks to provide a forecast of future requirements expressed in the same terms.
Timeslots may be thirty or fifteen minutes in length, such that a forecast may be made with improved accuracy when fifteen minute timeslots are provided. The forecast may be made to predict calls many weeks into the future, with diminishing accuracy as a function of time. In practice the system controller typically requires knowledge of the schedule for the week after the current one.
Thus the forecast may be made for two weeks in the future, so that the system controller has one week in which to receive the schedule and communicate to the agents whose stations have been selected for activation during each particular timeslot. Agents may then provide helpful feedback as to any problems they encounter with the implementation of the schedule, while still having time to make adjustments to the plan if necessary. This timing is summarised in Figure 6.
The operations performed by the forecaster 402 are summarised in Figure 7. In processes 701 and 702 daily and timeslot data is cleansed to remove anomalies, which may otherwise adversely affect the accuracy of a forecast. In process 703 a statistical model is chosen which best fits the daily total data. In process 704 a forecast is made using the statistical model selected in process 703. of the total number of calls which will be made on each day in the forecast. Forecasts for each timeslot are then made by a process of proportional allocation of forecasted daily totals in response to an analysis of recorded timeslot call distribution for the same day in preceding weeks.
Data cleansing 701 of daily totals shown in Figure 7 is detailed in Figure 8. In process 801 known anomalous days are identified for exclusion from the data series. A typical known anomalous day would be a bank holiday, or a religious holiday. These are days on which it is unlikely that the number of calls which were handled by the automatic call distributor 102 is typical. Thus data for these days is excluded from the data used to make a forecast. Each of these days is identified by a flag, such that the data may later be replaced by an interpolated value.
In process 802 the mean and standard deviation of all of the non-excluded daily totals are calculated. In process 803 each of the daily totals is examined to see whether it lies outside the range defined by the mean plus or minus 2.5 multiplied by the standard deviation (SD). The list of "outliers" generated in process 803 is supplied to the system controller in process 804. The system controller identifies which of the listed days should be excluded from the data set. A forecast can only be made using a complete data set. so data for days identified in process 801 and process 804 for exclusion must be replaced by estimated values which will have a minimal effect on the accuracy of a forecast. This is carried out in process 805. where a cubic spline interpolation is usually performed on data from the same day in preceding and/or subsequent weeks.
The process 702 for data cleansing of timeslot data shown in Figure 7 is detailed in Figure 9. The day of week is set to a value of zero, which corresponds to Monday, in process 901. Thus initially steps 902 to 904 will be performed for all Mondays within the thirteen weeks of recorded sub-hourly total call data. In process 902 mean and standard deviation values are generated from totals for each sub-houriy interval of the selected day in each week. Thus when the day value is zero (Monday) the mean and standard deviation are calculated for recorded totals for the first timeslot interval recorded for each Monday over the thirteen weeks. Then the mean and standard deviation is calculated similarly for the remaining sub- hourly intervals from Monday the values over the thirteen week period. Thus in process 902 a number of mean and standard deviation pair values are generated. corresponding to the number of timeslots within each day.
In process 903 a list is generated of periods within days in which the timeslot call total is outside the range of the mean plus or minus two and a half times the standard deviation, as calculated in process 902. The purpose of this is to identify periods of the day during which freak call rates occur. This may happen for a variety of reasons, for example unusual weather conditions or advertising on television, etc. In process 904 the system controller is provided with the list of periods during which anomalous data has appeared. The system controller is prompted to identify which of these listed periods is to be excluded from the data set.
In process 906 the day value is incremented, and in process 907 the selected day is checked to see if it has been incremented beyond the limit of seven, in which case each day of the week has been considered, indicating that data cleansing of the timeslot data has been completed. At this point the control is returned to process
703 in Figure 7.
The process 703 for choosing a statistical model is detailed in Figure 10. Forecasts are normally generated for one week ahead, and forecasts are made for each day of the week. Thus, for example, forecasts are made for Mondays by considering known data for previous Mondays. Thus the processes 1002 to 1010 shown in Figure 10 are performed seven times, once for each day of the week.
In process 1001 a day counter is used to indicate which day of the week is currently being used as the basis for a forecast. In process 1002 a question is asked as to whether less than 27 weeks' data is available. If this is the case, a special low data forecast model is used. If twenty seven weeks or more data is available, control is diverted to process 1003. In each of the processes 1003 to 1010 the data which is being considered is data for the total number of calls made on each day. Thus it is possible that the records for the data being considered will consist of up to two years" worth of daily records for total calls made.
In process 1003 an attempt is made to fit the daily call total data against a
Box- Jenkins A.R.I.M.A. (auto-regressive integrated moving average) (0.1.1 ) statistical model. This type of statistical model is known in the art and is described in "Time Series Analysis Forecasting and Control" by George E.P. Box and Gwilym
M. Jenkins ISBN 0-8162-1104-3.
One of four possible conditions exists after an attempt has been made to fit the ARIMA (0.1,1) model. These are tested for in processes 1004. 1005, 1006 and
1008. The result of process 1003 may indicate use of the ARIMA(0,1.1) model, use of a linear data model, use of a low data model, or use of an ARIMA( 1.0,0) model. In process 1004 a test is made to see whether a good match has been made with the ARIMA (0,1,1) model. If this is the case, the ARIMA (0,1,1) model is used to generate a forecast. If the match is not a good one. control is directed to process 1005, which interprets the results from the attempt to fit the ARIMA (0,1,1) model performed in process 1003, to see if a linear data model is more suitable.
If a linear data model is not suitable, control is directed to process 1006 which interprets the results from process 1003 to see if a low data model is suitable for performing a forecast. If this is not the case control is directed to process 1007. In process 1007 an attempt is made to fit the data against an ARIMA (1,0,0) statistical model, which is a similar process to that performed in process 1003.
Again several conditions may exist as a result of having attempted to fit the ARIMA (1,0.0) model to the data, and these are tested in processes 1008 to 1010. In process 1008 a check is made to see if a good match has been achieved with the ARIMA (1,0,0) model. If this is not the case, control is diverted to process 1009 where the results from 1007 are interpreted to see whether a linear data model would be more suitable. If this is not the case, control is diverted to process 1010 which assumes the use of a low data model as default.
Processes 1003 and 1007. which employ ARIMA statistical models, are available in the form of sub-routines from The Numerical Algorithms Group Limited. Wilkinson House. Jordan Hill Road. Oxford OX2 SDR. England. These sub-routines may be used to define circuit operations in the forecasting equipment 402. The sets of output conditions which are tested in processes 1004. 1005. 1006. 1008 and 1009 are performed by interpreting result conditions which are defined in the algorithm documentation also available from the Numerical Algorithms Group Limited at the above address.
Once a statistical model has been selected, a forecast of the number of calls made on each day in the forecast period will be made. The process 704 for forecasting the number of calls is detailed in Figure 1 1. In process 1 101 a forecast is made using the selected model for the selected day in the next two weeks. Thus. for example, if the currently selected day is a Monday the forecast made in process
1 101 will be for the Mondav in the next week, and the Mondav in the week after that. In process 1101 the forecast is made by applying the selected model to the known data, and extrapolating the known data according to the propeπies of the model. Thus forecasts are made for Mondays by applying the selected model to data for previous Mondays. Forecasts are made for Tuesdays by applying a (possibly different) model to data for previous Tuesdays.
In process 1102 the average number of calls in each timeslot from the previous recorded thirteen instances of the currently selected day is calculated. The results from process 1102 give the call distribution profile likely to occur on a particular day of the week. For example, the profile for Mondays is likely to be different from the profile for Fridays.
A forecast for timeslots within a day is generated by appoπioning the daily total predicted in process 1101, in the profile that has been calculated in process 1102.
Thus a forecast is made of the total number of calls using a statistical model, and a forecast is made of the relative distribution of the calls across a day in timeslots by appoπioning the total number of daily calls according to the average number of calls from previously recorded instances of timeslots for the currently selected day.
In process 1104 the day number is incremented to select the next day. In process 1 105 the day value is checked to see if all seven days have been forecasted.
When all seven days have been considered, the forecast is complete.
Thus a forecast has been made of the total number of calls for each day in the forecast period, and the number of calls anticipated within each timeslot of each of those days. The translator 403 shown in Figure 4 translates forecasted calls for each timeslot into the minimum number of active agent-stations required to handle that number of calls while still meeting the target quality of service requirements of ninety percent of calls answered within fifteen seconds.
Known queuing theory provides equations for calculating the probability of a customer waiting longer than a cεπain period of time, given a call arrival rate and a number of agents capable of handling incoming calls. An equation of this type is shown in Figure 12A. In the preferred embodiment the "target" is a probability of ten percent that a caller will have to wait for more than 15 seconds before the call is answered. The call arrival rate "r", required by the equation shown in Figure 12 A, may be derived by dividing the calls forecast by the time (i.e. timeslot length) in which they are expected to arrive.
The equation in Figure 12A treats the number of agents as a known quantity, with the probability of waiting greater than a ceπain period of time as the unknown. However, the problem which must be solved is the other way round: the forecaster 402 provides a call arrival rate and the scheduler needs to know how many agents are required to handle these calls in order to meet the target of ninety percent of calls answered within fifteen seconds. Unfonunately it is not practical to derive such a relationship from the equation shown in Figure 12 A, and an iterative search, or "binary chop" method for solving this equation is used.
A component of the equation shown in Figure 12A is detailed in Figure 12B. A imponant variable in the equation shown in Figure 12B, known as the "Erlang
Loss Function", may be evaluated using the equation shown in Figure 12C. Two of the expressions in Figure 12C, "n!" and "ϋ", often result in extremely large numerical values, which make it difficult to efficiently calculate the Erlang Loss Function to an acceptable degree of accuracy. An alternative equation to the one shown in Figure 12C is shown in Figure
13 A. Although this equation appears more complicated, it is much easier to design and construct an arithmetic circuit to evaluate it with the required level of accuracy. Figures 13B and 13C detail other equations necessary to evaluate the equation shown in Figure 13 A. Thus the calculation of the probability of waiting for more than fifteen seconds requires the use of the equations shown in Figure 12 A. 12B. 13A. 13B and 13C. For convenience, the equation shown in Figure 12A may be considered as the main equation.
The iterative search or "binary chop'' method for solving the number of agents, "n". which would be required to achieve the target probability of ten percent for any caller having to wait greater than "t" seconds before the call is answered, is shown in Figure 14.
In the preferred embodiment the target probability is zero point one (0.1).
A target probability of zero point one (0.1) corresponds to a ten per cent (10%) chance of a caller having to wait for a period greater than "t" seconds. Alternatively this may be viewed as a ninety percent chance that all calls, will be answered in less than or equal to "t" seconds.
To initialize the binary chop search, a maximum number of agents capable of answering calls must be defined. This is given the name MAXAGENTS. Thus the number of agents available to answer calls, "n", is assigned to the value of
MAXAGENTS in process 1401. An initial calculation of the probability of waiting for greater than "t" seconds is performed in process 1402. with the maximum number of agents, n, available to handle calls as its input.
In process 1403 the probability is compared against the target probability of zero point one (0.1 ). If the target probability is not met with the maximum number of agents, clearly it is impossible for the target to be met at all. and this results in the system controller being alerted to a timeslot in which quality of service cannot be met. If the probability can be met by the maximum number of agents available it will be possible to perform the binary chop search successfully and determine the minimum number of agents which would meet the target.
In process 1404 the contents of two registers are defined, these two registers are called HIGHER and LOWER. The contents of the register known as HIGHER define the upper limit of the range in which the numerical value of n that matches the target probability is to be found. The contents of the register known as LOWER define the lower boundary of this range.
The end condition for the binary chop is defined by the point at which the values in the HIGHER and LOWER registers converge. Thus in process 1406 a test is made to see if the higher and lower registers are near enough in value to end the binary chop. If the HIGHER and LOWER registers are different by a value of one or less, this signifies the end of the search, and the current value for n gives the number of agents which best matches the target probability. If the HIGHER and LOWER registers have not converged, process 1406 diverts control to process 1407. In process 1407 the numerical range encompassed by the contents of the HIGHER and LOWER registers is calculated, and the next test value of "n" is defined as being half way through that range. In process 1408 the probability of waiting for longer than "t" seconds is calculated, given input values of "n" agents, and call rate "r" for the period in which the rate of incoming calls is translated into required manpower.
In process 1409 the outcome from the calculation in process 1408 is examined to see if it is greater than zero point one. which is the target probability. If the probability calculated in 1408 is greater than the target probability then the number of agents that are required must be between the current value of "n" and the contents of HIGHER. Thus in process 1410 the contents of register LOWER are set to the current value of "n". If the probability evaluated in process 1408 is less than the target probability, it is possible that too many agents have been used to meet the target probability. Thus in process 141 1 the range in which the minimum number of agents that match the target probability is redefined, by placing the value of "n" into the register HIGHER. Thus process 1411 redefines the range as between the current value of LOWER and the current value of "n". After process 1410. or process 1411 , has been completed, control is diverted back to process 1406.
Tne probability calculation shown in Figure 12A and used in processes 1402 and 1408 is very sensitive to changes in the call arrival rate, which is directly calculated from the forecasted number of calls which are likely to arrive in a particular timeslot of the day. The call arrival rate can be expected to change up and down throughout the fifteen or thirty minute duration of the timeslot. Due to the non-linearity of the equation shown in Figure 12 A, positive and negative variations in call arrival rate throughout the timeslot period do not tend to cancel each other out.
For example, if the probability of calls not being answered is three percent. a ten percent increase in forecast call arrivals will have a large upward impact on the probability of calls not being answered. A ten percent drop in forecast call arrivals will not cause the probability of calls not being answered to change much because it cannot be less than zero percent.
A range of call forecasts is identified and a plurality of forecasts within this range are translated, to produce a plurality of potential requirements. Weighted averages of these translated requirements are then considered, with reference to a normal distribution.
The probability of calls answered for a variety of call arrival rates centred on the forecast value are calculated, and the average of these is taken. Thirty points around the forecasted value, plus the forecasted value itself, are taken. The average used is a weighted average, with the weights taken from a normal distribution curve.
This ensures that values far from the forecast value are given low weight and values near the forecast value are given a high weight. (This can result in a negative call arrival rate. In this case the average is taken over the non-negative values only.) Thus the variability and uncertainty associated with the forecasted call arrival rate may be taken into account by weighting perturbed values in iterative calculations of the probability.
A flow chart detailing processes 1402 and 1408 using perturbed values for call arrival rate is shown in Figure 15. In process 1501 a register COUNT is set to the value one. In process 1502 an accumulating register is re-set to zero. In process 1503. the call arrival rate, "r", which is shown in Figure 12A is assigned to a value equal to the forecasted call arrival rate plus the product of an output from a look-up table PERT and the coefficient of variation. VAR. for the timeslot under consideration.
The look-up table PERT is indexed by the register COUNT, and thus the look-up table contains thirty-one locations. The coefficient of variation, VAR. of the timeslot is calculated by dividing the standard deviation for the timeslot by the apportionment factor for the timeslot. The apportionment factor for the timeslot is that which has been previously used in the forecaster 402 to apportion the forecasted daily totals to individual timeslots of the day. used in process 1103. Thus, for timeslots which have a high coefficient of variation, the perturbation of the call arrival rate "r" which is calculated in process 1503. will be correspondingly high. In process 1504 the probability of waiting for greater than "t" seconds is calculated as previously described using the equation shown in Figure 12 A. In process 1505 the result from process 1504 is multiplied by a weighting factor, and the resulting product is added to the accumulator's contents. The weighting factor which is used is given by a second look-up table
NORM, which is indexed by the register COUNT. In process 1506 the value of COUNT is incremented, and in process 1507 the value of COUNT is checked to see if it has gone beyond the maximum value of thirty-one. If the value of COUNT is not greater than thirty-one, control is directed to process 1503, and the steps which have previously been described are performed again. If the value of COUNT is greater than thirty-one. control is directed to process 1508. In process 1508 the contents of the accumulator are returned as the value for probability.
The look-up table for perturbation amounts used in process 1503 is shown in Figure 16. Each of the thirty one locations in the look-up table called PERT contain a number representing a magnitude of perturbation which may be added to a forecasted value. Thus the range of values stored in the look-up table represented in Figure 16 is multiplied by VAR and added to RATE in process 1503 in order to reflect the likely range of values resulting from variation of call arrival rate within a timeslot. The look-up table NORM used in process 1505 is shown in Figure 17. The value in each of the thirty-one locations of the NORM look-up table shown in Figure 17 correspond to the likelihood of a degree of perturbation indexed by the look-up table represented in Figure 16. Thus a large negative or positive perturbation is less likely to occur than a zero magnitude of perturbation, and this is represented by the distribution of values shown in Figure 17. The distribution of values shown in Figure 17 is known as a normal distribution, which is known in statistical theory.
In addition to providing relative weighting factors for different perturbation amounts, the NORM look-up table has specific amplitude values designed such that the sum of all the values in the thirty one locations of the look-up table is equal to unity. Thus the value calculated by accumulating thirty one products of calculated probabilities and looked up weighting factors represents a single probability in the same way as the probability which may be calculated without the use of a weighting factor. Thus the value returned from process 1508 has a probability value in the range zero to one. The flow chart shown in Figure 15 defines operations which are carried out each time a probability is calculated in either of processes 1402 and 1408. The best value of "n" resulting from the binary chop procedure shown in Figure 14 enables the forecasted number of calls in a given timeslot to be translated into a forecast of the number of active agent-stations required to handle calls in the timeslot. The scheduler 404 shown in Figure 4 is arranged to receive a forecast for the number of active agent-stations required to handle calls in each timeslot of the day, and generates a set of attendance signals for activating agent-stations, controlling the automatic call distribution equipment 102 and a set of attendances for workers at one or a number of sites. The operations performed by the scheduler 404 are summarised in Figure 18.
The process for apportioning a demand to sites 1801 shown in Figure 18 is detailed in Figure 19. In process 1901 a first company site for which a schedule is to be generated is selected. Two types of workers are taken into consideration in the present embodiment: firstly, fixed shift workers, whose start, end and break times are pre-determined: and. secondly, flexiworkers. whose start, meal break and end times may be variable within certain known restrictions. Scheduling of fixed shift workers is fixed, and so the work that these agents will be able to do is allowed for in the scheduling process at an early stage, so that flexiworkers may be assigned to the remaining estimated workload, in order to match the changing call arrival rate throughout different periods of the day.
In process 1902 a calculation is made of the number of hours worked by fixed shift workers on the forecast day. In process 1903 a calculation is made of the number of hours worked by flexiworkers on each forecast day. The number of hours worked by flexiworkers in a day is calculated by adding the total number of hours worked by all flexiworkers in a week and dividing by the number of days worked bv flexiworkers in a week. This gives a notional value for the number of hours worked by flexiworkers in a day, which may not be strictly accurate but will be a reasonably close approximation. In process 1904 the sums calculated in processes 1902 and 1903 are added together to give the total number of hours worked at a particular site on a particular day. In process 1905 a question is asked to see if any other sites remain for which the processes 1902 to 1904 must be performed. If the number of site hours worked in a day has been calculated for all sites, control is diverted to process 1906, where a calculation is made of the total number of hours worked on all sites within a day. Processes 1907, 1908 and 1909 form a loop for apportioning demand to sites. In process 1908 the proportion of the total forecast demand allocated to the site is calculated by dividing the product of the site hours and the forecasted demand for all sites divided by the total number of man hours worked at all sites. Once all sites have been apportioned a proportion of the demand total in this way, control is returned to process 1802 in Figure 18. In process 1802 the first company site is selected, and in process 1803 the first day of the week is selected. Thus the remaining processes 1804 to 1810 will be performed for each day of the week, and for each company site. The balancing process 1812 will be performed once only for each company site.
The process for removing fixed shift workers 1804 is detailed in Figure 20. In process 2001 the first time slot of the day is considered. In process 2002 the number of fixed shift workers working during the first time slot is subtracted from the time slot forecast of agents required. In process 2003 the modified time slot forecast is recorded. In process 2004 looping is performed to ensure that all time slots in the day are calculated in this way. Once all time slots have been finished. control is returned to process 1805 in Figure 18. With fixed shift workers there is no forecasting issue, as their times of work cannot be adjusted to fit in with the forecasted number of agents required. Thus once the processes shown in Figure 20 have been completed, the modified time slot forecast for each period of the day- defines the number of flexitime agents which are required to fulfil the demand for that time slot. The process 1805 for identifying a peak demand time shown in Figure 18 is detailed in Figure 21. In process 2101 a search is performed on each time slot of the day to find out which of the time slots has the maximum forecast demand. In process 2101 a test is made to see whether the time slot is closest to the beginning or end of the day. If the time slot with the maximum demand is closest to the beginning of the day, control is returned to process 1806 of Figure 18. If the time slot with the maximum demand is nearest to the end of the day. process 2103 records this condition and modifies the configuration of the scheduler circuitry such that processes 1806 to 1810 shown in Figure 18 will proceed by working from the end of the day to the beginning of the day. This is achieved by indexing the time slot forecast with an inveπed time value, such that in all other respects process 1806 to 1810 may operate as if working from the beginning of the day to the end of the day.
The process for setting attendance start times 1806 shown in Figure 18 is detailed in Figures 22A and 22B. In process 2201 the first time slot of the day is selected. The actual first time slot which is used is dependent upon the decision made in process 1805. Thus if the peak demand time identified in process 1805 was nearest to the end of the day, the first time slot considered in process 2201 will in fact be the last time slot available for work during the day. In process 2202 the number of working agents is reset to zero. In process
2203 the number of agents available to start work is considered. If this number is less than or equal to zero control is diverted to process 1807, as no more agents are available to start work. If agents are available control is diverted to process 2204. where a question is asked as to whether the forecast demand is greater than the number of agents currently working in the considered time slot. If the demand is greater than the number of working agents, control is diverted to process 2205.
In process 2205 a difference is calculated between the forecast demand and the number of agents which are currently working in the time slot. In process 2206 this difference is compared against the number of agents available to start work. If the difference is greater than the number of agents available to start work control is diverted to process 2208. If the difference is not greater than the number of agents available to start work, new agents are identified to start work in the currently considered time slot. Thereafter control is diverted to process 2209. In process 2208 a condition exists that not enough agents are available to start work to cover the forecasted demand for the current time slot. Thus, all the remaining agents available to start work are assigned. In process 2209 a question is asked as to whether another time slot is available for consideration as a valid starting period. Only a certain number of time slots are considered valid for a start period at the beginning of or the end of the day. Valid time slots for starting work are defined by the system controller, and typically this may provide a range of starting time slots between 8.30am and 10.30am in the morning (or 6.30pm to 4.30pm if time slots are being considered in reverse order as the result of a decision made in process 1805).
If another timeslot does exist in the value start period control is diveπed from process 2209 to process 2203. whereafter the steps previously described are repeated. If there are no time slots left in the valid staπ period, process 2209 diveπs control to process 2210 in Figure 22B. In process 2210 the start times for the remaining agents are spread evenly across time slots in the valid start period. Thus, for example, if there are five time slots in the valid start period and five agents remain available to start work in that period after the processes of Figure 22A have been completed, one of the five remaining agents begins work in each of the five available time slots. On completion of process 2210. control is returned to process 1807 in Figure 18.
The process for setting attendance end times 1807 shown in Figure 18 is detailed in Figure 23. In process 2301 a notional end time is calculated by adding the start time, the average day length and the lunch time. The average day length is calculated from dividing the number of hours worked by a flexiworker in the week by the number of days worked by the flexiworker in the week. Thus for example if a flexiworker works for a total of 36 hours in a week, and five days are worked within a week, an average day length of 7.2 hours is used. The notional end time calculated in process 2301 will probably result in an end time which does not coincide with the end of a particular time slot. In process 2302 the notional end time is adjusted to coincide with the end of an actual time slot period, in such a way as to minimise the divergence of the average number of hours worked by flexiworkers on each day of the week.
Thus if the notional end time is 5.40pm, and valid time slots end at 5.30pm and 6.00pm a calculation is performed of the average day length resulting in each case for assigning an end time of 5.30pm and 6.00pm. The calculation resulting in an average figure closest to the required average figure, for example which may be
7.2 hours. is used as the actual end time for the flexiworker.
The process for fitting in meal breaks 1808 shown in Figure 18 is detailed in Figure 24. Each particular company site will have a period of the day during which lunch breaks may occur. Furthermore the duration of the lunch break for a particular site is also predetermined. Thus given that there will be a fixed number of time slots during which lunch breaks may occur and a fixed period of time for a lunch break, there will be a small number of start and end times for lunch breaks. For example, a site may have a lunch period beginning at 11.30am and ending at
2.30pm and a lunch break duration of one hour then a first possible lunch break may occur from 11.30am to 12.30pm, a second lunch break period may begin at 12.00pm and end at 1.00pm. a third from 12.30pm to 1.30pm, a fourth from 1.00pm to 2.00pm. and a fifth from 1.30pm to 2.30pm. In process 2401 the number of possible start times for lunch breaks at a site is calculated. In process 2402 the number of agents commencing lunch in each possible start time for a lunch period is calculated by dividing the workforce by the number of possible start times for lunch.
Re-allocating procedures of the scheduler are arranged to identify times during which the number of allocated active stations falls below a predetermined level. Under such circumstances, station active times are re-allocated so as to increase the number of active stations for these identified times, in accordance with the procedure identified as "stretching".
The process of stretching 1809 shown in Figure 18 is detailed in Figure 25. In process 2501 a check is made to see if any time slots at the end of the day have a zero allocation of agents. If all time slots have some agents answering calls control is returned to process 1810 in Figure 18. If some time slots at the end of the day have no agents allocated to answer calls, the process known as stretching is performed.
In process 2502 the number of agents required is calculated as being equal to the forecast demand for the time slot where no agents have been allocated divided by 4. In process 2503 the start times of the number of agents calculated in process 2502 is delayed to the degree required to cover the time slots during which zero allocation has occurred. Thereafter control is returned to process 1810 in Figure 18. The process for allocating training and correspondence times 1810 shown in
Figure 18 is detailed in Figures 26A and 26B. So far schedules have been defined for agents answering telephone calls. However a company usually has requirements for training and off-line work such as correspondence, which must be taken into account when scheduling agents for call work. Any surplus in the number of agents on calls may thus be used for training or off-line work.
The processes for allocating training time to agents are shown in Figure 26A. In process 2601 agents required at a predetermined time of day for training have their attendance records updated. For example the system controller could have specified that two workers are required for a period of one hour between 2.00 pm and 3.00 pm on a particular day. In this case there is no scheduling to be performed, as the time when training is required is fixed precisely.
Thus the scheduler removes these two agents from answering calls and assigns them to their training periods. This is performed automatically unless this results in a time slot during which no agents are available to answer calls. The scheduler will always ensure that at least one agent remains to answer calls.
In process 2602 variable training requirements are considered. For example, the system controller may specify that two people are required for training for a period of one hour at a particular time on a particular day. In this case agents are allocated training times from time slots where there is a surplus of agents answering calls. If there is no time slot during which there is a surplus, agents are assigned to their training period for minimum impact on the percentage of calls answered. As with process 2601, the scheduler ensures that at least one agent remains to answer calls during each time slot. Thus it is possible, as a result of having performed processes 2601 and 2602, that some training requirements may not have been met. Correspondence and off-line work, for example writing letters to customers, is considered in Figure 26B. The allocation of correspondence work to agents is more complex than that required for training, as the correspondence requirement may be specified in man hours, rather than time required for a particular agent. In process 2603 the number of man hours required for correspondence is defined. In process 2604 the first correspondence time slot is selected for consideration. The system controller will have defined a period of time during the day when the correspondence may be performed, for example from 2.30 pm to 6.00 pm. In process 2605 a question is asked as to whether there is a surplus of agents answering calls in the currently considered time slot. If this is the case the surplus manpower is allocated to perform correspondence, reducing the previously calculated number of man hours required for correspondence by the appropriate amount. In process 2607 the remaining number of man hours required to be allocated for correspondence is checked to see if this value has been reduced to zero. If this is the case, allocation for correspondence is completed and control is returned to process 181 1 in Figure 18.
If some correspondence remains to be performed, control is diverted to process 2608 where a check is performed to see if another coπespondence time slot is available in the day. If this is the case, control is diverted to process 2605 and the steps previously described are repeated. If another correspondence time slot does not exist, process 2608 diverts control to process 2609. where the first correspondence time slot of the day is selected. In process 2601 one agent performing calls is assigned to perform correspondence, reducing the number of man hours remaining for allocation for correspondence by an appropriate amount. Process 2601 also performs a check to ensure that at least one agent remains for answering calls. In process 2611 a check is performed to see if all coπespondence has been accounted for. If this is not the case another correspondence time slot is considered and control is diverted back to process 2610 and an agent from the next time slot is considered. If the result of process 2612 is negative control is returned to process 2609, where the first coπespondence time slot is considered again. Thus steps 2609 to 2612 are performed iteratively until all coπespondence has been assigned. It is possible that this process may fail, for example when more coπespondence man hours are required than there are agents to answer calls in the coπespondence period. However, given usual working conditions, this situation should not occur frequently.
In process 1811 in Figure 18. a check is performed to see if all days have been considered in the scheduling processes so far described. If another day remains for scheduling, control is diverted to process 1804. and steps 1804 to 1810 are performed again. If all days have been considered, control is diverted to process 1812.
The process of balancing 1812. shown in Figure 18, is summarised in Figure 27 A. In process 2701 timeslots before the morning peak and after the afternoon peak, in every day of the week, is examined to see whether it contains a deficit or a surplus of agents answering calls. Scope for balancing exists if there is at least one period of surplus and one period of deficit. If this condition is not met control is returned to process 1813 of Figure 18. If this condition is met. the balancing process may be performed.
In process 2702 a first surplus period is selected for consideration. In process 2703 a first deficit period is selected for consideration. In process 2704 conditions are examined to see if it is possible to move an agent resource unit from surplus to deficit and if this is the case, attendance records are updated accordingly.
In process 2705 a check is made to see if another deficit is available for consideration. If another deficit exists control is diverted to 2704. which is repeated for the new deficit period with the previously selected surplus period. If all deficit periods have been considered control is diverted from process 2705 to process 2706.
If another surolus exists within the week, this is selected and control is diveπed to process 2703. where the first deficit period is reselected. If there are no further surplus periods available for consideration, control is returned to process 1813 in Figure 18.
Thus processes 2702 to 2706 form a nested loop which enables each surplus period to be matched with each deficit period, in order to see if it is possible to move an agent resource unit from surplus to deficit, and thus achieve a better balance of manpower resources.
The process 2704 of checking and moving an agent resource from surplus to deficit is detailed in Figure 27B. In process 2701 a question is asked as to whether the surplus is in the morning or in the afternoon. If the surplus is in the morning control is diveπed to process 271 1, where a question is asked as to whether a station has been scheduled to become active in the surplus period. If there is no- one starting work in the surplus period control is returned to process 2705 in Figure 27A. If someone is starting work in the surplus period, process 271 1 diverts control to process 2713, where a question is asked as to whether a deficit exists in the morning or afternoon. If the deficit is in the morning, control is diveπed to process 2714. where a question is asked as to whether there is somebody starting work at the end of the deficit period. If there is nobody starting work at the end of the deficit period, control is returned to process 2705 in Figure 27A. If someone is starting work at the end of the deficit period, control is diveπed to process 2716. In process 2716, a set of conditions exist which make it possible to transfer one agent resource unit from a surplus period to a deficit period. For example an agent may be assigned to start work half an hour later than had previously been determined, because the time slot in which that agent had previously been assigned to start work contained a surplus of agents answering calls. Thus half an hour of the agent's time within the week has been removed from the weekly total of time available for the agent to work, which may then be reassigned to a period of deficit at any other time within the week. Thus processes 2710 to 2715 identify a condition in which a shifting of the start or end time of an agent's working dav mav be used to remove a surplus, and a shifting of the agent's starting or ending time at another point in the week may be used to counterbalance a coπesponding deficit. Once the balancing process 1812 shown in Figure 18 is completed, control is diverted to process 1813, where a check is made to see if a schedule has been produced for all company sites. If a site remains to be scheduled, control is diverted to process 1803. where Monday is selected again as the first day of the week, and processes 1804 to 1810 are repeated for all seven days within the week for that site. Once all sites have been scheduled, this completes the scheduling operations performed by the scheduler 404 shown in Figure 4. The scheduler 404 supplies electrical signals to the automatic call distribution equipment 102 defining the schedule for a paπicular day. in terms of which of the agent- stations to which it is connected are active in each timeslot. Signals are also supplied to the agent-stations, and agents are notified of their schedule a week in advance. In an alternative embodiment, an agent provides an indication to the automatic call distribution equipment 102 to define his or her agent-station as being active, without electrical signals being directly sent from the scheduler 404 to the automatic call distribution equipment 102.
In a second prefeπed embodiment the apparatus that has been described additionally includes means for forecasting off-line work. Furthermore, different types of calls and off-line work may be specified. For example customer complaints and customer bills are two possible types of off-line coπespondence which may be received at a site. Forecasting and scheduling of different types of work is performed so as to optimise the use of several types of agents, which may include agents having the ability to perform more than one type of call or off-line work.
The second embodiment includes the ability to forecast and schedule multiple call queues. For example, the automatic call distribution equipment 102 may be arranged to receive calls on two different numbers, such as " 150" and "151 ". and to divert these to active agent-stations manned by agents having skills appropriate to dealing with a particular type of call. Forecasting and scheduling for a number of call queues and types of off-line work (called off-line queues), is a considerably more complex task than that performed by the forecasting and scheduling apparatus which has previously been described. The solution is known as Integrated Resource Management, integrating as it does multiple telephone answering and off-line forecasting and scheduling.
Thus, in addition to forecasting the number of calls made to the automatic call distribution equipment 102, the forecaster 402 shown in Figure 4 provides a forecast for different types of off-line correspondence. In addition to call data received from the automatic call distribution equipment, the data store 401 contains records for daily totals of different types of off-line work.
Each item of off-line coπespondence which is received on a particular site on a particular day is categorised, and recorded as a single item in the forecasting records. Thus, off-line correspondence is recorded in terms of the number of items of a particular type of off-line coπespondence which arrive on a particular day; and a forecast is made in the same terms.
Each of several off-line queues is forecast in the same way. Daily totals of a particular type of off-line correspondence are recorded over a period of up to two years. There is one off-line data series for Mondays, one for Tuesdays, one for Wednesdays and so on. At least five days' worth of data in each of these series is required in order to make a valid forecast. If less than five days data are available the system controller is alerted to this condition, and if necessary arbitrary data may be used in order to make a forecast possible.
Thus several data series are recorded defining different types of work carried out on days in the past. Each of these different types of work is identified as a queue. There are two types of queues: call queues and off-line coπespondence queues. Each call queue coπesponds to a particular phone number, i.e. " 150" or
"151 ". serviced by the automatic call distribution equipment 102.
Each off-line work queue coπesponds to a type of coπespondencε which might be expected by the company in the course of a day's work, for example. customer queries, complaints or bills. Up to two years of daily totals for each type of queue are available to perform a forecast of the likely level of work demanded by a particular queue at some point in the future. In order to perform the most accurate forecast possible using the data that is available, it is necessary to exclude from the data series any particular instances of data which are likely to result in an inaccurate forecast being made. Thus before forecasting may be performed by the forecaster 402, it is necessary to perform data cleansing.
Steps for data cleansing are summarised in Figure 28. In each of the steps 2851 to 2854 unusual or eπoneous data is identified. In process 2855 data items which have been identified in this way are re-calculated by a process of interpolation between known acceptable values in the data series. Thus from an input data series of known recorded observations of queue activity, an output data series is generated which may then form the basis for an accurate forecast.
In process 2851 all zero values from the daily totals of queue activity are identified and excluded. Zero values can either be the result of the office being closed on the day. or from the data having been lost. In either case the data is not suitable for use in forecasting. In process 2852 Bank Holidays are excluded from the daily totals. Bank Holidays may be identified with reference to a database structure implemented in the forecasting equipment. Bank Holidays may occur on different days in different countries, and this must be reflected in the records. The data recorded on a Bank Holiday is unlikely to be representative of the same day when it is not a bank holiday, for example a May Day Bank Holiday Monday is unlikely to contribute meaningfully to the data series of other Mondays which are normal working days.
After processes 2851 and 2852 have identified days which should be excluded for obvious reasons, such as known holidays, a search is performed on the remaining data to see if there are any extreme values which may need to be excluded. These days are termed "outliers".
Such days may be ones where an unusually large or small amount of off-line work has occuπed. For example an unusually large amount of coπespondence may be received in a repair coπespondencε queue immediately after a storm or other bad weather. In such cases the data recorded for the day will not be representative of JJ what is likely to happen in the forecast week (since neither event is predictable in the future) and so should be excluded from the data series used for forecasting.
The process 2854 for identifying outliers, shown in Figure 28 is detailed in
Figure 29. This differs from that described for the previous embodiment in that a difference series is used. In process 2951 a differenced series is generated from the original data series. The differenced series is generated by considering each daily total in turn, and recording the difference between consecutive daily totals.
For example the first item in the differenced series will be the result of subtracting the first item of the original series of daily totals from the second item in the original series of said totals. The second item in the differenced series will be the result of subtracting the second item in the original series of daily totals from the third item in the series of daily totals, and so on.
When generating the differenced series, it is necessary to exclude values which have been identified in processes 2851 to 2853 (shown in Figure 28), as these have already been identified as containing eπoneous data. If there is one value missing in the original series, then the adjustment is performed by dividing the difference between the two consecutive valid data entries by the square root of two. Where there is more than one value missing, the adjustment is to divide the difference by the square root of n÷\. where "n" is the number of values missing. Thus, where there are two values missing, the adjustment is to divide the difference by the square root of three.
Having generated the differenced series in process 2951. the next step is to calculate the mean of the differenced series, and this is represented by the equation shown in process 2952. After the mean of the differenced series has been calculated, the standard deviation of the differenced series may also be calculated. using an equation which is shown in process 2953.
In process 2954 the differenced series is examined and compared against range values calculated from the mean and standard deviation values which were computed in processes 2952 and 2953. in order to identify outliers in the original data series. The rules which are applied to determine which of the original data series is an outlier, are summarised in Figures 30 to 32. In Figure 30 full rules are given, which may be applied when the item in the data series is neither the first nor the last item. In the first rule the currently considered data item in the differenced series is compared against the value of the mean plus two times the standard deviation. If this is the case, and the previous item in the differenced series is less than the mean minus the standard deviation, it may be infeπed that the item in the original data series coπesponding to the current considered differenced series item is the outlying value. Similar tests are applied in rules 2. 3 and 4. In summary, the rules shown in Figure 30 identify outliers resulting from an item in the differenced series which has a value outside the range of the mean plus or minus two times the standard deviation of the differenced series.
When the first item in the differenced series is being considered, a different set of rules is applied, which are shown in Figure 31. When the last item in the differenced series is to be considered, the rules shown in Figure 32 are applied. Once the differenced series has been examined in this way, and outlying values in the original data series have been identified, the system operator is alerted to the existence of these outlying values, and may be prompted as to whether they should be included or not in the data used for a forecast. This concludes the process of identifying outliers as summarised in process 2854 shown in Figure 28. As a result of having performed processes 2851 to 2854. a number of items of data from the records of daily totals may have been identified as being unsuitable for inclusion in the data series used for forecasting. In order for forecasting to operate coπectly, it is necessary to include artificially generated data values to replace any missing or outlying data values. This is usually done by a process of interpolation 2855. When values are missing at the beginning of the data series, any missing value which has been identified as being prior to the fourth non-missing value is replaced by a value which is the mean of all the non-missing values in the first ten weeks of data.
When the missing values are in the middle of the data series, defined as being the situation where there are four or more non-missing values prior to the missing value and four or more non-missing values after the missing value, the missing value is replaced by a value computed using the cubic spline method.
Definitions for the cubic spline method which is implemented are provided in two commercially available sub-routines from the Numerical Algorithms Group. The two routines which are "E02BAF" and "E02BBF". The sub-routine E02BAF computes a weighted least-squares approximation to the data points by a cubic spline method. The sub-routine E02BBF computes the value of the missing value using this approximation. These sub-routines may be used to define the operation of forecasting circuitry. Documentation for these sub-routines is available on request from The Numerical Algorithms Group Limited. Wilkinson House. Jordan Hill
Road. Oxford OX2 8DR. United Kingdom.
The cubic spline method requires that the four closest non-missing values are identified on each side of the missing value. These points are numbered according to where they fall in the series of values eg. 4, 5, 7 and 10 and these numbers. along with the values themselves and the position of the missing value to be estimated, are fed into the process. The process is to fit a series of cubics to the valid points and then to use this series to estimate the missing value.
This process is carried out once for each missing value. Interpolated values are never themselves fed into the routine. Thus, for example, if the data was such that there were two missing values in weeks 15 and 16 but the data was valid for weeks 1 1. 12. 13. 14. 17. 18. 19 and 20 then the process would be to perform interpolation twice with the data being the same (i.e. points 1 1. 12. 13. 14. 17. 18. 19 and 20) each time, but the point of the estimated value being firstly 15 and secondly 16. It is unlikely that the two estimates would be the same in this case. It is possible that the cubic spline interpolation method may fail (indicated by particular exit conditions from one of the cubic spline sub-routines, as described in their documentation). In this case the interpolated value is calculated as a mean. This mean is calculated using four values near to the missing one. These four values should be chosen as the first two non- interpolated values preceding the missing value and the first two non-missing values that follow the missing value. Where there are fewer than four non-missing values in the weeks after the missing value, and these values have not been replaced using the method for replacing the missing values at the beginning of the data series, missing values are replaced using a forecasted value. The method used for forecasting is identical to that used in making a true forecast for one week ahead, as will be described later on.
The data series to be fed into the process will be the series of values up to and including the value immediately preceding the missing value. Thus, unlike the process for the cubic spline, the previously interpolated values are included in the input. If it is necessary to estimate more than one value by this method then for the second missing value the forecast value for the first missing value is included in the input data.
Whenever data is replaced by a mean, cubic spline, or forecasted approximation, the result is rounded to the nearest integer value as this is the form in which real observed data is presented to the forecasting equipment 402.
The forecasting method for off-line work differs from that used for forecasting the number of calls. The forecasting method is a bounded variation of
"Holt's method". Holt's Method is described in pages 76 to 79 of "Forecasting
Methods for Management" by Spyros Makridakis and Steven C. Wheelwright. ISBN 0-471-60063-6.
Boundaries are imposed upon the forecast such that a maximum and a minimum level are defined, in order to prevent impossible or unlikely forecasts being made by extrapolating a data series, which has trend, too far in the future.
The steps used to implement the variation of Holt's method are summarised in Figure 33. In process 3301, smoothing constants alpha and beta are calculated.
In process 3302 a data series is computed for levels and trends L(m and T(m). which are used in the forecasting equations. Process 3302 requires as its input the new values calculated for alpha and beta in process 3301. In process 3303 a forecast is performed using the values for alpha, beta. L(m) and T(m) computed in processes 3301 and 3302. The process 3301 for computing smoothing constants alpha and beta, shown in Figure 33. is detailed in Figures 34, 35 and 36. In Figure 34 several values are initialized in lines 3401 to 3405. In line 3401 the first value L(l) in a series of values known as "levels" is initialised to the first value Items(l) in a series of values representing the number of items received for off-line work on a particular day and of a particular type.
As forecasts are performed for each day of the week separately, i.e. Mondays, Tuesdays. Wednesdays and so on, L(l) represents the level measured at the first day in the current data series being considered, which for example may be a Monday. Thus, to continue the example L(2) would represent the level measured on the Monday in the subsequent week. Thus for two years of data the level for the current week in the series would be represented by the term LU04). The same indexing methodology is used to denote the series of Items(m) and T(m).
In line 3402 the trend for the first week of the currently considered data series is set to zero. In line 3403 the value for alpha is set to an arbitrary initial value of the zero point one (0.1). In line 3404 the value for beta is also set to an arbitrary value of zero point one (0.1). In line 3405 the value of a variable "m" is set to the value 2. The value of m is used to index the calculations performed in lines 3406 to 3409 for each of the recorded weeks in the data series. In line 3406 level values are calculated, given an input of a previous level value, a previous trend value and the value for alpha. In line 3407 the trend series values are calculated given previous values for level, a previous value for the trend and a known value for beta. In line 3408 a test is performed on the value of the trend calculated in line 3407, to see if this is less than a particular threshold value. in which case a lower boundary is placed upon the trend.
The purpose of this is to ensure that excessive negative trend values cannot produce an unlikely or impossible (i.e. negative) forecast. In line 3409 the value for m is incremented, such that subsequent values in the data series L(m) and T(πυ may be indexed. In line 3401 the value of m is tested to see if it is greater than the maximum number of weeks in the data series, which will usuallv be 104. If all valid values for m have been considered in the loop consisting of lines 3406 to 3409, the process of computing new levels and trends is completed.
Once the levels and trends for each day in the data series being considered has been calculated, it is possible to use these values to test the accuracy of performing a forecast one week ahead for each instance of the recorded data. Thus a measure of the accuracy of the forecasting process given the values of L(m) and
T(m) may be calculated. This process is summarised in Figure 35.
In line 3501 a variable ESS is set to zero. ESS will provide a running total of the accumulated forecast errors. ESS is an acronym for "Eπor Sum of Squares". In line 3502 the variable m is set to a value of one. In line 3503 a variable n is set to a value of 1 also. The n variable is used to indicate the number of weeks in the future for which a forecast is being made. In Figure 35 the value of n remains unchanged, as forecasts made for a week in the future at each instance of recorded observations will be compared against the known data for a week in the future. Lines 3504 to 3508 are looped for each week for which the data series is valid. In line 3504 a test is made to see if the trend for the cuπently considered week is greater than or equal to zero. If this is the case a forecast is made using the equation shown in line 3504. If the cuπently considered trend is less than zero a different forecast equation is used, which is shown in line 3505. The equation shown in line 3505 has a lower boundary limit, such that a forecast made for a large number of weeks in the future will tend towards a minimum value of half the series level at the time the forecast is made. The equation in line 3504 is aπanged such that forecasts made a long time in the future will be limited to a ceiling of twice the series level at the time the forecast is made. Thus the forecasting equations shown in lines 3504 and 3505 provide a ceiling and a floor in order to prevent unlikely or impossible forecasts from being made. The equations shown in lines 3504 and 3505 constitute a bounded variant of the statistical technique known as Holt's method.
In line 3506 the forecasted value calculated in line 3504 or line 3505 is subtracted from the known recorded observations for Items(m+1). In line 3507 the eπor measured for the cuπent instance of the forecasted data series is squared in order to remove any negative quantities, and added to the sum of eπors squared ESS. At line 3508, the value of m is incremented, and at line 3509 this value is checked to see if all valid weeks have been considered.
Once the steps summarised in Figure 35 have been completed, the value of ESS provides an indication of the accuracy with which forecasts have been made for the currently selected values for smoothing constants alpha and beta. An initial assumption for the alpha and beta values was made in lines 3403 and 3404 of Figure 34. In practice the steps shown in Figures 34 and 35 are performed for a sequence of alpha and beta values, which are summarised, with example values, in the table shown in Figure 36. Values for alpha range from zero to one in steps of point one (.1), and these are compared against values for beta, also ranging from zero to one in steps of point one (.1).
The values for ESS resulting from line 3507 shown in Figure 35 are shown in the grid of Figure 36. Once all values for alpha and beta have been calculated in this way, the values for alpha and beta which produce the lowest value for ESS, in other words which produce the forecasts which best match the known instances of observed data series, are selected for use in the next step.
Stepping through values of alpha and beta with an increment value of zero point one (0.1) enables an area within the grid to be selected for further searching at a greater accuracy of grid intervals of 0.01 or 0.05. In the example shown in
Figure 36. a search will subsequently be made for a range of values of alpha between zero point four (0.4) and zero point six (0.6) and a range of values for beta between zero point six (0.6) and zero point eight (0.8).
The subsequent search can be made to a grid interval of zero point zero one (0.01) in order to give a much greater accuracy for selected values of alpha and beta. If there are fewer than ten weeks data with which to estimate the smoothing constants, it is not worth using a fine grid interval of zero point zero one (0.01 ): a grid interval of zero point zero five (0.05) will suffice.
Thus a first and second grid search is performed in order to select the values for alpha and beta for which a minimum ESS value is produced. Once alpha and beta have been calculated in this way process 3301 shown in Figure 33 is completed, and new levels and trends for the data series may be calculated in process 3302. Process 3302 is represented in detail in Figure 37. The steps shown in Figure 37 are the same as those shown in Figure 34, except that the values for alpha and beta will have been calculated previously to a high degree of accuracy in process 3301.
Once the steps shown in Figure 37 have been completed, a new series of values for L(m) and T(m) will have been generated, based on the best approximation to values for alpha and beta. This concludes the operations for process 3302 shown in Figure 33.
In process 3303 the forecast is made using the values for alpha, beta. L(m) and T(m. which have been computed in processes 3301 and 3302. Figure 38 details the equation used to provide a forecast for n weeks in the future when the trend for the current week's data is positive. Figure 39 details the equation used to provide a forecast n weeks in the future where the trend is negative. The equations shown in Figure 38 and 39 are the same as those used in lines 3504 and 3505 shown in
Figure 35. again providing a bounded implementation of the forecasting equation.
A summary of the steps used to forecast off-line requirements is shown in
Figure 40. Each type of off-line coπespondence work is considered as a queue. In process 4001 the first off-line queue is selected for forecasting. In process 4002 the first day (which is a Monday) is selected for forecasting. In process 4003 a forecast is made of the number of items which wiil arrive on the forecast day. The forecast is made using the variant of Holt's method which has previously been described. Thus, for example, a forecast is made of the number of letters of a particular type which are expected to aπive on the day which is considered. In process 00^ the number of items forecast in process 4003 is multiplied by the average handling time for the queue which is being considered. This gives the number of man-hours, or the number of timeslots that would be required for an individual agent to complete the coπespondence associated with the items which have been forecasted to arrive. In process 4005 a test is made to see if another day remains to be forecast. In process 4006 a check is made to see if another queue requires forecasting. This concludes the steps required for forecasting off-line work.
The steps for performing a forecast of the total number of calls arriving in a day is summarised in Figure 41. In process 4101 a check is made to see if more than twenty-six weeks data is available for input to the forecasting process. If twenty-six weeks or less data is available control is diverted to process 4107, where a low data forecast is performed. If more than twenty-six weeks data is available control is diverted to process 4102. where an attempt is made to fit an ARIMA (0.1,1) statistical model to the data.
Usually one of two conditions will exist as a result of having attempted to fit the ARIMA (0,1,1) model. Either a good fit or a bad fit will have occurred.
Occasionally the process of attempting to fit the ARIMA (0,1,1) model will reveal that the data series is of a form suitable for a linear forecast, in which case control will be diverted from process 4102 to process 4108.
If the attempt to fit the ARIMA (0,1,1) model is successful, a forecast is performed using the ARIMA (0,1,1) model. If the attempt to fit the ARIMA (0,1,1) model is wholly unsuccessful, control is diverted to process 4103, where an attempt is made to fit an ARIMA (1.0.0) model. Only two outcomes are possible from process 4103. It is possible that the model will fit sufficiently well that a forecast may be performed, or alternatively the ARIMA (1,0.0) will fail to fit the available data series. In the latter case control will be diveπed to process 4104, in which the system controller will be prompted to identify whether or not there has been a change in growth in the data series that is being used as the basis for the current forecast.
Preferably the data series is presented in the form of a graph, for example on a visual display unit connected to the forecasting equipment 402. If the system controller fails to identify a change in growth over the period for which data is available, control is directed to process 4107. in which a low data forecast is performed. If the system controller identifies that a change in growth has occurred, control is diverted to process 4105. In process 4105 the system controller is further asked to try and establish which is the first week of data that was affected by the change in growth. If the system controller cannot identify the week that was first affected, then an assumption will be made that it is the week twenty-seven weeks in the past, relevant to the present data. The reason for choosing twenty-seven weeks is that this is the minimum number of weeks required to perform a forecast using one of the ARIMA statistical models in processes 4102 and 4103.
If the system controller is able to identify the first week affected, then it will be necessary to work out what would be the effect of creating a new data series starting with this week as the first week in the data series, and going to the most recent week of available data. If this would result in twenty-seven or more weeks' data being in the series then a new series is created. If this would result in fewer than twenty-seven weeks' data, then the new data series is created containing the most recent twenty-seven weeks" worth of data.
Once the new data series has been defined in this way. the next step is to repeat the data cleansing process which has already been described, and this is represented in process 4106. It is then possible to attempt to refit the ARIMA (0,1,1) model in process 4102 and the procedure repeats as has already been described for fitting of the various statistical models summarised by the steps shown in Figure 41 (but excluding processes 4104. 4105 and 4106. as these can only be performed once).
Processes 4102 and 4103. in which ARIMλ statistical models are compared with the data series, are performed using a combination of operations which are defined in sub-routines available from The Numerical Algorithms Group (address given above). The routines that are used are tailored versions of standard routines available from The Numerical Algorithms Group Limited. The routines are: gl3aac. gl3abc. gl3adc, gl3afc and gl3ahc. Documentation detailing the use of these routines to implement ARIMA (0.1,1) and ARIMA (1.0.0) statistical models is available from The Numerical Algorithms Group Limited.
The low data forecast in process 4107 in Figure 41 is implemented by calculating, for each day of the week separately, the mean value for the number of calls received on the given day of the week. This mean value is then rounded to an integer and is supplied as an electrical signal at the output of the forecaster 402. The linear forecast 4108 is used when the sub-routine gl3aac. in attempting to fit the ARIMA (0,1,1) model fails to run successfully and terminates with a special set of output conditions indicating that the use of a linear forecast would be appropriate. This case arises when the data lies on, or very close to, a straight line and the sub-routine is. unable to complete one of its intermediate calculations.
The linear forecast used instead of the ARIMA model uses the fact that the data is on a straight line to produce its forecast. The equation used is such that the forecast is made by adding on to the most recent value an estimate of the change in the number of calls that arrive in the period between data observations.
This estimate is calculated by calculating the difference between the most recently observed daily total for the day on which the forecast has been made, and the earliest observation for data on the same day. and dividing this by the number of weeks for which recorded observations are available.
When forecasting more than one week ahead a modification is made to the implementation of the ARIMA (0,1,1), low data and linear forecasting methods. Without these modifications it is possible that when forecasting for some weeks ahead, extremely high or even negative values may be predicted. In order to avoid this problem an upper or a lower boundary is imposed upon the forecast value for each of the respective forecasting equations, such that, as the number of weeks in the future for which a forecast is being made increases, the greater the restriction that is imposed upon the deviation of an upper or lower limit. The ARIMA ( 1.0.0) model, when successfully applied, requires no such artificial boundaries, as forecasts made to any great depth into the future automatically degenerate to non-extreme values.
The ARIMA (0,1.1) model produces forecasts which are on a straight line. This line can be modified to be a curve asymptotic to a predefined ceiling or floor, so that long range forecasts are sensible. The unbounded forecast for n periods ahead is given by the equation:
FORECAST = L τ n.G (i.e. the one period ahead forecast is given by L+G and the two period ahead forecast by L+2G and so on).
However the bounded forecast for n periods ahead is given by one of the equations in Figure 42. The equation which is used depends upon whether G is positive or negative, i.e. whether forecasts in the future will result in increasing or decreasing values.
The values for L -and G are produced by performing an unbounded forecast for one period ahead and two periods ahead. L is given by twice the one week ahead forecast minus the two week ahead forecast, and G is given by subtracting the first of the forecasts from the second of the forecasts. Given these values for L and
G. it is then possible to generate a bounded forecast for any number of weeks ahead. Although the accuracy with which forecasts are made diminishes as a function of the number of weeks ahead, the bounded forecast will usually produce sensible, if increasingly inaccurate, results. The bounded version of the low data forecast is the same as the non-bounded version, as the number of weeks in the future for which a forecast is made is not affected by the simple calculations which are used. The bounded linear forecast again uses the equations shown in Figure 42. The values for L and G are readily available as a result of performing an unbounded linear forecast. Whether used for the ARIMA (0.1.1 ) or linear forecasts, the equations given in Figure 42 result in an upper and a lower boundary of one point five ( 1.5) and zero point five (0.5) times the value of L.
When the forecast week contains a Bank Holiday or Bank Holiday affected day, it is necessary to make an adjustment to the previously calculated forecast for the total number of calls which will arrive. This adjustment process is different depending on whether the day is a Bank Holiday or a Bank Holiday affected day.
If there is a Bank Holiday in the week for which the forecast is being made, then it will be necessary to know whether the office is to be opened on that day. This information is obtained from the system controller. If the answer is "no" then the forecast for the dav is set to zero. The procedure for dealing with Bank Holidays when the office is open is identical to that for dealing with Bank Holiday affected days. The first step in this procedure is to establish whether the Bank Holiday on which a forecast is being made has occurred in any of the preceding two years for which observations may be available.
If no previous observations of the Bank Holiday upon which a forecast is to be made exist, then no amended forecast can be made and the currently forecasted value will be used. However, in this instance the system controller is alerted to the results of the forecast to the effect that the forecast does not take account of the fact that the day upon which the forecast has been made is a Bank Holiday (or Bank
Holiday affected day), and that some manual adjustment of the forecast might be appropriate.
However, if data does exist then this can be used to calculate an adjustment factor that can be applied to the forecast. To calculate this factor it is necessary to look at the values that surround historical values. For each day that exists in the past a calculation is made of the mean of the nearest non-missing day before the historical day and the nearest non-missing value after the historical day.
If the data is at the beginning of the data series it may not be possible to find a value which precedes it. and therefore the value that follows it will be used. If two historical values exist then the two means should be added together and divided by two to create an overall mean.
Next the ratio of calls arriving on the historical day divided by the overall means is calculated. This ratio is the adjustment factor to be applied to the number of calls which are being forecast for the cuπently considered Bank Holiday or Bank Holiday affected day in the future.
Thus the forecast for a Bank Holiday or Bank Holiday affected day is the forecasted number of calls multiplied by the adjustment factor. The new forecast number is rounded to the nearest integer before being used as forecast data.
Having made a forecast of the total number of calls in a day by one of the methods shown in Figure 41. it is necessary to make a forecast of the number of calls expected in each time slot of the day. This is performed using an apportionment technique identical to that described in the previous embodiment (in association with processes 1102 and 1003 shown in Figure 1 1).
Having completed the forecast for the number of calls which will aπive within each timeslot on each call queue, it is necessary to translate these call arrival rates into a coπesponding number of active agent- stations which will be necessary to handle that number of calls in order to satisfy the quality of service, which is ninety percent of calls answered within fifteen seconds. The procedure for doing this is exactly the same as that described in the previous embodiment, with reference to Figures 12 to 17. Forecasts for off-line requirements are already expressed in terms of agent hours, and as such do not require any complicated translation.
The scheduler 404 uses information supplied by the forecaster 402 (off-line forecasts) and translator 403(online/call queue forecasts) in order to generate a schedule of active agent-stations, and an attendance record for agents working at those stations.
In addition to the number of agents required to handle calls and off-line work, the system controller is able to specify other types of work, known as indirect work (i.e. training), for which it is assumed that the system controller will have supplied, for each time slot of indirect work that is to be scheduled, information from which the number of agents involved may be derived, and information on the length of time involved.
These two pieces of information can then be multiplied together to give the number of agent hours of work involved. The system controller may also define the day of the week when the work is to be scheduled and also the time of day. Typically indirect work will be in the form of training for agents.
The procedures performed by the scheduler 404 shown in Figure 4 are summarised in Figures 43A and 43B. The scheduler will generate a schedule of active agent-station requirements at each company site and the weekly attendance pattern for every agent. At all times the scheduler 404 aims to minimise and proportionally distribute any excesses or shortfalls in work. The problem that the scheduler addresses has no obvious starting point since it is not possible to say when you need to schedule someone to attend until you know when the work is to be done; but for off-line work such as coπespondence the time at which it is to be done may not be known. In order to break this circle the scheduler 404 chooses as its starting point to make assumptions as to when people are to be working, and then notionally divides the work across company sites in proportion to the amount of agent time available on each site. Once this has been done it is possible to create a work demand profile for each time slot of each day in the week. This in turn allows the individual attendances to be fixed. Having done this it is then possible to review the results to see if they can be improved.
In more detail the steps performed by the scheduler 404 are shown in
Figures 43A and 43B. In process 4301 a notional allocation of forecasted call work is made to each site. In order to do this, assumptions have to be made about how much work will be done on each site. This is complicated by the fact that certain call queues may be networked across several sites. In processes 4302 to 4305 work is notionally allocated within each site to a specific day of the week.
With coπespondence work, which has a target of being dealt with in two or more working days, there is much potential flexibility about which day of the week the work may be performed on. These processes also deal with the possibility of correspondence work being carried into the week for which a forecast is being made, from the preceding week and work being carried forward to the following week.
Having made an allocation of work to each day of each site the next step is to make an allocation of work to time slots within each of the days. This is performed in processes 4306 to 4310. At the end of process 4310 a profile will have been generated for the work demand for each time slot of the day, for each day of the week and for each site that includes all the work that has to be dealt with by the scheduler 404. Once these profiles have been generated, the process of deteιτnining individual agent attendances can begin. In process 431 1 start and end times of each agent's attendance are determined, along with the timing of each meal and non-meal break. In process 4312 the work demand allocated in processes 4306 to 4310 is allocated to the attendances which have been determined in process 4311. At the end of process 4312 an initial set of attendances has been created.
The remaining processes, shown in Figure 43B, are a series of checking and balancing strategies for optimising the initial set of attendances generated by the steps shown in Figure 43 A. The first of these steps is to check to see that the agent attendances cover all the time slots when the office is open. This process is called stretching, and is represented in process 4313. The next step is to check that the attendance pattern that results from the individual attendances is consistent with a set of tolerances which have been supplied by the system controller. These tolerances define the amount by which it is permissible to underachieve the quality of service target. This is represented in process 4314.
The major part of the optimisation of the set of attendances is known as "balancing", and are shown in processes 4315 to 4320. In these processes all the assumptions and notional allocations made earlier are reviewed to see if better results can be obtained.
Finally overtime is considered in process 4321. where agents capable of working overtime have their attendances adjusted as a final stage of optimisation of the attendance profile.
Each of the processes shown in Figures 43 A and 43B will now be described in detail.
The process for allocating work to each site on each day 1. shown in Figure 43A is detailed in Figures 44A and 44B. The aim of this process is to allocate to each site all the call queue work available across all the sites. Any excess or shortfall in call work will be proportionally distributed across all sites being considered. Processes 4401 to 4406 shown in Figure 44A are performed on a weekly basis, and processes 4407 to 4415. shown in Figure 44B. are performed on a daily basis. In process 4401 the total weekly off-line commitment, measured in agent hours. is calculated for each site. This is given by the sum of: the sum of off¬ line work carried forward from the previous week (only that work having a lead time of less than or equal to the number of continuous days the site is open is considered"), the sum of all other off-line work that has to be done during the week. i.e. all off-line work with a one day completion time, two day work that arrives earlier than the last day of the week and three day work that arrives earlier than the penultimate day of the week etc., and any additional off-line work needed to ensure that the amount of off-line work carried forward into the next week does not exceed an amount specified by the system operator. The result of this calculation is denoted in the flowchart as "A".
In process 4402 a calculation is made of the total indirect work commitment, again measured in agent hours, for each site across the week. A typical example of indirect work is training, where an agent will be specified to do a certain amount of training work within the week. The calculation performed in process 4402 is the product of the number of people required and the length of the indirect session. The result of this calculation is denoted "B".
In process 4403 a calculation is performed for each site in which a sum is made of the agent hours required for all the forecast caller work in time slots when only that site is open. This is a sum of the product of the forecast number of agents multiplied by the length of the forecast time slot. The result of this calculation is denoted "C".
In process 4404 a calculation is made of the total amount of off-line, indirect and call work commitment for each site by calculating the sum of A+B÷C. which are defined in processes 4401. 4402 and 4403 respectively. The result of this is called "D".
In process 4405 a calculation is made of the total number of agent hours available at each site within the week. This calculation is performed with reference to a database containing details of the type of contract which is associated with each agent. A number of different types of contract exist. These are: fixed shift 1 , fixed shift 2. fixed shift 3, fixed shift 4 and flexible agents. The differences between these five types of contracts will be explained later, where they become significant. The result of process 4405 is denoted "E".
In process 4406 a calculation is made for each site of the proportion of the total number of hours that are available for call work. This is calculated with reference to the results of process 4404 and 4405. The result of this is called "F". Processes 4407 to 4413 shown in Figure 44B are performed in order to create for each site a profile of the number of agent hours required to deal with call queue work on each day of the week. In process 4407 a calculation is performed for each site and for each day of the number of agent hours available per call skill (agents having a particular skill will be able to deal with a particular call queue; skills are associated with queues). For agents who possess more than one skill the hours are split equally between the skills of the agent. For example, if an agent has two skills (X and Y) and works an eight hour day then skill X and skill Y receive four hours each. For fixed shift 3 and flexible shift agents the number of hours they work per day is calculated by dividing their maximum number of hours by the number of days they are available for work.
For agents working X days out of Y days the spare days for each agent in turn are allocated in such a way that the spare days are equally distributed over the week. For example in the case of agents working five days out of Monday to Saturday a first agent is allocated Monday as a spare day, a second agent is allocated Tuesday as a spare day etc.. until all agents have been considered. If there are more agents of this type than days in the week, this process is continued with Monday again once the last day of the week has been reached. The result of process 4407 is denoted "G". In process 4408 a calculation is made of the remaining number of agent hours at each site for each queue on each day by multiplying F (the result of process 4406) and G (the result of process 4407) This result is called "H".
In process 4409 the number of agent hours for each call skill across all sites is calculated. This is equal to the sum of the values generated by process 4408 for each site. The result of this calculation is called "J".
In process 4410 a calculation is made of the proportion of agent hours available for each call queue at each site. This is made by dividing H by J. and is called "K".
In process 441 1 a calculation is made of the total number of agent hours required for each queue in a day (across all sites). This is equal to the sum. across each time slot, of the forecast number of agents required to handle calls in a particular queue multiplied by the length of the time slot in hours. The result of this calculation is "L".
In process 4412 a calculation similar to that made in process 441 1 is carried out, except that time slots in which only one site is open are considered. The result of this is called "M".
In process 4413 a calculation is made of the total calls for each queue which will be apportioned to .a plurality of sites. This is given by L minus M and denoted "N".
In process 4414 the values of N calculated for each site, day and queue are multiplied by coπesponding values of K to give the proportion of the total calls for each queue which will be handled by each site. The result of this calculation is "O". A similar calculation of apportionment is performed in process 4415. with the exception that the total calls for all queues are used (the values for N summed across queues). This calculation is denoted "P", and represents the apportionment of all calls to each site for each day.
The aim of process 4302 is to add any pre-allocated indirect work (i.e. training) to the number of agent hours required to deal with call work on each day of the week. At this stage of the scheduling process, pre-allocated work is defined as indirect work that has been specified to occur on a given day but not necessarily within particular timeslots.
Process 4302 shown in Figure 43 A is detailed in Figure 45. In process 4501 a calculation is made of the total number of agent hours required to do indirect work which has been specified to be performed on a particular day. Thus a total "R" for each day of the week worked on a particular site. Each calculation is performed by adding the amount of indirect work specified to particular time slots on a particular day and the amount of indirect work specified to a particular day but not a particular time slot.
In process 4502 a calculation is made of the number of agent hours required at each site for calls and specific indirect work on each day. Thus a total "S" is generated by adding R ^ P for each day of the week on each site. Thereafter control is diverted to process 4303 shown in Figure 43A. The aim of process 4303 is to calculate the maximum number of agent hours available on each site on each day. This calculation is performed by referring to a database of agents, detailing the type of contract which each agent works. Using this information it is possible to generate a value "T" for the maximum number of agent hours available to each site on each day.
There are five different types of contract, under which an agent may be working. With each contract there is a series of agent rules, which define conditions of working which may then be used by the scheduler in order to optimise the allocation of work times within the constrictions of the contract worked by a particular agent. The five types of contract are: fixed shift 1. fixed shift 2. fixed shift 3. fixed shift 4 and flexible shift. The rules associated with each of these types of agent contract will now be described.
Fixed Shift 1
For fixed shift 1 agents, the timing of the meal breaks can either be fixed or variable for each day of the schedule period. The fixed meal break rules are described in the day specific rules below, while the variable meal break rules are described in the week specific rules. Only one of these options can be applied to an agent in a schedule period. Day Specific Rules: For each fixed shift 1 agent within an attendance pattern, the followin'-i details will be fixed by the user for each day of the week: Stan time of attendance for each day of working. End time of attendance for each day of working. Stan time of meal break for each working day. End time of meal break for each working day.
The number of meal breaks per attendance (0 or 1). Meal break length for each day of working (in hours). The number of pre-meal non-meal breaks to be scheduled. The number of post-meal, non-meal breaks to be scheduled. Non-meal break length. It is assumed that all the non-meal breaks for an agent will be the same length. Week Specific Rules:
The following rules will apply to all fixed shift 1 agents within an attendance pattern for the duration of the schedule. The exact values may differ for each agent in the attendance. These rules allow the scheduler to decide the timing of the breaks in order to match demand as closely as possible: earliest and latest an agent may be scheduled a lunch break, the minimum and maximum time that a person can work, from the start of an attendance, before a non-meal break is scheduled (in hours), and the minimum and maximum time that an agent may work between breaks.
These rules can be made optional by setting the minimum to be zero and the maximum to be large e.g. 24. The specific values for each of these rules will be supplied by the user.
Fixed Shift 2
Day Specific Rules:
For each fixed shift 2 agent, within an attendance pattern, the following details will be fixed by the user for each day of the week.
The length of the working day. The days on which attendances may be scheduled.
The number of meal breaks per attendance (0 or 1).
The length of meal break to be scheduled.
The number of pre-meal non-meal breaks to be scheduled.
The number of post-meal non-meal breaks to be scheduled. The length of non-meal breaks to be scheduled.
It is assumed that all the non-meal breaks for an agent will be the same length. Week Specific Rules: For each fixed shift 2 agent it is for the scheduler to decide the following details of their attendances.
The agent's starting time.
The agent's finishing time. The number of days that the agent is to be scheduled to work.
The timing of the agent's meal breaks.
The timing of non-meal breaks.
In order that the scheduler may fix these things the following rules will apply to all fixed shift 2 agents within an attendance pattern for the duration of the schedule. The exact values may differ for each agent in the attendance pattern.
The earliest and latest times that an agent may be scheduled to start work.
The minimum and maximum days that an agent may be scheduled to work in a week. The earliest and latest that a meal break may be taken.
The minimum and maximum time that an agent can work, from the start of an attendance, before a non-meal break is scheduled.
The minimum and maximum time that an agent may work between breaks.
The specific values for each of these rules will be supplied by the user. These last two rules can be made optional by setting the minimum to be zero and the maximum to be large e.g. 24. The specific values for each of these rules will be supplied by the system controller.
Fixed Shift 3
Day Specific Rules: For each fixed shift 3 agent within an attendance pattern the following details will be fixed by the user for each day of the week.
The number of meal breaks per attendance (0 or 1).
The number of hours that have to be worked in a day before the agent is entitled to a meal break. The length of the meal break to be scheduled. The number of pre-meal, non-meal breaks to be scheduled. The number of post-meal, non-meal breaks to be scheduled. The length of non-meal break allowed.
It is assumed that all the non-meal breaks for an agent will be the same length.
Week Specific Rules:
For each agent it is for the scheduler to decide the following details of the attendances. The agent's starting time.
The agent's finishing time.
The number of days that the agent is to be scheduled to work.
The timing of the agent's meal break.
The timing of non-meal breaks.
In order that the scheduler may fix these things the following rules will apply to all fixed shift 3 agents within an attendance pattern for the duration of the schedule. The exact values may differ for each agent in the attendance pattern.
The earliest and latest an agent may be scheduled to start work.
The earliest and latest an agent may be scheduled to end work. The minimum and maximum number of hours that an agent may work on any one day.
The minimum and maximum number of hours that an agent may work in any one week.
The minimum and maximum number of days that an agent can work in a week.
The earliest and latest that a meal break mav be taken. The minimum and maximum time that a person can work, from the start of an attendance before a non-meal break as scheduled.
The maximum and minimum time that an agent may work between breaks.
The specific values for each of these figures will be supplied by the system controller. These last two rules can be made optional by setting the minimum to zero and the maximum to be large, e.g. 24. The specific values for each of these rules will be supplied by the system controller.
Fixed Shift 4
Day Specific Rules: For fixed shift 4 agents all the details of the attendance, including all meal and non-meal breaks are fixed by the system controller for each day of the week. Week Specific Rules:
There are no specific rules for fixed shift 4 agents. This agent type will be used for all agents who work through the night (i.e. those agents who work across midnight from one day to the next).
Flexible Shift
Day Specific Rules:
For each flexible agent within an attendance pattern the following details will be fixed by the user for each day of the week. The average length of the working week.
The days on which attendances may be scheduled.
The number of meal breaks per attendance (0, 1 or 2); this value is constant for each day of the week.
The number of pre-meal. non-meal breaks to be scheduled. The number of post-meal, non-meal breaks to be scheduled.
The length of non-meal break to be scheduled.
It is assumed that all the non-meal breaks for an agent will be the same length. Week Specific Rules: For each agent it is for the scheduler to decide the following details of the attendances:
The agent's starting time. The agent's finishing time. The number of days that the agent is to be scheduled to work.
The timing of the agent's meal break. The timing of non-meal breaks.
In order that the scheduler may fix these things, the following rules will apply to all flexible agents within an attendance pattern for the duration of the schedule. The exact values may differ for each agent in the attendance pattern.
The earliest and latest times that an agent may be scheduled to start work. The earliest and latest times that an agent may be scheduled to end work. The shortest and longest dav an agent mav be scheduled to work.
The minimum and maximum number of days that an agent may be scheduled to work in a week.
The earliest and latest that a meal break may be taken.
The minimum and maximum time that a person can work, from the start of an attendance before a non-meal break is scheduled.
The maximum and minimum time that an agent may work between breaks.
These last two rules regarding non-meal breaks can be optional by setting the minimum to be zero and the maximum to be large e.g. 24. In addition for each site, the length of meal break will be defined. In some cases it may be possible for there to be more than one possible length, and in these circumstances the system controller will define the number of meal breaks and the proportion of the agents that are to be allocated to each one.
This concludes the description of the different contract types under which agents may work. Thus for each agent a series of details coπesponding to one of the agent types listed above will include information which may be used by the scheduler in order to work out the maximum number of agent hours available to be worked within a site on a particular day, as required by process 4303 in Figure 43 A. This value is denoted "T".
The purpose of process 4303 is to distribute a site's off-line commitment over the whole week, while ensuring that all work is completed on time and that no more than a maximum amount specified by the system controller is carried forward into the next week.
For each site and each day it is necessary to calculate the number of agent hours that are free to perform off-line work. A table summarising these calculations is shown in Figure 46A. A value "S" for the amount of non off-line work to be done on each day at each site is calculated in process 4302. A value "T" for the total number of agent hours available at a site on a day is calculated in process 4303. Thus for each site and each day it is possible to calculate the agent hours which are free to perform off-line work by subtracting "S" from "T" for each site on each day. The results of these calculations are denoted "V" and this process is represented by Figure 46A.
In order to calculate the amount of off-line work to be completed at each site on each day of the week the steps shown in Figures 46B and 46C are performed by the scheduler 404 (Figure 4). In process 4601 a register within the scheduling equipment 404. called MINALLOC is set to the smallest of the values VI to V6 shown in Figure 46A. In process 4602 the first day of the week, in this case
Monday, is selected for consideration.
In process 4603 a calculation is made of the number of agent hours required to perform work for each off-line queue on the day of consideration. In process 4604 a value W is calculated by subtracting MINALLOC from the total number of agent hours free for off-line work on the day under consideration.
In process 4605 a queue with the shortest lead time is selected. Each off¬ line queue has an associated lead time. For example an off-line queue for dealing with customer complaints may have a lead time of two days, another off-line queue may have a lead time of one day. If there is more than one queue with the shortest lead time, the queue is chosen arbitrarily. In process 4606 "W" is allocated to the queue selected in process 4605. Thus the number of man hours required to perform work for the queue under consideration is reduced, preferably to zero, by removing a corresponding number of agent hours from the value of "W". This may result in reducing "W" to zero, in which case the queue under consideration may not have enough agent hours allocated to it in order for it to be completed.
Alternatively enough agent hours were stored in the value "W" to complete the work in the off-line queue, and thus other queues may be considered. In process 4607 the value of "W" to checked to see if it is zero. If the value of "W" is zero, control is diverted to process 4611 in Figure 46C. If the value of "W" is not equal to zero, control is diverted to process 4608. In process 4608 a check is performed to see if all off-line queues have been considered on the day in question.
If more queues remain for consideration, control is diverted to process 4605. If all off-line queues have been considered on the day under consideration, control is directed to process 4609. In process 4609 the next day is selected. In process
4610 a check is made to see if all days in the working week have been considered. If more days exist, control is diverted to process 4603. If all days have been considered, this concludes the process of distributing a site's off-line commitment over the whole week. In process 4611 a question is asked as to whether all queues with a lead time of one day or less have been considered. If they have been considered, control is diverted to process 4613. If other queues with lead times of one day or less remain to be considered, control is directed to process 4612.
In process 4612 the value of MINALLOC is re-calculated using the equation shown. In this equation the remaining work is equal to the sum of the remaining work within each queue having a lead time of one day or less. The number of days analyzed includes the current day (i.e. when considering Monday, the number of days analyzed equals one. and when Tuesday, the number of days analyzed equals two). Control is thereafter diverted to process 4602, and processes 4603 etc. are repeated using the new value for MINALLOC. In process 4613 the next day is selected. In process 4614 a check is made to see if all days have been considered. If all days have not been considered, control is directed to process 4603. If all days have been considered, a check is made in process 4615 to see if too much work is left over to carry into next week. The amount of off-line work that may be carried forward into the next week is defined by the system controller. For example, an item in a queue with a lead time of two days which arrives on a Friday may be dealt with on Saturday or on the Monday of the following week. In this way items from queues having different lead times and which arrive on different days may have lead times which overlap and thus contribute to the total amount of work which h?s to be done by the end of a particular day.
If the amount of work that has to be carried into the next week is less than the maximum value defined by the system controller, control is directed to process 4617, where the amount of remaining off-line to be carried forward is recorded. Thereafter control is redirected to process 4305. If too much work remains to be carried over into the next week, control is directed to process 4616. where MINALLOC is re-calculated using the equation shown.
Thus, the processes shown in Figures 46B and 46C represent an iterative sequence which attempts to balance the distribution of a site's off-line commitment over a week, by initially considering ideal values, and gradually reducing these until the commitment has been met.
In process 4305, shown in Figure 43A. each site's undetermined indirect work is allocated to the day on which it will have the least impact. An example of undetermined indirect work is a training session which has been specified for a period of time, for example three hours. occurring anywhere within the working week.
The process 4305 of allocating undetermined indirect work at each site into days is detailed in Figure 47. In process 4701 the quantity of work in each undetermined indirect queue (session) is calculated in agent hours. In process 4702 the number of agent hours available at each site on each dav is calculated. Initially this will be calculated by subtracting the work allocated in process 4304 from the number of agent hours available on each site on each day.
In process 4703 a session of indirect work is assigned to the valid day with the most agent hours available. In process 4704 a test is made to see whether another session is required. If this is the case control is directed to process 4702, where a re-calculation is made of the number of agent hours available at the site under consideration on the day on which the previous session allocation was made. If no more sessions remain process 4305 is completed, and control is directed to process 4306. In process 4703, it is necessary to know which days are valid for a particular session. For a day to be valid, an agent involved in the session under consideration cannot already have a session of indirect work on that day.
By the end of process 4305 work within a week will have been scheduled to each site and to each day. The next processes. 4306 to 4310 allocate work within each day to each time slot in a similar manner to that described for allocating work within each week to each day as performed in processes 4301 to 4305.
In process 4306, shown in Figure 43 A, an allocation is made of call queue work within each day to each time slot. The purpose of this process is to create. for each site, a profile of the number of agents required to answer calls for each time slot of each day in the week. The processes required to do this are detailed in Figure 48. In process 4801 time slots are considered for which only one site is open. The forecasted number of active agent-stations for each of these timeslots in each call queue are added to the total number of agents required for each call queue and each timeslot at the site which is open at those times. In process 4802 time slots are considered where more than one site is open.
Allocations of the forecasted number of active agent-stations required to handle each call queue is made to each site using the equation shown in process 4802. This uses two values: forecasted required number of active agent-stations in a queue
"callagents" x "K". The value for "K" is that which is previously calculated in process 4410 shown in Figure 44B. In process 4803 the values calculated in process 4802 for each site and each time slot and each call skill are summed across all call queues, and these amounts are added to the total number of agents required at each site to answer calls within each time slot. Thereafter control is returned to process 4307. Allocation of pre-allocated indirect work sessions within each day within each time slot is performed in process 4307, shown in Figure 43A. The processes required to do this are detailed in Figure 49. In process 4901 each day is examined in turn to identify sites which have a predetermined indirect queue requirement. In process 4902 for each site on each day which has been identified in process 4901, the number of agents required in each time slot for each predetermined indirect queue session is calculated.
In process 4903 the values calculated in process 4902 are summed across queues to calculate a number of agents required for this type of work within each site within each time slot. Thereafter control is returned to process 4308. In process 4308, shown in Figure 43 A, a calculation is made of the maximum number of agents available to each time slot of the day within a site. For fixed shift 1 and fixed shift 4 agents it is possible to calculate the exact number of agents available within each time slot, as the contracts for these types of agents do not provide any flexibility for starting and ending times for their work. For fixed shift 2. fixed shift 3 and flexible agents an equation shown in
Figure 50 is used to allocate the number of these types of agents to each time slot. In this equation the number of agent hours for a particular type of agent, for example fixed shift 2 agents, available in a day, is divided by the number of agent hours required in a day to answer calls. The result of this division is then multiplied by the number of agents required to answer calls in the time slot cuπently under consideration. The result of this multiplication gives the number of agents of a particular type which should be allocated to the time slot. This equation is applied to fixed shift 2 agents, fixed shift 3 agents and flexible agents in turn. The three results thus produced are added together in order to form the total number of agents allocated to each timeslot of the dav. In process 4309 the off-line work which was allocated to each day in process 4304 is allocated to each time slot. The overall method of the process with which this is done is analogous to that used in process 4304 for allocating off-line work within a week to each day. The aim of the process is to allocate a day's undetermined indirect work to the time slots on which it will have the least impact on the achievement of the quality of service target.
Figure 51 A details the series of calculations, in tabular form, which are done to allocate work to timeslots. For each timeslot a calculation is made of the number of agents free for off-line work by subtracting the amount of work to be done (which was calculated in process 4903) from the number of agents available to the site (which was calculated in process 4308). It should be noted that the amount of work to be done (from process 4903) is expressed in agent hours. and this must be converted into numbers of agents in a time slot before it can be used in the calculations shown in Figure 51 A. The process for implementing allocation of indirect work to time slots in which it will have the least detrimental effect is detailed in Figure 5 IB. In process 5101 the first day of the week is selected for consideration. In process 5102, a value MINALLOC is set to be equal to the smallest of the Z values shown in Figure 51 A. In process 5103 the first time slot of the day is selected for consideration. In process 5104 a calculation is made of the number of agents required for each off-line queue within the time slot cuπently under consideration. In process 5105 a value AVAILPERΛLLOC is set to be equal to the value of MINALLOC subtracted from the number of agents free for off-line work at the current considered time slot. In process 5106 a queue is selected for consideration which has the shortest lead time. If two or more queues qualify in having the shortest lead time the queue which is chosen is that which has the earliest final valid time slot. If two or more queues still remain as a result of taking this decision, the queue which is chosen is that which has the smallest number of valid time slots. If two or more queues still remain after the last judgement has been made, then the queue to consider first is chosen arbitrarilv. For each off-line queue, it is possible for the system controller to specify in which time slots the work must be undertaken. Therefore work can only be allocated to a "valid" time slot, i.e. it is within a range of time slots specified for that queue. If a time slot is not valid, the queue with the next shortest lead time is considered.
In process 5107 the quantity of work expressed by the value of AV AILPERALLOC is- assigned to the queue that is being considered. In process 5108 a check is made to see if this has resulted in the value of AV AILPERALLOC being reduced to zero. If this is not the case control is diverted to process 5109. If AV AILPERALLOC is set to zero, control is diverted to process 5110.
In process 5109 a check is made to see if another valid queue for the cuπently considered time slot exists. If this is the case then control is diverted back to process 5106, where another queue with the next shortest lead time is selected for consideration. If another valid queue does not exist, control is diverted to process 5112 where a question is asked to see whether any work remains to be done in invalid queues (for which valid time slots are not available). If this is the case then control is redirected to process 5103, where the first time slot is considered again. If work does not remain in any invalid queues another date may be considered and control is directed to process 5102. In process 5110 a condition has been reached where AV AILPERALLOC has been set to zero. At this point a question is asked to see if any valid time slots remain for queues which may be considered. If this is the case control is diverted to process 5104, where a re-calculation is made of the number of agents required to handle each off-line queue. If at process 5110 no time slots remain which are valid for queues which may be considered, control is diverted to process 511 1, where MINALLOC is re-calculated according to the equation shown. This has the effect of reducing the value of MINALLOC such that it is more likely that work will be allocated to the queues under consideration in the currently considered day. After process 5111 has been performed, control is directed to process 5103. where the first time slot of the day is reconsidered, and the processes 5103 etc. may be repeated until they are successful. Having completed the processes shown in Figure 5 IB, the scheduler 404 makes a calculation of the sums of off-line work allocations to agents for each day of the week. This value will be used in processes 4312 to 4321 shown in Figures 43A and 43B respectively. In process 4310 an allocation is made of undetermined indirect work within each day to each time slot. Undetermined indirect work is in two forms: indirect work which has been specified by the system controller to be performed on a particular day but not within a particular timeslot, and indirect work which has not been specified by the system controller to be performed on any particular day or time slot, but which has been allocated to be performed on a particular day in process 4305.
This indirect work has already been allocated to particular days of the week and it will now be allocated to particular timeslots within those days.
As a result of having completed process 4309, the number of agents remaimng which are available to be allocated work is known. Each queue of indirect work is considered separately. A queue in this instance is a discrete session of work. Each session may cover one of a number of time slots in a day. Each queue is considered in turn and allocated to the period of the day with the highest number of agents available. In this case the period is the same length of time as that covered by the session.
For example, if a two hour session is required and all the time slots are of half hour duration, a search is performed for the period of the day where there are four consecutive time slots having the highest number of agents available to do the indirect work. Only those time slots are considered in which all agents are able to attend. If two or more periods meet the above requirements, then the period may be arbitrarily chosen. This process is repeated for each queue of indirect work.
This concludes the construction of a profile of the expected amount of work to be completed for each time slot of each day for every site under consideration. Thus it is now possible to schedule a set of attendances that achieves as close a fit as possible to the profile of expected work. The process of scheduling attendances 4311 , shown in Figure 43 A is detailed in Figures 52A, 52B and 52C. In process 5201. shown in Figure 52A, the time slot having the peak demand in a day is identified. It is possible that time slots within the day will have different durations. For example, timeslots before 13:00 may have a duration of fifteen minutes and time slots after 13:00 may have a duration of thirty minutes. Thus, when identifying the time slot with the peak demand, the measurement considered should be the demand per unit time, rather than just the number of agents and items required to handle queues within a particular time slot. Once the time slot with the peak demand has been identified, a question is asked in process 5202 as to whether this time slot is closer to the start of the working day (i.e. before 13:00) or the end of the working day. If the time slot with the peak demand is closer to the end of the day (is after 13:00). control is diverted to process 5203, where a flag is set to indicate that the scheduling processes 5204 to 5222 should be performed in reverse. In reverse scheduling, start times are allocated at the end of the day and end times are allocated at the beginning of the day. However, the descriptions for scheduling start times, end times and break times shown in processes 5204 to 5222 will be described as if start times are being allocated at the beginning of the day. The purpose of this method is to ensure that the time of the day during which demand changes most swiftly is the same period of the day when agents are allocated with the greatest degree of efficiency. The reason for this is that the period of the day when demand changes most swiftly is also that period of the day when the peak demand is most likely to occur, and thus an inefficient allocation of agent resources would have the greatest impact on customer satisfaction at this time. In process 5204 start times are allocated for fixed shift 2. fixed shift 3 and flexible agents who have indirect work commitments. The allocation for each agent is made with the latest possible start time in the day that ensures the indirect work falls within the working day.
In process 5205 allocations are made for start times of the fixed shift 1 and fixed shift 4 agents. The known breaks for these agents are also scheduled. For fixed shift 4 agents all breaks are known (including meal breaks and non- meal breaks) and those fixed shift 1 agents who have fixed meal breaks have their fixed meal breaks scheduled.
In process 5206 allocations are made of the start times for the remaimng fixed shift 2 agents (those who did not have their start times allocated in process 5204). Allocations of fixed shift 2 agents' start times are made with the aim of making as close a match as possible to the number of agents that have been predicted to be required in a particular time slot.
Thus if eight people are required in the first time slot the site is open, then eight attendances are scheduled to begin in this time slot. If the next time slot requires fifteen people then seven attendance are scheduled to start in this time slot.
If fewer people are required in a subsequent time slot, then zero attendances are allocated as start time for that time slot. For example, if seventeen agents are required between 09:30 and 10:00 and only sixteen in the period 10:00 to 10:30 then no attendances will be scheduled to begin at 10:00. Agents usually work in groups. In order to provide a fair mix of attendances, agents are assigned from each group in turn, starting with the group that contains the lowest percentage of its agents already allocated a start time. If there are two groups with the same percentage of agents already allocated start times, then the group is chosen which has the largest number of agents. Thus, each time an agent in a group is allocated a start time, the percentage number of agents which have been allocated start times within that group is re¬ calculated and a comparison is made with the percentage of agents which have been allocated start times in other groups. The next agent chosen in an attempt to match the required number of agents for the time slot is selected from the group which has the smallest percentage of agents allocated start times. This may the same or a different group to the one from which an agent was previously chosen.
This process continues until either all the agents have been allocated a start time or the final time slot for which a start time could be scheduled is reached. If the latter arises and some agents have not been allocated a start time, their start times are spread over the range of valid start times for those agents. Valid start times are defined bv the svstem controller and rules for fixed shift 2 agents. In process 5207 a calculation is made of the lunch break durations for flexible agents. In order to do this a calculation is made of the number of attendances requiring meal breaks of each length. For example if there are two meal break lengths LI and L2 with associated percentage of attendances PI and P2 (where PI + P2 = 100%). The number of attendances (Ni) having meal breaks of each length are:
NI = PI * A N2 = P2 * A where A is the total number of flexible attendances requiring a meal break and N 1 and N2 are rounded to the nearest integer (NI + N2 = A).
To determine which attendances to allocate to each length of meal break, for each meal break length a calculation is made of the ratio of the number of attendances of flexible agents already allocated to the meal break length divided by the number of attendances of flexible agents which are required. As each next flexible attendance is allocated a meal break, a meal break of the length having the lowest value of this ratio is chosen. If the value of the ratio is the same for each meal break length then allocate the attendance to the meal break length with the largest number of attendances required. Once the meal break length has been allocated, a re-calculation is made of the ratio. This process is repeated until all flexible agents have been allocated a meal break length.
In process 5208 allocations are made for start times for the remaining flexible agents (those flexible agents not allocated start times process 5204). Allocations are made in the same way as for allocating staπ times for fixed shift 2 agents described for process 5206. In process 5209 end times are set for the fixed shift 2 agents and flexible agents. In the case of the fixed shift 2 agents the end times are equal to the staπ time plus the day length plus the meal break length. In the case of flexible agents the end time is set by adding the start time to the end of the meal break plus the average day length. It is a possibility that strict application of this rule will result in a flexible agent being allocated an end time which is later than the latest an agent mav be scheduled to end work according to the rules for flexible agents. In this case the end time will be set to the latest time which is valid for an end time for the flexible agent.
The average day length of each attendance is calculated by dividing the number of hours worked in a week by the number of days worked in a week. This may result in an average day length which does not match the intervals with which time slots are measured, i.e. fifteen or thirty minutes. For example a person who starts work at 09:00 hours cannot work an average day of 7.2 hours and finish work at the end of a time slot. To overcome this, for each attendance in turn, the scheduler allocates an end time that is as close as possible to the end time required to keep the average daily attendance as close as possible to its desired value.
An example of this will now be given where the working week is thirty-six hours. the timeslots are in half hours, the average daily attendance is 7.2 hours, the lunch break length is one hour.
For example, the first two agents start work at 08:30 hours. The first agent would be given an attendance of seven hours plus lunch time and an end time of
16:00 hours. This is because 7.2 hours is closer to seven hours than 7.5 hours. The second agent will be given an attendance of 7.5 hours because the theoretical number of hours that two agents should be scheduled for is 14.4 hours and an allocation of 7.5 hours (when added to the seven hours allocated to the first agent) results in the closest match to the desired average.
In process 5210 meal break start and end times are set for fixed shift 1, fixed shift 2 and flexible agents. Meal break start times are allocated in such a way as to minimise the difference between the forecast number of agents required during a particular time slot and the number of agents working during that time slot. Allocation of a meal break start time begins with an identification of the first time slot in which a meal break is valid. If this requires one less attendance than currently allocated, then one attendance is scheduled a meal break. If there is a choice of attendances the one with the earliest start time is chosen. However, if for a given time slot there is no reduction in the number of agents required then no attendances are scheduled a meal break start time during that time slot. This is repeated for each time slot until either all agents have been given a meal break start time or the last time slot is reached for which a valid meal break start time can be given. In the latter case the meal break start times for any remaining attendances are spread as equally as possible (i.e. the number of agents in each time slot are as close as possible), given the agent rules, over the time slot in which meal breaks can start. This process begins with the earliest time slot for which a meal break start time is valid.
If there is a choice of agent for a particular time slot, the scheduler allocates the meal break start times to the attendances with the earliest start times. If a flexible agent has specified a split meal break (i.e. two half hour slots) then the attendance is given a start time for the first meal break equal to the first time slot in which, obeying the agent rules, a meal break can begin. The attendance is given a start time for the second meal break equal to the last time slot in which, obeying the agent rules, a meal break can begin. The end times of the split lunch breaks are then calculated as the start time plus the duration of each break. At no time are two split lunch breaks allowed to be scheduled in consecutive periods. The end times for the meal breaks are calculated for each attendance as being equal to the meal break start time plus the meal break length. In process 5211 (Figure 52B) staπ and end times for the first pre-meal non- meal breaks are set for all the agents who have already been scheduled staπing times. Again, this is done in such a way as to minimise the difference between the number of agents working during a time slot of the day and the number of agents which have been forecast to be required during that time slot. Next, the first time slot in which a pre-meal non-meal break is valid is considered. If. for example, three fewer agents are required during this time slot than are already known to be working, then three attendances may be allocated to a pre-meal non-meal break, and a start time for this break is set. Agents with attendances having the earliest start times are chosen first. If it is not necessary to reduce the number of agents working in the currentlv considered time slot in order to meet the forecast number of agents required, the next valid time slot is considered.
This process is repeated until either all attendances have been allocated a pre-meal non-meal break start time, or the final time slot for which a first pre-meal non-meal break is valid has been reached. If the latter condition arises and some attendances have not been scheduled a pre-meal non-meal break start time, then these should be spread as evenly as possible over the valid time slots, starting with the first time slot for which a pre-meal non-meal break start time is valid.
If there is a choice of agent for a particular time slot, the agent chosen is the one which has the earliest start time. End times of the first pre-meal non-meal break are equal to the break's start time plus the length of the break.
In process 5212 subsequent post-meal non-meal breaks are set according to the same methodology as described for process 521 1. In processes 5213 and 5214, the first post-meal non-meal breaks and subsequent post-meal non-meal breaks are allocated to agents using the same methods as described for processes 5211 and
5212.
In process 5215 start times are allocated to fixed shift 3 agents. Furthermore, an initial attempt to define end times is also made for these agents. Start times for fixed shift 3 agents are selected by identifying the difference between the number of agents already scheduled to work in a particular time slot and the number required: start times are scheduled to reduce this difference. This process is applied starting at the first time slot of the day and continuing through all time slots until either the last time slot valid for a fixed shift 3 agent to start work is reached, or all fixed shift 3 agents have been allocated a start time. Thus if eight people are required in the first time slot the site is opened and eight attendances are scheduled to begin in this time slot then no fixed shift 3 attendances are allocated. If the next time slot requires fifteen people and only four attendances are scheduled to start in this time slot then three fixed shift 3 attendances are allocated to start in this time slot, thus ensuring that a total of fifteen agents will be scheduled to attend in the time slot. At this stage each fixed shift 3 agent is allocated an end time by choosing between the earliest of one of the following:
(a) The end of day.
(b) The attendance start time plus the maximum length of working day plus the meal break length.
(c) The start time plus (the maximum weekly hours for an agent minus the total number of hours allocated on proceeding days) plus the meal break length.
If this results in an attendance length less than the minimum number of hours an attendance may last, then no attendance is scheduled.
This process continues until all the fixed shift 3 agents have been allocated a start time or some agents are left without a staπ time and all time slots have been considered.
In process 5216 the end times for fixed shift 3 agents are reconsidered to see if it is possible to improve the match of the predicted number of agents required with the number of agents actually working by allocating earlier end times to fixed shift 3 agent attendances.
This is done by looking at each end time slot in turn, starting at the end of the day and bringing forward the end time of all attendances in excess of the required number while at the same time obeying the rules for the agent's day length.
For example if there are six fixed shift 3 attendances scheduled to finish at the end of the day and the number of agents scheduled exceeds the number required by five then five attendances can have their end times brought forward by one time slot provided that this does not: (a) violate any of the rules for fixed shift 3 agents.
(b) does not result in an indirect work commitment being invalidated. If there is a choice between agents then the agent with the latest staπ time is the one whose end time is not adjusted. This process continues, working back into the day. until the time slot is reached for which the earliest end time could be scheduled and all attendance lengths have been reduced as much as possible. In process 5217 meal break start and end times are set for fixed shift 3 agents. If there is a choice of time slots in which attendances for fixed shift 3 workers can start their meal break then attendances are chosen in order to minimise the difference between the number of agents required to work during a time slot and the number of agents actually working. Thus if the time slot in which a meal break start time is valid requires one less attendance than currently working then one attendance is scheduled a meal break.
If there is a choice of attendances the one with the earliest start time is chosen. However, if for a given time slot there is no reduction in the number of agents required then no attendances are scheduled a meal break start time during that time slot.
This is repeated for each time slot until either all agents have been given a meal break starting time or the last time slot is reached for which a valid meal break start time can be given. In the latter case the meal break start times for any remaining attendances are spread as equally as possible over the time slots in which meal breaks can start.
This process begins with the earliest time slot for which a meal break start time is valid. If there is a choice of agent for a particular time slot, allocate the meal break start times to the attendances with the earliest start times. The end times for the meal breaks of fixed shift 3 agents are calculated by adding the meal break duration to the meal break start time.
In processes 5218, 5219. 5220 and 5221. pre-meal non-meal breaks and post- meal non-meal breaks are allocated to fixed shift 3 agent attendances according to the rules described for processes 5211 to 5214. The purpose of allocating break times separately for different types of workers, is that the point in which the scheduling is performed can reflect the flexibility of the workers to whom breaks are being allocated. For example fixed shift 3 agents are more flexible in their allocation of break times than other types of agents, and thus are the last type of agents to have their break times scheduled in the scheduling process. In process 5222 a check is made that the agent rules for fixed shift 3 agents have not been violated by any of the previously described processes. If any agent's weekly attendance is below the weekly minimum, then additional hours must be added to that agent's attendances to ensure the minimum is reached. If this happens then the shortest attendance should be lengthened to bring the total up to the minimum. If this does not result in the minimum being reached then the second shortest and other attendances are increased until it does.
If the number of attendances for an agent does not meet the minimum number of days that the agent is required to work, then extra attendances of the minimum day length must be added to ensure that the minimum is reached. Any such extra attendance is allotted to the period where there is the greatest average deficit between the required number of agents and the scheduled number of agents.
If there is no such period then the agent should be allocated to work in the period with the smallest average positive difference.
In summary, a set of attendances has now been generated for all agents in an attempt to match the total agent commitments which have been forecasted. So far, the actual type of work which an agent must do within each time slot has not been specified. In process 4312 the skills of each agent are taken into account, in order that agents may be allocated work of a particular type at a particular time slot in the day.
An agent may have more than one skill: this and other considerations must be taken into account in order to provide the most efficient allocation of skilled agents to queues.
This will have to take account of the skills that agents have, group priorities and. where possible, the minimum queue length. The minimum queue length is the minimum amount of time for an agent to be working on a particular queue. Minimum queue length requirements are specified so that agents are not required to move from one queue discipline to another several times during the day. which would be inefficient for the agent.
Agents may have a priority for working on a particular queue. This is a reflection of the fact that a multi-skilled agent may work better when using a particular skill, perhaps as a result of greater experience, or personal preference. The overriding constraint is the quality of the schedule, and therefore on occasions the priority and niinimum queue length rules can be broken to allow a better schedule. However the occasions on which these rules are broken are kept to a minimum. The process of allocating work to attendances 4312 shown in Figure 43 A is detailed in Figures 53 A and 53B. In process 5301 indirect work is allocated to the attendances of agents which have already been defined in time slots throughout the day. For example, for each time slot of the day a number of agents will have been defined as being required for indirect work. The agents associated with the indirect work are allocated to the specific attendances.
Processes 5302 to 5310 allocate work defined in the first timeslot of the day to agents. In process 5302 all the single skilled agents scheduled to work in the first timeslot are allocated work from the queue for which their skill is valid. Processes 5303 to 5310 deal with allocating work to agents who have more than one skill. In process 5303 a calculation is made of the number of agents allocated to a particular queue over the number of agents required to handle work for a particular queue. This value is denoted in the flow chart as "X". In process 5304 a question is asked as to whether all agents have been allocated work. If this is the case control is diverted to process 531 1. If agents remain to be allocated work. control is diverted to process 5305.
In process 5305 a queue is selected which has the lowest value of "X" which was calculated in process 5303. This has the effect of selecting the queue with the lowest proportion of agents currently allocated for the next allocation of an agent. In process 5306 a question is asked as to whether there are any agents available who have a priority for work in that particular queue.
If an agent of this type exists, one of such agents is allocated the work in process 5307, and control is thereafter directed to process 5303. If there are no agents with a priority for the queue, control is directed to process 5308.
In process 5308 a question is asked as to whether there is a group of agents with the required skill (groups of agents usually have the same skill or skills). If no such group exists, control is directed to process 5310. where the value of "X" is set to infinity (or some arbitrary large value which has the same effect). Thereafter control is directed to process 5305, where a different queue may be selected.
If a group has agents available with the same skill control is directed to process 5309. If more than one group exists having agents available with the required skill, an agent is selected from the group which has the smallest total number of skills. Thereafter control is directed to process 5303.
Processes 5303 to 5310 are continued on an agent-by-agent basis until all agents which are scheduled to start work in the first time slot have been allocated work. Processes for allocating work to agents in the timeslots over the rest of the day are shown in Figures 53B to 53G. The next timeslot of the day is selected for consideration in process 5311. In any timeslot. agents are only considered who are working in that timeslot already, i.e. agents are not considered who have not yet started the day, who have finished the day or who are having a meal or non-meal break.
Those single skilled agents who are working are allocated queue work in process 5312. Once single skilled agents have been allocated work, the remaining work can be spread over the multi-skilled agents in order to achieve an efficient use of the available manpower resources. In process 5313 a question is asked as to whether there are any unallocated agents that were working on a queue with a minimum length in the previous timeslot which is under-allocated in the present timeslot. If this is the case an advantage can be gained by selecting an agent meeting these conditions: as such an agent may be assigned to continue working on the same queue in the cuπent timeslot.
Such an agent is selected for consideration in process 5314. In process 5315 the question is asked as to whether the agent has already reached the minimum queue length. The minimum queue length is the prefeπed minimum length of time for which an agent will be working on one particular queue discipline. If an agent has already worked for this minimum length of time, the resource may be better used elsewhere. In process 5316 a question is asked as to whether the agent still has responsibility for the queue. An agent is considered as having responsibility if he or she has been identified by the system controller as being suitable for work on a queue of a particular type. For example, in some circumstances an agent may have the required skill to work on a particular queue, but for whatever reason, the system controller does not want the agent to work on that particular queue.
If the agent does have responsibility, work is assigned to that agent in process 5317. Thereafter control is directed back to process 5313, and the steps that have been described above are repeated. If the result of process 5313 is negative, and there are no more unallocated agents that have been working on a queue with a mimmum length in the previous timeslot which is under-allocated in the present timeslot, control is directed to process 5318 shown in Figure 53C. In process 5318 a question is asked as to whether all agents have been allocated to queues. If all agents have been allocated, the allocation process is over for the current timeslot, and control is directed to process 5324. At process 5324 a question is asked as to whether there are any more timeslots left for consideration in the day. If this is the case the control is directed to process 5312. and the processes that have been described already are repeated for the next timeslot in the day. If there are no more timeslots. control is directed to process 5313 shown in Figure 43B.
In process 5318 it is possible that some agents remain to be allocated to queues. If this is the case, control is directed to process 5319, in which a calculation is made by dividing the number of agents allocated to a queue by the number of agents required for that queue. It is possible that the number of agents required will be zero, in which case the theoretical value resulting would be infinity.
In practice an arbitrary large number is used to represent the value of infinity, and the condition of having zero agents required is identified before the division is to occur in order to prevent a computational eπor. The result of this calculation is represented in the flow charts as "X". In process 5320 a question is asked as to whether all values of X for the queues are equal to infinity (or the arbitrary large number used to represent infinity). If this is not the case then control is directed to process 5322. If this is the case, each queue which has no agents required to fill its allocation modifies the two values used in process 5319. The number of agents allocated is set to zero and the number of agents required is set to one. The value of X is then re-calculated according to the equation shown in process 5319.
In process 5322 the queue having the lowest value for X is selected for consideration. In process 5323 an agent is assigned to do work on the queue that is selected in process 5322. Thereafter control is directed to process 5318. and the processes previously described are repeated until all agents have been allocated to queues for the currently considered timeslot.
The process for assigning an agent to do work represented by process 5323 is detailed in Figures 53D to 53G. In process 5325 a question is asked as to whether any agents are available who have a priority for the queue under consideration. If no agents are available with priority for the currently considered queue, control is directed to process 5336 shown in Figure 53E. Otherwise control is directed to process 5326. In process 5326 an agent is selected from the group which has the fewest skills.
Thus there may be several agents available with priority for the queue. distributed across several working groups. Each group will have an associated number of skills. Thus an agent is selected from the group which has the fewest skills. It is possible that only one agent or one group exists to meet the criteria in which case that agent or that group is selected.
In process 5327 a question is asked as to whether there is more than one agent available. If only one agent is available, work is assigned to that agent in process 5328. Thereafter control is directed to process 5318 in Figure 53C. If more than one agent is available, control is directed to process 5329.
In process 5329 a question is asked as to whether any of the available agents were working on the currently considered queue in the previous timeslot. If this is not the case then control is directed to process 5331. If this is the case, work is assigned to the agent in process 5330. that has the shortest time since either:
(i) working on a different queue, or (ii) since the start of the day.
In process 5331 a question is asked as to whether any of the available agents are starting work in the currently considered timeslot. If this is not the case then control is directed to process 5333 in Figure 53E. If there are any agents starting work in the currently considered timeslot, then work for the cuπently considered queue is assigned to one of these agents in process 5332.
In process 5333 as shown in Figure 53E, a question is asked as to whether there are any agents that have worked on the currently considered queue for at least one timeslot in their attendance. If this is not the case, control is directed to process 5335. If there were any available agents who have worked on the queue for at least one timeslot in the attendance on the day in question, control is directed to process 5334, where work is assigned to the agent who has spent most time on the queue currently under consideration.
In process 5335 work is assigned to the agent with the longest time since either:
(i) last working on a different queue, or (ii) since the start of the day.
In process 5336 a question is asked as to whether there are any unallocated agents which have the required skill for the queue under consideration and have worked on the queue under consideration in a previous timeslot on the day. Of the agents meeting these criteria those which are members of the groups with the fewest skills meeting these criteria are selected for consideration.
In process 5337 a question is asked as to whether more than one agent is available for consideration. If only one agent is available for consideration, work is assigned to that agent in process 5338. Otherwise control is directed to process
5339 shown in Figure 53F. In process 5339 work is allocated to the agent with the shortest time since either:
(i) last working on a different queue, or (ii) since the start of the day. In process 5340 a question is asked as to whether there are any unallocated agents in groups with the required skill. Of those agents meeting this criteria those in groups of the fewest number of skills are selected for consideration.
In process 5341 a question is asked as to whether more than one agent has the required skill. If only one agent has the required skill, work is assigned to that agent in process 5342. If more than one agent is available with the required skill. control is directed to process 5343.
In process 5343 a question is asked as to whether any of these unallocated agents are scheduled to start their attendance in the cuπently considered timeslot. If the answer to this is affirmative, work is assigned to one of these agents in process 5344. Otherwise control is directed to process 5345 shown in Figure 53G.
In process 5345. a question is asked as to whether any of the unallocated agents cuπently being considered have already worked on the cuπently considered queue for at least one timeslot in their attendance. If not. control is directed to process 5347. Otherwise, in process 5346, work is allocated to the agent who has spent the most time on this queue in their attendance so far.
In process 5347 work is allocated to the agent who has the longest length of time since either:
(i) last working on a different queue, or (ii) since the start of the day.
In process 5348, a condition has been reached where it is known that no agent is suitable for working on the currently considered queue. In this case the value of X for the queue currently being considered is set to infinity (or the arbitrarily large value used to represent infinity), and no agents are assigned. Thereafter control is directed to process 5320.
Modification of the value of X at this point makes it possible that a future iteration of the allocation processes will result in an agent being assigned to work on the queue which has missed out on the current iteration.
Having completed the process of allocating work to attendances, the process of stretching 4313 shown in Figure 43B may be performed. This process is detailed in Figures 54A to 54D. The aim of stretching is to ensure that, for each call queue. the attendances determined in process 4312 cover all the timeslots that are required
(i.e. all timeslots where at least one agent is forecast to be required). It is possible that there are timeslots at the end of the day that do not have any agents scheduled to attend. First a search is made through each queue in turn for any such timeslots. and if any such timeslots are found then the attendances are adjusted if possible.
Before any stretching is performed, the calculation is made of the number of agents scheduled to attend a call queue in each timeslot on each day of the week.
In process 5401 a question is asked as to whether stretching is required. Stretching is not required if the number of agents in a timeslot is greater than zero for all timeslots on all days of the week and for all call queues. If no stretching is required, control is directed to process 4314 shown in Figure 43B.
If stretching is required, control is directed to process 5402. where the first day containing a zero allocated timeslot is selected.
For each queue for which there are zero values a calculation is made of a value known as the TARGET. An average is calculated for the forecast number of call agents required in the timeslots which have a zero allocation. In process 5404 the latest zero allocated timeslot in the day is selected for consideration. For example, there may be several queues near the end of the day having a zero allocation. The timeslot which is selected is the latest of these timeslots which has a zero allocation.
In process 5405 a calculation is made of the number of agents allocated divided by the value for TARGET which has been calculated in process 5403. Thereafter control is directed to process 5406 in Figure 54B.
Each queue in the currently considered timeslot which has a zero allocation is compared to see which has the lowest value of Y calculated previously in process
5405. In process 5406, the queue having the lowest value of Y is selected for consideration.
Only certain agents will be suitable to undergo the stretching process. The following types of agents will be excluded from stretching: (a) fixed shift 1 and fixed shift 4 (b) agents whose attendance does not finish in the timeslot prior to the timeslot under consideration
(c) agents who have been scheduled indirect work in the first timeslot of their working day (d) agents who do not have the skill for the queue under consideration
(e) agents at sites who are not serving the queue in the timeslot under consideration
(f) agents, who by delaying their start by one timeslot would break the condition of the latest start time (g) agents, who by delaying their end time by one timeslot would break the condition of latest end time (h) agents who are the only agent working on a particular call queue in their starting timeslot.
Agents not fitting into one of the above categories are selected for analysis in process 5407. In process 5408 a question is asked as to whether there are any agents who can have their start time and end time delayed by one timeslot without needing to adjust meal breaks and non-meal breaks. Furthermore, if any such agents are available for consideration, those having the latest start time are selected for further consideration. If no such agents exist, control is directed to process 541 1 in Figure 54C. If an agent or agents exist that meet these criteria a check is made to see if any of these agents have a priority for the cuπently considered queue. If such an agent is available it is selected for further consideration, otherwise any agent may be selected.
Once an agent has been selected, its attendance is altered by the steps summarised in process 5410. Thereafter control is directed to process 5414 in
Figure 54D.
In process 541 1 shown in Figure 54C. a question is asked as to whether there are any agents who can have their start time, end time and break times all delayed by one timeslot. Of these, if there are any. those agents having the latest start time are selected for further consideration. If no such agents are available. control is directed to process 5415 in Figure 54D. If such agents are available, control is directed to process 5412. If an agent selected for consideration in this way has a priority for the queue under consideration, it is selected for stretching, otherwise any agent may be selected. Once selected, the agent's attendance may be altered by the steps summarised in process 5413. Thereafter control is directed to process 5414 shown in Figure 54D.
In process 5414 a question is asked as to whether sufficient agents have been reallocated in order for the target value for each queue to be met. If this is not the case, control is directed to process 5405, and an attempt made to stretch the allocation of another agent. If the target for each queue has been met in the current timeslot, control is directed to process 5415.
A check is then performed to see if another zero timeslot exists in the day being considered. If this is the case, then the next latest zero timeslot in the day is selected for consideration, and control is directed to process 5405.
If there are no more zero timeslots in the day to be considered, control is directed to process 5417, where a question is asked as to whether there are any remaining days in the week with zero values. If there are any days with zero values, the next day with a zero value is selected for consideration, and the control is directed to process 5403, and the steps previously described are repeated for stretching on that day. If no more days with zero values are available, control is directed to process 4314. This concludes the process of stretching.
Having performed stretching and allocation, it is possible that certain quality of service tolerances that have been defined by the system controller may not have been met. As stated previously, the target for call queues is ninety percent of calls answered within fifteen seconds. However, it is possible that when using the telephone answering system in a practical environment, this level of quality of service is not practical. In this case, the system controller specifies a tolerance level. expressed as a percentage of the original target, which must be met by the scheduler 404.
For example, a secondary tolerance level of seventy percent, of the original ninety percent of calls answered in fifteen seconds, may be specified for a particular call queue. In this way. less critical call queues, for example those not handling emergencies may be handled with a slightly lower quality of service than other call queues. Thus each queue has a tolerance specified by the system controller. The process 4314, "tolerances" shown in Figure 43B. attempts to ensure that, where the primary quality of service cannot be met. the quality of service for a particular queue at least falls within its range of tolerance.
In process 4314 each timeslot of the day is examined in turn, and the difference between the number of hours scheduled for each timeslot and queue and the number of hours required to meet the tolerances for each timeslot and queue are calculated. For off-line queues this calculation is performed by taking the number of agent hours needed to meet the tolerance from the agent hours scheduled.
For call queues, it is necessary to perform the translation process between call arrival rate and active agent- stations, using the modified value for quality of service, i.e. seventy percent of ninety percent = sixty-three percent of calls answered within fifteen seconds. The translation process is the same as that described previously, with reference to Figures 12 and 13. The result of this is a new figure for the number of active agent-stations required to meet the quality of service within the specified tolerance level for each call queue under consideration.
Differences are then calculated for each call queue between the number of agents allocated to an agent-station, and the number of active agent-stations required to meet the revised quality of service. For off-line queues, differences are calculated for each queue as a whole by taking the number of agent hours needed to meet the tolerance from the number of agent hours scheduled.
Wherever possible, a quality of service deficit is swapped for a quality of service surplus. This needs to be done by examining each queue and each timeslot in turn. The steps to do this are summarised in Figures 55A to 55E. In process
5501. as shown in Figure 55A. the first timeslot of the day is selected. In process 5502 the difference between the number of hours scheduled and the numbers of hours to meet the quality of service in each queue is calculated. For call queues this is calculated for the timeslot under consideration. For off-line queues this is calculated for the queue as a whole. In process 5503 a question is asked as to whether all the differences are of the same sign. For example, if all the differences are positive, then all queues have a surplus quality of service and no swapping needs to be done. If all the differences are negative, it is impossible to improve the quality of service for one queue without reducing the quality of service in another even further. Thus, in the latter case, no swapping can be done. If there are some deficits and some surpluses in queues, some swapping may be done to improve the relative distribution of quality of service between queues. In process 5503, if all the differences are the same sign, control is directed to 5505, where another timeslot is considered. In process 5504, an attempt is made to move the surplus to the deficit between the queues. After this has been done, another timeslot may be considered at process 5505. If other timeslots exist for consideration, control is directed to process 5502. and the steps previously described are repeated until there are no more timeslots available. Each day of the week for which a forecast is being made is considered in this way. Having considered all timeslots. control is directed to process 4315 shown in Figure 43B.
The process 5504 where an attempt is made to move surplus to a deficit between queues, is detailed in Figures 55B to 55E. Process 5531 in Figure 55B identifies the highest negative difference (quality of service deficit > in the timeslot and queues under consideration. A calculation is then made of the number of agents required to bring this level within the next highest negative difference. If there is no next highest negative difference, the value for the next highest negative difference is set to zero. In process 5532 a question is asked as to whether the highest negative difference which has been identified in process 5531 is in a call queue. If this is not the case, control is directed to process 5541 in Figure 55D.
Otherwise control is directed to process 5533.
The highest positive difference in the same timeslot as the highest negative difference already identified, is identified in process 5533. In process 5534 a question is asked as to whether the highest positive difference identified in process 5533 is in a call queue. If not. control is directed to process 5539 in Figure 55C.
Otherwise control is directed to process 5535. The question in asked in process 5535 as to whether there are any agents working on the call queue(s) with the highest positive difference who have the required skills to do the work on the call queue with the highest negative difference. If there are, control is directed to process 5538. Otherwise control is directed to process 5536, where a question is asked as to whether another positive difference is available for consideration. If this is the case, control is then directed to process 5533.
If no more positive differences are available for consideration in the current timeslot. control is directed to process 5537. where a question is asked as to whether another negative difference is available for consideration. If another negative difference is available, control is directed to process 5531. Otherwise control is directed to process 5505, where another timeslot is selected for consideration.
In process 5538 it is possible to re-schedule agents from the queue having a surplus to the queue having a deficit. Agents are re-scheduled according to the criteria summarised in process 5538. Thereafter control is directed to process 5505.
In process 5539 shown in Figure 55C a question is asked as to whether there are any agents in the surplus off-line queue which has been identified in process
5534 who have skills for working on the call queue with the highest negative difference identified in process 5531. If this is not the case, control is directed to process 5536. where another positive difference may be considered. Otherwise control is directed to process 5540. where agents are re-scheduled from the queue in surplus to the queue in deficit according to the criteria summarised in process 5540. Thereafter control is directed to process 5505.
In process 5541 the situation exists that a negative difference (quality of surface deficit) has been identified in an off-line queue. Because the deficit is in an off-line queue, this may be swapped with a surplus in any queue in any timeslot on the same day. Thus in process 5541 an identification is made of the highest positive difference in any timeslot on the day. In process 5542 a question is asked as to whether this highest positive difference is in a call queue. If this is not the case, control is directed to process 5547 shown in Figure 55E. Otherwise control is directed to process 5543. In process 5543 a question is asked as to whether there are any agents in the surplus call queue who have skills for the deficit off-line queue. If there are such agents, control is directed to process 5546. Otherwise control is directed to process 5544, where another positive difference is selected for consideration. Thereafter control may be directed to process 5541. Alternatively, if there are no more positive differences for consideration, control is directed to process 5545, where another negative difference may be considered.
In process 5546 the agents in the queues identified are re-scheduled from the queue in surplus to the queue in deficit according to the criteria summarised in process 5546.
In process 5547 a question is asked as to whether there are any timeslots in the day in which work is also being done on the off-line queue with the largest deficit. If this is not the case, control is directed to process 5544 in Figure 55D. where another positive difference is selected for consideration. Otherwise control is directed to process 5548.
In process 5548 a question is asked as to whether there are any agents in the selected timeslots working on off-line queue(s) with the highest positive difference and skill to work on the off-line queue with the highest negative difference. If there are any such agents control is directed to process 5549. and agents are re-scheduled from the queue in surplus to the queue in deficit according to the criteria shown.
Alternatively, if there are no such agents, control is directed to process 5544. where another positive difference may be selected for consideration. This concludes the process of checking and optimising quality of service tolerances.
Processes 4315 to 4320 shown in Figure 43B constitute a series of steps known as "balancing". The aim of balancing is to see whether the attendances that have been created can be adjusted to better fit the demand. Each of the processes 4315 to 4320 will now be considered in detail.
The process 4315 for adjusting flexible hours between days is detailed in
Figures 56A and 56B. This process is carried out for each flexible agent in turn. and for each day of the week in turn. In process 5601 a first flexible agent is selected for consideration. In process 5602 a first original day is selected for consideration.
In processes 5603 to 5605, a series of questions is asked in order to identify if the agent is scheduled to work on a call queue in the first timeslot of the attendance of the day currently under consideration, and if it is possible to delay starting the attendance by one timeslot without breaking limits for the latest start time, the minimum before the first pre-meal non-meal break and the minimum day length which have been specified by the system controller. If the agent fails any of these criteria control is directed to process 5608 shown in Figure 56B. Otherwise control is directed to process 5606.
In process 5606 an attempt is made to identify any suitable timeslots in the rest of the week at the start or end of the agent's attendance in which a call queue matching the agent's skill is in deficit. A timeslot thus identified is then checked to see if assigning it to the agent's attendance would cause any of the following agent rules to be broken: maximum day length, minimum or maximum time between breaks, minimum time before first pre-meal non-meal break and earliest and latest start and end times. If there is no timeslot meeting these criteria, control is directed to process 5608. Otherwise the agent's attendance is re-scheduled by delaying the start of attendance by one timeslot on the original day. and by adjusting the agent's attendance on the day for which the timeslot" s deficit has been identified, thus moving one timeslot unit from surplus to deficit. Thereafter control is directed to process 5603. and the processes previously described are repeated.
In processes 5608 and 5609 a series of questions is asked in order to identify if the agent is scheduled to work on a call queue in the last timeslot of the attendance on the original day and if it is possible to bring forward the ending of the attendance by one timeslot without breaking the rules for: the earliest end time, the minimum time between breaks and the minimum day length. If these criteria are not met. control is directed to process 5613. Otherwise, in process 5601 a question is asked as to whether the agent's call queue is in surplus at the end of the attendance. If this is not the case, again control is directed to process 5613.
Otherwise control is directed to process 561 1. In process 5611 an attempt is made to identify any suitable timeslots in the week at the start or end of the agent's attendance in which a call queue matching the agent's skills is in deficit. A check is made to see if the timeslot would be suitable for the agent to work in by checking that the following agent rules are not broken: maximum length of day, minimum or maximum time between breaks, minimum time before the first pre-meal non-meal break and the earliest and latest start and end times. If no such timeslots exist, control is directed to process 5603. Otherwise, in process 5612 the agent's attendance is re-scheduled by reducing the length of attendance on the original day by one timeslot (the last timeslot in the attendance) and increasing the attendance in the period with the biggest deficit by one timeslot. Thereafter control is directed to process 5608. and the steps previously described are repeated.
In process 5613 a question is asked as to whether there is another original day to be considered. If this is the case then control is directed to process 5603. Otherwise control is directed to process 5614, where an attempt is made to select another flexible agent. If more flexible agents remained for consideration, control is directed to process 5602. Otherwise control is directed to process 4316 in Figure 43B.
The process for adjusting the time for off-line work 4316 shown in Figure 43B is detailed in Figure 57. In process 5701 a selection is made of the first off¬ line queue, the first day of the work and the first timeslot. In process 5702 a question is asked as to whether there are any call queues in deficit for the cuπent timeslot under consideration. If there are no calls in deficit, control is directed to process 5709. Otherwise, in process 5703. if there is more than one call queue in deficit for the current timeslot, that queue with the largest deficit is selected for consideration.
In process 5704 a question is asked as to whether there are any agents with skills for the selected call queue which is in deficit in the current timeslot who are currently assigned to do off-line work for the currently considered off-line queue. If there are none, control is directed to process 5702. If there are such agents. control is directed to process 5705. where a question is asked as to whether it is possible for the off-line work to be re-scheduled to a different timeslot of the day. In order for this to be possible four criteria must be met:
(a) there is an agent with a skill to do the off-line work scheduled to be working on a call queue, (b) the off-line work can be done without breaking the rules (i.e. valid off-line timeslots) when such work is to be scheduled, (c) there is a surplus of agents scheduled to work on the call queue (i.e. the number of agents scheduled is in excess of the forecast number of agents required), (d) the timeslots are of the same length.
If there is more than one timeslot that meets these criteria, the one which is chosen is that which has the largest surplus of agents scheduled to work on the call queue.
If these criteria cannot be met, control is directed to process 5702. Otherwise control is directed to process 5706, where a selection is made of the agent most suitable to do the re-scheduled off-line work. Firstly an attempt is made to try and find an agent with a priority for the off-line work in the timeslot identified in process 5705. if there is no such type of agent, then an attempt is made to select an agent where a continuous period of work can be created for that agent who gets closer to the minimum queue length for the off-line queue to which the agent is being assigned. If there is no such agent, then an attempt is made to choose an agent who is working on the off-line queue in the preceding timeslot (if there is one). If none of these criteria are met an agent is selected arbitrarily.
In process 5707 a selection is made of an agent most suitable for doing the call queue work which has been identified in process 5702. Firstly an attempt is made to try and find an agent with a priority for the call queue in the original timeslot. If there is no such agent, then an attempt is made to choose an agent where a period of work can be created that gets close to the minimum queue length for the call queue. If there is no such agent then if possible an agent is chosen who is working on the queue in the preceding timeslot. If there is no such latter type of agent, then an agent is chosen who is scheduled to work on the queue the most in the day under consideration. If none of the preceding criteria are met, an agent may be selected arbitrarily.
In process 5708, having identified agents for re-scheduling, the agent's work is re-scheduled. The current off-line queue under consideration in the current timeslot has one agent unit assigned to perform work on a call queue which is in deficit in the current timeslot, and the deficit thus created in the off-line queue in the current timeslot is made up for by assigning a different agent at a different time of the day to the same off-line work queue from a call queue which at that time is in surplus. Thereafter control is directed to process 5702, where other call queues may be considered.
If there are no more call queues in deficit in the currently considered timeslot. control is directed to process 5709. In process 5709 a question is asked as to whether another timeslot exists in the day under consideration. If there is another timeslot, then this is selected and control is directed to process 5702. Otherwise control is directed to process 5710, in which a question is asked as to whether there is another day in the week for which the schedule is being made. If there is another day, then this is selected and control is directed to process 5702. Otherwise control is directed to process 5711, where a question is asked as to whether there is another off-line queue for consideration. If there is another off-line queue, this is selected and the control is directed to process 5702. Otherwise control is directed to 4317. This completes the process of adjusting time for off-line work.
The process 4317 for adjusting attendances for fixed shift 3 agents shown in Figure 43B is detailed in Figures 58A and 58B. This process is only carried out if there are fixed shift 3 agents who are not scheduled to work the maximum number of weekly hours. Thus, in process 5801. a question is asked as to whether there are any fixed shift 3 agents not yet working the maximum number of weekly hours. If all fixed shift 3 agents are already working their maximum number of hours in the week, control is directed to process 4318. Otherwise, it may be possible to adjust the attendances for fixed shift 3 agents and control is directed to process 5802. Adjustments are carried out on a timeslot-by-timeslot basis. Thus in process 5802 the first timeslot is considered in which a fixed shift 3 agent is working. In process 5803 a question is asked as to whether any of the call queues in the timeslot currently under consideration have a deficit of agents that are required to fulfil the forecast demand. If there are no call queues in deficit in the cuπent timeslot, control is directed to process 5808, where another timeslot may be considered.
In process 5804 a question is asked as to whether more than one queue has been identified in process 5803. If there is more than one queue, control is directed to process 5809 in Figure 58B. Otherwise control is directed to process 5805. In process 5805 a question is asked as to whether there is a fixed shift 3 attendance, for an agent with the skills required for the queue cuπently being considered, which can be extended to cover this timeslot without breaking any of the rules of attendances (i.e. maximum daily hours. maximum weekly hours and time to/between breaks). If there are no such agents, control is directed to process 5808, where another timeslot may be considered.
In process 5806. if there is more than one agent it is necessary to choose which of these agents is most suitable for having their attendance extended to cover the current timeslot. In summary, the following criteria are used. First of all an attempt is made to try and find an agent with a priority for the queue. If there is no such agent, then an attempt is made to try and find the one with the most time spent already working on the queue. If no agent meets these criteria, then an agent may be selected arbitrarily.
In process 5807, the agent selected in process 5806 has his attendance extended to cover the current timeslot. and work in the cuπent timeslot for that agent is defined as work on the call queue identified in process 5803. Thereafter control is directed to process 5803 once again, where other call queues which are in deficit in the cuπent timeslot may be considered.
If there is more than one queue in deficit in the cuπent timeslot. control will have been directed to process 5809 in Figure 58B. In process 5809. the queue with the largest deficit is selected. In process 5810 a question is asked as to whether there is any fixed shift 3 attendance for an agent with the required for the call queue in deficit which can be extended to cover the timeslot without breaking the rules. If there is such an agent, control is directed to process 5806. Otherwise control is directed to process 5811, where the queue with the next highest deficit from die list of queues identified in process 5803, is selected. In process 5812, a question is asked as to whether there is more than one queue remaining in the list of queues with next highest deficit. If there is more than one queue, control is directed to process 5809. Alternatively control is directed to process 5805, and the steps which have been previously described are repeated. Once all timeslots for each day of the week have been considered, control is directed to process 4318.
The process 4318 for re-scheduling attendances for one queue to another is identical to that used for checking tolerances in process 4314. Processes 4315. 4316 and 4317 may have resulted in a set of attendances which may be further optimised when subjected to the same process of optimisation that was tried earlier in process 5314.
The process of 4319 for adjusting individual attendances within each day shown in Figure 43B is detailed in Figures 59A and 59B. Adjustments to individual attendances within each day are carried out for each fixed shift 2. fixed shift 3 and flexible agent. Each attendance for each agent is considered in turn. An attendance is considered to be the time during which a particular agent has been assigned to work, beginning at a start time and ending with an end time.
In process 5901 in Figure 59A. the first attendance is selected from the list of attendances for fixed shift 2. fixed shift 3 and flexible agents. In process 5902 a question is asked as to whether it is possible to delay the staπ and end times of the attendance without changing breaks. This is only possible if the rules regarding the agents" start and finish times and the agents' break times are not violated.
For example, the period between breaks, the time to the first break and the latest that a break may be scheduled must all be considered. If the attendance does not meet these criteria control is directed to process 5905. Otherwise control is directed to process 5903, in which a question is asked as to whether delaying the attendance start and end times without changing breaks would be beneficial. This means finding out whether a better fit between the forecast number of agents and the number scheduled can be achieved by taking the agent off the queue that he or she was scheduled to work on in the first timeslot of the day and allocating him or her to a queue, for which he or she has the skills, in the timeslot after the attendance was due to finish.
Producing a better fit between the forecast number of agents and the number scheduled implies that there are more agents scheduled to attend than are required in the first timeslot, and fewer agents are scheduled to attend than are required in the timeslot after the attendance was due to finish. If no benefit is to be gained, then control is directed to process 5905.
Alternatively, if the change will be beneficial, the agent's attendance is adjusted so that it starts one timeslot later and ends one timeslot later. If there is only one queue that the agent can be assigned to in the last timeslot that is beneficial, then the agent is assigned to this queue. However if there is more than one queue then the agent must be assigned to the queue using one of the following criteria: firstly, if it is possible, the queue is chosen for which the agent has priority. If this is not possible then a queue is chosen that the agent was working on in the preceding timeslot. If this is not possible then a queue is chosen that the agent has been working on for the longest total of time in the same day. If no queue meets these criteria then the queue is chosen arbitrarily.
Having adjusted the attendance in process 5904. control is directed to process 5902. where the same attendance is considered again. Thus, it may be possible that an advantage can be gained from delaying the attendance by several timeslot periods without changing breaks. In process 5905 a check is made to see if it is possible to delay the start, end and break times of the attendance by one timeslot. If this is not possible, control is directed to process 5908 in Figure 59B. Alternatively, control is directed to process 5906, where a question is asked as to whether this would be beneficial. The same criteria are applied as have been described for process 5903. If delaying the attendance start and end break times would be beneficial, control is directed to process 5907. In process 5907 the attendance is adjusted so that it starts one timeslot later, ends one timeslot later, and has all breaks allocated one timeslot later. For each timeslot where the agent is now attending when previously he or she was not attending, the following rules are used to determine which queue he or she would be assigned to: if there is only one queue that the agent can be assigned to that is beneficial, then the agent is assigned to this queue. If there is more than one queue which would be beneficial, then the agent is assigned to a queue using the following criteria.
Firstly, if possible, a queue is chosen for which the agent has priority. If this is not possible then a queue is chosen that the agent was working on in an adjacent timeslot so that a minimum queue length is satisfied. If the latter is not possible, then a queue is chosen that the agent has been working for the longest total amount of time in the day. If none of the above criteria are satisfied, the agent may be assigned a queue arbitrarily. In process 5908 shown in Figure 59B, a check is made to see if it is possible to make the attendance start and end times earlier by one timeslot without changing the breaks. If this is not possible without violating the agent rules, control is directed to process 5911. Alternatively, control is directed to process 5909. where a question is asked as to whether this would be beneficial.
If making attendance start and end times earlier by one timeslot without changing meal breaks is beneficial, control is directed to process 5910. In process
5910 the attendance is adjusted so that it starts one timeslot earlier and ends one timeslot earlier. For those periods in which the agent is attending where he or she was not previously attending, a queue is assigned according to the prioritised criteria which have previously been described for this operation. In process 5911 a check is made to see if it is possible to bring forward the start and end time of the attendance by one timeslot and also bring forward all the meal breaks by one timeslot. without violating any of the agent rules. If this is not possible, control is directed to process 5914. Alternatively, control is directed to process 5912. Processes 5912 and 5913 apply similar criteria to those described for processes 5909 and 5910. In process 5914, the list of fixed shift 2. fixed shift 3 and flexible agent attendances is consulted to see if another attendance is available for consideration. If another attendance is available, control is directed to process 5902 in Figure 59A. Alternatively, control is directed to process 4320 in Figure 43B.
Thus, all attendances on all days for which a schedule is being made are considered.
The final step in balancing is process 4320, reducing the amount of off-line work carried forward to the next week. This is only done if the amount of work carried forward is not zero. If it is zero, then control is directed to process 4321. In order to establish whether the amount of work carried forward is or is not zero it is necessary, for each off-line queue in turn, to work out how much work is carried forward. This is done by subtracting the total number of agent hours scheduled for the queue in the week, from the total number of agents" hours of work that have been forecast for the queue in the week. If the result of this subtraction is zero for all off-line queues, then the amount of work caπied forward is zero.
Where the amount of work carried forward is not zero, the process of trying to reduce it- is conducted, in turn, for each off-line queue where work is to be carried forward. Starting with the first such queue, the earliest day is found on which the work to be carried forward could be carried out.
The earliest day is determined by comparing the amount of work to be carried forward to the forecast of work arriving on each day of the week. If the amount of work carried forward is less than or equal to the forecast for the amount of work arriving on the last day of the working week, then the last day of the working week is the earliest day on which work which is carried forward could be done.
However, if the amount carried forward is greater than the forecast then the earliest day is not the last day of the working week. In these circumstances the day before is tested to see if that is the earliest day. A comparison is now made to see whether the amount of work carried forward is less than or equal to the forecast for the last two days of the week. If it is, then the day before the last day of the working week is the earliest day. This process can be continued until the earliest day is found. If the earliest day is not the last day of the working week then it will be necessary to keep track of how much of the work can be done on that day. This will be equal to the amount of work carried forward minus the forecast for all days after the earliest day. No work may be allocated prior to the day on which it has been forecast to arrive. The remaining steps for reducing the amount of off-line work carried forward are detailed in Figure 60. Each off-line queue which is contributing to the work which is being carried forward to the next week is considered in turn. For each off-line queue that is considered each day of the week is also considered. Thus, in process 6001, a first off-line queue having work being carried forward into the next week is selected for consideration. In process 6002 a current day is selected for consideration.
In process 6003 a question is asked as to whether there is any call queue having a surplus of agents in any timeslot where the off-line work being considered could be done. If there are no such call queues, control is directed to process 6007, where another day may be considered. Otherwise, control is directed to process
6004, where a question is asked as to whether any agents working on call queues identified in process 6003 have the skill to do the off-line work that is currently under consideration. If there are no such agents, control is directed to process 6007. Alternatively, control is directed to process 6005. In process 6005, agents are chosen for re-assignment to the off-line work.
If there are any agents that working on the call queue that have a priority for the carried forward work, a count is made of the number of agents, and the queue which is selected is the one which has the most. Alternatively, if there are no such queues with agents having a priority for the carried forward work, then the number of agents is again counted, and the queue is selected which has the most.
Thus, having selected the queue from which agents will be taken, each agent is selected in turn and re-assigned to the off-line work. This is continued until either all such agents have been re-assigned or all the carried forward work for the off-line queue has been allocated. If there is a choice of agent to re-assign, the following rules are used. Firstly an attempt is made to use agents with a priority for the off-line work. Secondly, agents are used whose transfer would create attendances that would be for the minimum queue length. Thirdly, agents are chosen who are working on the off¬ line queue in the preceding timeslot. Fourthly, agents are chosen who are working in the off-line queue in the following timeslot. Finally, agents are chosen having the longest total amount of time spent on the queue in the day.
In process 6006, a check is made to see if all the caπied-forward work for the cuπently considered off-line queue has been re-assigned to agents. If this is not the case, then control is directed to process 6003. Alternatively, if all the carried- forward work has been dealt with, another day may be selected in process 6007. and control directed again to process 6003. If all days have been considered for the cuπent off-line queue, another off-line queue may be selected in process 6008. and control directed to process 6002. where the first cuπent day is selected again. Having completed these operations for all days and all off-line queues which contribute work to be caπied forward into the next week, control is directed to process 4321. The aim of the overtime process 4321, shown in Figure 43B is to make the best use of any overtime that has been sanctioned for agents. The overtime will be added to the start or the end of individual attendances, one timeslot at a time. Details of the implementation of the overtime process 4321 shown in Figure
43B are detailed in Figures 61 A. 6 IB. 61C and 6 ID.
In process 6101 a calculation is made for each day of the difference between the number of agents scheduled for each queue and the number of agents required to meet the demand for each queue. For call queues this needs to be calculated for each timeslot of the day, while for off-line queues it will need to be calculated once for each queue. In process 6102 a check is made to see if all the differences are positive. If all differences are positive there is no need for any oveπime. and the process of scheduling is completed. If some of the differences are negative, control is directed to process 6103. In process 6103 a question is asked as to whether the highest negative difference is in a call queue. If the highest negative difference is in a call queue. control is directed to process 6104, where an attempt is made to allocate agent overtime to the call queue. If the highest negative difference identified in process 6103 is in an off-line queue, control is directed to process 6105, where overtime is allocated to counteract the deficit identified in the off-line queue. Once agents have been allocated overtime in either process 6104 or process
6105, control is directed to process 6101, where the differences between the number of agents scheduled for each queue and the number of agents required for each queue is re-calculated. The test in process 6102 is repeated, until all differences are positive, or until there are no agents left who can be allocated overtime. The process 6104 for allocating overtime to a call queue shown in Figure
61 A is detailed in Figure 6 IB and 61C. In process 6106 a calculation is made of the number of agents required to bring the highest negative difference level with the second highest negative difference. If there is no second highest negative difference, the second highest negative difference is arbitrarily considered to be zero in this calculation.
In process 6107 a check is made to see if there are any agents due to end their day in the previous timeslot or any agents due to start the day in the next timeslot. If neither of these criteria are met, control is directed to process 6120 in Figure 61C. Otherwise control is directed to process 6108. In process 6108 it is necessary to consider if there are any agents suitable for overtime. Suitable agents are those that are allowed overtime, have the skill for the call queue with the highest negative difference, and have not yet reached their maximum amount of overtime per day. If such agents exist then control is directed to process 6110. Alternatively, if there are no agents of this type, control is directed to process 6109.
In process 6109 the current highest negative difference which is being considered is cleared. This highest negative difference is then excluded from re¬ calculation when the differences are re-calculated in process 6101. Thereafter control is directed to process 6101. where differences apart from the highest negative difference that was just considered are re-calculated. In process 6110 one of the agents identified in process 6108 is selected for overtime. Preferably an agent will be selected who has a priority for the queue under consideration. The second most important consideration is to select agents that have already been allocated overtime. In process 6111 , the attendance record of the agent selected in process 6110 is updated. For the agent selected, the attendance is extended by one timeslot, and the agent is allocated to the call queue with the highest negative difference. A question is asked in process 6112 as to whether more agents are required. If this is the case, control is directed to process 6107 and the processes previously described are repeated. Alternatively, control is directed to process 6101.
In process 6120 shown in Figure 61 C a question is asked as to whether any agents on off-line work are suitable for overtime. If none of these agents are suitable for overtime, control is directed to process 6121. where the cuπent highest negative difference is cleared and prevented from re-calculation. Thereafter control is directed to process 6101. Alternatively if there are agents on off-line work suitable for overtime, control is directed to process 6122. where an agent is selected. Priority is given to those agents who have a priority for the call queue.
In process 6123, the agent selected in process 6122 has their attendance extended by converting the timeslot with the highest negative difference from the off-line queue to the call queue, and by extending the attendance of the agent by one timeslot and allocating the off-line queue that has been replaced. Thereafter control is directed to process 6112 in Figure 61B.
The process 6105 for allocating overtime to an off-line queue shown in Figure 61 A, is detailed in Figure 6 ID. In process 6130 a calculation is made of the number of agents required to bring the highest negative difference level with the second highest negative difference. In process 6131 a check is made to see if there are any agents suitable for overtime. Suitable agents are those that are allowed overtime, are located at the site of the off-line queue under consideration, have the skill for the off-line queue with the highest negative difference, and have not reached their maximum amount of overtime per day. If no such agents exist. control is directed to process 6132, where the current highest negative difference is cleared. Thereafter control is directed to process 6101.
If there are agents suitable for overtime identified in process 6131. control is directed to process 6133, where an agent is selected. It is preferable to select agents that have a priority for the off-line queue associated with the largest negative difference. In process 6134 the selected agent has their attendance extended until either:
(a) their maximum amount of overtime per day is reached.
(b) the difference has been reduced to equal the second highest difference,
(c) the site at which the attendance is located closes.
(d) the overtime budget has been used up.
In process 6135 a question is asked as to whether more agents are required for overtime in order to bring the highest negative difference level with the second highest difference. If more agents are required, control is directed to process 6131.
Otherwise control is directed to process 6101 in Figure 61 A.
In a preferred embodiment the number of calls answered by the telephone answering system is automatically monitored in real time. If the number of calls differs significantly from the forecasted number of calls, an alert may be triggered. The system controller may then make a decision as to whether or not to perform a re-forecast within that day, so that a more accurate schedule may be made for the remainder of the day.
There are two levels of alert given to the system controller: red alert and amber alert. A red alert indicates that there is strong evidence that the observed values are different to the forecast, while the amber alert indicates that there is some evidence, but it is not as strong as in the case of a red alert.
There are four criteria which must be met in order to trigger the alert. These will now be described in turn.
TEST 1 : The real time data observations must cover a period of at least one and a half hours. TEST 2: There must be at least two hours remaining in the working day, otherwise there will not be sufficient time for the reforecast/reschedule to be acted upon.
TEST 3: Is the divergence from forecasted values consistent across the observed timeslots ? For example, if there are five observed timeslots for a call queue, then all five must be greater than the forecast values or all five must be less than the forecast values. If one value is greater than the forecast and the other four are less, the test is failed. When the number of observed timeslots is greater than or equal to eight, this test is modified to say that at least j-l of the differences must be of the same sign.
TEST 4: Is the difference big enough ? This test is dependant on whether the original forecast was made with a Box- Jenkins ARIMA model or not. a) ARIMA forecast. When a Box- Jenkins ARIMA forecast is made for a particular day of the week, an estimate of the standard deviation (SD) associated with the forecast value is also available.
A red alert is triggered when the differences between observed and forecast values are outside the range: forecast +/- 2 x SD.
An amber alert is triggered when the differences are outside the range: forecast +/- 1.5 x SD. b) Non-ARIMA forecast.
A red alert is triggered when the differences are outside the range: forecast x 0.85 to forecast x 1.15. An amber alert is triggered when differences are outside the range: forecast x 0.88 to forecast x 1.12.
An exception to these four tests is when a re-forecast has already taken place in the day, and it may be necessary to perform an additional re-forecast. In Test 1 the only modification is that the number of observations in the day is replaced by the number of observations since. the reforecast was made.
Test 2 is unchanged. Test 3 is modified so that the differences are calculated against the re-forecast values and not the original forecast. The differences are only calculated from the timeslot when the re-forecast took place. Test 4 is modified, in that no standard deviation is available for the re-forecast values, and so it is necessary to apply the criteria for a non-ARIMA forecast.
In order to perform a re-forecast, a ratio is calculated for the total number of observed calls received so far, divided by the forecast number of calls for that same period.
A forecast for each remaining timeslot of the day is then generated by multiplying this ratio by the original forecast for the number of calls in those timeslots. Electrical signals representing this new forecast may then be supplied to the translator 403, which translates this into active agent-station requirements.

Claims

WHAT IS CLAIMED
1. A telephone answering apparatus comprising a plurality of agent- stations (103); switching means (102) for directing incoming calls to said agent-stations; characterized by storage means (401) for storing signals indicative of previous incoming calls; forecasting means for forecasting levels of incoming calls at intervals within an operational period; translating means (403) for translating said forecasted levels into active agent-station requirements with reference to said stored data: and scheduling means (404) arranged to schedule agent-station activation in response to said requirements by allocating station active times substantially in response to agent availability by following translated active agent-station requirements up a gradient towards a demand level peak.
2. Apparatus according to claim 1 , wherein said scheduling means is arranged to follow said demand level up a gradient of greatest slope.
3. Apparatus according to claim 1. wherein said scheduling means is arranged to initiate scheduling from the staπ of a period or from the end of a period, according to the position of peak demand within said period.
4. Apparatus according to claim 3. wherein said staπ of the period is chosen if said peak demand is closer to said staπ than to said end.
5. Apparatus according to claim 2. wherein said scheduling means is arranged to identify agent-station start times, from the start of an operational period.
6. Apparatus according to claim 2. wherein said scheduling means is arranged to identify agent-station end times, from the end of an operational period.
7. Apparatus according to claim 1, wherein said translating means includes means for identifying a range of call forecasts; means for translating a plurality of said forecasts within said range to produce a plurality of potential requirements; and processing means for processing said plurality of potential requirements to produce a translated requirement.
8. Apparatus according to claim 7, wherein said processing means includes means for identifying said translated requirement by considering weighted averages with reference to a normalized distribution.
9. Apparatus according to claim 1, wherein a first group of agent- stations are arranged to process calls of a first type and a second group of agent- stations are arranged to process calls of a second type.
10. Apparatus according to any of claims 1 to 9, wherein said scheduling means is arranged to produce a first schedule for agent-stations located at a first geographical location and to produce a second schedule for agent-stations located at a second geographical location.
11. A method of answering telephone calls, comprising steps of directing incoming calls to a plurality of agent-stations, characterized by storing signals indicative of previous incoming calls; forecasting levels of incoming calls at intervals within an operational period: translating forecasted levels into active agent-station requirements with reference to said stored data; and scheduling agent-station activation in response to said requirements by allocating station active times substantially in response to agent availability by following translated active agent-station requirements up a gradient towards a demand level peak.
12. A method according to claim 1 1, wherein said scheduling step is arranged to follow said demand level up a gradient of greatest slope.
13. A method according to claim 1 1, wherein said scheduling step is arranged to initiate scheduling from the start of a period or from the end of a period, according to the position of peak demand within said period.
14. A method according to claim 13, wherein said start of the period is chosen if said peak demand is closer to said start than to said end.
15. A method according to claim 12. wherein said scheduling step is arranged to identify agent-station start times, from the start of an operational period.
16. A method according to claim 12. wherein said scheduling step is arranged to identify agent-station end times, from the end of an operational period.
17. Apparatus according to claim 1 1 , wherein said translating step includes identifying a range of call forecasts: translating a plurality of said forecasts within said range to produce a plurality of potential requirements: and processing said plurality of said potential requirements to produce a translated requirement.
18. A method according to claim 17, wherein said processing step includes identifying said translated requirement by considering weighted averages with reference to a normalized distribution.
19. A method according to claim 1 1. wherein a first group of agent- stations are arranged to process calls of a first type and a second group of agent- stations are aπanged to process calls of a second type.
20. A method according to any of claims 1 1 to 19, wherein said scheduling step produces a first schedule for agent-stations located at a first geographical position and a second schedule for agent-stations located at a second geographical position.
PCT/GB1996/000086 1995-01-18 1996-01-18 Answering telephone calls WO1996022648A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU43964/96A AU4396496A (en) 1995-01-18 1996-01-18 Answering telephone calls

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP95300296 1995-01-18
EP95300296.1 1995-01-18

Publications (1)

Publication Number Publication Date
WO1996022648A1 true WO1996022648A1 (en) 1996-07-25

Family

ID=8221056

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB1996/000086 WO1996022648A1 (en) 1995-01-18 1996-01-18 Answering telephone calls

Country Status (2)

Country Link
AU (1) AU4396496A (en)
WO (1) WO1996022648A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1017216A2 (en) * 1998-12-31 2000-07-05 Lucent Technologies Inc. Call selection and agent selection in a call centre based on agent staffing schedule
CN105225017A (en) * 2015-10-30 2016-01-06 南京南瑞集团公司 A kind of GROUP OF HYDROPOWER STATIONS Short-term Optimal Operation method of multi-Agent

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992007318A1 (en) * 1990-10-12 1992-04-30 Iex Corporation Method and system for planning, scheduling and managing personnel

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992007318A1 (en) * 1990-10-12 1992-04-30 Iex Corporation Method and system for planning, scheduling and managing personnel

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
P.NOWIKOW ET AL: "AGENT SCHEDULING FOR ACD SWITCHES", TELECOMMUNICATION SERVICES FOR DEVELOPING ECONOMIES- PROC OF THE ITC SPECIALIST SEMINAR, 22 April 1991 (1991-04-22), CRACOW(POLAND), pages 655 - 660 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1017216A2 (en) * 1998-12-31 2000-07-05 Lucent Technologies Inc. Call selection and agent selection in a call centre based on agent staffing schedule
EP1017216A3 (en) * 1998-12-31 2002-11-20 Lucent Technologies Inc. Call selection and agent selection in a call centre based on agent staffing schedule
KR100747021B1 (en) * 1998-12-31 2007-08-08 루센트 테크놀러지스 인크 Call selection and agent selection in a call center based on agent staffing schedule
CN105225017A (en) * 2015-10-30 2016-01-06 南京南瑞集团公司 A kind of GROUP OF HYDROPOWER STATIONS Short-term Optimal Operation method of multi-Agent
CN105225017B (en) * 2015-10-30 2019-02-26 南京南瑞集团公司 A kind of GROUP OF HYDROPOWER STATIONS Short-term Optimal Operation method of multi-Agent

Also Published As

Publication number Publication date
AU4396496A (en) 1996-08-07

Similar Documents

Publication Publication Date Title
Koole et al. An overview of routing and staffing algorithms in multi-skill customer contact centers
US8571912B2 (en) Method and system for allocating specific appointment time windows in a service industry
US20210056481A1 (en) Method and system for generating staffing requirements for deferred work in a contact center environment
US5911134A (en) Method for planning, scheduling and managing personnel
US5185780A (en) Method for predicting agent requirements in a force management system
US5325292A (en) Tour/schedule generation for a force management system
Stolletz Performance analysis and optimization of inbound call centers
US8612272B1 (en) System and method for skills-based staffing and scheduling
US7085728B2 (en) Method for forecasting and managing multimedia contracts
US5289368A (en) Force management system user interface
US7725339B1 (en) Contact center scheduling using integer programming
US6970829B1 (en) Method and system for skills-based planning and scheduling in a workforce contact center environment
US20050160142A1 (en) Dynamic force management system
EP1998277A1 (en) System and method for multi-week scheduling
US8577706B1 (en) Method for agent scheduling for revenue and service channels in a skills-based routing environment
CA2469404A1 (en) Method and apparatus for business time computation in a resource allocation system
US7406171B2 (en) Agent scheduler incorporating agent profiles
Chan et al. Dynamic call center routing policies using call waiting and agent idle times
Lin et al. Development of a workforce management system for a customer hotline service
WO1992007318A1 (en) Method and system for planning, scheduling and managing personnel
EP3230930A1 (en) Method and system for generating staffing requirements for deferred work in a contact center environment
US7616755B2 (en) Efficiency report generator
WO1996022650A1 (en) Answering telephone calls
WO1996022648A1 (en) Answering telephone calls
WO1996022649A1 (en) Answering telephone calls

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU IS JP KE KG KP KR KZ LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TR TT UA UG US UZ VN AZ BY KG KZ RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): KE LS MW SD SZ UG AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase