1
Efrén Chaves Villalobos Erlang CCon el propósito de estimar la cantidad de agentes necesarios para alcanzar cierto nivel de servicio en un centro de llamadas, se utiliza la conocida formula Erlang C. Esta fórmula fue desarrollada por Agner Krarupt Erlang en 1917 cuando este trabajaba para una empresa de telefonía en Copenhague.
Con tal de aplicar esta fórmula se va a necesitar las siguientes variables: Definición: Se le llamará incidente a cada entrada que ingresa al sistema.
ARRIVALS: Numero de incidentes durante un periodo determinado. Lo vamos a denotar por .
PERIODO: Periodo de tiempo durante el cual ingresan cierta cantidad de incidentes, los cuales denominamos ARRIVALS. Esta variable la vamos a denotar con .
ARRIVAL RATE: Corresponde a la media la cantidad de incidentes por unidad de tiempo. Se denota por , y viene dada por
AHT: (Average Handle Time) es el tiempo medio que se espera dura un incidente desde que es atendido hasta que sale del sistema. La unidad correspondiente seria tiempo entre incidentes.
SERVERS: Es la cantidad de servidores o terminales que tenemos sea atendiendo un incidente o disponible para atender incidentes. Vamos a denominar esta variable , y pertenece al campo de los enteros positivos.
2
Efrén Chaves VillalobosDada la situación que se requiera conocer la cantidad de SERVERS requeridos para dar cierto nivel de servicio, y conociendo todas las otras variables, se juega con esta a prueba y error hasta obtener los resultados requeridos.
TRAFIC INTENCITY: Corresponde al volumen de llegadas capaces de soportar el sistema, se mide en Erlangs. Vamos a denotar esta variable con , y esta viene dada por
OCCUPANCY: Esta variable determina la utilización de Erlangs por SERVER. Se denota por , y viene dada por,
ERLANG PROBABILITY: Calcula la probabilidad que un incidente no sea atendido inmediatamente y tenga que esperar. Se denotará por , y viene dada por,
Multiplicando tanto el numerador como el denominador por , tenemos,
Por otro lado, la función,
Es conocida como la distribución de Poisson (No Acumulativa). Y,
3
Efrén Chaves VillalobosSin embargo, no hay que alarmarse, ya que una hoja de cálculo simplifica el modelaje matemático y en efecto simplifica la utilización de esta fórmula. Esto se verá en el ejemplo, al final.
Service Level (SLA)
Definición. El nivel de servicio es la porción de incidentes que se requiere sean contestados antes de un fuera del total de incidentes.
Definición. El tiempo medio de espera es el tiempo máximo que se requiere dure un incidente espera.
PROBABILIDAD DE ESPERA: La probabilidad que un incidente entre al sistema y tenga que esperar , viene dada por
Lo cual corresponde al Service Level esperado dadas las condiciones de incidentes por unidad de tiempo, con una duración de por incidente, una cantidad esperada de SERVERS, y un tiempo deseado de espera no más de
Average Speed of Answer (ASA)
Definición. El tiempo promedio que un incidente espera dadas ciertas condiciones iniciales. Se denota por , y viene dada por
4
Efrén Chaves Villalobos Erlang C en una hoja de Cálculo.Ejemplo. Se necesita determinar la cantidad óptima de agentes para obtener un Service Level de un . Se sabe que en promedio durante un intervalo de minutos ingresan 68 llamadas. Además, la duración promedio por llamada es de minutos.
Solución.
Identifiquemos los datos y las variables que tenemos.
Vamos a trabajar todos los tiempos en segundos, por conveniencia.
Dado que el nivel de servicio requerido es , esto quiere decir que el de las llamadas se conteste en menos de segundos, por lo tanto,
Por otro lado, dado que nos están solicitando la cantidad óptima de agentes, entonces, vamos a tomar como parámetro inicial 14 agentes.
5
Efrén Chaves Villalobos Utilizando una hoja de cálculo vamos a especificar nuestras variables, como muestra la siguiente figura.En la celda C6 vamos a tener la cantidad de llamadas; en la celda C7, el periodo de tiempo;
en la celda C8, el AHT; en la celda C9, la cantidad estimada de agentes; y en la celda C10, el tiempo máximo que se requiere.
Por otro lado en la columna E, vamos a ingresar las funciones correspondientes para determinar los valores que necesitamos.
E6=B6/B7 E7=E6*B8 E8=E7/B9
Nota: MS Excel ya incluye una fórmula para la distribución de Poisson, la cual viene dada por,
No acumulativa: Poisson([ ],[ ],FALSE) Acumulativa: Poisson([ ],[ ],TRUE)
E9= POISSON(B9,E7,FALSE)/(POISSON(B9,E7,FALSE)+(1-E8)*(POISSON(B9-1 ,E7,TRUE)))
E10= 1-E9*EXP(-(B9-E7)*(B10/B8))
La función EXP corresponde al número . A la celda E10 se le puede dar formato de porcentaje, o se multiplica por 100, para obtener el SLA%.
6
Efrén Chaves VillalobosAl final debemos obtener una tabla similar a esta,
Por lo tanto, con 14 agentes tendríamos un SLA de 72.68%, lo cual no es lo requerido. Si incrementamos la cantidad de agentes, tenemos,
De lo anterior se puede identificar la diferencia que en realidad hace incrementar un agente en un periodo dado. Y la cantidad óptima de agentes para obtener el SLA requerido es de 17.
¿Qué sucede si incrementamos un agente más?
Para 18 agentes, se obtiene un SLA de 97.55%, sin embargo, está muy por encima de los requerimientos de dar un nivel de servicio aceptable, entonces está de más, y esto significaría un gasto innecesario. Además, la ocupación disminuye, lo que significa que se va a tener mayor número de agentes con largos periodos de tiempo sin estar ocupados.
7
Efrén Chaves Villalobos Programando Erlang C en VBAAhora vamos a crear nuestra propia formula en Excel para calcular la el SLA dadas ciertas condiciones iniciales, igual que en el ejemplo anterior.
Vamos a iniciar el diseñador de VBA de MS Excel. Creamos un nuevo Modulo.
Declaramos nuestra función, las variables.
Function SLA(Offered As Integer, Interval As Double, AHT As Double, Agents As Integer, AWT As Double) End Function Variable Tipo Offered Integer Interval Double AHT Double Agents Integer AWT Double
Variables Calculables Tipo ARRIVAL_RATE Double TRAFIC_INTENCITY Double OCCUPANCY Double ERLANG_PROBABILITY Double Poisson_NONCumulative Double Poisson_Cumulative Double
8
Efrén Chaves VillalobosVariables Calculables Función
ARRIVAL_RATE Offered / Period TRAFIC_INTENCITY ARRIVAL_RATE * AHT OCCUPANCY TRAFIC_INTENCITY / Agents
Poisson_NONCumulative Application.WorksheetFunction.Poisson(Agents, TRAFIC_INTENCITY, False)
Poisson_Cumulative Application.WorksheetFunction.Poisson(Agents - 1, TRAFIC_INTENCITY, True)
ERLANG_PROBABILITY Poisson_NONCumulative / (Poisson_NONCumulative + (1 - OCCUPANCY) * Poisson_Cumulative)
SLA SLA = 1 - ERLANG_PROBABILITY * Exp(-(Agents - TRAFIC_INTENCITY) * (AWT / AHT))
Después de esto, la función debe verse de la siguiente forma,
Function SLA(Offered As Integer, Period As Double, AHT As Double, Agents As Integer, AWT As Double)
Dim ARRIVAL_RATE As Double Dim TRAFIC_INTENCITY As Double Dim OCCUPANCY As Double
Dim ERLANG_PROBABILITY As Double Dim Poisson_NONCumulative As Double Dim Poisson_Cumulative As Double
9
Efrén Chaves Villalobos ARRIVAL_RATE = Offered / PeriodTRAFIC_INTENCITY = ARRIVAL_RATE * AHT OCCUPANCY = TRAFIC_INTENCITY / Agents
Poisson_NONCumulative = Application.WorksheetFunction.Poisson(Agents, TRAFIC_INTENCITY, False)
Poisson_Cumulative = Application.WorksheetFunction.Poisson(Agents - 1, TRAFIC_INTENCITY, True)
ERLANG_PROBABILITY = Poisson_NONCumulative / (Poisson_NONCumulative + (1 - OCCUPANCY) * Poisson_Cumulative)
SLA = 1 - ERLANG_PROBABILITY * Exp(-(Agents - TRAFIC_INTENCITY) * (AWT / AHT)) End Function
******
Y en Excel, podemos simplemente ingresar la formula, = SLA(Offered, Period, AHT, Agents, AWT)
10
Efrén Chaves VillalobosPara nuestro ejemplo, si nos posicionamos sobre F9 e ingresamos =SLA(B6,B7,B8,B9,B10) Vamos a obtener el mismo dato que teníamos antes =95.27%.
11
Efrén Chaves Villalobos ReferenciasThe Erlang-C Formula, http://www.mitan.co.uk/erlang/elgcspsh.htm
Richard, L. Estadística para administración y economía, http://books.google.co.cr/books?id=0KVtr8EBZIQC&pg=PA202&lpg=PA202&dq=distrib ucion+de+poisson&source=bl&ots=jrGx5Nn4JO&sig=LBDPL9DBu8e_7WVgzZQhKJeCpCI &hl=es-419#v=onepage&q=distribucion%20de%20poisson&f=false