You are on page 1of 36

Institute for Computer Science and Business Information Systems

Systems Modeling Research Group http://www.informatik.uni-essen.de/SysMod/

Web-based Modeling and Evaluation of Call Centers


Seminar Study in Systems Engineering

Martin Kaczmarczyk Hafenstr. 71 46242 Bottrop Martin.Kaczmarczyk@gmx.de Student ID: 1368026

Advisor: Prof. Dr. B. Mller-Clostermann

Winter term 2006/2007

Web-based Modeling and Evaluation of Call Centers

Table of Contents
TABLE OF FIGURES__________________________________________________________________ II TABLE OF TABLES___________________________________________________________________ II TABLE OF ABBREVIATIONS_________________________________________________________ III 1 2 INTRODUCTION _________________________________________________________________ 4 CALL CENTER BASICS ___________________________________________________________ 5 2.1 2.2 3 3.1 3.2 3.3 3.4 3.5 3.6 4 4.1 4.2 4.3 4.4 4.5 5 6 7 8 CALL CENTER AS A QUEUING SYSTEM _______________________________________________ 5 CALL CENTER PARAMETERS_______________________________________________________ 7 ERLANG-B ___________________________________________________________________ EXTENDED ERLANG-B __________________________________________________________ ERLANG-C ___________________________________________________________________ ERLANG PRO & CONTRA ________________________________________________________ ENGSET______________________________________________________________________ SIMULATION __________________________________________________________________ ERLANG-B ___________________________________________________________________ EXTENDED ERLANG-B __________________________________________________________ ERLANG-C ___________________________________________________________________ SIMULATION __________________________________________________________________ CALCULATE BHT ______________________________________________________________ 10 11 12 13 14 15 18 19 21 22 24

CALL CENTER MATHEMATICS___________________________________________________ 9

CALL CENTER TOOLKIT________________________________________________________ 16

CASE STUDY ___________________________________________________________________ 25 CONCLUSIONS _________________________________________________________________ 28 PERSPECTIVES _________________________________________________________________ 28 REFERENCES___________________________________________________________________ 30 ERLANGB CLASS MATHEMATICS.ERLANGB________________________________________________ 32

APPENDIX: SOURCE CODE ___________________________________________________________ 32

Web-based Modeling and Evaluation of Call Centers

Table of Figures
FIGURE 3.1: EVENT SCHEDULING SIMULATION - EVENT LIST ........................................................................... 15 FIGURE 4.1: CALL CENTER TOOLKIT MAIN WINDOW ........................................................................................ 17 FIGURE 4.2: CALL CENTER TOOLKIT - ERLANG-B PANEL ................................................................................. 18 FIGURE 4.3: DATA FILE ERLANG_B.CSV WINDOW ............................................................................................ 19 FIGURE 4.4: CALL CENTER TOOLKIT - EXTENDED ERLANG-B PANEL ............................................................... 20 FIGURE 4.5: DATA FILE ERLANG_B_E.CSV WINDOW ........................................................................................ 20 FIGURE 4.6: CALL CENTER TOOLKIT - ERLANG-C PANEL ................................................................................. 21 FIGURE 4.7: DATA FILE ERLANG_C.CSV WINDOW ............................................................................................... 22 FIGURE 4.8: CALL CENTER TOOLKIT - SIMULATION PANEL .............................................................................. 23 FIGURE 4.9: CALL CENTER TOOLKIT - CALCULATE BHT WINDOW .................................................................. 24

Table of Tables
TABLE 4.1: COLUMN FORMAT OF DATA FILE ERLANG_B.CSV ............................................................................ 19 TABLE 4.2: COLUMN FORMAT OF THE DATA FILE ERLANG_B_E.CSV ................................................................. 21 TABLE 4.3: COLUMN FORMAT OF THE DATA FILE ERLANG_C.CSV ..................................................................... 22 TABLE 4.4: COLUMN FORMAT OF THE DATA FILE SIMULATION.CSV.................................................................. 24 TABLE 5.1: CALL CENTER CHARACTERISTICS OF CASE STUDY 1 ....................................................................... 25 TABLE 5.2: CALL CENTER 1 CHARACTERISTICS OF CASE STUDY 2 .................................................................... 26 TABLE 5.3: CALL CENTER 2 CHARACTERISTICS OF CASE STUDY 2 .................................................................... 26 TABLE 5.4: CALL CENTER 1 RESULTS OF ERLANG-C CALCULATION ................................................................. 26 TABLE 5.5: CALL CENTER 2 RESULTS OF ERLANG-C CALCULATION ................................................................. 27 TABLE 5.6: CALL CENTER 3 CHARACTERISTICS OF CASE STUDY 2 .................................................................... 27 TABLE 5.7: CALL CENTER 3 RESULTS OF ERLANG-C CALCULATION ................................................................. 27

ii

Web-based Modeling and Evaluation of Call Centers

Table of Abbreviations
ACD AET ANI ASA ASR ATT AWT BHT CSS CTI EBHC FCFS GoS ITU-T IVR PBX SBR SL SM TAPI TSF VRU Automatic Call Distribution Average Excess Time Automatic Number Identification Average Speed of Answer Automatic Speed Recognition Average Talk Time Acceptable Waiting Time Busy Hour traffic Centum Call Second Computer Telephony Integration Equated Busy Hour Calls First Come First Served Grade of Service International Telecommunication Union Telecommunication Standardization Interactive Voice Response Private Branch Exchange Skill-based routing Service Level Speech Minutes Telephony Application Programming Interface Telephone Service Factor Voice Response Unit

iii

Web-based Modeling and Evaluation of Call Centers

1 Introduction
A call center is an office used for the purpose of receiving and transmitting a large volume of requests by telephone. It is operated by a company to administer incoming product support or information inquiries from consumers. Examples include utility companies, mail order catalogue firms, and customer support for computer hardware and software. Increasingly, the voice and data pathways into the centre are linked through a set of technologies called Computer Telephony Integration (CTI). A call center can be independently operated or networked with additional centers, often linked to a corporate network. The number of call centers in Germany was continuously growing in the last years. In 1998 there were about 1.600 call centers; during 2006 there were about 5.700 call centers. Equivalently the number of employees in this trade has grown from 44.8 thousand (1995) up to 380 thousand in 1996 [DDV06]. To manage these call centers effectively, one needs to have multiple skills. Roughly speaking there are those skills which are unique to the product that is delivered, and there are those skills that are needed in virtually any call center, for example those of a more quantitative nature that are related to service level and an efficient use of the main resource, the people that work in a call center (agents). In a simple single-skill call center we see that Erlangs formulas are used to determine the occupation level at any time of day. Scheduling algorithms are then used to determine shifts and to assign employees to shifts. Here a Java Applet is introduced, which calculates the general parameters in a call center. Calculations with Erlang-B, Extended Erlang-B and Erlang-C are also available, as well as a simple simulation of a call center. In chapter 2 a simple call center model is presented and its basic parameters are illustrated. Chapter 3 provides the basic equations, like Erlang-B, Extended Erlang-B, Erlang-C and Engset for evaluating these parameters. Based on these models a Java Applet is developed which for chapter 4 gives a fundamental user guide. To examine the functionality of the Java Applet two case studies were done, described in chapter 5. After a conclusion in chapter 6 an outline of perspectives is presented in chapter 7.

Web-based Modeling and Evaluation of Call Centers

2 Call Center Basics


In this chapter a simple call center model is introduced and its general parameters are illustrated.

2.1 Call Center as a Queuing System


A call center can be regarded as an M/M/s/n queuing system. The first M comes from Poison arrivals, equivalently exponentially distributed, or Markovian interarrival times; the second M from Markovian (exponential) service times. s denotes the number of servers (agents) working in parallel and n is the length of the queue. Figure 2.1 shows this simple queuing model.

Figure 2.1: Call center as an M/M/s/n queueing system

The flow of calls begins with t trunks (communication channels / lines) that connect to the call center. There are w t work stations (not shown), or seats, at which s w agents serve incoming calls. The length of the queue is given by n. An arriving call that finds all t trunk lines occupied, receives a busy signal and is blocked from entering the system (i.e. lost call). Else, it is connected to the call center and occupies one of the free lines. If fewer than s agents are busy, then the call is routed directly to an agent and is served. But, if there are more calls in the system and all agents are occupied, then the call waits in the queue until an agent finishes a call and it exits the system. Some calls are considered retrials, because they are not served and attempt to re-enter the system. For some calls, the customer
5

Web-based Modeling and Evaluation of Call Centers voluntarily abandons the call and does not call back. Also, customers that are served may attempt to re-enter the system; this happens sometimes if there was no first call resolution or if the customer needed to order something else. Given the simple model above (figure 2.1), the number of trunk lines (t) acts as an upper bound on how many simultaneous calls can be in service at the same time. A call center manager dynamically changes the number of agents on and off the floor based on expected demand and staffing availability. The M/M/s/n queueing system above (figure 2.1) has the following properties: arrivals conform to a Poisson process average handling time is exponentially distributed there are s servers (agents) the length of the queue is n the queuing strategy is FCFS1 Call centers and other similar operation centers are highly complex and dynamic. The model above is a simplified system, but, it shows how call centers can be presented as a system of queues and thus many tools available from Queueing Theory can be applied to call centers. The model above is a so called single-skill call center, which means that there is only one kind of call types entering the system. All agents can handle this call types and the simple routing strategy FCFS can be used. The situation is more complex, when there are more than one kind of call types, e.g. different product skills and language skills. These so called multi-skill call centers need more complex routing strategies, as not all agents can handle all type of calls or special skills can have a different priority (B2C vs. B2B). These call centers have so called Specialists, these are agents which can handle only one kind of calls, whereas Generalists can handle all types of calls. The complexity of the routing strategy in multi-skill call centers can differ significantly, regarding to the amount of different skills. To evaluate multi-skill call centers a simulation of the system is needed. In this thesis the focus is concentrated on single-skill call centers, as therefore analytic equations exist, e.g. the Erlang formulas (see chapter 3). Additionally, a simple simulation can be developed (chapter 3.5) to solve questions appearing in such call center environments. But, before starting to evaluate the given model above, there is the need to know about the different parameters in a call center.

FCFS First Come First Served 6

Web-based Modeling and Evaluation of Call Centers

2.2 Call Center Parameters


To evaluate call centers demands a basic understanding of call center parameters explained in this section. Traffic intensity / Erlang Teletraffic theory uses the word traffic to denote the traffic intensity, i.e. traffic per time unit. ITU-T2 gives following definition: The instantaneous traffic intensity in a pool of resources is the number of busy resources at a given instant of time. [ITU06]. The pool of resources in our call center model is represented by the trunk lines and the agents. The statistical moments of the traffic intensity may be calculated for a given period of time T and the mean traffic intensity is given by:
1 Y (T ) = n(t )dt T0
T

(2.1),

where n(t) denotes the number of occupied devices at time t. The carried traffic Y = Ac is the traffic carried by a group of servers during the time interval T. The unit usually used for traffic intensity is Erlang (E), this name was given to the traffic unit in 1946 by CCIF3, in honour to the Danish mathematician A. K. Erlang (1878-1929), who was the founder of traffic theory in telephony. Additional information about A. K. Erlang can be found on [WKE07]. The total traffic carried out in a time period T is the traffic volume, and it is measured in Erlang-hours (Eh). It is equal to the sum of all holding times within the time period T. The carried traffic can never exceed the number of trunk lines. A line can at most carry one Erlang. In theoretical models the concept offered traffic is used; this is the traffic which would be carried if no calls were rejected due to lack of resources, i.e. the number of lines was assumed to be unlimited. The offered traffic is a theoretical value and cannot be measured. It is only possible to estimate the offered traffic from the carried traffic. In telecommunication networks there are two parameters: the call intensity (or arrival rate) , which is the mean number of calls offered per time unit, and the mean service time (or average handling time) , measured in the same time unit. The offered traffic is equal to:

A = * [Erlang]

(2.2)

This equation shows that the traffic unit Erlang is dimensionless. The difference between the offered traffic and the carried traffic is qualified as the lost traffic or rejected traffic.

ITU-T: International Telecommunication Union Telecommunication Standardization Sector CCIF: forerunner of CCITT (Comit Consultatif International Tlgraphique et Tlphonique previous name of ITU-T)
3

Web-based Modeling and Evaluation of Call Centers

For example if the arrival rate is 30 calls per minute, the average handling time is 7 minutes, than the offered traffic A equals 210 Erlang.
Other traffic units

There are also other traffic units in use. The most common ones are: Speech-Minutes (SM, 1 SM = 1/60 Eh), Hundred Call Seconds (CCS, 1 CCS = 1/36 Eh), which is based on a mean holding time of 100 seconds and Equated Busy Hour Calls (EBHC, 1 EBHC = 1/30 Eh), which is based on a mean holding time of 120 seconds.
Busy Hour

The load may vary considerably over the time of day and the day of the week. Most systems are heavily loaded only for a few hours in a day. The main objective of resource dimensioning is to make sure that the system performs well during these busy hours. This will make sure that the system has adequate resources to handle peak as well as off-peak traffic. The busy hour traffic (BHT) is the offered traffic in Erlang at the busy hour. In this context busy hour call attempts (BHCA) are the number of call attempts at the busiest hour and busy hour call completions (BHCC) are the number of calls successfully completed during the busy hour.
Number of Sources

The number of sources, is the amount of sources, generating traffic load. Poisson arrivals assume an infinite number of sources, whereas Engset arrivals assume a finite number of sources. The number of sources depends on the traffic model used.
Servers

Servers are the limited resources, which handle calls. In a call center situation there are two kinds of servers: the trunk lines that carry the calls and the agents who answer them.
Blocking Probability

The blocking probability defines the chance that a customers service request will be denied due to lack of resources. For example, a blocking probability of 0.01 means that 1% of the customers will be blocked. Blocking probability calculations refer to the busy hour and can be evaluated by means of traffic formulas which are appropriate for many different situations. The two most commonly formulas used are the Erlang formulas, which cover the most common requirements. Erlang-B (chapter 3.1) is used when a blocked call is really blocked, whereas Erlang-C (chapter 3.2) is used when a blocked call is delayed.

Web-based Modeling and Evaluation of Call Centers Grade of Service

The grade of service (GoS) is defined in the ITU-T Recommendation E.600 as: A number of traffic engineering variables to provide a measure of adequacy of a group of resources under specified conditions. These grade of service variables may be probability of loss, dial tone delay, etc. [ITU93]. As it can be seen, the grade of service is directly related to the blocking probability. A higher grade of service ensures a low blocking probability during the busy hour. Providing a higher grade of service requires increasing the number of resources (servers and agents) in the system. An industry standard for the Telephone Service Factor (TSF) denoted as 80/20. It means that 80% of all calls should be answered within 20 seconds.
Acceptable Waiting Time

The acceptable waiting time (AWT) is the acceptable time the customer could wait. For the given Telephone Service Factor 80/20, 20 seconds are the acceptable waiting time.
Average Excess Time

The average excess time (AET) is the average amount of time, by which the actual waiting time of customers in the queue exceeds the acceptable waiting time.
Service Level

One of the most important characteristic of a call center is the service level (SL). It can be defined as the degree of satisfaction of callers within the offered service. The service level can be defined as follows: SL = # calls _ answered _ before _ AWT # calls _ answered + # calls _ abondened _ after _ AWT (2.3)

Average Speed of Answer

The average speed of answer (ASA) is the average time a customer will have to wait in the queue, before he or she gets any service.
Average Service Time

The average service time (AST) or average handling time is the total time a resource is needed to handle a customer's request.

3 Call Center Mathematics


To detect the call center quality, the different parameters of a call center (chapter 2.2) have to be calculated. There are a lot of formulas that give answers to many questions, for

Web-based Modeling and Evaluation of Call Centers

example the Erlang formulas. In these section a generally introduction to these formulas is provided.

3.1 Erlang-B
One of the most common traffic engineering problems involves sizing a trunk group. The Danish mathematician A. K. Erlang developed the Erlang-B formula at the beginning of the 20th century, which is derived from the Erlang Distribution. Further information about the Erlang Distribution can be found on [WED07]. The Erlang-B formula allows for calculating the probability Pb that a resource request from the customer will be denied due to lack of resources. The Erlang-B formula provides the grade of service which is the probability Pb = B(n, a ) that a new call arriving at the circuit group is rejected because all servers are busy, when a Erlang of traffic is offered to n trunks. The probability of blocking for n trunks and an offered load a equals:
Pb = B(n, a ) = an n!

aj j =0 j!
n

(3.1)

The assumptions of the Erlang-B traffic model are based on: an infinite number of sources random traffic arrival pattern holding times exponentially distributed blocked calls cleared The formula applies under the condition that for a customer that cannot be serviced immediately, the resource request is rejected. So an unsuccessful call, because all lines are busy, is not queued, but instead really lost forever (lost call). Customer requests are blocked only when no resources are available to serve them; technical problems are not taken into account. That means that there is no queuing possibility and the number of agents is equal to the number of trunk lines. A customer does not retry the request after being denied service. Further it is assumed that call attempts are independent of each other, so the Erlang-B formula does not give acceptable results if customer requests have been triggered by some common events like calling a talk show, natural calamity etc. The call arrivals are following a Poisson Distribution [EW04] and the average handling times are exponentially distributed. The resource is allocated exclusively to one customer for the specified period, thus the resource cannot be shared with other customers.
10

Web-based Modeling and Evaluation of Call Centers

The number of sources is assumed to be infinite, that means that the number of customers (sources) must be much larger than the number of resources (i.e. trunk lines) available to service them. In general, the formula gives acceptable results if the number of customers is at least 10 times the total number of resources. Formally the Erlang-B model can be identified as an M/M/s/0 queuing system. If two of the three parameters a, n and Pb are known, the third one can be calculated. For a given offered load a and a blocking probability Pb an iterative calculation is necessary. The number of lines must be incremented, starting from n = 1, until the calculated blocking probability Pb,i is equal or less the given blocking probability Pb. For given number of lines n and blocking probability Pb the offered traffic a can be found by a similar procedure. But, now the offered load a must be incremented, until the calculated blocking probability Pb,i is bigger or equal than the given blocking probability Pb. Since exponential and factorial calculations could quickly exceed a variables co-domain, a transformation of the Erlang-B formula is necessary. In fact the critical computation a n / n! must be transformed as follows:
n an a a a a a = * * ... * * = n! 1 2 n 1 n i =1 i

(3.2)

The complicated calculation can now simply be solved, by separate multiplications of the fraction a/i.

3.2 Extended Erlang-B


The Extended Erlang-B model is similar to Erlang-B (chapter 3.1), and is based on the same assumptions, but takes into account that customers are able to redial. The additional parameter r (Recall Factor) identifies the percentage of calls that are immediately represented to the system if they encounter blocking (a busy signal). The calculations are based on the Erlang-B formula, but now the increased offered load ar must be taken into account. The blocking probability Pbr is defined as follows:
ar n!
n n

Pbr = B(n, ar ) =

a j =0 jr!

(3.3)

11

Web-based Modeling and Evaluation of Call Centers

To find the increased value of the offered load ar an iterative calculation is necessary, starting from a0=a. The calculation must be repeated, until a steady-state is reached. The iterative calculation for a given offered load a0, the number of lines n and the recall factor r is given by: ai = a0 + ai 1 * B (n, ai 1 ) * r (3.4)

The value of the wanted offered load ar is found and the iterative calculation can be stopped, when ai approximates ai-1 and the term ai 1 * B(n, ai 1 ) * r reaches a final value. As there are now four parameters: offered load a, number of lines n, blocking probability Pbr and recall factor r; it is necessary to know three of them, to evaluate the fourth one. Evaluation of the unknown parameter can be solved in the same way, discussed in chapter 3.1.

3.3 Erlang-C
The Erlang-C formula allows for calculating the probability Pc that a customer will have to wait for a resource. The probability of delay Pc for s servers (i.e. agents) and an offered traffic a equals: as s PC = C ( s, a) = s 1 js! s s a s a s ( ) + s! s a j = 0 j!

(3.5)

If two of the three parameters Pc, s and a are known, the third one can be evaluated. The Erlang-C traffic model is based on the following assumptions: an infinite number of sources random traffic arrival pattern blocked calls are delayed holding times are exponentially distributed an infinite number of lines the number of servers must be greater than the offered load The formula applies under the condition that customers that cannot be serviced immediately, will join a queue until they get service. As this model assumes an infinite number of lines and thus an infinite queue length, no calls will be lost by blocking. Customers do not abandon resource requests while waiting in this queue, so an unlimited
12

Web-based Modeling and Evaluation of Call Centers

customer patience is assigned. After connecting to an agent, the resource is allocated exclusively to one customer for the specified period. The resource cannot be shared with other customers. The average arrival rate is a Poisson process, and so customer requests are independent of each other. The Erlang-C formula does not work if customer requests have been triggered by some common event like calling a talk show, natural calamity etc. The average handling time is exponentially distributed. There are infinite sources, so the number of customers must be much larger than the number of resources available to service them. In general, the formula yields acceptable results if the number of customers is at least 10 times the total number of resources. Consider that the number of servers is higher than the offered load, otherwise there are more arrivals than departures per time unit, and thus the number of waiting calls increases all the time, resulting in a TSF of 0%. The difference between s and a is considered as the overcapacity of the system. Abstractly, it can be concluded that the Erlang-C formula can be identified as an M/M/s/ queuing system. The Erlang-C formula is most commonly used to calculate how long customers will have to wait before being connected to a human in a call center. The Average Waiting Time (or average speed of answer) is the average amount of time that calls spend waiting. For a given delay probability Pc, an average handling time and an offered load a, the average speed of answer equals:

ASA =

C ( s, a ) sa

(3.6)

The strength of the Erlang-C formula is the capability to quantify the Telephone Service Factor for a given acceptable waiting time (AWT). For a given delay probability Pc, the number of servers s, the offered load a, an average handling time and the acceptable waiting time AWT, the formula is given by:

TSF = 1 C ( s, a) e

(s a)

AWT

(3.7)

3.4 Erlang Pro & Contra


There is a trade-off between resource dimensioning and grade of service. The choice of the formula to use depends on the art of handling customers when all resources are busy. Erlang-B should be used when failing to deliver a free resource results in the customer being denied service. The customers request is rejected as no free resources are available. Erlang-C should be used when failing to deliver a free resource results in the customer
13

Web-based Modeling and Evaluation of Call Centers

being added into a queue. The customers stay in the queue until a free resource can be found. By means of the Erlang formulas, we can evaluate many parameters of a call center. The Erlang-C formula works well with high service level and a minimal number of abandoned or lost calls and it builds a basis for calculation of requirements. But the ErlangC formula as well as the Erlang-B formula have both the some disadvantages. For example the Erlang-C equation only can be used for the M/M/s/ model, which means that the length of the queue must be unlimited. In contrast to the Erlang-B model, which is an M/M/s/0 queuing system; thus there is no queue. Other points are that the Erlang formulas dont allow any fluctuations with respect to the offered load or any abandoned calls, respectively. In real life there isnt any unlimited queue length because the length of the queue is always limited by the number of trunk lines and cannot exceed this upper bound t. The offered load is not always constant and there happen abandoned calls because no customer has unlimited patience staying in a queue. In addition to the restrictions of the Erlang formulas there are also some call center situations, e.g. multi-skill call centers, that could not be evaluated by these Erlang formulas because the routing strategy and the call handling is more complex.

3.5 Engset
The Engset traffic model, named after its developer T. O. Engset, is another possibility to evaluate a networks performance as measured by the grade of service. It is similar to the Erlang-B formula, with one difference: Erlangs equation assumes an infinite source of calls, whereas the Engset formula specifies a finite number of sources. So there is one additional parameter s, which describes the number of sources, which from the traffic is generated. As the Erlang-B traffic model tends to over-estimate blocking, when the ratio of the number of sources to the number of lines is less than ten, the Engset calculation can be used when the number of sources is small, instead. For a given number of sources s, the number of lines n and the offered traffic a generated by each source when idle, the blocking probability E(n, a, s) is given by: E (n, a, s) = a( s n + 1) * E (n 1, a, s) n + a ( s n + 1) * E (n 1, a, s) (3.8)

The calculation can be solved recursively, with E(0,a,s)=1 as starting point. The Engset model is based on the following assumptions: a finite number of sources smooth traffic arrival pattern
14

Web-based Modeling and Evaluation of Call Centers

blocked calls cleared from the system holding times are exponentially distributed The Engset formula assumes that the call arrivals can be modeled by a Poisson process and that call holding times are described by a negative exponential distribution. However, because there is a finite number of sources, the arrival rate of new calls decreases as more sources (such as telephone subscribers) become busy and hence cannot originate new calls. When the number of lines n equals the number of sources s, the formula reduces to a Binomial Distribution. Further information about the Binomial Distribution can be found on [EW06].

3.6 Simulation
Simulation is the only solution if the restrictions of the Erlang and Engset formulas, e.g. abandonments, length of the queue etc., should be also taken into account, or if the call center architecture is more complex, i.e. multi-skill call centers. In this section a short introduction to discrete event simulation is given and based on the call center model from chapter 2.1 an implementation of such a simulation is provided. The so called discrete event simulation is based on an event list, in which the different events, together with their dedicated event times, are saved. Figure 3.1 visualizes the basic structure of the event list.

Figure 3.1: Event Scheduling Simulation - Event list

Events are defined as situations, which change the system state of the model, due to dedicated functions. When starting the simulation the event list will be successively executed from the first event until the last event is reached. In comparison to the call center model (figure 2.1), the following events can be defined: call entry call exit recall abandonment

15

Web-based Modeling and Evaluation of Call Centers

Additionally, there are limited resources, which have an influence on events. For example if the event call entry finds all servers busy, it will not be arranged into the event list as a future call exit event, but instead counted as a lost call. The limited resources in the given call center model are: number of agents queue length Finally, there are a lot of parameters, which describe the events and the system state. On the one hand there are input parameters, describing the modeled system, and on the other hand there are output parameters that are of interest and should be evaluated by running the simulation. The input parameters in the given call center model are: arrival rate average handling time working time (the duration of the simulation) average time until abandonment acceptable waiting time The output parameters of interest are: average speed of answer average waiting time (in the queue) average excess time service level number of abandoned calls number of call attempts number of lost calls number of call completions On this basis a call center simulation is deployed (see chapter 4.4).

4 Call Center Toolkit


The Call Center Toolkit is a portable graphical user interface (GUI). It is written in the Java programming language and is therefore platform independent. After starting the Call Center Toolkit, the main window appears (figure 4.1).

16

Web-based Modeling and Evaluation of Call Centers

Figure 4.1: Call Center Toolkit main window

The main window is divided into three areas: Menu Bar Tabbed Pane Button Panel
Menu Bar

The Menu Bar has several menu groups; in the following their content is briefly explained.
Program menu group o Exit: closes the application Tools menu group o Calculate BHT: gives you the ability to calculate the BHT providing the

arrival rate and the average handling time (figure 4.5)


About menu group o Help: shows a help dialog o About: shows an about dialog Tabbed Pane

The Tabbed Pane allows to calculate the different call center parameters by means of different equations. It is made of the following panels:
Erlang-B Extended Erlang-B Erlang-C Simulation
17

Web-based Modeling and Evaluation of Call Centers Button Panel

The button panel activates the different actions for the respective panels. It contains the following buttons:
Calculate: starts the calculation Stop: stops the calculation Reset: resets the parameters of the current panel to their initial value Results: shows the saved data of the current panel

4.1 Erlang-B
By selecting the Erlang-B tab, the following panel appears (figure 4.2).

Figure 4.2: Call Center Toolkit - Erlang-B panel

To use the Erlang-B formula, the following parameters must be filled in:
BHT (Erl.): busy hour traffic (in Erlang), or the number of hours of call traffic

during the busiest hour of operation


Blocking: is the percentage of calls that are blocked due to an insufficient number

of lines being available; default: 1%


Lines: number of lines in a trunk group

18

Web-based Modeling and Evaluation of Call Centers

By filling in two of these three parameters the third one will be calculated. The parameter that should be calculated must be checked as unknown. By default the Lines are selected as unknown. After clicking on the Calculate button in the Button Panel (figure 4.1) the calculation begins and shows the searched parameters. Additionally, the following two parameters are calculated as well:
Blocked Traffic: blocked traffic in Erlang Carried Traffic: carried traffic in Erlang

The calculated values are saved in a comma separated file named erlang_b.csv. If the file doesnt exist, it will be created; otherwise the new result is appended to the file. By clicking on the Show Results button, the contents of the file are displayed (figure 4.3).

Figure 4.3: Data file erlang_b.csv window

Table 4.1 gives an overview of the column format of the data file erlang_b.csv.

Column Name

Data Type float float integer

Unit Erlang % busy hour traffic

Description Blocking probability B(n,a) in percent Number of lines (trunks)

BHT Blocking #Lines

Table 4.1: Column format of data file erlang_b.csv

4.2 Extended Erlang-B


By selecting Extended Erlang-B, the following panel appears (figure 4.4):

19

Web-based Modeling and Evaluation of Call Centers

Figure 4.4: Call Center Toolkit - Extended Erlang-B panel

To use the Erlang-B formula, you can fill in three of the following parameters:
BHT (Erl.): busy hour traffic (in Erlang), or the number of hours of call traffic

during the busiest hour of operation


Blocking: percentage of calls that are blocked due to an insufficient number of

lines being available; default: 1%


Lines: number of lines in a trunk group Recall Factor: percentage of calls which immediately retry if their calls are

blocked; default: 50 To start the calculation, the same procedure like explained in chapter 4.1 is necessary. The calculated data will be saved in a file named erlang_b_e.csv. By clicking on the
Show Results button, the following window appears (figure 4.5).

Figure 4.5: Data file erlang_b_e.csv window

20

Web-based Modeling and Evaluation of Call Centers

The column format of the data file erlang_b_e.csv is as follows (table 4.2).
Column Name Data Type float float integer float Unit Erlang % % busy hour traffic Blocking probability B(n,a) in percent Number of lines (trunks) Percentage of recalls Description

BHT Blocking #Lines Recall Factor

Table 4.2: Column format of the data file erlang_b_e.csv

4.3 Erlang-C
By selecting Erlang-C in the Tabbed Pane, the following panel appears (figure 4.4).

Figure 4.6: Call Center Toolkit - Erlang-C panel

The panel is divided into the following three areas, which themselves consists of several parameters:
Hourly figures o Number of Agents: the number of agents; default: 5 o Expected Number of Arrivals: expected number of calls per selected time

interval; default: 60 per hour


o Average Service Time: average service time, measured in the selected time

interval: default: 4 minutes

21

Web-based Modeling and Evaluation of Call Centers Delay statistics o Probability of Delay: probability of delay C(s, a) in percent from 1% up to

100%
o Average Speed of Answer: average speed of answer, measured in the

selected time interval


o Grade of Service: the service level for the acceptable waiting time; default:

SL = 80% and AWT = 20 seconds


Information o Utilization: utilization of the system o Offered Load: offered load in Erlang

The calculated data will be saved in a file named erlang_c.csv. By clicking on the
Show Results button, the following window appears (figure 4.7).

Figure 4.7: Data file erlang_c.csv window

The column format of the data file erlang_c.csv is as follows (table 4.3).
Column Name Data Type integer float float float float float float float Unit per hour minutes Erlang % seconds % % Number of servers Average Number of calls per hour average service time in minutes The offered load in Erlang Probability of delay C(n,a) in percent Average Speed of answer in seconds Telephone Service Factor in percent Utilization in percent Description

#Servers #Calls/h AST [min] Offered Load Delay ASA [s] TSF Utilizatio n

Table 4.3: Column format of the data file erlang_c.csv

4.4 Simulation
By selecting Simulation in the Tabbed Pane, the following panel appears (figure 4.8):

22

Web-based Modeling and Evaluation of Call Centers

Figure 4.8: Call Center Toolkit - Simulation panel

The panel is divided in the following two areas, which themselves consists of different parameters:
Input o Expected Number of Arrivals: the average arrival rate per hour; default:

60 per hour
o Average Service Time: the average service time in minutes; default: 7

minutes
o Working Time: the duration of the simulation in hours o Number of Agents: the number of agents; default: 5 o Average Time until Abandonment: the average time until abandonment in

minutes; default: 5 minutes


o Acceptable Waiting Time: the acceptable waiting time in seconds; default:

20 seconds
Output o Average Speed of Answer: average time in seconds a customer will have

to wait in the queue, before he or she gets any service


o Average Excess Time: average amount of time in seconds, by which the

actual waiting time of customers in the queue exceeds the acceptable waiting time
o Service Level: the service level for the acceptable waiting time in percent o Abandonments: the number of abandoned calls
23

Web-based Modeling and Evaluation of Call Centers

After all input parameters are filled in the simulation can be started by pressing Calculate. The evaluated parameters will be saved in a file named simulation.csv (table 4.4).
Column Name Data Type float float integer float float float float integer Unit per hour minutes minutes seconds seconds seconds Description average number of arrivals average service time number of agents average time until abandonment average waiting time average Speed of answer average excess time number of abandonments

#Arrival/h #AST [min] #Agents ATUA AWT ASA [s] AET #Abandonme nt

Table 4.4: Column format of the data file simulation.csv

4.5 Calculate BHT


By selecting calculate BHT in the Tools menu group, the following window appears (figure 4.9).

Figure 4.9: Call Center Toolkit - Calculate BHT window

To calculate the busy hour traffic, you must fill in the following parameters and click on the Calculate button:
Expected Number of Arrivals: expected number of calls, measured in the selected

interval
Average Service Time: average service time in the selected interval

24

Web-based Modeling and Evaluation of Call Centers

5 Case Study
In order to examine the capabilities of the Call Center Toolkit we present two case studies.
Case Study 1

The first case study should reflect a call center situation, where no calls can be queued, thus the length of the queue is zero. This is the case when the number of lines equals the number of agents, e.g. a call center uses an S2m multiplex adapter with 30 trunk lines and the same number of agents. In this case the Erlang-B calculation can be used, explained in chapter 3.1. Assume a call center that has 30 agents to handle incoming calls with an arrival rate of 200 calls per hour and an average handling time of about 10 minutes. Table 5.1 illustrates the call center characteristics. Number of Agents (=Lines) ( s ) Expected Number of Arrivals ( ) Average Service Time ( ) 30 200 per hour 10 minutes

Table 5.1: Call center characteristics of case study 1

To determine the blocking probability Pb of this configuration the Erlang-B calculation was used within the Call Center Toolkit (chapter 4.1). After filling in the given values for

and within the Calculate BHT window (chapter 4.5) we get a busy hour traffic of
33.33 Erlang. Selecting unknown for Blocking and filling in the given number of Lines, we obtain a blocking probability of about 19.11%. To improve the customer satisfaction, additional agents should be engaged to reduce the blocking probability to 5%. To answer the question how many additional agents (na) are necessary, again the Erlang-B calculation can be used with the new value for Blocking and unknown selected for Lines. The result for the necessary number of lines is 39 and thus the number of additional agents (and additional lines) is given as na = 39 30 = 9 . Assume that about 50% of blocked customers immediately recall. In this case the busy hour traffic increases and thus more agents are necessary to handle this call volume. The Extended Erlang-B calculation of the Call Center Toolkit (chapter 4.2) could answer the question how many additional agents (and Lines) are necessary. Filling in the given values for the blocking probability Pb (19.11%), the Recall Factor (50%), the busy hour traffic (33.33 Erlang) and pressing the Calculate button yields the result of 40 necessary lines. That means that one more agent (and line) is necessary to handle the increased traffic volume.
25

Web-based Modeling and Evaluation of Call Centers Case Study 2

This case study should reflect the situation, that the number of lines is unlimited. In that case the Erlang-C calculation (chapter 3.3) can be used, to determine the call center parameters. Assume two separate call centers (call center 1 and call center 2), which have the following characteristics (table 5.1 and table 5.2). Number of Agents ( s1 ) Expected Number of Arrivals ( 1 ) Average Service Time ( 1 ) Acceptable Waiting Time ( AWT1 ) 12 100 per hour 6 minutes 20 seconds

Table 5.2: Call center 1 characteristics of case study 2

Number of Agents ( s2 ) Expected Number of Arrivals ( 2 ) Average Service Time ( 2 ) Acceptable Waiting Time ( AWT2 )

9 100 per hour 3 minutes 20 seconds

Table 5.3: Call center 2 characteristics of case study 2

To evaluate the call centers performance, the Erlang-C calculation can be used within the call center Toolkit (see chapter 4.3). The results are shown in table 5.3 and table 5.4: Probability of delay C1 ( s1 , a1 ) Average Speed of Answer ( ASA1 ) Service Level ( SL1 ) Utilization ( u1 ) Busy Hour Traffic ( BHT1 ) 44.94 % 80.89 seconds 59.79 % 83.33% 10 Erlang

Table 5.4: Call center 1 results of Erlang-C calculation

Probability of delay C2 ( s2 , a2 ) Average Speed of Answer ( ASA2 ) Service Level ( SL2 ) Utilization ( u2 ) Busy Hour Traffic ( BHT2 )

8.05 % 3.62 seconds 94.84 % 55.56% 5 Erlang


26

Web-based Modeling and Evaluation of Call Centers


Table 5.5: Call center 2 results of Erlang-C calculation

The results above show that call center 1 (table 5.4) has a very poor performance behaviour. About 45% of incoming calls will be delayed and the average speed of answer is about 81 seconds, resulting in an service level of 59.79%. The results for call center 2 are much better, also the utilization of call center 2 (55.56%) is much lower than that of call center 1 (83.33%). The probability of delay is about 8%, calls are answered at about 4 seconds and the service level is 94.84%. To reduce lease costs the two given call centers should be combined to a bigger one (call center 3). To give answers about the performance of this new call center, again the ErlangC calculation can be executed with the new starting characteristics shown in table 5.5. Number of Agents ( s3 = s1 + s2 ) Expected Number of Arrivals ( 3 = 1 + 2 )
s * + s * Average Service Time ( 3 = 1 1 2 2 ) s1 + s2

21 200 per hour 4.7 minutes

Acceptable Waiting Time ( AWT3 = AWT1 = AWT2 )

20 seconds

Table 5.6: Call center 3 characteristics of case study 2

After filling in the new parameters for s, , and AWT and pressing Calculate, the results of this new call center 3 are shown (table 5.6): Probability of delay C3 ( s3 , a3 ) Average Speed of Answer ( ASA3 ) Service Level ( SL3 ) Utilization () Busy Hour Traffic 14.52% 7.68 seconds 90.08% 74.6% 15 Erlang
Table 5.7: Call center 3 results of Erlang-C calculation

The results show that the combination of the two small call centers 1 and 2 to a bigger one has improved the performance behaviour in comparison to call center 1 dramatically, whereas there are no significant variances to the behaviour of call center 2. The new call center has a probability of delay of about 14.5%, the average speed of answer is about 7.68 seconds and the service level is about 90%. The conclusions of these two case studies are that many questions about call center performance and behaviour can be answered depending on a given call center architecture. The Erlang-B (chapter 4.1) and Extended Erlang-B (chapter 4.2) calculations can be used,
27

Web-based Modeling and Evaluation of Call Centers

when there are no waiting queues, whereas the Erlang-C calculation (chapter 4.3) can be used when the restrictions of Erlang-C (unlimited queues and unlimited customer patience) are acceptable and the call center calculations should depend on the grade of service.

6 Conclusions
Currently, there are different analytical equations to evaluate call center quality. The Erlang formulas as well as the Engset equation are well known and established. But, these analytical equations have different restrictions for solving call center questions. The Erlang-B formula is an M/M/n/0 system, therefore the queue length equals zero. Only simple questions in terms of the number of agents that must be presented all the time to handle a given busy hour traffic, or the probability of blocked calls, are solvable. Because the regular Erlang-B formula pays no attention to recalled or abandoned calls, additional analytic methods were introduced based on this formula. The so called Erlang-A formula is able to handle abandoned calls, whereas the Extended Erlang-B formula is able to handle recalling customers. There are also mixtures available, e.g. Erlang-X [CCMX06]. If additional call center parameters like the average speed of answer should be taken into account, the Erlang-C formula can be used. The restriction of Erlang-C focuses on an M/M/s/ queuing system, thus the length of the queue is assumed to be unlimited. Customers that enter this queue must have unlimited patience, because the Erlang-C formula doesnt accept abandoned calls or only a minimal value of abandonments. Both Erlang formulas assume that the number of sources, creating the traffic, is unlimited. The Erlang-B traffic model tends to over-estimate blocking, when the ratio of the number of sources to the number of servers is less than ten. In this case the Engset traffic model, which takes a limited number of sources into account, gives much better results. If the restrictions of the Erlang and the Engset equations can not be accepted or the call center situation is more complex (e.g. multi-skill call centers), the only way to evaluate call center metrics is using simulation methods.

7 Perspectives
Future call center related work will concentrate on implementing the Engset calculation and extending the given call center evaluation methods by a user-friendly GUI, helping to fill in necessary values as well as introducing visualization of calculated results by charts and improving usability. Additional import and export functionality should be provided, to simplify data exchange between different applications. An interactive procedure for
28

Web-based Modeling and Evaluation of Call Centers

solving call center problems in form of a simple question-answer dialog is also possible, in order to make the Call Center Toolkit more suitable also for persons, that are not familiar with call center parameters, but interested in optimizing call center performance. Another key issue will be the extension of the simulation by additional call center parameters, e.g. agent break time, agent scheduling, incidence rate, variability in motivation, technical failure rate, etc., to specify the given call center model, additionaly. Future versions of the Call Center Toolkit and additional information about call center evaluation will be updated on the therefore arranged website.

29

Web-based Modeling and Evaluation of Call Centers

8 References
[GK07]
Call Center Mathematics; Ger Koole;

http://www.math.vu.nl/~koole/ccmath/, last visited: March 27, 2007, last updated: January 26, 2007 [ITU06]
ITU-D Study Group 2, Teletraffic Engineering Handbook;

http://www.com.dtu.dk/teletraffic/handbook/telenook.pdf, last visited: March 28, 2007, last updated: June 2006 [ITU93]
ITU-D Study Groups, Document RGQ16/2/023-E;

http://www.itu.int/ITU-D/study_groups/SGP_19982002/SG2/StudyQuestions/Question_16/RapporteursGroupDocs/023E.doc; last visited: March 28, 2007, last updated: June 6, 2001 [WED07]
Wikipedia - The free Encyclopedia, Erlang-Distribution;

http://en.wikipedia.org/wiki/Erlang_distribution, last visited: March 21, 2007, last updated: unknown [EW04]
Wolfran Math World, Poisson-Distribution;

http://en.wikipedia.org/wiki/Erlang_distribution; last visited: March 27, 2007, last updated: April 2, 2004 [DDV06]
Deutscher Direktmarketing Verband, Wirtschaftszahlen im Bereich Direktmarketing/Telefonmarketing;

http://www.ddv.de/downloads/WirtschaftsfaktorCallCenter.pdf; last visited: March 21, 2007, last updated: November 2006 [CS07]
Cisco, Traffic Analysis for Voice over IP;

http://www.cisco.com/univercd/cc/td/doc/cisintwk/intsolns/voipsol/ta_isd.p df; last visited: March 28, 2007, last updated: unknown [WKE07]
Wikipedia - The free Encyclopedia, Agner Krarup Erlang;

http://en.wikipedia.org/wiki/Agner_Krarup_Erlang; last visited: March 21, 2007, last updated: unknown [EW06]
Wolfram Math World, Binomial-Distribution;

http://mathworld.wolfram.com/BinomialDistribution.html; last visited: March 28, 2007, last updated: May 15, 2006 [BMC02]
Diskrete Simulation, Students paper; Institute of Computer Science and

Business Engineering, University of Duisburg-Essen, Prof. Dr. B. MllerClostermann

30

Web-based Modeling and Evaluation of Call Centers

[ICS07]

JavaDEMOS User Manual; Institute for Computer Science and Business

Information Systems, University of Duisburg-Essen, Prof. Dr. B. MllerClostermann; http://sysmod.icb.unidue.de/fileadmin/sysmod_template/main/resources/tools/javaDemo/JavaDE MOS_Manual_20050315.pdf; last visited: March 29, 2007, last updated: unknown [CCMX06]
CCMath, Erlang-X Calculator;

http://www.ccmath.com/ErlangX/; last visited: March 29, 2007, last updated: unkown

31

Web-based Modeling and Evaluation of Call Centers

Appendix: Source Code (Excerpt)


ErlangB Class mathematics.ErlangB
package de.mk.call_center_sim.mathematics; import de.mk.call_center_sim.lib.NumberTools; import de.mk.call_center_sim.constants.*; /** * <b>Erlang-B and Extended Erlang-B calculations.</b> * <p> * The Erlang-B calculation has following parameters:<br> * - <b>a</b> <i>Busy hour traffic</i> (offered load)<br> * - <b>n</b> <i>Number of lines</i><br> * - <b>p</b> <i>Probability of blocking</i> B(n,a)<br> * <br> * Extended Erlang-B has the additional parameter:<br> * - <b>r</b> <i>Recall factor</i> * </p> * @author Martin Kaczmarczyk * @version 1.0, 30.03.2007 */ public class ErlangB { /** * Calculates the probability of blocking B(n,a) * @param n number of lines * @param a double offer load [Erlang] * @return p probability of blocking B(n,a) */ public static double erlangB(long n, double a) { return erlangBExtended(n, a, 0.0D); } /** * Calculates the probability of blocking B(n,a) with recalls * @param n number of lines * @param a offered load [Erlang] * @param r recall factor * @return p probability of delay B(n,a) */ public static double erlangBExtended(long n, double a, double r) { double aPrev; double aNext = a; double p; do { aPrev = NumberTools.roundDouble(aNext, Constants.BHT_CALC_PRECISION); double nenner = 0.0D; for (long j = 0; j <= n; j++) { nenner += term(aPrev, j); if(Double.isInfinite(nenner)) return 0.0D; } p = term(aPrev, n) / nenner; aNext = a + aPrev * p * r; } while (NumberTools.roundDouble(aNext, Constants.BHT_CALC_PRECISION) != aPrev); return p; } /** 32

Web-based Modeling and Evaluation of Call Centers


* Calculates the number of lines * @param a offered load [Erlang] * @param p probability of blocking B(n,a) * @return n number of lines */ public static long numLines(double a, double p) { return numLines(a, p, 0.0D); } /** * Calculates the number of lines with recalls * @param a offered load [Erlang] * @param p probability of blocking B(n,a) * @param r recall factor * @return n number of lines */ public static long numLines(double a, double p, double r) { for (long n = 1L; n < Integer.MAX_VALUE; n++) { if (erlangBExtended(n, a, r) < p) { return n; } } return Integer.MAX_VALUE; } /** * Calculates the busy hour traffic (BHT) * @param n number of lines * @param p probabilty of blocking B(n,a) * @param inc increment for BHT * @return a busy hour traffic [Erlang] */ public static double bht(long n, double p, double inc) { return bhtFast(n, p, 0.0D, inc); } /** * Calculates the busy hour traffic (BHT) with recalls ***Fast method*** * @param n number of lines * @param p probability of blocking B(n,a) * @param r recall factor * @param inc increment for BHT * @return a busy hour traffic [Erlang] */ public static double bhtFast(long n, double p, double r, double inc) { double incTemp = 100.0D; double a = 0.0D; for (double d = incTemp; d >= inc; d /= 10.0D) { a = bht(n, p, r, d, a); } return a; } /** * Calculates the Busy Hour Traffic (BHT) with recalls * @param n number of lines * @param p probability of delay B(n,a) * @param r recall factor * @param inc increment for BHT * @return a busy hour traffic [Erlang] */ public static double bht(long n, double p, double r, double inc) { return bht(n, p, r, inc, 0.0D); } 33

Web-based Modeling and Evaluation of Call Centers


/** * Calculates the busy hour traffic (BHT) with recalls, starting from given offset * @param n number of lines * @param p probability of delay B(n,a) * @param r recall factor * @param inc increment for BHT * @param offset BHT offset * @return a busy hour traffic [Erlang] */ private static double bht(long n, double p, double r, double inc, double offset) { double last = 0.0D; for (double a = offset; a < Double.MAX_VALUE; a += inc) { if (erlangBExtended(n, a, r) > p) { return last; } last = a; } return Double.MAX_VALUE; } /** * Calculates a^n/n! * @param a * @param n * @return a^n/n! */ private static double term(double a, long n) { double product = 1.0D; for (long i = 1; i <= n; i++) { product *= a / i; } return product; } }

34

You might also like