How is Estimated wait time calculated?

Estimated wait time in queue can be announced to the caller when he/she arrives in the queue and/or when he/she has been waiting in queue for a while. Estimated wait time can also be used in “IF - THEN” statements which use certain variables to decide what messages/music to play for the caller in waiting in queue.

We recommend that Estimated wait time, which are in seconds, should be rounded to whole minutes. The Puzzel service logic for the queue may contain something like this:
   IF Estimated wait time is available and is > 1 minute,
   THEN play “Estimated wait time is approximately <estimated wait time> minutes”

If Estimated wait time should be announced to the caller after he/she already has spent at least 1 minute in the queue, the remaining estimated wait time is (Estimated wait time - time spent in queue so far). 

The Puzzel algorithm for calculation of Estimated wait time in queue is quite simple, but it should give a good estimate in a multi-channel/multi-skilled agent environment. The algorithm is based on the fact the actual wait time for the last answered call on a queue, hereafter LCWT (Last Call’s Wait Time), is assumed to be close to the real wait time on the queue right now. LCWT will dominate (50%) in an average calculation for Estimated wait time, and sometimes LCWT will be used alone as the Estimated wait time.

The Estimated wait time variable (wait_by_last_calls) for a queue has at any time a value (x seconds), which is updated every time a call is answered on this queue. When the Estimated wait time value is updated, the new value is normally set to (old value + Last Call Wait time) / 2

As you can see, the Last Call’s Wait Time is most important. Example: If the existing value for Estimated wait time is 180 sec. and a call was now answered after 160 seconds in queue, the new Estimated wait time is (180+160) / 2 = 170 seconds.

When no/little queue time
When a call is answered from queue, and this call’s wait time is shorter than the time span back to the last time the Estimated wait time variable was updated (=when the previous call was answered), this new call’s wait time alone becomes the new estimated wait time. 
Example: A call is answered 10:12:00 and has wait time=30 seconds. The Estimated wait time (now 20 sec) was updated last time at 10:11:25 (35 seconds earlier). The new value for estimated wait time will be 30 seconds (not (20+30)/2=25) since it's more than 30 seconds since the previous update of the value.

Please note that in order to get a best possible estimated wait time, some calls will be ignored, that is, they will not update the value for estimated wait time:

  • Calls with a reserved agent (since they often have shorter wait time than other calls)
  • Call-back in queue calls that were answered on the 2nd or 3rd call attempt   

The first calls each morning
When a call arrives in a queue and the Estimated wait time value is older than 1 hour, the value will not be given to the Puzzel service logic to avoid giving callers very old estimates that are not relevant/not good. This means that Estimated wait time is not available for the first call(s) each morning.


PS Estimated wait time is only available for phone calls (not for chat)