How to predict handle time

Is average handle time a good indicator of how long it would actually take to handle an interaction?

Nikolay Anisimov

In this article, we are discussing handle time metric, its applicable statistics, and learn how to predict it.  We use a real-world dataset recorded from an outbound campaign that was run in the Bright Pattern cloud contact center. We show how to treat experimental data and apply statistical methods.  


Average handle time, or AHT, is one of the most important contact center metrics. It characterizes the duration of call processing by agents and has a strong impact on the whole operation of the contact center. For instance, it directly influences waiting time, abandonment rate, occupancy of agents, workforce demand, and ultimately both customer satisfaction and cost of operation.

At the same time, AHT is a rough characteristic of the handle time that provides only limited understanding about its nature and ways to use it. In reality, handle time is a random value that varies from case to case and deserves a more accurate consideration. Looking at handle time, we need to be able to predict agents’ status. For example, we should be able to estimate an engaged agents’ chances of becoming available again after a specific period of time.

It would be nice if the handle time were a constant value because it would simplify everything. Imagine that all handle time values are the same and are equal to, say, 180 seconds. This means that when an agent starts talking to a customer they will definitely complete the call in 180 seconds. We could predict the behavior of the agent very precisely.

Unfortunately, this is not the case in practice. The handle time is a random value and needs to be treated as such. In this article we make an attempt to consider the handle time as a stochastic value and apply a statistical approach to its treatment.

Real-world example

Normally the handle time includes the talk time, times when the call is on hold, and after call work time – all periods when the agent is considered to be busy and no call is distributed to them.

It is clear that taking a single measurement of handle time is completely useless. Indeed, it will tell us nothing, because all subsequent measurements will be different. Instead of one measurement, we could take a series of measurements. Intuitively, it is clear that the more measurements we make the better the precision will be. The problem now is how to use this gathered information.

Let us take handle time samples recorded from a real-world outbound campaign. The campaign was running in the Bright Pattern cloud contact center to support a political election campaign. We collected one thousand samples, measured in seconds:

1, 61, 30, 19, 15, 4, 12, 24, 29, 33, 21, 24, 10, 20, 25, 8, 51, 4, 49, 23, 23, 10, 19, 36, 2, 4, 20, 98, 9, 79, 9, 63, 26, 13, 5, 27, 20, …….., 18, 8, 65, 6, 19, 21

What could be done with these numbers? First of all, we could determine a minimum and maximum times in seconds – 1 and 98, respectively. Moreover, we could calculate a mean value that happens to be equal to 22.04 seconds. However, this value is nothing more than the familiar average handle time (AHT). This value tells us something, but it does not tell us enough. For instance, we are still not able to answer the main questions related to future agent status.

To help us with gaining an understanding, let us try to visualize the information we have. We could show the individual call times in a bar graph where we can provide a visual indication of how handle times vary. The graph is depicted in Figure 1 below.


Figure 1: Handle time samples

What useful information can be extracted from the graph? Not a lot, but something can. First, handle times can vary from a few seconds to minutes. Second, there are more short calls than long ones. And that is it!

Building a histogram

To extract more useful information from the samples, let us group the handle times together by building a histogram. To accomplish this, we divide all times into, say, 50 intervals ranging from 0 to 100 and calculate the number of calls in each interval. Graphically, each interval will be depicted as a bar where its height corresponds to the number of calls that happen to fit in the interval. As a result, we obtain a histogram – a bar graph shown in Figure 2.


Figure 2: Histogram of handle time (vertical red line corresponds to mean value)

What useful information can the histogram provide us with? The histogram tells us about the frequency of handle times for each time interval. For instance, we could see that the interval between 18 and 20 seconds contains most calls. At the same time, there are instances where for some of the longer durations, no calls were registered.

The duration of most calls falls between 2 and 30 seconds. After 40 seconds the number of calls decreases sharply and tends to zero.

The histogram certainly improves our understanding of the nature of the handle times, but it still does not give us a precise tool to reason and predict agent behavior.

From histogram to probability density function

Based on the histogram, we could create a probability density function (PDF) that will help us with more accurate reasoning about handle times. The PDF could be easily obtained from a histogram through its normalization – by dividing each bar of the histogram by the total number of calls. In our case, we will divide the bars by 1000 and obtain the graph shown in Figure 3 below.


Figure 3: Probability density function of handle time

Now, after normalization, the total sum of all bars will be equal to 1.

It is interesting to pay attention to the shape of the function. If we approximate the shape of the histogram by using an approximate smooth curve in red, we could not determine any known distribution. We can see it is definitely neither normal distribution nor an exponential one. Moreover, it is not close to any known analytical distribution function we are aware of. Therefore, it is more convenient to treat this distribution as a discrete empirical distribution – a distribution function that is described as it is. The discrete empirical distribution could be easily specified as an array of numbers where the size of the array depends on precision.

With the creation of a probability density function, we could answer questions such as, “What would happen with the agent at some moment of time?” For instance, the next example, Figure 4, enables us to predict what will happen 30 seconds after the handling of a call begins.


Figure 4: Probability of call completion after 30 seconds

We paint the probability graph in green when handle time duration is less than 30 seconds and in red for calls of a longer duration. The probability of handle time completion in 30 seconds is equal to a square of the green part of the plot. Correspondingly, the probability of non-completion is equal to the red area. If we calculate these numbers, we obtain probabilities equal to 0.8 and 0.2, respectively. This means that the probability of the agent completing the call within 30 seconds is 0.8.

Sometimes it is more convenient to represent probability as a percentage. Thus our 0.8 probability could be referred to as 80%.

It should be noted that the calculations are not complicated and consist in summing the elements of the subarray. However, when we try to answer the question “When will call handling be completed with 90% probability?”  the calculations will be more complicated. To answer this and similar questions, we suggest using the cumulative distribution function (CDF).

From PDF to CDF

Let us build a cumulative distribution function from the PDF using the following simple procedure. The value of CDF at some point is calculated as the sum of all PDF values before this point. Therefore the value of the CDF at a specific moment in time will represent the probability of completing call handling by this time.

The graphical representation of the CDF of our handle time is represented in Figure 5 below.

It is important that the CDF can be easily calculated from the PDF. The value of CDF at some point is equal to the sum of the PDF bars from the left area of the graph. Consequently, if we have empirical discrete PDF of some random value, we could easily create a CDF for this value.

Let us now show how to use CDF. Suppose we could calculate a probability of call handling completion in 30 seconds. The probability will be equal to the value of the function at point 30 (see red dashed lines). So we do not even need to sum the values of the bars up as required for the PDF.


Figure 5: Cumulative distribution function of handle time

Suppose now that we want to ask an alternative question: “When will the call be completed with a probability of 90%?” To answer this question we draw a horizontal line (see the green dashed line above in Figure 5) at a value of 0.9, and we immediately obtain the answer of 40 seconds.

Using conditional probability

CDF and PDF allow for the answering of even more complicated questions about agent statuses. Suppose we have an agent who has already been engaged on a call for 20 seconds. We wonder what will happen with the agent and the call on the 30th second (counting from the beginning of call handling). More specifically, we want to know the probability of completion of this call within the next 10 seconds. To answer this and similar questions, we should use the notion of conditional probability.

We will explain this notion by using the PDF of our example, represented in Figure 6 below.



Because the agent has worked on the call for 20 seconds, we have colored the area prior to this moment in gray, indicating that this part does not interest us. Let us take only the right part of the function and normalize it to make its area equal to 1. The resulting new PDF is shown in Figure 7 below.

 Conditional probability density function
Figure 7: Conditional probability density function

Figure 6: PDF with condition

Now we start using the new PDF as our working PDF and can estimate the future of the agent. For instance, we could calculate the probability of completing the call handling within 10 seconds (see the green area of the plot). The calculations will give us 60% probability. That means the agent, who has already spent 20 seconds on the call, will complete the call handling within 10 seconds with the probability of 60%.

Figure 7: Conditional probability density function


In this article, we have tried to explain what handle time is, show its random nature, and provide some hints on how to work with it. More specifically, you hope you have learned how to build probability density and cumulative distribution functions from samples you could collect from your own real-time contact center operation. You should also have learned how to apply conditional probability to predict the future of calls and agents.

Further reading

If you want more precise and detailed consideration of handle time and do not fear mathematical formulae, take a look at the following academic paper:

Brown, L., Gans, N., Mandelbaum, A., Sakov, A., Zeltyn, S., Zhao, L. and Haipeng, S. Statistical Analysis of a Telephone Call Center: A Queueing-Science Perspective.  Journal of the American Statistical Association, Vol. 100, pp. 36-50. 2005

We also recommend a very good book explaining many fascinating aspects of contact centers:

Ger Koole. Call Center Optimization. MG books. Amsterdam. 2013.

Formal definitions

Let V={v1,v2,v3,…,vN} be a set of samples where N>0 is a number of samples. Let vmin and vmax are minimum and maximum samples, respectively.

Partition the interval [vmin,vmax] into M>0 equal intervals: vmin=x0≤x1≤x2≤…≤xM=vmax. A histogram is defined to be a function HV(i)=xi≤v<xi+1v, xi ≤x<xi+1.

A probability density function (PDF) is defined as follows: fV(i)=1NHV(i), 0≤i≤M.

A conditional PDF is a function: fV(i|k)=11-j=0j=kf(j)fV(i), 0≤i≤M, k≤i.

A cumulative distribution function (CDF) is a function: FV(i)=j=0j=ifV(j), 0≤i≤M.

How to predict handle time was last modified: by

Leave a Reply

Your email address will not be published. Required fields are marked *