Erlang Library for Excel Function Reference

Contents

ErlcWait


Applies to: Excel 2003, Excel 2007, Excel 2010

Returns the average wait in seconds in the Erlang C queueing model, for a given number of servers, a given offered traffic, and a given average handle time.

Syntax

ErlcWait( nsrv, trafficInErlangs, ahtSeconds)

nsrv is the number of servers, and can be any non-negative number (not necessarily an integer).

trafficInErlangs is the offered traffic in erlangs, and can be any non-negative number.

ahtSeconds is the average handle time (mean duration of service), and can be any positive number..

Examples

Formula Description Return Value
=ErlcWait(100, 95, 300) Returns the average wait time (in seconds) given that there are 100 servers, 95 erlangs of offered traffic, and that the average handle time is 300 seconds. 30.387409
=ErlcWait(13, 10.75, 120.5) Returns the average wait time (in seconds) given that there are 13 servers, 10.75 erlangs of offered traffic, and that the average handle time is 120.5 seconds. 22.270206

VBA Function Declaration

Public Function ErlcWait(nsrv As Double, trafficInErlangs As Double, ahtSeconds As Double) As Double

See Also

ErlcFractionDelayed

Remarks

You should take care not to call this function unless nsrv < trafficInErlangs.  In the case that nsrvtrafficInErlangs, the function theoretically should return "infinity"; what it actually does is return a very large number, 1050.

Please also always supply a value greater than 0 for aht.  It makes no sense theoretically to put aht = 0, and in this case the function will return the value 0.

The queueing model that applies here is the M/M/n/ queue, also known as the Erlang C queueing model. That is: Poisson arrivals, exponential service time, n servers, and infinitely slots for customers in the system.

If this worksheet function is not available, and returns the #NAME? error, then you must install and load the Erlang Library for Excel from Abstract Micro Systems.

How?

Case Study: Computing Average Wait in a Call Center

You may use ErlcWait to estimate the average wait time for incoming calls in a call center.  Suppose that we have a call center with these parameters during a certain period of time:

  Maximum number of calls that can be waiting:  Very large
  Period length:  30 minutes
   
  Number of agents:  103
  Incoming calls offered during the period:  1000
  Average handle time:  3 minutes

Assume further that the calls arrive in a Poisson process, that the handle times are exponentially distributed, and that the queue of waiting calls is processed in a FIFO manner.  Finally, assume that if a caller finds that all agents are busy, then the caller will wait until an agent picks up the call.

We are interested in estimating the average wait time t for all callers, where callers who are served immediately are included in the average with their wait time taken to be 0.  We use ErlcWait as follows.  First, we compute the offered load x in erlangs:

x = (calls per period)*(call length) / (period length) = 1000 * (3 minutes) / (30 minutes) = 3000/30 = 100 erlangs

Then the average wait time is

t = ErlcWait( nsrv, trafficInErlangs, ahtSeconds) = ErlcWait( 103, 100, 180) = 40.847806 seconds

Abstract Micro Systems, Nashville, Tennessee
Contact Abstract Micro Systems