19
A Simple Staffing Method for Multi-Skill Call Centers Auke Pot, Sandjai Bhulai & Ger Koole Vrije Universiteit, De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands Revised version Abstract In this paper, we study a simple method for staffing in multi-skill call centers. The method has short computation times and determines nearly optimal staffing levels. It is in both views competitive to other methods from the literature. Due to the fast and accurate performance of the method, many different scenarios can be analyzed as well as tactical or strategic decisions. keywords: contact centers, multi-skill call centers, skill-based routing, staffing, workforce management. 1 Introduction The call center industry is large and growing rapidly; there are millions of employees and hundreds to thousands of call centers world wide. More generally, we speak of customer contact centers, since telephony is not the only communication channel nowadays. A substantial number of contact centers can be classified as inbound centers, i.e., jobs are initiated by customers. A property of this type of contact centers is that jobs arrive randomly over time and, as a consequence, the workload is hard to predict; additional complexity is added by external factors such as, for instance, the weather. Due to these complexities, the allocation of labor resources over time is a hard yet important problem. It is important because an inadequately managed workforce can lead to low service levels, e.g., long waiting times, if there are not enough employees available. This can be avoided by scheduling a sufficiently large number of employees. However, it is undesired to schedule too many employees because, besides service levels, contact centers also have to meet economical objectives, in particular, minimizing costs due to employee salaries. Minimizing the number of employees is an important subject because labor is expensive; about eighty percent of operating costs in call centers are due to personnel (see Gans, Koole & Mandelbaum [GKM03]). Therefore, the cost reductions obtained with good staffing algorithms can be substantial. Note that optimal labor allocation in single-skill call centers is already a complex issue, since it should be studied by integrating shift scheduling as well. This, however, results in 1

A Simple Staffing Method for Multi Skill fing Method for Multi Skill

Embed Size (px)

DESCRIPTION

A Simple Staffing Method for Multi Skill fing Method for Multi Skill

Citation preview

Page 1: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

A Simple Staffing Method for Multi-Skill Call Centers

Auke Pot, Sandjai Bhulai & Ger KooleVrije Universiteit, De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands

Revised version

Abstract

In this paper, we study a simple method for staffing in multi-skill call centers. Themethod has short computation times and determines nearly optimal staffing levels.It is in both views competitive to other methods from the literature. Due to the fastand accurate performance of the method, many different scenarios can be analyzedas well as tactical or strategic decisions.

keywords: contact centers, multi-skill call centers, skill-based routing, staffing,workforce management.

1 Introduction

The call center industry is large and growing rapidly; there are millions of employees andhundreds to thousands of call centers world wide. More generally, we speak of customercontact centers, since telephony is not the only communication channel nowadays. Asubstantial number of contact centers can be classified as inbound centers, i.e., jobs areinitiated by customers. A property of this type of contact centers is that jobs arriverandomly over time and, as a consequence, the workload is hard to predict; additionalcomplexity is added by external factors such as, for instance, the weather. Due to thesecomplexities, the allocation of labor resources over time is a hard yet important problem.

It is important because an inadequately managed workforce can lead to low servicelevels, e.g., long waiting times, if there are not enough employees available. This can beavoided by scheduling a sufficiently large number of employees. However, it is undesiredto schedule too many employees because, besides service levels, contact centers also haveto meet economical objectives, in particular, minimizing costs due to employee salaries.Minimizing the number of employees is an important subject because labor is expensive;about eighty percent of operating costs in call centers are due to personnel (see Gans, Koole& Mandelbaum [GKM03]). Therefore, the cost reductions obtained with good staffingalgorithms can be substantial.

Note that optimal labor allocation in single-skill call centers is already a complex issue,since it should be studied by integrating shift scheduling as well. This, however, results in

1

Page 2: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

intractable models, and therefore we study the staffing problem seperately from the shiftscheduling problem. In practice, obtaining good rosters requires several iterations betweenstaffing and scheduling. In these cases, it is important to have a staffing method with shortcomputation times.

Contribution

In this paper, we deal with the staffing problem of the labor allocation process. Our maincontribution is that we develop a staffing method to determine schedules in multi-skill callcenters such that a rough match between the predicted workload and labor capacity isrealized taking the randomness of the arrival process into account.

The staffing method has several appealing properties that make it competitive in com-parison to other methods in the literature: it is easy to implement, has short computationtimes, and yields nearly optimal staffing levels. Hence, the results of the method can there-fore be used for the scheduling problem. Due to the fast and accurate performance of themethod, many different scenarios can be analyzed as well as tactical or strategic decisions.For an application to the scheduling problem we refer to Bhulai, Koole & Pot [BKP06].

Literature

In call centers the staffing levels are typically determined as follows. The working day issplit into consecutive time intervals. Then, independence is assumed between the differentperiods as well as stationary behaviour in each period. Using standard formulas, like theErlang-C formula, the staffing level is determined for each time interval. (For literature onthe Erlang formula and the determination of staffing levels, we refer to Cooper [Coo81].)Most models from the literature have the limitation that assumptions are made (e.g.,exponential distributions) to derive closed-form expressions for the relation between servicelevel metrics and staffing levels. These closed-form expressions have the advantage thatcomputation times are short, however, the assumptions are unrealistic in practice.

The impact of assuming independence between the time intervals can be reduced.Thompson [Tho93] describes a method that corrects for the multi-period impact by meansof adjusting the arrival rate appropriately in each period. Green et al. [GKS01] proposethe lag-max algorithm that shifts the staffing levels forward in time. This results in servicelevels that are satisfied for almost all periods when taking transient effects into account.To obtain more accurate staffing levels for realistic situations call centers are often forcedto use simulation.

Koole, Pot & Talim [KPT03] present a heuristic to optimize the division of agentsamong different groups. The method in this paper is an extension of this heuristic, sincewe additionally take the costs of agents and the service-level conditions into account.

Chevalier and Van den Schrieck [CV05] consider overflow routing in multi-skill blockingsystems with randomization parameters. Examples with four different skills are provided,and an agent group is included for each possible set of skills. They describe a method to

2

Page 3: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

optimize the staffing levels and randomization parameters by using the Branch-and-Boundalgorithm (see Land and Doig [LD60]).

Cezik & L’Ecuyer [CL06] describe a staffing method in the context of multi-skill callcenters. The method reduces the solution space by means of generating cuts. The com-putation time of this algorithm is relatively long because each cut requires the multi-skillcall center to be simulated multiple times and very accurately. Hence, they are not able tosolve the shift scheduling problem, but are only able to determine the staffing levels thatare constant over the day.

Outline

The paper is organized as follows. Section 2 defines the problem and introduces the notationthat will be used throughout the paper. The main contribution of the paper is in Section 3,presenting an efficient method for staffing in a multi-skill environment while meeting aservice level constraint. The performance of the staffing method is extensively evaluatednumerically in Section 4 and compared to the method of Cezik & L’Ecuyer [CL06]. Weshow that the method is fast and yields nearly optimal results. Finally, a summary of theresults is given in Section 5, which also discusses directions for future research.

2 Problem Formulation

Consider a call center that handles calls which require a skill from the setM := {1, 2, . . . ,M}.Calls of type m ∈ M arrive according to a Poisson process with rate λm. Every agent inthe call center belongs to an agent group from the set G = {1, 2, . . . , G}. The service ratesare skill and group dependent, denoted by rate µm,g for skill m ∈M and group g ∈ G. Weassume that a control policy π is given that defines the call-selection and agent-selectionrule. Call assignment occurs according to the agent-selection rule. If a call is not assignedto an agent group, it is queued, after which it is served according to the call-selection rule.

We define the service level as the percentage of arrivals that waits less than the ac-ceptable waiting time (AWT) in the queue. This service level is denoted by SLπ(s) whencontrol policy π is used, where s is a vector of length G denoting the staffing levels of thedifferent groups. The minimal requirement is denoted by α. In practice, call centers oftentake α = 80% and an AWT of 20 seconds. The objective is to calculate the number ofagents s that is required to meet the service-level constraint.

Note that the service-level constraints are only included to a limited extend. Servicelevels cannot be specified per job type. In our opinion, this is not a severe restriction.Schedules are most often generated at least a few weeks ahead of time based on predictions.Call centers often have to reschedule during the day when the real workload deviatesfrom the predictions. Thus, service levels often can be and need to be controlled duringoperations. In addition, service levels can also be controlled by means of optimizing therouting policies.

The staffing costs are denoted by K(s) and are determined by calculating the expected

3

Page 4: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

costs of scheduling sg agents in group g. Mathematically,

K(s) :=∑g∈G

Kg(sg),

where Kg(sg) are the costs of scheduling sg agents. The objective function is given by

f(s) := −K(s).

The objective of finding optimal staffing levels can be translated into the following opti-mization problem

P1

{maxs∈ZG

+f(s)

s.t. SLπ(s) ≥ α,

with Z+ the set of non-negative integers.

3 Staffing Algorithm

In this section we present an efficient method to determine the staffing levels for eachagent group, based on P1. However, the problem P1 is intractable since the number ofdifferent agent configurations s is huge and hence suffers from the curse of dimensionality.Experiments show that there exists no simple ordering of states such that simplificationby local search would be possible. For this reason, we reformulate problem P1 as{

maxn∈Z+

(maxs∈ZG

+:se=n f(s))

s.t. SLπ(s) ≥ α.

Our solution approach is to solve the Lagrangian dual of this integer problem. Note that weare solving a discrete optimization problem so that there can be a duality gap. Moreover,the service level is only concave in the number of agents if the system is stable, assumingno abandonments occur, see Jagers & Van Doorn [JvD91]. Therefore, we should ignorestaffing vectors that yield unstable systems. However, in case of abandonments a problemcould arise, because the service level is not a concave function anymore. To this end, weformulate the algorithm in such a way that we only require weaker monotonicity properties.

For the formulation of the Lagrangian dual, we define

f(β, s) := β(SLπ(s)− α

)−K(s), (1)

andf (n)(β) := max

s∈ZG+:se=n

f(β, s).

Then, problem P1 becomes

P2{

maxn>Ln f (n),

4

Page 5: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

wheref (n) := min

β∈Rf (n)(β),

and Ln denotes the smallest number of agents such that the service level constraint can besatisfied. The variable β is the Lagrange multiplier of the service level constraint, denotingthe sensitivity of K(s) for changes in α. Finally, in the remainder of this section we needto define SL(n),π(β), defined as

SL(n),π(β) := SLπ(arg max

s∈ZG+:se=n

f(β, s)).

We now present a simple heuristic for solving problem P2, and explain the heuristic indetail afterwards.

Staffing heuristic()1 Initialization: f ← 0, nL ← 0, nU ← M, βL ← 0, and βU ← M2 For all n (golden ratio search):3 Init: f (n)(β)← M and β ← βL + (βU − βL)/z4 While βU − βL > ε (bisection)5 Initialization: f (n)(β)← 0 and s∗ ← 0 and declare SL(n),π(β)6 For all s : se = n (local search)7 Calculate SLπ(s) and f(β, s)8 If f(β, s) > f (n)(β)9 s∗ ← s, f (n)(β)← f(β, s), and SL(n),π(β)← SLπ(s)

10 End if11 Next12 If f (n)(β) < f (n)

13 s∗∗ ← s∗ and f (n) ← f (n)(β)14 End if15 If SL(n),π(β) < α then βL ← β, else βU ← β End if16 β ← βL + (βU − βL)/z17 Next18 If f (n) > f then f ← f (n) and s∗∗∗ ← s∗∗ End if19 Update nL, nU , and n by using the golden ratio.20 Next

The heuristic consists of several parts. The initialization occurs in lines 1–5 and uses severalparameters: nL/nU is the lower/upper bound of the total number of agents, βL/βU is thelower/upper bound of β, and M is a large number, e.g., 104. In lines 6–11 the heuristic findsthe optimal agent configuration with respect to f(β, s) for a fixed Lagrange multiplier βand a fixed number of agents n = se. Lines 15–16 optimize the costs by varying β, whereaslines 18–19 vary n. Optimality with respect to β is tested in lines 12–14, which is alsochecked against optimality with respect to n in line 18. The result is stored in the variable

5

Page 6: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

s∗∗∗, which is the final output of the algorithm. A few lines require additional explanation,which are given next.

Apply local searchIn the part where the optimal agent configuration is determined, lines 6–11, we mention alocal search algorithm that has not yet been defined. To this end, we define an orderingon the set {s : se = n} such that s1 < s2 iff f(β, s1) < f(β, s2). The local search algorithmworks well theoretically if there exists a path s1 = s1 < s2 < · · · < sp = s2 of length p suchthat si+1 = si− ea + eb, with a, b ∈ G and ei a vector with an 1 at index i, and 0 otherwise.In practice, it also performs well in all our experiments. In the local search algorithm, thenext state si+1 = si− ea + eb is the successor of si chosen such that f(β, si+1) is maximizedover all m, n ∈ G and f(β, si+1) > f(β, si).

Avoid simulationsWe use other performance evaluation methods than simulation to determine service levelsin the local search algorithm. The benefit is a considerable reduction of computationtimes. We refer to Section 3.1 for alternative methods that are based on blocking models.In general, a disadvantage of these methods is that the absolute values of the servicelevel approximations are not accurate. However, changes in service levels by adjustmentsto the sizes of the agent groups can be measured sufficiently accurate (see Section 3.2for a discussion). Hence, to make sure that the service level converges to α, we did anextension in line 15. To make this work, we need that SL(n),π(β) is a monotone increasingfunction in β. This is likely to hold, because if the Lagrange multiplier of the service-levelincreases, the service level has a higher weight in the objective function, so that it is likelyto increase. Thus, it enables us to optimize the Lagrange multiplier β such that the servicelevel approaches α, ensuring that the service level condition is met.

Assume monotonicityThe second part of the heuristic deals with the optimal value of β. The implementation isbased on the intuition that f (n)(β) is convex in β for fixed n. Indeed, when β increases,the service level becomes more relevant when determining s, resulting in a higher valueof f (n)(β) due to more conservative scheduling. The third part of the heuristic optimizesn and relies on concavity of f (n). Indeed by intuition, the service level is concave in n ifthe system is stable and the costs K(s) will typically be linear. Notice that n is not acontinuous variable such that results can be inaccurate. The variable n is optimized bythe golden ratio search (see Press et al. [PTVF02]). In line 19 we always increase nL ifthe service level can not be met, for example, if the system is not stable. This is checkedby taking β = M, and applying the local search algorithm from lines 6–10, such that theservice level is maximized.

6

Page 7: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

3.1 Performance improvements

The algorithm as described in the previous section has long computation times because ofthe huge number of required simulations in line 6. This can be reduced significantly, whichis discussed in this section.

A straightforward technique to evaluate the system in each iteration is simulation, whichis often used in industry. However, this technique is very time-consuming. The calculationtimes can be reduced substantially by reducing the number of simulations. This can alsobe done by using methods from the literature that are based on a multi-skill blockingmodel, see, e.g., Franx et al. [FKP06] and Chevalier & Tabordon [CT03]. These methodsassume no queues and approximate the blocking probability of the system. Although theseassumptions are not made in our model, these methods from the literature are useful; earlierstudies show that when comparing two different staffing levels, the difference in blockingprobabilities accurately reflect the difference in service levels for the original system, seeKoole et al. [KPT03] for a first example, and Chevalier et al. [CST04] and Chevalier & Vanden Schrieck [CV05] for a method that integrates one of these methods in an optimizationalgorithm. Thus, these methods are useful for optimization purposes, and therefore used inall of our numerical examples. In particular, we used the HyperExponential Decompositionmethod from Franx et al. [FKP06] and the Hayward-Fredericks method [Fre80]. The resultsthat are reported in the tables are obtained by the Hayward-Fredericks method. We preferthis method above the HyperExponential Decomposition method because it is faster.

To support these methods of blocking models, the algorithm is adjusted as follows:

• replace in lines 6–11 SL by S̃L, denoting 1 minus the blocking probability instead ofthe probability of waiting less than 20 seconds,

• replace β by β̃ because the Lagrange multiplier has no longer the same meaning,

• redefine in Equation (1) f(β, s) = −K(s), and

• determine after line 11, SL(n),π(β) by simulation, and calculate f (n)(β).

Line 15 is of crucial importance because it ensures that the service level constraint is met.For that reason, the redefinition of f(β, s) is justified.

Another way to improve the performance is as follows. With the initialization it ispreferable to choose nL and nU as tight as possible. This increases the speed of thealgorithm. A formula such as the Erlang-C was helpful to calculate lower and upperbounds on the total number of agents. A lower bound is obtained by considering thesystem as a single-skill call center and taking the lowest service rate over all groups andskills. An upper bound is obtained by considering separate call centers for each job type.

Finally, we mention a number of technical notes to reduce the computation times

1. We take z = MAX(2.0, LOG(βU − βL)).

2. For each n the local search starts with the agents equally distributed among theagent groups. Every time that β is adjusted according to the bisection algorithm,the group sizes are not changed.

7

Page 8: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

3. Before β is optimized for a certain n, we check if the best objective value that has beenfound so far, can be improved for that value of n by calculating an upper bound.Otherwise, β is not optimized and the golden ratio method continues directly bychoosing another value of n.

4. Each time the staffing vector is adjusted according to s ← s + ei − ej, we repeatthe same movement several times, as long as the objective improves and ej is greaterthan 0, with a maximum of 3 times.

3.2 Optimality of blocking models

To justify the usage of blocking models we validate this by performing numerical experi-ments. We compare two performance measures: the overall blocking probability in case ofno queues, and the fraction of customers that are served within 20 seconds waiting in thepresence of queues. The first measure is approximated by using the Hayward-Fredericksmethod and the second measure is approximated by means of simulation.

We consider an arbitrarily chosen model. There are 3 types of jobs, M = {1, 2, 3}.Jobs arrive with intensities λ1 = 1, λ2 = 1.5, and λ3 = 2. The groups are S1 = {1},S2 = {2}, S3 = {3}, S4 = {1, 2}, S5 = {2, 3}, and S6 = {1, 2, 3}. The routing policyis (1 : 1 → 4 → 6), (2 : 2 → 4 → 5 → 6), and (3 : 3 → 5 → 6). The service ratesare µ1,1 = 0.5, µ2,2 = 0.55, µ3,3 = 0.6, µ1,4 = 0.47, µ2,4 = 0.50, µ2,5 = 0.51, µ3,5 = 0.56,µ1,6 = 0.45, µ2,6 = 0.45, and µ3,6 = 0.52. The initial staffing levels are s1 = 2, s2 = 2,s3 = 2, s4 = 2, s5 = 2, and s6 = 2.

By means of experiments we measure and compare the relative differences of bothperformance measures when agents are moved from one group to another. Under theinitial staffing levels we obtain a service level of SLπ(s) = 0.7922 in case of queues, and a

service level of S̃Lπ(s) = 0.8896 in case of no queues. Table 1 shows the changes in the

service level when the staffing levels are adjusted. In more detail, it presents the absolutevalues of the two service levels on the left and the relative changes to the service levelscompared to the initial staffing levels on the right. The rows are ordered according to therelative differences associated to the queueing model. We conclude that the ordering ofthese differences for both models are roughly identical.

Next, we execute another experiment to compare the staffing levels of the two methodsthat result from optimization. A local-search method is applied to maximize the servicelevels with the same total number of agents, i.e., 12 persons. In case of queues, the optimalservice level is 84% and the corresponding staffing levels are (0, 0, 2, 4, 4, 2). Withoutqueues, we obtain a service level of 83% and the staffing vector (0, 0, 0, 2, 4, 6). This showsthat approximations by means of blocking probabilities yield nearly optimal staffing levels.However, this example also reveals that the optimal staffing vectors can differ betweenboth methods. In our opinion, the three most important observations of this experimentare:

• Blocking probabilities are less sensitive to adjustments of the staffing vector.

8

Page 9: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

blocking waitings S̃L

π(s) ∆S̃L

π(s) SLπ(s) ∆SLπ(s)

(1, 2, 3, 2, 2, 2) 0.898 0.98% 0.832 5.05%(1, 2, 2, 2, 3, 2) 0.900 1.18% 0.830 4.78%(1, 2, 2, 2, 2, 3) 0.903 1.58% 0.828 4.54%(2, 1, 2, 2, 3, 2) 0.899 1.10% 0.823 3.90%(2, 1, 3, 2, 2, 2) 0.896 0.73% 0.821 3.66%(2, 2, 2, 1, 3, 2) 0.897 0.84% 0.820 3.58%(2, 1, 2, 2, 2, 3) 0.899 1.13% 0.818 3.35%(2, 2, 2, 1, 2, 3) 0.899 1.09% 0.817 3.24%(2, 2, 3, 1, 2, 2) 0.894 0.53% 0.816 3.11%(1, 2, 2, 3, 2, 2) 0.893 0.47% 0.811 2.49%(2, 2, 2, 2, 3, 1) 0.885 −0.45% 0.809 2.15%(2, 2, 3, 2, 2, 1) 0.884 −0.61% 0.803 1.41%(1, 3, 2, 2, 2, 2) 0.887 −0.19% 0.801 1.20%(2, 2, 3, 2, 1, 2) 0.887 −0.19% 0.798 0.81%(2, 3, 2, 1, 2, 2) 0.885 −0.50% 0.797 0.71%(2, 2, 1, 2, 3, 2) 0.888 −0.09% 0.794 0.25%(2, 2, 2, 2, 1, 3) 0.891 0.19% 0.793 0.14%(2, 1, 2, 3, 2, 2) 0.890 0.08% 0.792 0.04%(2, 2, 1, 2, 2, 3) 0.890 0.11% 0.788 −0.52%(3, 2, 2, 1, 2, 2) 0.878 −1.28% 0.758 −4.25%(2, 2, 2, 3, 2, 1) 0.872 −1.95% 0.755 −4.66%(3, 1, 2, 2, 2, 2) 0.877 −1.35% 0.747 −5.59%(2, 3, 2, 2, 2, 1) 0.868 −2.34% 0.745 −5.85%(2, 2, 2, 3, 1, 2) 0.873 −1.84% 0.739 −6.71%(2, 3, 2, 2, 1, 2) 0.870 −2.15% 0.736 −7.05%(2, 3, 1, 2, 2, 2) 0.868 −2.36% 0.735 −7.11%(2, 2, 1, 3, 2, 2) 0.871 −2.03% 0.725 −8.39%(3, 2, 2, 2, 2, 1) 0.862 −3.05% 0.723 −8.73%(3, 2, 2, 2, 1, 2) 0.862 −3.05% 0.701 −11.51%(3, 2, 1, 2, 2, 2) 0.861 −3.18% 0.699 −11.69%

Table 1: Relative differences

9

Page 10: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

• The usage of blocking models yields solutions with relatively many generalists com-pared to delay models. This is intuitively clear because the service of a client inblocking models requires that an agent must be available upon arrival, which pleadsfor agents with many skills. In delay systems, however, customers can also be servedafter the arrival epoch because they can wait. Then, the higher service speed ofspecialists becomes more beneficial.

• The number of nearly optimal staffing vectors is huge and the vectors are diverse.This holds for both types of models. For example, the previous example gave twosolutions with almost the same service level.

A reason for the latter two observations is that we did not differentiate between the staffingcosts of the different agent groups. However, the staffing algorithm does differentiatebetween costs by means of the Lagrange multiplier. Hence, the difference in staffing vectorsbetween delay and blocking models becomes much smaller, which can be concluded from theexample in Section 4.3. Moreover, Section 4 provides numerical examples of all algorithmsof this paper. They allow us to conclude that the staffing algorithm works well and producesnearly optimal results in reasonable cases.

4 Numerical experiments

In this section, we provide numerical examples illustrating the method from Section 3. Theexamples use models having infinite waiting queues, customers having infinite patience forservice, and service according to a first-in-first-out service discipline per job type. Uponarrival, calls are assigned to employees according to overflow policies (see, e.g., Franx etal. [FKP06]), and in such a way that specialists have the highest priority, agents with 2skills the second-highest priority, and agents with 3 skills the third-highest priority. At aservice completion, among the queues with jobs for which the agent has the right skill, ajob from the longest queue is taken.

The computations were executed on a PC with a 2800 AMD Athlon processor. TheRAM usage for our method was always very low.

4.1 A Call Center with Two Skills

Consider a call center with 2 skills and 3 agent groups, i.e., G = 3 and M = {1, 2}. Thearrival rates are λ1 = 1.5 and λ2 = 2. A group of specialists is included for each call type,S1 = {1}, S2 = {2}, and additional flexibility is ensured by generalists, S3 = {1, 2}. Uponarrival the routing policy is (1 : 1→ 3) and (2 : 2→ 3). This means that calls of type 1 areassigned to agents of group 1, unless all type-1 agents are unavailable. In that case, agentgroup 3 is considered. The sequence for type 2 calls is interpreted similarly. The costs cg

of staffing an agent in the g-th group is 0.5 if g = 1, 0.7 if g = 2, and 0.9 in case g = 3.Specialists are more efficient than generalists, thus µ11 = 0.18, µ22 = 0.6, µ13 = 0.16, andµ23 = 0.5.

10

Page 11: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

n16 17 18

β̃ s∗ SLπ β̃ s∗ SLπ β̃ s∗ SLπ

2.5e3 (6,4,6) 80% 2.5e3 (7,5,5) 87% 2.5e3 (8,5,5) 93%6.3e2 (7,4,5) 80% 6.3e2 (8,4,5) 88% 6.3e2 (9,4,5) 93%1.6e2 (7,4,5) 80% 1.6e2 (8,4,5) 88% 1.6e2 (9,4,5) 93%3.9e1 (9,5,2) 81% 3.9e1 (10,5,2) 87% 3.9e1 (10,6,2) 91%9.8e0 (11,5,0) 76% 9.8e0 (11,6,0) 84% 9.8e0 (12,6,0) 89%1.7e1 (10,6,0) 76% 2.4e0 (14,3,0) 41% 2.4e0 (15,3,0) 42%2.3e1 (10,6,0) 76% 4.3e0 (12,5,0) 81% 4.3e0 (13,5,0) 83%2.7e1 (10,6,0) 76% - - - - - -3.6e1 (9,5,2) 81% 6.7e0 (12,5,0) 81% 4.3e0 (13,5,0) 83%

9.8 9.5 10

Table 2: Output of the staffing algorithm (with 2 skills)

Table 2 summarizes the main results that are obtained by applying the algorithmto this example. The table consists of three columns for different numbers of agents n,determined by the optimization procedure. For each n it shows in each consecutive row theβ̃ obtained by bisection, together with the optimal staffing level obtained by local search,and the corresponding service level. The variable β̃ converges over the different rows tothe optimal value. The integer after the ’e’ in the column of β̃, say k, denotes that thevalue should be multiplied by 10k. The table only presents data of the first 9 iterations ofthe bisection algorithm because they show the most significant improvements.

The last two rows show the optimal outcomes, for each value of n; the first row presentsthe optimal β̃, SLπ, and s∗. The second row contains the staffing costs of the optimalvector. In addition, the staffing costs K(s∗) are 9.8, 9.5, and 10 for 16, 17, and 18 agents,respectively. Moreover, taking n = 19 yields as optimum K(s∗) = 10.5. The objectivevalue of 9.5 for n = 17 is the best solution found. It also appears to be optimal; no bettersolution was found by enumerating the whole search space and evaluating each staffingvector.

The algorithm requires simulating a few more than 17 different staffing vectors, takinga few seconds computation time each. Moreover, the optimization procedure performed bylocal search hardly takes any time.

4.2 A Call Center with Three Skills

By adding a skill to the set from the previous example the number of different skill setsincreases from 3 to 7. The skills of the agent groups are: S1 = {1}, S2 = {2}, S3 = {3},S4 = {1, 2}, S5 = {2, 3}, S6 = {1, 3}, and S7 = {1, 2, 3}. The routing is (1 : 1 → 4 →6 → 7), (2 : 2 → 4 → 5 → 7), and (3 : 3 → 5 → 6 → 7). Jobs arrive with rates

11

Page 12: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

λ1 = λ2 = λ3 = 2 and the service rates µmg, denoting the service rate of agents from groupg working on call type m, are: µ11 = 0.3, µ22 = 0.4, µ33 = 0.5, µ14 = 0.27, µ24 = 0.36,µ25 = 0.36, µ35 = 0.45, µ16 = 0.27, µ36 = 0.45, µ17 = 0.24, µ27 = 0.32, and µ37 = 0.40.The costs of the agents are: c1 = 1.3, c2 = 1.4, c3 = 1.5, c4 = 1.4, c5 = 1.6, c6 = 1.5, andc7 = 1.6.

A summary of the execution of the algorithm is depicted in Table 3. The meaning ofthe content needs no further explanation because the structure of the table is similar toTable 2.

The table shows that no feasible solution is found when taking n = 21. Even for highvalues of β̃ the service level does not exceed 78%, while 80% is required. The best solutionis obtained by setting n = 22, which resulted in a service level of exactly 80% and staffingcosts of 30.6. Higher values of n yielded higher costs.

4.3 Comparison to Cutting Planes Methods

In this section we make a comparison to the method from Cezik & L’Ecuyer [CL06]. Weassume that their method yields nearly optimal results, such that we can use it as abenchmark to measure the accuracy of the Lagrange relaxation algorithm from Section 3.However, we are not able to compare the results of their paper because they differentiatebetween the importance of the different call types. Priorities between call types are incor-porated by the way that calls are selected when an agent finishes a call. Agents give thehighest priority to type 1, and the higher the index of the call type the lower the priority is.In contrast, no priorities are supported in our model. An agent serves the longest waitingcustomer. Hence, we composed other instances with this type of call selection policy.

A Call Center with Three Skills

We consider a call center with 3 skills. The agent groups are S1 = {1}, S2 = {2},S3 = {1, 2}, S4 = {1, 3}, S5 = {2, 3}, and S6 = {1, 2, 3}. The routing policy is (1 : 1 →3 → 4 → 6), (2 : 2 → 3 → 5 → 6), and (3 : 4 → 5 → 6). The instances are completelydescribed by Table 4, which contains all the other required parameters. The time unit isminutes and the period of the simulation runs in both methods is 160 hours.

The results are presented in Table 5. The service level is in all cases close to 80% witha deviation of 2%. We read from the table that the objective values of the 2 methods areclose to each other for each instance. In most cases the objective values are lower withthe Lagrange relaxation, as introduced in this paper. However, the service levels are alsoslightly lower in these cases. Hence, we conclude that the accuracy is comparable to thecutting planes method.

A Call Center with Five Skills

The examples in this section concern a call center with 5 job types. Its agent groups andagent selection policy are similar to the ones used in Cezik & L’Ecuyer [CL06], which is

12

Page 13: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

n21

2223

24

β̃s∗

SL

πβ̃

s∗S

β̃s∗

SL

πβ̃

s∗S

2.5e

3(4

,3,2

,2,4

,2,4

)78

%2.

5e3

(4,3

,2,2

,3,2

,6)

86%

2.5e

3(5

,3,2

,1,4

,2,6

)91

%2.

5e3

(4,2

,1,3

,4,2

,8)

95%

4.4e

3(4

,3,2

,2,4

,2,4

)78

%6.

3e2

(4,3

,2,2

,3,2

,6)

86%

6.3e

2(5

,3,2

,2,3

,2,6

)91

%6.

3e2

(5,4

,2,2

,2,3

,6)

95%

5.8e

3(4

,3,2

,2,4

,2,4

)78

%1.

6e2

(5,4

,3,3

,1,2

,4)

86%

1.6e

2(5

,4,3

,4,1

,2,4

)91

%1.

6e2

(5,3

,3,4

,1,2

,6)

95%

6.8e

3(4

,3,2

,2,4

,2,4

)78

%3.

9e1

(6,5

,4,3

,0,2

,2)

85%

3.9e

1(6

,4,3

,4,0

,2,4

)91

%3.

9e1

(7,4

,4,5

,0,2

,2)

93%

7.6e

3(4

,3,2

,2,4

,2,4

)78

%9.

8e0

(9,5

,5,3

,0,0

,0)

75%

9.8e

0(1

0,6,

5,2,

0,0,

0)78

%9.

8e0

(10,

6,4,

2,0,

2,0)

85%

8.7e

3(4

,3,2

,2,4

,2,4

)78

%1.

7e1

(8,5

,4,3

,0,2

,0)

80%

1.7e

1(8

,4,4

,5,0

,2,0

)85

%2.

4e0

(19,

4,1,

0,0,

0,0)

34%

9.0e

3(4

,3,2

,2,4

,2,4

)78

%1.

2e1

(9,5

,5,3

,0,0

,0)

75%

1.2e

1(9

,6,4

,2,0

,2,0

)83

%4.

3e0

(14,

5,3,

2,0,

0,0)

57%

9.2e

3(4

,3,2

,2,4

,2,4

)78

%1.

3e1

(8,5

,4,3

,0,2

,0)

80%

1.0e

1(1

0,6,

5,2,

0,0,

0)78

%5.

6e0

(13,

5,4,

2,0,

0,0)

57%

9.4e

3(4

,3,2

,2,4

,2,4

)78

%1.

2e1

(9,5

,5,3

,0,0

,0)

75%

1.1e

1(9

,6,4

,2,0

,2,0

)83

%6.

7e0

(11,

6,5,

2,0,

0,0)

79%

9.6e

3(4

,3,2

,2,4

,2,4

)78

%1.

2e1

(8,5

,4,3

,0,2

,0)

80%

--

-7.

4e0

(11,

6,5,

2,0,

0,0)

79%

9.7e

3(4

,3,2

,2,4

,2,4

)78

%-

--

--

-8.

0e0

(11,

6,5,

2,0,

0,0)

79%

--

-1.

2e1

(8,5

,4,3

,0,2

,0)

80%

1.1e

1(9

,6,4

,2,0

,2,0

)83

%9.

8e0

(10,

6,4,

2,0,

2,0)

85%

31.0

30.6

31.9

33.2

Table 3: Output of the staffing algorithm (with 3 skills)

13

Page 14: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

depicted in Table 6. In contrast, an agent serves the longest waiting customer at a servicecompletion.

The service rates are µm,g = 12 for all m and g. We require the overall service level tobe at least 80%.

The arrival rates per hour are presented in Table 7. We apply the algorithm fromSection 3. The staffing costs are (K1(st,1), K

2(st,2), . . .) = (0.908, 0.954, 0.908, 1, 1, 1, 1, 1, 1,0.954, 1, 1). Note that we add the subscript t to denote the dependency on the time period.Table 8 presents the staffing vectors that resulted from the staffing algorithm.

In order to evaluate the staffing algorithm more extensively, and to have more compar-isons to Cezik & L’Ecuyer [CL06], we consider staffing costs similar to theirs:

(K1(st,1),

K2(st,2), . . .)

= (1, 1, 1.1, 1.1, 1.1, 1.1, 1.2, 1.2, 1.2, 1.2, 1.3, 1.4). Table 9 presents the resultsof both algorithms. The content and structure of the table is similar to the previous ta-bles. The performance measures are the objective value, the CPU time, and the numberof simulations. We can read from the table that the accuracy and the computation timesare both superior compared to the cutting plane method.

5 Concluding remarks

In this paper we presented a method for staffing in multi-skill call centers. Two appealingadvantages are the short computation times and the high accuracy. Although our experi-ments deal with call centers having at most five skills, computations are still tractable forcall centers with more skills. Another advantage is that the method is easy to implement.The results of the method can therefore be used for the shift scheduling problem in orderto generate shifts and rosters.

AcknowledgmentsOur thanks go in first place to the referees, who gave us very useful comments and sug-gestions. Our thanks also go to Pierre L’Ecuyer, Eric Buist, Wyean Chan, and ThanosAvrimidis for letting us use their cutting planes code. Finally, we would like to thankMarco Bijvank for improving the readability of an earlier version of the manuscript.

References

[BKP06] S. Bhulai, G.M. Koole, and S.A. Pot, Simple methods for shift scheduling inmulti-skill call centers, Submitted, 2006.

[CL06] M.T. Cezik and P. L’Ecuyer, Staffing multi-skill call centers via linear program-ming and simulation, To appear in Management Science, 2006.

[Coo81] R.B. Cooper, Introduction to queueing theory, 2nd ed., North Holland, 1981.

14

Page 15: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

[CST04] P. Chevalier, R.A. Shumsky, and N. Tabordon, Routing and staffing in large callcenters with specialized and fully flexible servers, Submitted to Manufacturingand Service Operations Management, 2004.

[CT03] P. Chevalier and N. Tabordon, Overflow analysis and cross-trained servers,International Journal of Production Economics 85 (2003), 47–60.

[CV05] P. Chevalier and J. Van den Schrieck, Optimizing the staffing and routing ofsmall size hierarchical call-centers, Working paper, 2005.

[FKP06] G.J. Franx, G.M. Koole, and S.A. Pot, Approximating multi-skill blocking sys-tems by hyperexponential decomposition, Performance Evaluation 63 (2006),799–824.

[Fre80] A. Fredericks, Congestion in blocking systems-a simple approximation technique,The Bell System Technical Journal 59 (1980), no. 6, 805–827.

[GKM03] N. Gans, G.M. Koole, and A. Mandelbaum, Telephone call centers: Tutorial,review, and research prospects, Manufacturing & Service Operations Manage-ment 5 (2003), 79–141.

[GKS01] L.V. Green, P.J. Kolesar, and J. Soares, Improving the SIPP approach forstaffing service systems that have cyclic demand, Operations Research 49(2001), 549–564.

[JvD91] A.A. Jagers and E.A. van Doorn, Convexity of functions which are generaliza-tions of the Erlang loss function and the Erlang delay function: Problem 90-8,SIAM Review 33 (1991), 281–282.

[KPT03] G.M. Koole, S.A. Pot, and J. Talim, Routing heuristics for multi-skill call cen-ters, Proceedings of the Winter Simulation Conference, 2003, pp. 1813–1816.

[LD60] A.H. Land and A.G. Doig, An automatic method for solving discrete program-ming problems, Econometrica 28 (1960), 497–520.

[PTVF02] W.H. Press, S.A. Teukolsky, W.T. Vetterling, and B.P. Flannery, Numericalrecipes in C, Cambridge University Press, 2002.

[Tho93] G.M. Thompson, Accounting for the multi-period impact of service when de-termining employee requirements for labor scheduling, Journal of OperationsManagement 11 (1993), no. 3, 269–287.

15

Page 16: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

para

met

ers

IDλ

11

µ22

µ31

µ32

µ41

µ43

µ52

µ53

µ61

µ62

µ63

c 1c 2

c 3c 4

c 5c 6

11.

01.

52.

00.

200.

180.

190.

170.

190.

160.

170.

160.

180.

160.

151.

01.

01.

11.

11.

11.

22

1.0

1.5

2.0

0.20

0.18

0.19

0.17

0.19

0.16

0.17

0.16

0.18

0.16

0.15

1.3

1.0

1.4

1.4

1.1

1.5

31.

01.

52.

00.

200.

180.

190.

170.

190.

160.

170.

160.

180.

160.

151.

01.

01.

11.

31.

31.

44

1.0

1.5

2.0

0.20

0.18

0.19

0.17

0.19

0.16

0.17

0.16

0.18

0.16

0.15

1.0

1.2

1.3

1.3

1.3

1.4

51.

01.

52.

00.

150.

180.

140.

170.

140.

160.

170.

160.

130.

160.

151.

01.

01.

11.

11.

11.

26

1.0

1.5

2.0

0.20

0.15

0.19

0.14

0.19

0.16

0.14

0.16

0.18

0.13

0.15

1.0

1.0

1.1

1.1

1.1

1.2

71.

01.

52.

00.

150.

150.

140.

140.

140.

160.

140.

160.

130.

130.

151.

01.

01.

11.

11.

11.

28

2.0

1.5

2.0

0.15

0.18

0.14

0.17

0.14

0.16

0.17

0.16

0.13

0.16

0.15

1.0

1.0

1.1

1.1

1.1

1.2

92.

01.

52.

00.

200.

150.

190.

140.

190.

160.

140.

160.

180.

130.

151.

01.

01.

11.

11.

11.

210

2.0

1.5

2.0

0.15

0.15

0.14

0.14

0.14

0.16

0.14

0.16

0.13

0.13

0.15

1.0

1.0

1.1

1.1

1.1

1.2

Table 4: Cases with 3 skills16

Page 17: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

instance IDsg 1 2 3 4 5 6 7 8 9 10

Lagrange relaxation1 6 5 5 7 8 6 8 15 11 142 10 10 8 8 9 12 12 9 9 103 0 0 2 0 0 0 0 0 1 14 10 5 5 8 10 11 11 11 13 125 7 11 5 8 8 6 6 7 6 76 0 2 8 2 0 0 0 0 0 0

f 34.6 38.6 37.8 40.2 36.8 36.7 38.7 43.8 42.0 46.0CPU 3 3 3 4 2 2 3 4 3 2#sim 31 32 30 40 18 19 21 34 22 17

Cutting planesf 34.8 38.5 38.8 43.4 37.1 37.6 38.0 44.8 42.5 47.0

CPU 16 14 12 25 22 14 14 17 21 26#sim 50 44 38 50 56 32 45 43 55 44

Table 5: Results with 3 skills

agent group gm 01 02 03 04 05 06 07 08 09 10 11 121 x x x x x x x x x2 x x x x x x3 x x x x x x x x4 x x x5 x x x x x

Table 6: Skills and policy of the first example

time tm 1 2 3 4 5 6 7 8 9 10 11 12 13 141 440 440 440 440 440 440 440 440 440 440 440 440 440 4402 140 240 340 440 540 490 440 440 490 540 440 340 240 1403 440 340 440 340 440 340 440 340 440 340 440 340 440 3404 340 390 440 490 540 540 515 490 465 440 415 390 365 3405 340 365 390 415 440 465 490 515 540 515 490 465 440 415

Table 7: Arrival rates per hour of example with 5 skills

17

Page 18: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

tim

et

g1

23

45

67

89

1011

1213

14Lag

rang

ere

laxa

tion

10

00

00

00

00

00

00

02

00

00

00

00

00

00

00

345

5059

7180

8175

7179

7275

6252

484

00

00

00

00

00

00

00

50

00

00

00

00

00

00

06

00

00

00

00

00

00

00

70

00

00

00

00

00

00

08

00

00

00

00

00

00

00

90

00

00

00

00

00

00

010

8479

9894

110

112

119

106

119

9811

094

9990

111

22

01

02

03

53

11

312

2118

2222

208

919

923

918

188

f14

3.0

148.

817

1.1

176.

219

8.6

188.

419

2.7

184.

619

7.3

188.

918

5.1

165.

016

0.7

140.

5C

PU

119

1215

913

1314

1115

1512

1411

#si

m41

3335

4523

3435

4029

4140

3644

39C

utti

ngpl

anes

f14

5.7

150.

217

3.2

177.

820

1.0

190.

619

6.2

187.

819

8.9

190.

318

6.8

167.

116

1.7

141.

8C

PU

130

189

141

205

206

147

131

257

155

167

278

162

105

95#

sim

8911

478

142

108

7663

103

7689

143

130

8788

Table 8: Staffing vectors of example with 5 skills

18

Page 19: A Simple Staffing Method for Multi Skill fing Method for Multi Skill

tim

et

g1

23

45

67

89

1011

1213

14Lag

rang

ere

laxa

tion

131

3130

3222

3025

2729

3031

2829

362

3121

3122

2419

2518

2820

3120

2828

36

416

117

1918

146

1622

1516

44

11

00

10

11

10

01

00

528

3437

4152

4345

4240

3734

3328

306

1021

2032

4431

2930

4137

2320

1311

70

00

01

00

00

00

00

08

2631

3133

4338

4245

4643

3839

3328

90

00

00

00

00

01

11

110

1917

1818

1722

2019

1919

1818

2315

110

00

00

00

00

00

00

012

00

00

00

00

00

00

00

f16

5.5

175.

620

0.1

207.

623

3.6

223.

322

6.7

217.

523

1.8

223.

421

7.3

193.

518

8.1

166.

3C

PU

1314

1213

1619

1517

1315

1712

1514

#si

m50

5037

3740

5040

4936

4146

3845

50C

utti

ngpl

anes

f16

8.9

177.

320

3.3

210.

123

6.7

225.

322

9.8

220.

423

4.3

226.

621

9.9

198.

219

0.3

167.

7C

PU

212

234

414

184

414

420

329

300

461

285

426

333

336

220

#si

m21

018

521

412

124

225

520

315

823

920

126

322

217

414

8

Table 9: Staffing vectors of example with 5 skills

19