1. Skill Based Routing – the ACD viewpoint
The manner in which the various ACDs implement Skill Based Routing (SBR) can be varied and is often complex:
Usually, the switch has a set of tables that define the call types which can be routed to an agent, equal to that agent’s skill set. When that agent logs in, the lookup tables associated with that agent’s login ID tell the switch what skill(s) that agent has. They may also tell it the skill level, via a routing priority – so an agent may be a primary ‘target’ for some calls, but a lower priority for others.
For the ACD this is very logical and straightforward:
Whenever a call comes into the switch, from the call type the switch can see what agents are currently logged in who can handle the call, what their status is, and will then route the call to the first available agent. If no first choice agents are available, it will look for a second choice, or it will queue the call (or it will turn it back).
The ACD is only interested in routing a call to an appropriate agent:
Although agents may be able to handle a number of call types, the ACD is only looking for agents with one particular skill at any moment in time. It has no interest in what an agent has done historically, or what they may do in the future. So from the ACD view it could be argued that all agents belong to skill groups but all groups are single skilled.
The ACD viewpoint is ideal from a call routing perspective:
An ACD routes calls sequentially. Because it does so, at any moment it is only interested in the routing of a single call for which it has a number of possible agents with the same or different priorities. It is of no real concern how large or small the group is, as long as certain criteria are met, the call will be routed accordingly.
However, the call routing event happens in a millisecond, and then the next call is to be routed. The next call may be of a different call type with a different group of agents as possible destinations. Over a 15-minute period, hundreds, or even thousands of calls will be routed by the ACD in this manner. The question then is: How can the correct number of agents with the correct skills be determined for each 15 minutes? The answer must be correct to achieve the required service targets without under or overstaffing.
2. Small Numbers and Large Numbers
It is known that a large number of calls can be handled most efficiently by one single group of agents. In a single skill environment, this means that if calls are routed through one single ACD to one large team this requires less agents than if calls are routed through several ACDs to several discrete teams. See below.
(Please note the numbers are for illustration only)
This is as true in a Multi-skilled environment as it is in a single skilled one. Nevertheless, multi skilled environments introduce new factors, mainly:
The cost of training for a particular skill Vs. the need for that skill The level of expertise the agent may have or may reach.
These factors are significant because:
- Some skills may require a lot of training, but the demand may be small. It is therefore uneconomical to train all agents.
- The skill may have a finite lifetime.
- The agent may need to handle a large number of calls to build up expertise (and therefore lower the handling time).
- Some skills may be too complex for all agents.
- High turnover of agents may prevent universal training
The advantage of SBR is that each agent has his or her own set of skills and the ACD recognises this and routes calls accordingly. BUT the pool of agents with a particular skill may be getting smaller. In fact, the reality is that there is a number of skill ‘pools’ of differing sizes, depending on the training policy of the center.
So the task of any scheduling system is firstly to make sense of the agent skill ‘pools’, how and where they intersect to produce a large group and where they are isolated. This is illustrated below:
In this illustration, we have 4 call types. Where the call type intersect denotes a pool of agents with more than one skill.
When the ACD routes a call, it sees all agents within each circle, regardless of any intersections. So, a call type A could be routed to an agent with call type A in their skill set. As illustrated, this is not restricted to agents who have only that skill.
Let us assume that in the diagram above, the size of the circles indicates the relative volumes of that call type. So call types A and B are relatively high volume queues, whereas call type D is a low volume queue. This would not necessarily match the size of the pool of agents by skill set. Below is a diagram where the size of the circles, and the area of intersection, matches the skill groups of the agents.
In this illustration, most of the agents with skill A also have skill B (and vice versa), but there are few agents who have skills B &C, and none who have skills A, B & D.
In a live environment, the skill mix may well resemble that illustrated in the above 2 examples. One obvious question to ask is ‘What is the optimum skill mix?’
As discussed earlier, the larger the pool of agents, the better. Therefore, the answer would be that the optimum is to have everyone able to do everything. As this is likely to be impractical for reasons already discussed, how can a system schedule agents, who have different skill levels, to best meet the forecasted work load, taking account of the multi-dimensional nature of the problem as illustrated above?
3. The Pipkins approach
From the diagrams above, it can be seen that although agents’ skills are defined in the ACD individually, agents will fall into groups who have the same skill set.
For example, the groupings from the above illustration would be:
Group A, group B, group C, group D, group A+B, group A+C, group B+C, group A+D, and group A+B+C.
(Remember that the possible groupings are derived from the agents’ skills themselves. So if no agent is skilled to handle calls A+B+C+D then no group exists).
In order, firstly, to calculate the correct requirements for the center, the natural groupings above are defined in Maxima Advantage as Serving Teams and each Serving Team is mapped to the appropriate queue(s). At this stage, we are looking at groups who are the primary groups for a call type. So in the example, teams A, A+B, A+C, A+B+C and A+D are all primary teams for call type A. Because any type A call could be routed equally to any of these 5 groups.
PIPKINS’ Merlang forecasting algorithm then calculates the requirements for each and every team based on the call types mapped to each team and their respective call volumes. There may not be a unique solution to this calculation, so it follows that there is no closed form solution (as used by Erlang C). Merlang therefore computes the solution iteratively. The solution arrived at will be an optimum requirement for each team based on the actual groupings (agent skill sets) as defined, the assumption being that primary serving teams are treated evenly for each call type.
4. Skill Set Scheduling
Having arrived at accurate requirements for the switch-wide activities, the next stage in the process is to schedule the available agents, optimally, taking full account of the agents’ skills.
As mentioned earlier, agents with the same skill sets naturally fall into groups, which PIPKINS calls Serving Teams.
The serving team is simply a way of defining the skill set that is recognised by the ACD when the agent logs in. In fact, if an agent had more than one login ID that would present different call types to the agent, then they would, in effect, be eligible for more than one serving team, and could be scheduled accordingly.
It is also worth pointing out that an agent may be considered to be a primary agent for some call types, but a second (or lower) choice for others.
This is illustrated below:
Again, this is achieved by defining the Serving Team to include all primary, secondary, etc. relationships to the Call Types – in the same way that the ACD does. In the above example, Smith and Peters would be in the same team, as they share the same skills. Allen and Clarke would both be in a different team, and so on.
The scheduling process will try to assign agents to their respective teams in such a way as to meet that teams requirements. At the same time, it knows that other teams may share some skills, so are inter-related. Using the Merlang open form algorithm, along with the ‘least sum of squares’ optimisation principle, the scheduler optimises the agents’ schedules to best meet the need. This is an iterative process; the number of iterations required dependent on the complexity of the skill sets and the flexibility of the agents’ rules.
Another method of doing this would be to use simulation techniques. While there is nothing intrinsically wrong with this approach, PIPKINS have found that the number of passes needed to reduce the margin of error, along with the time to arrive at an optimal solution (rather than simply a solution) makes it less effective than using numerical techniques.
5. Network Wide Optimization
It may be the case that there are insufficient agents with the required primary skill necessary to meet the forecast for a particular call type. In this case, the scheduler will look across the other Serving Teams to find any who are second, or later, choices for that call type. By doing this it can make full use of all agents’ skill levels across the whole network.
Call centers vary enormously in complexity. Workforce Management systems need to be designed to handle all levels of complexity in an intelligent and coherent way. Firstly, by being able to accurately represent the manner in which the ACD distributes calls to the agents, and secondly by reflecting the management drivers of efficiency and effectiveness.
Efficiency is obtained through the generation of optimal solutions in a reasonable amount of time.
Effectiveness is provided by the ability to manage both the agent resource and the customer service levels in a practical manner. This must occur at micro and macro levels to suit both tactical and strategic approaches, allowing day-to-day management of the call center and human resource strategy on recruitment or attendance terms.
by: Dennis Cox
Dennis Cox is the managing director of PIPKINS UK, Ltd., the European headquarters for PIPKINS, Inc. Dennis worked for thirteen years as a workforce efficiency manager at BT (formerly British Telecom) before coming to PIPKINS in 1992. One of his main areas of expertise is the effective integration of workforce management tools and human resources. PIPKINS is a supplier of workforce management systems and services to both United States and international call centers. PIPKINS, Inc. is headquartered in St. Louis, Missouri, with its European Headquarters located in Yorkshire, England.
“PIPKINS, Maxima Advantage® is the only Workforce Management system today that has the flexibility to provide the complete skill-set scheduling solution. Skill set capabilities were designed into Maxima Advantage from inception to handle all multi-skilled call center environments.”