ERLANG C FORMULA AND ITS USE IN THE CALL CENTERS

This paper deals with calculation of important parameters of the Call Center using the Erlang C formula and then results are verified through simulations. Erlang C formula is defined as a function of two variables: the number of agents N and the load A. On the base of their values it is possible to determine the probability PC, that the incoming call will not be served immediately, but it will have to wait in the waiting queue. Simulations satisfy the assumption of Markov models.


Introduction
Call Center is dynamical, technical system (package of technical equipments -hardware, software and human sources) designed for effective connecting people with the requirements for service with operator or with systems able to satisfy their requirements.The core of the Call Center is Automatic Call Distribution (ACD).
Each of the components of the ACD can be described with some precision by means of mathematical tools and causalities.Since the ACD systems process a large number of incoming requests, the majority of models is based on the principles of mathematical statistics.The right choice of a statistical model is able to ensure the sufficient accuracy of the results.It is essential to describe the dependency of input variables and parameters that can greatly affect the accuracy of the results.The modeling of Call Center parameters is possible through Markov models, but also through Erlang formulas.
This paper deals with calculation of important parameters of the Call Center (which affect proper operation of such queuing system) using the Erlang C formula and then results are verified through simulations.These simulations satisfy the assumption of Markov models.

Erlang C formula and M/M/m/∞ model
Immediate rejection of call by reason of occupation of all agents (as expected in Erlang B formula) is in terms of provided services by Call Center inappropriate solution.This shortness is eliminated in second Erlang formula -Erlang C. In the case that the call cannot be served immediately, the call is placed into the waiting queue with unlimited length.If the release of one of the agents happens, it is automatically assigned to the following call from the queue.If the waiting queue is empty, the agent is free and he waits for next call.
Erlang C formula [5] is in the original form defined as a function of two variables: the number of agents N and the load A. On the base of their values it is possible to determine the probability P C (1), that the incoming call will not be served immediately, but it will have to wait in the waiting queue. where Now, we use the relationship between load A (2), the average number of calls per time λ and the average number of requests processed per time μ .Next, we define the variable η, which represents the load of 1 agent as [2,3,7]: By substituting (2) and (3) into equation (1) we have: what corresponding with the relation for the probability that the request in queuing system M/M/m/∞ will be placed into the queue, i.e. in the system is more than m requests [2,3,7].Now it is analytically derived, that the Erlang C model ( 1) and the Markov model M/M/m/∞ (4) are identical.
It is possible by using of the basic form for the Erlang C formula (1) to calculate the value of parameter A (maximum load) at a known number of agents N and the probability of waiting P C .Due to complexity of the analytical expression of these unknown parameters, numerical method for solving is used.
By adding the waiting queue into the system, many other parameter variables that can be monitored and also affected will appear.An important factor in terms of caller is queue waiting time.This value is random variable described by distribution function [7]: Then it is possible to calculate the average queue waiting time W (average call waiting time in the queue before assigning a call to agent): and by applying of Little theorem [7] and formula (2) we get the average number of requests in waiting queue as follows: By using of general definition of distribution function of any statistical distribution [4] and by applying its properties on the distribution function (5), we can derive the formula for calculation of the parameter GoS (Grade of Service) (percentage of calls, that are answered, or assigned to the agent before the defined threshold AWT -Acceptable Waiting Time) by known value of AWT [2,6]: The average number of requests in the system K (and also the average number of occupied lines) is [7]: where we get from Little theorem a value of the average time T, that the requirement spend in the system: Other important parameter is the average utilization of agents η [2]: Erlang C formula is the basis for the analysis of parameters and simulation of the call center.Its shortness is the assumption of the unlimited waiting queue.This is not a problem in terms of available storage capacity, and therefore the waiting queue could be potentially unlimited, but no real caller will wait too long.Therefore, the limitation of waiting period represents other parameter that is under consideration in the special Markov models.

M/M/m/M model with limited length of waiting queue
A limited number of requirements placed in the queue of queuing system can be described by Markov model M/M/m/M, where the maximum number of requests in the system M is greater or equal to the number of servers m=N [2].
The probability p 0 [2], that in the system occurs exactly 0 requirements (i.e.empty) is defined as: and then we can define the probability of the call rejection P B [2] as: and the probability, that the call will be assigned into the waiting queue P C [2] as: Furthermore, for the values Q [2] and K [2] can be calculated as The time characteristics can be calculated on the basis of Little theorem [7].
These relations are relatively complicated.It is therefore possible a consideration, if the approximation using standard Erlang C formula is not sufficient, or what are the conditions, that such approximation is sufficiently exact.If the average number of requests in the system K will be far less than the limit M, it is possible to apply Erlang C formula without thinking of the maximum capacity.The more closely will be the value K to the limit, the less accurate results Erlang C formula will provide.

The principle of realized simulations
The basic of the simulated algorithm consists of three blocks:  set up of inputs,  traffic simulations,  processing of measured values and their presentation.

Modeling of inputs
The basic parameters are: Vector with arrival times of each call based on the average number of requests per time unit and length of simulation is created by random generator.There is used a property about exponential distribution of length of the intervals between arrivals.Generated random variables are then tested by the statistical chi-quadrate [4].There is test of vector consistency with exponential distribution on significance level α = 0,05.In the case of unsuccessful test, the entire vector is randomly generated once again.Number of generated calls is by 20 % higher than the average number of calls that should enter into the call center through the simulated period.Furthermore, vector with service times of individual calls that will be allocated during the simulation, is generated for each agent based on his average service time.
All these operations are performed in advance by reason of high rate and efficiency of MATLAB by working with vectors and matrices.The generation of set of values is then faster than a gradual generation of individual values during the simulation.

Traffic simulation
The core of simulation is realized as a cycle, in which the each iteration represents one time step in simulation.In the each iteration is the vector of incoming calls compared with actual time and if it is necessary, the call enters into the simulated call center in proper timer.Concurrently the time of incoming call is recorded for later calculations.Call is placed into the waiting queue or directly assigned to a free agent.The time index is stored for later calculations (average waiting time) at the moment of call assignment.
Furthermore, in the each iteration the status and the occupancy of all agents are checked.If any of the agents is free, it will be assigned the first call from the waiting queue.If more agents are free, the call is assigned to agent that didn't work for the longest time.If there is not a call in the waiting queue, the agent remains as free and expects the arrival of another request into the system.
During the one iteration there is possibility of entry into the system and also assignment to the agent of more than one call simultaneously.The number of calls in the system is stored in each step so then it is possible to determine the number of calls in the waiting queue.
The mathematical model of queuing system is defined for the steady state.It means, that in the moment of parameters monitoring, the simulation runs infinitely long time.
The run of the simulation is terminated after predefined simulation time.Only the calls that are terminated (and are thus served by agent) before expiration of the simulated time are included into the statistics.

Processing of the simulation results
This phase of the algorithm ensures the processing of all measured data during the simulation (time of events generation, number of calls in the system, agent occupancy, …).Based on these the particular parameters monitored in the call center are calculated.Thus obtained simulation results can be then compared with the expected values obtained by calculations through the mathematical model.
The general variables available from the results of the simulated model are:  real length of the simulation (calculation time),  number of simulated calls,  average service time per one call (1/μ),  average number of calls in the system (K),  average time spent by user in the system (T),  number calls placed in the waiting queue,  probability of blocking P B , respectively probability of waiting P C ,  average utilization of agents η.

Calculations using the Erlang C model
Erlang C model works in the basic form with 3 input parameters (A, N, P C ).By use of relation (2) it is possible to divide the value of load A (generated by incoming calls) into 2 components: λ and 1/μ.Calculator thus always works with 4 values, while 3 of them act as input parameters and the last parameter is the output parameter.By adding of the waiting queue we can obtain a set of new parameters that can be calculated and then compared with the simulation results:  average number of requests in the waiting queue Q (using ( 7)),  average number of requests in the call center K (using ( 9)),  average waiting time in the waiting queue W (using (6)),  average time spent in the call center T (using ( 10)),  value of GoS for AWT=20 s (using ( 8)),  average utilization of agents η (using (11)).
Probability of insertion into waiting queue P C can be entered in three different variants:  direct entry of value P C ,  entry of average waiting time W,  entry of GoS.
When using a P C as input variable, this variable is considered to the upper limit.

Calculation of the parameter Pc
The calculation of the unknown value of probability of waiting can be easily realized by basic relation for Erlang C model (1).The dividing of two large number could lead to numerical errors and the obtained result might not be accurate.Therefore we derived an alternative relation, that is identical to the original (1) (in terms of result): Similarly, we can use Horner scheme [8] also for more efficient calculations.

Calculation of the parameter N
Analytical calculation according to (1) respectively (17) would be very difficult.The solution is therefore through a numerical method.The easiest technique is to gradually increase of the number of agents and continuous checking the stop conditions.This depends on the form, in which the input value P C is inserted (thus direct, or as W, or as GoS).At the moment, where the current value in the calculation is less or equal to the required value, the necessary number of agents is found.The implementation uses this idea, but applying of the relation (17) in every step of the calculation it is possible to use the current result obtained from the previous iteration cycle for the lower value of N. So, this is very quickly method to find the unknown value N.

Calculation of the parameter λ or 1/μ
The calculation of one of these unknown quantities in terms of Erlang C model means the find out of the load A, that can the system process at the specified parameters N and P C (respectively W and GoS parameters).Consequently, we can calculate the second one by applying the formula (2) and one of the value λ and 1/μ.
In terms of implementation, the finding of the unknown value A is the most difficult of all three combinations.As the solution we can use the feature, that allows to search the value of unknown x, for which it holds f(x) = 0.In this case, the function f(x) for input P C is: If the input value is defined as the average waiting time W, respectively GoS, we can use the following substitutions by ( 6) and (10): In both cases we have the value μ.Therefore, if we need the solution for the unknown value 1/ μ, we must find the solution for the value μ and only then to calculate the load A by (2).The functions f(x) for input W (by use of substitution (19)) are: If the input parameter is GoS, the substitution (20) is used and the function for parameter λ is: respectively, if μ is unknown, then:

Simulations
The whole process of simulation for Erlang C model is shown in the following fig.1:

Simulation results
The parameters of simulated model are: The calls that cannot be processed immediately are placed into the waiting queue (according to Erlang C formula).For the system stability it is necessary to satisfy the condition A < N. Therefore the calculations and simulations are realized for the number of agents in the range of 28 to 37. In this range are the most notable changes observed in output parameters.The table 1 and table 2 shows the results obtained by calculation using the mathematical model and results also obtained by simulations.Obtained simulation results and calculations are very similar.The differences exist only in the case of the minimum number of agents.However, it is probably that any company will not carry on the call center with extremely poor quality of service [9,10,11,12] delivering (mainly the very long waiting time).
From the caller point of view, the most important parameters are the average waiting time in the waiting queue W and parameter GoS (this case is evaluated for AWT=20 seconds).The caller expects the lowest value of W and also the value GoS, which is close to 100%.From the call center point of view, the most important parameters are the number of agents N and their utilization η, because these two variables significantly affect the financial demands of service.The aim of the operator is to minimize the number of agents and to maximize their utilization.The aim of the analysis is therefore to find such a minimum number of agents N, when the operation parameters are yet on the sufficient level.As suitable we can consider the GoS parameter on level 80% and the average waiting time about The fig. 2 shows the characteristic curve of the important call center simulation results according to Erlang C model assumptions in relation with the number of agents N. The characteristic curve of the average waiting time has a very strong exponential character and thus a slight increase of the number of agent (about 1 to 2 agents) can bring a significant improvement of this parameter.A similar, even though less aggressive, is the characteristic curve of the probability P C .GoS parameter also exponentially converges to the level 100% and we can see that a small change in the number of agents can bring significant improvement.The characteristic curve of agents load η is in the displayed range almost linear.
According to the above mentioned requirements on the provided quality of service by the call center is in this case possible to consider 32 agents as sufficient.By adding two agents it is possible to shorten the average waiting time by half and to increase the value of GoS parameter at 10% on very decent level (90%).The utilization of agents does not decrease below 80% and therefore it does not create unnecessarily long pauses, when the agents were redundant.

Conclusion
Based on calculations and simulations it can be stated, that in term of simplicity and accuracy of obtained results Erlang C formula is applicable for call center simulations.However, its shortness is the possibility of calculations only for one service group, and also the need to define for all agents the same service time.
Despite these limitations, it is possible to use the basic Erlang C formula also for calculations for call center with several service groups.In this case when it is possible to determine the probability that calls are routed to the individual service groups, then it is possible to use the basic Erlang C formula for calculations for each service group individually.The number of incoming calls per time unit is the aliquot portion of the total number of incoming calls into the call center.The Erlang C formula calculation can be used in the case of different performance of agents.It is possible to determine the value of the average call processing time or average number of the processed calls per time unit by dividing the total number of processed calls per time unit of all agents and the total number of agents in service group.
For the purpose of further study it would be interesting to expand the simulations by more independent service groups at the same time and the random distribution of call between them according to defined probabilities.Another interesting possibility could be different average service time for individual agents.Finally there is possibility to simulate the impact of unequal performance of agents on the results of the whole call center.


average number of incoming calls into the call center per time λ,  average time of call processing by agent 1/μ,  number of agents N. The group of time parameters consists of:  the total length of simulated traffic in seconds T SIM ,  time step of simulation T STEP (by default 1 second),  time to steady state T NAB .

Fig. 1 .
Fig. 1.Process of simulation for Erlang C model


667 incoming calls per 1 hour,  average call service time is 150 seconds,  simulation time of the call center work is 30 hours with 1 second step (run to steady state is 1 hour).