Erlang C Calculation

grogmi1

New Member
Joined
Sep 17, 2010
Messages
49
I'm hoping someone on here can help me. I have read through forums, watched endless videos and downloaded umpteen Excel spreadsheets to try and achieve a calculation that will work out how many staff I need in my call centre. Is there anyone on here that can help me, Please? I am simply looking for an Excel formula or even an explanation on how to work this figure out. I'd prefer to stay away from writing VBA if I can (it's not my strongest skill) but if it will get the job done then I'm ready and willing.
Thanks
 
@Clement, I had a look at your question, but I can't replicate your answer. Did you use the ErlangC file I posted (link in post #9)? Here are my inputs...and the preliminary computations in sections 2 and 3 of the worksheet:
ErlangC_20240116.xlsx
AB
1Tool for Estimating Staffing for Call Center using Erlang C Method
2
31. Inputs:
4Number of calls4620
5In a period of minutes (min)720
6Average Handling Time (AHT) (s)308
7Required Service Level80%
8Target Answer Time (s)20
9Maximum Occupancy85%
10Shrinkage19%
11
122. Determine number of calls per hour
13n_avg (# calls/h)385
14
153. Determine the Traffic Intensity (A)(hour basis)
16# of calls in hour basis385
17Avg time per call (min)5.133333333
18Call-minutes per hour1976.333333
19Traffic intensity (A) , call-hours per hour (Erlang unitless)32.93888889
ErlangC
Cell Formulas
RangeFormula
B13B13=B4/(B5/60)
B16B16=B13
B17B17=B6/60
B18B18=B16*B17
B19B19=B18/60

This version of the worksheet requires a little bit of user interaction once you follow the computation down to section 4 (row 23 where an initial guess is made for the "raw" number of agents required). This part of the worksheet is not entirely automated, as the initial guess in B23 is a reasonable starting point, but that number needs to be increased until the Target Service Level is Met (row 31). Ideally, you will see some raw number of agents where the criteria is not met, and an increase of one agent makes sufficient difference to cause the Target Service Level to be met. To see this, for this particular case, I overwrote the values on row 23 to explore this transition point (which occurs between 38 and 39). When I run your input numbers, the raw number of agents needed is 39.
ErlangC_20240116.xlsx
ABCDEFG
214. Estimate the raw number of agents required (N)
22One agent max capability is 1 call-hour per hour actual time
23Initial guess for N agents required343839404142
24X term4.34168E+146.76016E+134.89301E+133.54731E+132.55874E+131.8288E+13
25Y term1.11127E+141.59484E+141.68487E+141.76092E+141.82354E+141.87384E+14
26Probability a call has to wait, Pw79.62%29.77%22.51%16.77%12.31%8.89%
27
285. Calculate the Service Level (list item #13 in ref)
29Service Level25.68%78.57%84.82%89.40%92.71%95.06%
30Target Service Level80%80%80%80%80%80%
31Target Service Level Met?FALSEFALSETRUETRUETRUETRUE
ErlangC
Cell Formulas
RangeFormula
B23B23=ROUNDUP(B19,0)+1
B24:G24B24=B$23/FACT(B$23)/(B$23-$B$19) * $B$19^B$23
B25:G25B25=IF(B$23<2, 1, 1 + SUMPRODUCT($B$19^ROW($A$1:INDEX($A:$A, B$23-1)) / FACT(ROW($A$1:INDEX($A:$A, B$23-1)))))
B26:G26B26=B24/(B24+B25)
B29:G29B29=1-B26*EXP(-(B23-$B$19)*($B$8/$B$6))
B30:G30B30=$B$7
B31:G31B31=B29>=B30
Cells with Conditional Formatting
CellConditionCell FormatStop If True
B31:G31Cell Value=TRUEtextNO

This raw number of agents is further adjusted to account for shrinkage in the lower section, leading to 49 for the final estimated number of agents.
ErlangC_20240116.xlsx
ABCDEFG
336. Average Speed of Answer (ASA) (list item #15 in ref)
34Avg Speed of Answer (ASA) (seconds)231.108713718.1164482111.436162077.3136451764.701562533.022445337
35
367. Percentage of Calls Answered Immediately (list item #16 in ref)
37Immediate Answer20.38%70.23%77.49%83.23%87.69%91.11%
38
398. Check Maximum Occupancy (list item #17 in ref)
40Occupancy96.88%86.68%84.46%82.35%80.34%78.43%
41Max Occupancy85%85%85%85%85%85%
42Max Occupancy constraint met?FALSEFALSETRUETRUETRUETRUE
43
449. Factor in Shrinkage (list item #18 in ref)
45Number agents needed considering shrinkage of 19%424749505152
46
4710. Summary
48Number agents needed (minimum of #9 where #5 and #8 are satisfied)49
49Service Level84.8%
50Probability a call has to wait22.5%
51Average Speed of Answer (seconds)11.4
52% of calls Answered Immediately77.5%
ErlangC
Cell Formulas
RangeFormula
B34:G34B34=B26*$B$6/(B23-$B$19)
B37:G37B37=1-B26
B40:G40B40=$B$19/B23
B41:G41B41=$B$9
B42:G42B42=B40<B41
A45A45="Number agents needed considering shrinkage of "& TEXT($B$10,"0%")
B45:G45B45=ROUNDUP(B23/(1-$B$10),0)
B48B48=AGGREGATE(15,6,(B45:G45)/((B31:G31)*(B42:G42)),1)
B49B49=INDEX($B$29:$G$29,MATCH(B$48,$B$45:$G$45,0))
B50B50=INDEX($B$26:$G$26,MATCH(B$48,$B$45:$G$45,0))
B51B51=INDEX($B$34:$G$34,MATCH(B$48,$B$45:$G$45,0))
B52B52=INDEX($B$37:$G$37,MATCH(B$48,$B$45:$G$45,0))
Press CTRL+SHIFT+ENTER to enter array formulas.
Cells with Conditional Formatting
CellConditionCell FormatStop If True
B42:G42Cell Value="TRUE"textNO
B45:G45Expression=AND(B31,B42)textNO

This result agrees with what you determined using the online tool. Regarding the online tool, I am not sure what is involved in their determination of of 78.4 FTE per day. Initially, I suspected they calculated the same 39 raw number of agents mentioned above...noted that this was for a 12 hour period, and then doubled that number to arrive at 78 for a 24 hour period, as though you might run two 12-hour shifts to cover an entire 24-hour period. But a more careful reading of their summary suggests they are utilizing other information ("...based on our analysis of multiple contact centres") to develop a "...typical distribution of calls per day", and this leads them to develop an estimate to handle the largest surges in call volume. The ErlangC computations in the worksheet tool rely on several averages, and perhaps the other online tool applies a different model to estimate peak demand for call services.
 
Upvote 0

Excel Facts

Show numbers in thousands?
Use a custom number format of #,##0,K. Each comma after the final 0 will divide the displayed number by another thousand
Hi @KRice ,

Thanks a lot for your swift response, appreciate it. I managed to replicate the results based on your input.

Just have a quick thing I need your insight on. The number of agent required is based on the number of call per hour which in this case it's 385 (Cell B16). Could you help me understand how to calculate the total number of agents needed for the entire day? Thanks a bunch!




Cheers,
Clement
 
Upvote 0
@Clement, good to hear that you obtained the same results. A quick disclaimer: I am not a workforce management expert, so I may not possess the insights or expertise needed, but I was curious about the history, development, and mathematics of the Erlang equations. You're correct...ErlangC relies on averages, such as average call volume rate. The number of agents determined by the equation would generally be considered a reasonable starting point when the assumed conditions actually apply, but be careful about extending that conclusion further. In other words, if you had a call center that operates for 16 hours over a 24 hour period, and the 16 hours of active staffing is done in two 8-hour shifts, you would probably want to study (if you have data), or estimate (based on data from similar types of operations or expert knowledge) the appropriate input values for each shift. Perhaps those two shifts historically show that one has a heavier call volume, and the calls are more complicated, than the other. So each shift could, and probably should, be assessed separately. In such a case, you might find that the equation estimates 49 agents for 1st shift, 34 for 2nd shift, and 0 for the 8-hour closed period. I think is why the online calculator you examined had a note about creating a schedule for more detail. But I would recommend evaluating your operation in terms of call demands throughout the workday, determine if there are general blocks of time where the demands differ significantly, and then use some method (Erlang is one option) for estimating staffing needed to handle those call volume rates. For another example, suppose the call center operates around the clock and the call volume and complexity of calls is fairly constant, and under these conditions, you would need 10 agents. In terms of scheduling staff for the call center, you would need 10 agents on duty at any one time. Taking this further, if your workday consisted of two 12-hour shifts, then you would need 20 agents for the day (but only 10 per shift); and if your workday consisted of three 8-hour shifts, then you would need 30 agents for the day (but only 10 per shift); and if your workday consisted of four 6-hour shifts, you would need 40 agents for the day (but again, only 10 per shift). Does this help to clarify how the Erlang estimation can be used?
 
Upvote 0
@KRice are you able to give insight as to how use this for an office team that handles work in a similar fashion to a call center team KPI/parameter wise? Despite work items being resolved in days, I'd like to incorporate team members being able to take on multiple requests and what that looks like as opposed to the Erlang calculator telling me to staff 100+ individuals.
 
Upvote 0
I haven't tried applying this to an office team environment, although it could probably be done. Recognize that the original development of the Erlang equations were undertaken in the early days of telephony...so their underlying assumptions consider that we have a switchboard into which all calls arrive at some rate, and those handling the calls require a certain amount of time to address the callers while other callers wait (and some drop off if they are tired of waiting). And of course, the workers also require some "downtime", so there is some finite capacity for accomplishing work. If you can "translate" your office workflow and key performance indicators (KPIs) into this type of model, then the equations may very well be adaptable to your situation. Be aware of the units for the input variables. Depending on what your workflow and KPIs are, you may need to redefine a "day" or otherwise normalize the input variables to some timescale that is both consistent with your conditions and the equations.
 
Upvote 0
I haven't tried applying this to an office team environment, although it could probably be done. Recognize that the original development of the Erlang equations were undertaken in the early days of telephony...so their underlying assumptions consider that we have a switchboard into which all calls arrive at some rate, and those handling the calls require a certain amount of time to address the callers while other callers wait (and some drop off if they are tired of waiting). And of course, the workers also require some "downtime", so there is some finite capacity for accomplishing work. If you can "translate" your office workflow and key performance indicators (KPIs) into this type of model, then the equations may very well be adaptable to your situation. Be aware of the units for the input variables. Depending on what your workflow and KPIs are, you may need to redefine a "day" or otherwise normalize the input variables to some timescale that is both consistent with your conditions and the equations.
So from a standard cell center type environment, it outputs what looks to be the correct number of FTEs but I was curious to see if you have any thoughts around how to manipulate the parameter values to be inclusive of distributing a certain number of requests into the model and if so, what part of the model to fit that into.
 
Upvote 0
See the screenshot below. When I use the Erlang table you put together (which is great btw), it errors out based on the values listed below. Because of the time durations, it looks like I would need to further expand the number of FTEs that would normally be applicable though that will most likely give me an FTE required number of 100+. I wanted to see if it was possible to add a goal included where I use the table to provide me the number of FTEs needed if the total number of inquiries forecasted this month is 804 but wanting each FTE to handle for example 50. That would initially indicate a team of 16 not inclusive of AHT/SLA/SHRINK etc.


1722446473281.png
 
Upvote 0
What is the best way to describe this operation's working period? It appears that 1 month consists of 20 working days. Does one work day (the time during which work is actually accomplished) consist of 8 h or 24 h?

In order to fulfill a single inquiry, does that actually require full time attention from a single person for three full workdays on average...or is the actual "hands on" time something less? Similarly, does it require two full workdays to determine whom shall be tasked with the job to answer an inquiry?

As a notional exercise, I used these inputs:
ErlangC_20240220_20240801.xlsx
ABCDEF
4Number of inquiries804
5In a period of minutes (min)96001mo, redefine "month" as 20 d9600
6Average Handling Time (AHT) (s)864003days, redefine day as 8 h, convert to s...so86400
7Required Service Level95%
8Target Answer Time (s)576002days, convert to s…so57600
9Maximum Occupancy85%
10Shrinkage30.0%
ErlangC_not_a_swim_fan2
Cell Formulas
RangeFormula
F5F5=20*8*60
F6,F8F6=D6*8*60*60


...and obtained the following results (note that I've excluded/hidden several rows to reduce the size of this table):
ErlangC_20240220_20240801.xlsx
ABCDEFG
214. Estimate the raw number of agents required (N)
22One agent max capability is 1 call-hour per hour actual time
23Initial guess for N agents required123125127129131142
27
285. Calculate the Service Level (list item #13 in ref)
29Service Level84.70%96.85%99.36%99.87%99.97%100.00%
30Target Service Level95%95%95%95%95%95%
31Target Service Level Met?FALSETRUETRUETRUETRUETRUE
32
398. Check Maximum Occupancy (list item #17 in ref)
40Occupancy98.05%96.48%94.96%93.49%92.06%84.93%
41Max Occupancy85%85%85%85%85%85%
42Max Occupancy constraint met?FALSEFALSEFALSEFALSEFALSETRUE
43
449. Factor in Shrinkage (list item #18 in ref)
45Number agents needed considering shrinkage of 30%176179182185188203
ErlangC_not_a_swim_fan2
Cell Formulas
RangeFormula
B23B23=ROUNDUP(B19,0)+2
C23:F23C23=B23+2
G23G23=F23+11
B29:G29B29=1-B26*EXP(-(B23-$B$19)*($B$8/$B$6))
B30:G30B30=$B$7
B31:G31B31=B29>=B30
B40:G40B40=$B$19/B23
B41:G41B41=$B$9
B42:G42B42=B40<B41
A45A45="Number agents needed considering shrinkage of "& TEXT($B$10,"0%")
B45:G45B45=ROUNDUP(B23/(1-$B$10),0)
Cells with Conditional Formatting
CellConditionCell FormatStop If True
B31:G31Cell Value=TRUEtextNO
B42:G42Cell Value=TRUEtextNO
B45:G45Expression=AND(B31,B42)textNO

The results suggest that 125 staff are needed to satisfy the workload requirement; however, in order to also satisfy the occupancy goal (so that staff are not completely overwhelmed), the staff size needs to be 142...and then to further burden the staffing requirement with shrinkage, those same baseline values increase to 179 and 203.

And if the Target Answer Time were reduced to one day (within one day of an inquiry being made, it will have been assigned to someone for response), and the staff member's Average Handling Time were reduced to 1.5 days, then the results become 64 and 71 (staff to handle basic workload, but overwhelmed, and staff needed to achieve occupancy), which staff sizes are further burdened to satisfy shrinkage, yielding 92 and 102...so 102 for all conditions.
 
Upvote 0
What is the best way to describe this operation's working period? It appears that 1 month consists of 20 working days. Does one work day (the time during which work is actually accomplished) consist of 8 h or 24 h?

In order to fulfill a single inquiry, does that actually require full time attention from a single person for three full workdays on average...or is the actual "hands on" time something less? Similarly, does it require two full workdays to determine whom shall be tasked with the job to answer an inquiry?

The results suggest that 125 staff are needed to satisfy the workload requirement; however, in order to also satisfy the occupancy goal (so that staff are not completely overwhelmed), the staff size needs to be 142...and then to further burden the staffing requirement with shrinkage, those same baseline values increase to 179 and 203.

And if the Target Answer Time were reduced to one day (within one day of an inquiry being made, it will have been assigned to someone for response), and the staff member's Average Handling Time were reduced to 1.5 days, then the results become 64 and 71 (staff to handle basic workload, but overwhelmed, and staff needed to achieve occupancy), which staff sizes are further burdened to satisfy shrinkage, yielding 92 and 102...so 102 for all conditions.
Please see my answers to your questions below. Using May's numbers as a baseline, a count of 22 FTEs on average each closed 28 requests with a cycle time of 11 days. The impacting factor was the wait time for routed requests, where from a hands to keys perspective they would still be individually taking 3 days to complete the work after assigning within <=2 days. The ability to close the 28 requests is what I would like to somehow factor in to the WFM table to give me a true number of FTE's to confirm whether or not staffing should be 22 or another number.


What is the best way to describe this operation's working period? It appears that 1 month consists of 20 working days. Does one work day (the time during which work is actually accomplished) consist of 8 h or 24 h?
  • The operation can take 3 days to complete after initially being assigned which historically on average has been 2 days.
In order to fulfill a single inquiry, does that actually require full time attention from a single person for three full workdays on average...or is the actual "hands on" time something less? Similarly, does it require two full workdays to determine whom shall be tasked with the job to answer an inquiry?
  • Depending on the numerous issues needed to be worked by the FTE it can. Because FTE's are usually overlapping in work items moving from one to the next depending on system results/responses received/running calculations/researching, on average it takes them 2 days to pick up a new inquiry while closing 1 out in 3.
 
Upvote 0

Forum statistics

Threads
1,223,911
Messages
6,175,329
Members
452,635
Latest member
laura12345

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top