HK1206893B - Call mapping systems and methods using variance algorithm (va) and/or distribution compensation - Google Patents
Call mapping systems and methods using variance algorithm (va) and/or distribution compensation Download PDFInfo
- Publication number
- HK1206893B HK1206893B HK15107410.0A HK15107410A HK1206893B HK 1206893 B HK1206893 B HK 1206893B HK 15107410 A HK15107410 A HK 15107410A HK 1206893 B HK1206893 B HK 1206893B
- Authority
- HK
- Hong Kong
- Prior art keywords
- agent
- distribution
- caller
- agents
- callers
- Prior art date
Links
Description
Cross Reference to Related Applications
Priority of U.S. provisional application 61/615,788 filed on 3/26 2012, U.S. provisional application 61/615,779 filed on 3/26 2012, U.S. provisional application 61/615,772 filed on 3/26 2012, and U.S. provisional application 13/843,541 filed on 3/15/2013, the contents of which are incorporated herein by reference in their entirety.
Background
The present invention relates generally to routing telephone calls and other communications in a contact center system.
A typical contact center consists of a plurality of human agents (agents), each assigned a telecommunications device, such as a telephone or a computer for conducting an email session or an internet chat session, connected to a central switch. Using these devices, the agent provides sales, customer service, or technical support to customers or potential customers of the contact center or a customer of the contact center.
Typically, a contact center or customer will advertise to its customers, potential customers or other third parties a number of different contact numbers or addresses for a particular service, such as billing issues or technical support. Customers seeking a particular service, potential customers or third parties then use this contact information, and incoming callers will be routed through one or more routing points to human agents at the contact center, who are able to provide the appropriate service. Contact centers that respond to such incoming contacts are commonly referred to as "incoming contact centers".
Similarly, the contact center may make outgoing contacts to current or potential customers or third parties. Such contacts may be made to promote product sales, provide technical support or billing information, investigate customer preferences, or assist in debts. The contact center making such outbound contact is referred to as the "outbound contact center".
In both incoming and outgoing contact centers, individuals (e.g., customers, potential customers, survey participants, or other third parties) who interact with contact center agents using telecommunications equipment are referred to herein as "callers". Individuals employed in contact centers to interact with callers are referred to herein as "agents".
Typically, contact centers include switching systems that connect callers to agents. In an incoming contact center, these switches route the incoming caller to a particular agent in the contact center, or, in the case where multiple contact centers are deployed, to a particular contact center for further routing. In outbound contact centers using telephony equipment, dialers are often used in addition to the switching system. The dialer is used to automatically dial a telephone number in the telephone number list and determine whether an on-line caller of the called telephone number is connected (as opposed to not answered, busy, error message, or answering machine). When the dialer obtains an online caller, the switching system routes the caller to a particular agent in the contact center.
Accordingly, a variety of routing techniques have been developed to optimize the caller experience. For example, U.S. Pat. No. 7,236,584 describes a telephone system that equalizes caller latency across multiple telephone switches, regardless of whether there may be performance differences between the switches. In an incoming contact center, however, the basic architecture of the contact routing process is to connect the caller to the agent that has the longest idle time. In the case where only one agent is available for the incoming caller, the agent is typically selected to the caller without further analysis. In another example, if the contact center has eight agents, seven of which are in contact, the switch will typically connect the incoming caller to the available agent. If all eight agents are in contact, the switch will keep the contact on hold and then route it to the next agent that becomes empty. More generally, the contact center will establish a queue of incoming callers and preferentially route the oldest caller to an agent that becomes available over time. This mode of routing a contact to the first available agent or the agent with the longest latency is referred to as "polling" the contact route. In the polling contact routing mode, the final match and connection between the caller and agent is substantially random.
Many attempts have been made to improve upon these, albeit standard, but essentially random, procedures for connecting callers to agents. For example, U.S. patent No. 7,209,549 describes a telephone routing system in which the language preferences of incoming callers are collected and used to route their telephone calls to a particular contact center or agent that can be served in that language. In this way, although callers are essentially always routed in a "round robin" fashion once language preferences are collected, language preferences are the primary drivers for matching and connecting callers to agents.
Disclosure of Invention
The invention discloses an implementation mode of a method, which comprises the following steps: obtaining, by one or more computers, agent parameter data for a set of agents; ranking or percentile ranking, by the one or more computers, the agents based at least in part on the agent parameter data to obtain an agent ranking or percentile agent distribution; dividing, by the one or more computers, callers in a set of callers into a plurality of partitions based on one or more criteria; obtaining, by the one or more computers, caller trends for respective partitions; ranking or percentile the callers, by the one or more computers, based at least in part on data related to caller propensity for a desired outcome or predicting caller propensity for a desired outcome based at least in part on the caller propensity data for the respective caller's zone to obtain a caller ranked or percentile distribution of callers; and performing, by the one or more computers, the distribution compensation using at least one algorithm selected from the group consisting of: an edge compensation algorithm applied to at least one selected from the group consisting of a distribution of agent rankings or percentiles and a distribution of caller rankings or percentiles near at least one edge of the respective portion, thereby obtaining an edge compensated ranking or percentile; and a topology modification algorithm applied to one or both of the distribution of agent rankings or percentiles and the distribution of caller rankings or percentiles to change one or more of the distributions to a different topology; and matching, by the one or more computers, a respective one of the agents having the respective ranking or percentile with a respective one of the callers in one of the partitions, the respective one of the agents and the respective one of the callers having a closest ranking or percentile, wherein at least one of the caller ranking or percentile and the agent ranking or percentile receives distribution compensation.
In an embodiment, performing the distribution compensation step uses the edge compensation algorithm and provides edge compensation only for agent rankings or percentiles.
In an embodiment, performing the distribution compensation step uses the edge compensation algorithm and provides edge compensation only for caller rankings or percentiles.
In an embodiment, performing the distribution compensation step uses the edge compensation algorithm and provides edge compensation for agent rankings or percentiles and caller rankings or percentiles.
In an embodiment, the distribution compensation step uses the edge compensation algorithm and takes the runtime idle agents and readjusts the individual agent rankings or percentiles for the runtime idle agents, thereby providing more space/white space at the edge of the agent distribution.
In an embodiment, the amount of white space is based at least in part on a number of agents that are free at runtime.
In an embodiment, the distribution compensation step uses the edge compensation algorithm and takes callers in a queue or other grouping at runtime and re-adjusts individual caller propensity rankings or percentiles to provide more space/white space at the edges of the distribution.
In an embodiment, the amount of white space is based at least in part on a number of callers in a queue or other grouping at runtime.
In an embodiment, the distribution compensation step uses the edge compensation algorithm to weight a plurality of agents that are free at runtime near at least one edge of the agent distribution and to weight a plurality of callers near at least one edge of the caller distribution, thereby increasing utilization of agents near at least one edge of the agent distribution.
In an embodiment, the distribution compensation step uses the edge compensation algorithm to weight a number of agents that are free at runtime near both edges of the agent distribution or to weight a number of callers near both edges of the caller distribution.
In an embodiment, the partition of callers is based at least in part on one or more selected from the group consisting of demographic data, area code, zip code, NPANXX, VTN, geographic area, 800 number, and transfer number.
In an embodiment, the agent performance data may include a selection from sales, number of items sold per phone, and revenue per phone combined with processing time.
In an embodiment, the topology modification algorithm is used and may convert the distribution of agent performances and/or the distribution of callers to a loop topology.
In an embodiment, the topology modification algorithm is used and may transform the distribution of agent performances and the distribution of callers, thereby removing the edges of the distribution.
In an embodiment, when multiple agents are available and there is only one caller, Kappa for the agent distribution may be greater than 1.0.
In embodiments, when there are multiple callers and only one agent, Rho applied to the caller may be greater than 1.0.
The invention discloses an implementation mode of a system, which comprises: one or more computers configured with program code that, when executed, causes the following steps to be performed: obtaining, by one or more computers, agent parameter data for a set of agents; ranking or percentile ranking, by the one or more computers, the agents based at least in part on the agent parameter data to obtain an agent ranking or percentile agent distribution; dividing, by the one or more computers, callers in a set of callers into a plurality of partitions based on one or more criteria; obtaining, by the one or more computers, caller trends for respective partitions; ranking or percentile the callers, by the one or more computers, based at least in part on data related to caller propensity for a desired outcome or predicting caller propensity for a desired outcome based at least in part on the caller propensity data for the respective caller's zone to obtain a caller ranked or percentile distribution of callers; and performing, by the one or more computers, the distribution compensation using at least one algorithm selected from the group consisting of: an edge compensation algorithm applied to at least one selected from the group consisting of a distribution of agent rankings or percentiles and a distribution of caller rankings or percentiles near at least one edge of the respective portion, thereby obtaining an edge compensated ranking or percentile; and a topology modification algorithm applied to one or both of the distribution of agent rankings or percentiles and the distribution of caller rankings or percentiles to change one or more of the distributions to a different topology; and matching, by the one or more computers, a respective one of the agents having the respective ranking or percentile with a respective one of the callers in one of the partitions, the respective one of the agents and the respective one of the callers having a closest ranking or percentile, wherein at least one of the caller ranking or percentile and the agent ranking or percentile receives distribution compensation.
In an embodiment, there is provided a program product comprising: a non-transitory computer readable medium configured with computer readable program code that, when executed, causes the following steps to be performed: obtaining, by one or more computers, agent parameter data for a set of agents; ranking or percentile ranking, by the one or more computers, the agents based at least in part on the agent parameter data to obtain an agent ranking or percentile agent distribution; dividing, by the one or more computers, callers in a set of callers into a plurality of partitions based on one or more criteria; obtaining, by the one or more computers, caller trends for respective partitions; ranking or percentile the callers, by the one or more computers, based at least in part on data related to caller propensity for a desired outcome or predicting caller propensity for a desired outcome based at least in part on the caller propensity data for the respective caller's zone to obtain a caller ranked or percentile distribution of callers; and performing, by the one or more computers, the distribution compensation using at least one algorithm selected from the group consisting of: an edge compensation algorithm applied to at least one selected from the group consisting of a distribution of agent rankings or percentiles and a distribution of caller rankings or percentiles near at least one edge of the respective portion, thereby obtaining an edge compensated ranking or percentile; and a topology modification algorithm applied to one or both of the distribution of agent rankings or percentiles and the distribution of caller rankings or percentiles to change one or more of the distributions to a different topology; and matching, by the one or more computers, a respective one of the agents having the respective ranking or percentile with a respective one of the callers in one of the partitions, the respective one of the agents and the respective one of the callers having a closest ranking or percentile, wherein at least one of the caller ranking or percentile and the agent ranking or percentile receives distribution compensation.
The exemplary method may also include, or be implemented by, a pattern matching algorithm. For example, the pattern matching algorithm may use agent and/or caller demographics to predict the chance of one or more outcome variables based on historical agent-caller pairings. The comparison by the pattern matching algorithm may be combined with the matching by corresponding agent performance and caller propensity to determine caller-agent matches and routing decisions.
The agent data may include agent ratings or rankings, agent history data, agent demographics, agent psychographics, and other business related data about the agent (referred to individually or collectively herein as "agent data"). Agent and caller demographic data may include any of the following: gender, race, age, education level, accent, income, nationality, ethnic source, area code, zip code, marital status, job status, and credit score. Agent and caller psychometric data may include any of the following: introvert, sociality, craving for economic success, and movie and television preferences. It is further noted that certain data, such as area codes, may provide statistics related to the caller's likely income level, education level, ethnic source, territory, etc., which may be used by exemplary methods to determine-for example-the caller's propensity for a particular outcome variable.
These embodiments may be widely applied to different methods of matching callers and agents. For example, exemplary methods or models may include traditional queue routing, performance-based matching (e.g., ranking a plurality of agents based on performance, and preferably matching callers to agents based on performance ranking or score), adaptive pattern matching algorithms or computer models for matching callers and agents (e.g., comparing caller data related to callers and agent data related to a set of agents), affinity (affinity) data matching, combinations thereof, and the like. Thus, the method may output a score or ranking of callers, agents, and/or caller-agent pairs to perform a desired optimization of the outcome variables (e.g., optimization cost, revenue, customer satisfaction, etc.). In one embodiment, different models may be used to match callers and agents and combined with an exemplary multiplier method in some manner, e.g., linearly weighted and combined for different performance result variables (e.g., cost, revenue, customer satisfaction, etc.).
According to another aspect, the present invention provides computer-readable storage media and apparatus to map and route callers to agents according to the various methods described herein. Many of the techniques described herein may be implemented in hardware, firmware, software, or a combination thereof. In one embodiment, the techniques are implemented in computer programs executing on a plurality of programmable computers each comprising a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), and suitable input and output devices. Program code is applied to data entered using the input device to perform the functions described herein and to generate output information. The output information is applied to one or more output devices. In addition, each program is preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, programs may be implemented in component or machine language, if desired. In any case, the language may be a compiled or interpreted language.
Drawings
Figure 1 reflects the general structure of a contact center and its operation.
Fig. 2 shows an exemplary routing system having a routing engine that routes callers based on performance and/or pattern matching algorithms.
Fig. 3 shows an exemplary routing system having a mapping engine that matches callers to agents based on a probability multiplier method or a combination of the probability multiplier method and one or more additional matching methods.
Fig. 4A and 4B show an exemplary probabilistic matching method and a random matching method, respectively.
Fig. 5A and 5B show an exemplary probabilistic matching method of matching a caller to an agent.
Fig. 6A and 6B show three-dimensional plots of agent performance, customer propensity, and sales probability for a particular caller-agent pair.
FIG. 7 shows an exemplary probabilistic matching method or computer model for matching a caller to an agent based on the probability of a result variable.
FIG. 8 shows an exemplary probabilistic matching method or computer model for matching a caller to an agent based on the probability of a result variable.
FIG. 9 shows an exemplary probabilistic matching method or computer model for matching a caller to an agent based on the probability of a result variable.
FIG. 10 illustrates a typical computing system that may be used to implement some or all of the processing functionality in some embodiments of the invention.
FIG. 11 shows an exemplary probabilistic matching method or computer model for matching callers to agents using a variance algorithm.
Fig. 12 shows an exemplary probabilistic matching method or computer model for matching a caller to an agent using distribution compensation.
Fig. 13 shows an exemplary graph of agent utilization, where n agents are 100, mu is 20, Kappa is 1, and no edge correction is performed.
Fig. 14 shows an exemplary graph of agent utilization, where n agents are 100, mu is 20, and Kappa is 1, with topological edge correction (alternating circle method).
Fig. 15 shows an exemplary graph of agent utilization, where n agents are 100, mu is 20, and Kappa is 1, with edge correction by the adaptive offset method.
Fig. 16 shows an exemplary graph of agent utilization, where n agents are 100, mu is 10, Kappa is 1, edge corrected by the static offset method v 5.
Fig. 17 shows an exemplary graph of agent utilization, where n agents are 100, mu is 20, Kappa is 1, edge corrected by the static offset method v6.
Fig. 18 shows an exemplary graph of agent utilization, where n agents are 100, mu 40, Kappa 1, edge corrected by the static offset method v6.
Fig. 19 shows an exemplary graph of agent utilization, where n agents are 100, mu is 10, and Kappa is 1.4, edge corrected by the adaptive offset method.
Fig. 20 shows an exemplary graph of agent utilization, where n agents are 100, mu is 10, Kappa is 1.4, and no edge correction is performed.
Fig. 21 shows an exemplary graph of agent utilization, where n agents are 100, mu is 10, and Kappa is 1.4, edge corrected by the static offset method v 5.
Fig. 22 shows an exemplary graph of agent utilization, where n agents are 100, mu is 10, and Kappa is 1.4, edge corrected by the static offset method v6.
Fig. 23 shows an exemplary graph of agent utilization, where n agents are 100, mu is 10, and Kappa is 1.4, edge corrected by the alternating circle method.
FIG. 24 is an exemplary chart showing the time effect of average revenue per call per day for a week of January.
FIG. 25 is an exemplary chart showing the time effect of average revenue per call per day of the week.
FIG. 26 is an exemplary graph showing the time effect of average revenue per call per day.
FIG. 27 is an exemplary graph showing normalized probability spectral density for frequency.
Detailed Description
Exemplary call mapping and routing systems and methods-for example-U.S. patent application No. 12/267,471 entitled "time effect data based" filed on 11/7/2008, U.S. patent application No. 12/490,949 entitled "probability multiplier method for call center routing" filed on 6/24/2009, U.S. patent application No. 12/266,418 entitled "caller matching to a seat based on pattern matching algorithm aggregation", U.S. application No. 12/267,471 filed on 28/1/2010, and provisional application No. 61/084,201 filed on 28/7/2008, which are all incorporated herein by reference.
The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Furthermore, in the following description, for purposes of explanation, numerous details are set forth. However, it will be recognized by one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order not to obscure the description of the invention with unnecessary detail. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
Although the present invention has been described in terms of particular embodiments and figures, those skilled in the art will appreciate that the present invention is not limited to these embodiments or figures. Those skilled in the art will appreciate that the operations of the various embodiments may be implemented using hardware, software, firmware, or a combination thereof, as appropriate. For example, some methods may be performed using a processor or other digital circuitry controlled by software, firmware, or hard-wired logic. (the term "logic" is used herein to refer to fixed hardware, programmable logic and/or suitable combinations thereof for use by those skilled in the art to perform the functions described above.) software and firmware can be stored on a computer-readable storage medium. Other methods may be implemented using analog circuitry known to those skilled in the art. In addition, memory or other storage, as well as communication components, may be used in embodiments of the present invention.
According to certain aspects of the present invention, systems and methods are provided for matching callers to agents based on similar rankings or relative probabilities for desired outcome variables. In one embodiment, an exemplary probabilistic multiplier method includes matching a best agent to a best caller and a worst agent to a worst caller based on the probability of a desired outcome variable. For example, agents may be scored or ranked based on performance with respect to result variables (e.g., sales, customer satisfaction, cost, etc.). Further, callers may be scored or ranked based on outcome variables, such as trends or purchase statistical opportunities (which may be based on available caller data, such as telephone number, area code, zip code, demographic data, type of phone used, historical data, etc.). The callers and agents are then matched according to respective rankings or percentile rankings, e.g., the highest ranked agent matches the highest ranked caller, the second highest ranked agent matches the second highest ranked caller, etc.
The exemplary probability multiplier method utilizes an inherent geometric relationship of multiplying different probabilities, e.g., matching an agent with a sales rate of 30% with a customer with a purchase rate of 30% for a total chance of 9%, and matching an agent with a sales rate of 20% or 10% with the same customer for a total chance of 6% or 3%. When the method is used for all agents and callers, the overall prediction opportunity for a particular outcome variable, e.g., sales, is higher than for the random matching method.
In one embodiment, in addition to using the relative ranking of agents and callers to match callers and agents, a pattern matching algorithm may be used that uses agents and/or caller demographic data. For example, agents and callers may be matched based on demographic data by a pattern matching algorithm, e.g., an adaptive correlation algorithm. The caller-agent pairs derived from the probability multiplier method and the pattern matching algorithm may be combined, e.g., linearly, with or without weighting, to determine a final pair to route the caller to the agent.
Initially, an exemplary call routing system and method was described for matching callers to available agents. Exemplary systems and methods for ranking or ordering callers and agents based on result variables, e.g., sales, customer satisfaction, etc., and matching agents to callers based on relative rankings are described next. For example, the highest ranked agent for a particular result variable is matched to the highest ranked caller for the particular result variable, the lowest ranked agent is matched to the lowest ranked caller, and so on.
Figure 1 reflects the general structure of a typical contact center operation 100. Network cloud 101 reflects a specific or regional telecommunications network designed to receive incoming callers or to support contacts with outgoing callers. The network cloud 101 may include a single contact address, such as a phone number or an email address, or multiple contact addresses. Central router 102 reflects contact routing hardware and software designed to assist in routing contacts between call centers 103. In the case where only a single contact center is deployed, the central router 102 may not be needed. Where multiple contact centers are deployed, more routers may be needed to route a contact to another router of a particular contact center 103. At the contact center 103 level, the contact center router 104 will route the contact to an agent 105, the agent 105 having a personal telephone or other telecommunications device 105. Typically, there are multiple agents 105 in the contact center 103.
Fig. 2 shows an exemplary contact center routing system 200 (which may be included in the contact center router 104 shown in fig. 1). Generally, routing system 200 may be used to match callers and agents based at least in part on a probabilistic multiplier approach based on agent performance and caller propensity (e.g., statistical chance or likelihood) for a particular outcome variable. The routing system 200 may also be used to match callers and agents based on a pattern matching algorithm that uses caller data and/or agent data alone, or a combination of a pattern matching algorithm and a probability multiplier method. Routing system 200 may include a communication server 200 and a routing engine 204 for receiving and matching callers to agents (sometimes referred to as "mapping" callers to agents).
In one embodiment, as described in detail below, routing engine 204 may be used to retrieve or determine performance data for available agents and to retrieve or determine caller trends for result variables from waiting callers. The performance data and caller propensity data may each be converted to a percentile ranking and used to match callers to agents based on the closest match of the percentile ranking, respectively, thereby resulting in, for example, a high performance agent matching a caller with a high propensity to purchase.
Furthermore, in some embodiments, routing engine 204 may also include pattern matching algorithms and/or computer models that may adapt over time based on performance or results of earlier caller-agent matches. Additional pattern matching algorithms may be combined with the probability multiplier method in various ways to determine routing decisions. In one embodiment, the pattern matching algorithm may comprise a neural network based adaptive pattern matching engine known in the art, for example, the resilient back propagation (RProp) algorithm described by m.riedemaller, h.braun: "direct adaptive method for faster back propagation learning: PROP Algorithm ", IEEE 1993, the disclosure of which is incorporated herein by reference in its entirety. Various other exemplary agent performance and pattern matching algorithms and computer model systems and methods that may be included in the contact routing system and/or routing engine 204 have been disclosed, for example, in U.S. 12/021,251 application serial No. 2008 filed on 28/1 and U.S. 12/202,091 application serial No. 2008 filed on 29/8, both of which are incorporated herein by reference in their entirety. Of course, it should be recognized that other performance-based or pattern matching algorithms and methods may be used alone or in combination with those described above.
Routing system 200 also includes other components, such as a collector 206 for caller data for incoming callers on a cell phone, data regarding caller-agent pairs, results of caller-agent pairs, agent data for agents, historical performance data for agents, and the like. Additionally, routing system 200 may also include a reporting engine 208 for generating performance and operational reports for routing system 200. The routing system 200 may also include various other servers, components, and functions. Further, although shown as a single hardware device, it is understood that the various components may be located remotely from each other (e.g., communication server 202 and routing engine 204 need not be included in a common hardware/server system, or included in a common location). In addition, the routing system 200 may also include various other components and functions, but these other components and functions are omitted here for clarity.
Fig. 3 shows further details of an exemplary routing engine 204. The routing engine 204 includes a primary mapping engine 304, and one or more of the primary mapping engines 304 may include one or more mapping engines used alone or in combination with other mapping engines. In some embodiments, routing engine 204 may route callers solely, or in part, based on performance data associated with the agent and caller data associated with trends or opportunities for a particular outcome variable. In other embodiments, the routing engine 204 may also make routing decisions based solely, or in part, on comparisons of various agent data and caller data, which may include, for example, performance-based data, demographic data, psychographic data, phone type/phone number, BTN-data, and other business related data. In addition, an affinity database (not shown) may be used, and such information may be received by routing engine 204 and/or mapping engine 304 to make or influence routing decisions. The database 312 may include a local or remote database, a third party service, etc. (further, the mapping engine 304 may receive agent data from the database 314 if the agent data may apply to a particular mapping method).
In one embodiment, relative agent performance may be determined by ranking or scoring the agent set based on performance for a particular outcome variable (e.g., revenue generation, cost, customer satisfaction, combinations thereof, and the like). Further, the relative agent performance may be converted to a relative percentile ranking. For example, processing engine 320-1 may determine or receive relative agent performance data for one or more result variables. Further, processing engine 320-1 may receive or determine caller trends for particular outcome variables (e.g., purchasing trends, call duration, satisfaction, or combinations thereof, etc.). Caller propensity may be determined from available caller data. Next, the relative performance data of the agents and the trend data of the callers may be used to match the callers and the agents based on the respective rankings. In some embodiments, the performance data and propensity data are converted to relative percentile rankings of callers and agents and the callers and agents are matched based on the closest respective relative percentiles.
In one embodiment, processing engine 320-2 includes one or more pattern matching algorithms operable to compare available caller data with agent data associated with a set of agents and determine a suitability score for each caller-agent pair. For example, processing engine 320-2 may receive caller data and agent data from various databases (e.g., 312 and 314) and output a caller-agent pair score or a caller-agent pair ranking. The pattern matching algorithm may include a correlation algorithm, such as a neural network algorithm, a genetic algorithm, or other adaptive algorithm.
Further, the processing engine may include one or more affinity matching algorithms operable to receive affinity data related to the caller and/or agent. Affinity data and/or affinity matching algorithms can be used alone or in combination with other methods or models discussed herein.
Routing engine 204 may also include selection logic (not shown) for selecting and/or weighting one or more of the plurality of processing engines 320-1 and 320-2 to map callers to agents. For example, the selection logic may include rules for determining the type and amount of caller data that is known or available and selecting the appropriate processing engine 320-1, 320-2, etc., or combinations thereof. The selection logic may be included in whole or in part in the routing engine 204, the mapping engine 304, or remotely from the routing engine 204 and the mapping engine 304.
Further, as shown in step 350 of FIG. 3, call history data (including, for example, caller-agent pair data and results relative to cost, revenue, customer satisfaction, etc.) may be used to retrain or modify the processing engines 320-1, 320-2. For example, agent performance data may be updated periodically (e.g., daily) based on historical results, thereby re-ranking agents. Further, historical information about the caller may be used to update information about the caller's propensity for a particular outcome variable.
In some embodiments, routing engine 204 or home mapping engine 304 may also include a traditional queue based routing program that may store or access waiting or idle times for callers and agents and may be used to map callers to agents based on the waiting or queue order of callers (and/or agents). In addition, various functions or time limits may be applied to the waiting caller to ensure that the waiting time for the caller to wait for the agent is not too long. For example, if the caller's time limit is exceeded (which is based on a predetermined value or function associated with the caller), the caller can be routed to the next available agent.
In addition, an interface may be provided for a user to allow for adjustment of various aspects of the exemplary system and method, for example, the number, degree, and type of caller data of the different models can be adjusted. Further, the interface may allow for adjustment of particular models for different degrees or types, e.g., adjusting optimization or weighting of particular models, changing models for particular degrees or types of caller data, etc. The interface may include sliders or selectors for adjusting the different factors in real time or at predetermined times. In addition, the interface may also allow the user to turn certain methods on or off, and may display the desired effect of the change. For example, the interface may display possible changes in one or more of cost, revenue generation, or customer satisfaction caused by changing some aspects of the routing system. For example, copending U.S. provisional application No. 611084,201, filed on 28.7.2008, describes various estimation methods and algorithms for estimating a result variable, which is incorporated herein by reference in its entirety. In one embodiment, the evaluation includes evaluating the past period of time for the same (or similar) agent set and constructing a distribution of agent/caller pairs. A desired success rate is calculated by performance-based matching, pattern matching algorithms, or the like, and applied to the current information to estimate the current performance (e.g., relative to sales, cost, customer satisfaction, etc.). Thus, with the historical call data and agent information, the system can calculate an estimate of the balance or weight change of the processing method. It is noted that comparable times (e.g., a time of day, a day of the week, etc.) may be important for historical information, as performance may change over time.
Fig. 4A schematically shows an exemplary probability multiplier method for matching callers and agents, and fig. 4B shows a random matching method (e.g., which is queue based, etc.). These embodiments assume that there are five agents and five callers that need to be matched. The agents are ranked based on performance for the desired result variable. For example, the seating may be scored or ranked based on statistical opportunities to complete sales based on historical sales rate data. Further, callers may be scored or ranked based on desired outcome variables, such as based on a propensity or likelihood of purchasing a product or service. Callers may be scored or ranked based on caller data that is known, or available, including, for example, demographic data, zip code, area code, type of phone used, etc., which is used to determine statistical or historical opportunities for the caller to make a purchase.
Next, agents and callers are matched based on ranking, with the highest ranked agent matching the highest ranked caller, the second highest ranked agent matching the second highest ranked caller, and so on. Best-best and worst-worst matches can increase the product of matching pairs compared to randomly matching callers and agents as shown in fig. 4B. For example, using the sales rate of agents A1-A5 (e.g., based on past agent performance) and the opportunity for callers C1-C5 to make purchases (e.g., based on caller data, such as demographic data, caller data, etc.), the matching results shown in FIG. 4A are:
(0.09*0.21)+(0.07*0.12)+(0.06*0.04)+(0.05*0.03)+(0.02*0.02)0.0316
in contrast, for the random matching shown in FIG. 4B using the same percentage, the results are as follows:
(0.09*0.12)+(0.07*0.02)+(0.06*0.21)+(0.05*0.03)+(0.02*0.04)0.0271
thus, matching the highest ranked agent with the highest ranked caller and matching the worst ranked agent with the worst ranked caller can increase the overall result, thereby increasing the chance of optimizing the desired result variables (e.g., sales).
Fig. 5A schematically shows an exemplary method for matching a waiting caller and an agent that becomes available. In this embodiment, all agents A1-A5 of the current class or all agents within a reasonable waiting time of callers C1-C5 are scored or ranked as previously described. In addition, callers C1-C5 were also scored or ranked as previously described. As an agent, for example, agent a2 becomes available, the method determines that caller C2 is ranked the same as (or similar to) agent a2, matching caller C2 to agent a 2. The remaining waiting callers are then re-ranked to match when the next agent becomes empty. Furthermore, since new callers are kept watch, callers can be re-ranked in a real-time manner. The exemplary method operates similarly for multiple agents that are available and callers that become available (both to the incoming call center and the outgoing call center).
It can be appreciated that in most cases, the number of agents and the number of callers are not equal. Thus, callers (and/or agents) can be ranked and converted to a relative percentile ranking of callers, e.g., a normalized ranking, or the highest ranked callers ranked 100 th percentile and the lowest ranked callers ranked 0 th percentile, as well as agents that can be converted to a relative percentile ranking. When an agent becomes empty, the agent may be matched to the caller whose relative percentile rank is closest to the agent's relative percentile rank. In other embodiments, when an agent becomes empty, the agent can be compared to the ranking of at least a portion of the callers being watched, thereby calculating a Z-score for each agent-caller pair. The highest Z-score may correspond to the smallest difference in relative percentile ranking. Further, it is noted that the Z-score may be used to combine matching with other algorithms that may also output a Z-score, such as a pattern matching algorithm.
Fig. 5B schematically shows an exemplary method for matching callers and agents when the agents become available while multiple callers are waiting. In this embodiment, callers (in some embodiments, agents) are grouped according to a subset of the performance. For example, a series of caller performances is divided into a plurality of subgroups, with callers distributed in each group. As shown, the first 20% of callers may be grouped as C1 according to performance1-C1NThe following 20% follows, and so on. When an agent becomes empty, e.g., A2, callers from the appropriate subgroup, which in this embodiment is C2, are matched to callers1-C2N. The callers in the subgroup may be selected according to queue order, best match, pattern matching algorithm, etc. For example, an appropriate subset from which callers will be routed may be determined based on agent rankings or scores.
In one embodiment, assume that call center performance for the result variable O is required. O may include one or more of sales rate, customer satisfaction, first call resolution, or other variables. Further assume that N is sometimes registeredAEach agent has N in the queuecAnd (4) a caller. Assume agent is generating O-wise tableNow, the method comprises the following steps:
the caller's tendency to O, divided according to some attributes P, is:
for example, in the case where O is the sales rate and P is the caller area code, AOIs the sales rate of each agent, COIs the sales rate for callers with a particular area code. Percentile ranked agent performance (relative to the set of agents logged in) and percentile ranked caller propensity (relative to the set of callers queued at a certain time in the queue) are calculated according to the following formulas:
where pr (a, B) is a percentile ranking function that returns a ranking of the value a relative to the set of values B, ranging from [0,100 ].
Assume that all agents are talking when the kth agent becomes available. Then, to determine which caller in the queue is connected to an agent, the difference between the percentile ranking of the k-th agent that is most recently empty and the percentile ranking of callers in the queue is calculated:
is a set { DJThe indexed value j derives which one of the queues is to be connected to the kth agent. Can also be derived from DjThe Z-score is derived. This has the advantage that the highest valued agent-caller pair is the best match for the set, and the result of this algorithm can be combined with the Z-score output of the other algorithms because they are in the same proportion.
Zj=(Tj-μ)/σ
Where μ and σ and the mean standard deviation T are given by the following equation:
Tj=Min(Dj)-Dj
those skilled in the art will recognize that the embodiments and algorithms described above for the two variable case are not limited to the two variable case, but can be extended in an obvious manner to more than two variable cases that are monotonically related to the desired result. Further, those skilled in the art will understand and appreciate that the boost exhibited by the call center may be displayed as a boost with more variables.
FIG. 6A shows an exemplary three-dimensional graph with agent performance on the x-axis, caller propensity on the y-axis, and sales probability on the z-axis. In this embodiment, agent performance and caller propensity are defined as linear functions of x and y. For example, without loss of generality, x [0,1] and y [0,1], whereby an agent behaves as:
a=ca+ma x
where "ca" and "ma" represent the intercept and slope of the linear function of the agent performance (note that in some instances, multiple letters may represent the same variable, e.g., "ca" and "ma are each a single variable and are offset by other letters to indicate a multiplier). "also, for caller propensity:
c=cc+mc y
where "cc" and "mc" represent the intercept and slope of the caller-propensity linear function. "the sales multiplication model probabilities for products a and c are:
p=a c
the average height of the surface of the sales probability for product a (shown as 600 in FIG. 6A) can be calculated as follows:
the average height of the diagonal of the surface height "pdiag" (single variable) is determined according to the following formula, corresponding to multiplying the similarly percentiles ranked agents and callers:
where λ parameterizes the diagonal function, enabling line integration.
The increase b or potential increase in performance or sales rate achieved from probability matching by corresponding ratio, as shown by the diagonal shaded band on surface 600, may be calculated according to the following formula:
where the theoretical maximum increase for matching by probability is 1/3 for the embodiment shown. Thus, matching callers to agents located on or near the diagonal shadow band 602 may increase sales probability.
Fig. 6B shows an exemplary analysis and chart of normal distribution of callers and agents for agent performance and caller propensity (versus a uniform distribution of performance). Assuming that the agent performance and caller propensity definitions are the same, a two-dimensional gaussian function can be used to represent the call frequency distribution for the agent performance and caller propensity:
sales rates can then be expressed using functions of a and c, where A and σ give the magnitude and standard deviation, respectively, of the Gaussian component. Assuming that the center of the gaussian function is located at {0.5,0.5}, the probability can be written as:
the diagonal sales rate d can then be determined directly from the sales rates:
the results are combined over [0,1] with respect to x, resulting in a sales rate for call agent pairs that occur diagonally:
calculating the sales rate of the random customer agent pair according to the following formula:
the expansion is as follows:
the growth of the algorithm is calculated according to the following formula:
normalboost[ca_,ma_,cc_,mc_,σ_,A_]=diagintegral[ca,ma,cc,mc,σ,A]/totalsalesrate[ca,ma,cc,mc,σ,A]-1
the final sales growth is:
thus, matching callers to agents located on or near the diagonally shaded band 602 may increase the probability of sales, similar to the normal distribution shown in fig. 6A. Of course, it is to be understood that the exemplary functions, assumptions, and distribution of caller performance and agent trends are illustrative and will vary based on, for example, historical data, feedback, and the like. Furthermore, additional considerations and variables may be incorporated into the general procedure. It should also be noted that when sales are mentioned as variables to be optimized in the above embodiments, the same procedure can be applied to all other variables to be optimized or combinations thereof, such as call processing time (e.g., cost), or first call resolution, etc.
To the extent that some of the foregoing equations differ from the 12/490,949 patent application, the equation in the 12/490,949 patent application is the correct equation and is preferred. Fig. 7 shows an exemplary method of applying matching of callers to agents in a call routing center. In this embodiment, the agents are ranked at step 702 based on performance characteristics that are related to a result variable, such as sales or customer satisfaction. In some embodiments, agent performance may be determined from historical data over a period of time. In other embodiments, the method may simply retrieve or accept agent performance data or agent rankings.
In one embodiment, the seating is ranked according to optimal interaction, such as increasing revenue, decreasing cost, or increasing customer satisfaction. Ranking can be achieved by checking the ability of the call center agents to achieve optimal interaction over a period of time, e.g., at least 10 days. However, the time limit is as short as the last contact just made or as long as the agent's first interaction with the caller. In addition, the method of classifying the agents can be very simple, each agent is classified according to the ratio 1 to N for a specific optimal interaction, where N is the total number of agents. The ranking method may also include determining an average contact processing time for each agent to rank agents according to cost, determining a total sales revenue or number of sales realized by each agent to rank agents according to sales, or conducting a customer survey to rank agents according to customer satisfaction after the agents finish contacting with the caller. However, the above are just some examples of how to perform agent ranking, and many other methods may be used.
At step 704, the callers are ranked or scored based on a result variable, which is based on the caller data. Callers may be ranked or scored based on predicted opportunities for particular outcomes based on known or available caller data. The amount and type of caller data for each caller may be different from one caller to another, but can be used to determine statistical opportunities for specific outcomes based on historical outcomes. For example, the only data known to the caller may be the area code, which is associated with a particular propensity or purchase based on past interaction with the caller from the particular area code. In some embodiments, there may be no caller-related data, in which case an average trend or statistical chance for a particular outcome without known data may be used.
The callers and agents are then matched based on their respective rankings at step 706. For example, as previously described, a better agent is matched to a better caller, and so on. Further, in the event that the number of callers and agents is unbalanced, the ranking of callers or agents, or both, may be adjusted or normalized to route callers and agents based on the closest match. For example, the ranking of the agents may be divided by the number of agents, and similarly for callers, the caller is matched to an agent based on the closest match (or within a certain range). The method may next route the caller to an agent or cause routing of the caller to an agent at step 708. In other embodiments, the method may pass the match to other devices or methods, which may use the match in other methods or use it to weight other routing methods.
Fig. 8 shows another exemplary method of applying matching of callers to agents in a call routing center. In this embodiment, the agents are ranked based on performance characteristics, which are related to a result variable, such as sales or customer satisfaction, and the ranking is converted to a percentile ranking, step 702. For example, an agent's original performance value may be converted to a relative percentile ranking, e.g., a sales rate of 9% may be converted to a performance ranking of 85%. In other embodiments, the raw performance value may be converted to a normalized score or Z-score.
At step 804, the callers are ranked or scored based on a result variable that is based on the caller data, and the ranking is converted to a relative percentile ranking. Similar to an agent, an agent's original predicted value may be converted to a percentile ranking, e.g., a buying tendency or likelihood of 2% may be converted to a percentile ranking of 92%. In other embodiments, the raw values may be converted to normalized scores or Z-scores.
At step 806, the callers and agents are next matched based on their respective relative rankings. For example, the relative percentile ranking of the callers, which are matched to the nearest agents that are empty, may be compared to the relative percentile ranking of the agents. In embodiments where an agent becomes available while multiple callers are waiting, the agent may be matched to the closest matching caller. In other embodiments, the caller may wait a predetermined time, wait for the best matching agent to become available, and then match and route to the closest matching agent.
It can be appreciated that various other methods of ranking callers and agents and matching callers to agents based on the respective rankings are contemplated. For example, in general, the exemplary method can route higher ranked callers to higher ranked agents and lower ranked callers to lower ranked agents.
Fig. 9 shows another exemplary method of matching callers to agents in a call routing center based on a probabilistic multiplier method and a pattern matching algorithm. The method includes determining the relative agent performance of the agent set for the result variable at step 902 and determining the relative caller propensity of the caller set for the result variable at step 904. The relative agent performance and relative caller propensity may be further normalized and converted to a relative percentile ranking in step 906.
At step 908, some or all of the available agent data and caller data may pass through a pattern matching algorithm. In one embodiment, the pattern matching algorithm comprises an adaptive pattern matching algorithm, such as a neural network algorithm trained based on previous caller-agent pairing results.
The matching algorithm may include comparing demographic data related to the callers and/or agents of each caller-agent pair and calculating a caller-agent pair suitability score or ranking for the desired result variable (or weighting of the result variable). Further, a Z-score may be determined for each caller-agent pair and outcome variable, for example, co-pending U.S. patent application No. 12/202,091, filed 8/29, 2009, which is incorporated herein by reference in its entirety, describes an exemplary method for calculating a Z-score for a caller-agent pair.
Exemplary pattern matching algorithms and computer models may include correlation algorithms, such as neural network algorithms or genetic algorithms. In one embodiment, the elastic back propagation (RProp) algorithm described by m.riedemaller, h.braun may be used: "direct adaptive method for faster back propagation learning: the RPROP algorithm "_ 1993 journal of the neural network IEEE international conference, which is hereby incorporated by reference in its entirety. To train or optimize the algorithm in general, the actual contact results (measured for optimal interaction) are compared to the actual agent and caller data for each contact that has occurred. The pattern matching algorithm may then learn or improve the chances of learning how the matching of a certain caller and a certain agent changes the optimal interaction. In this way, the pattern matching algorithm may then be used to predict the chance of optimal interaction when matching callers with a particular caller data set and agents with particular agent data. Preferably, the pattern matching algorithm is optimized periodically as more caller interaction actual data becomes available, e.g., the algorithm is trained periodically every night after the contact center completes a daily run.
A pattern matching algorithm may be used to create a computer model that reflects the predicted opportunity for optimal interaction for each agent and caller match. For example, the computer model may include a predicted opportunity for each agent to log into the contact center to match the optimal set of interactions with each available caller. Alternatively, the computer model may include a subset of these, or a set of the aforementioned sets. For example, rather than matching each agent logged into the contact center with each available caller, the example methods and systems may match each available agent with each available caller, even a narrower set of agents or callers. The computer model may be further optimized to include a suitability score for each match of agent and caller.
In other embodiments, the exemplary model or method may utilize affinity data associated with callers and/or agents. For example, affinity data may include contact results for individual callers (referred to herein as "caller affinity data") that are independent of the caller's demographics, psychographics, or other business-related information. The caller affinity data may include a purchase history, contact time history, or customer satisfaction history of the caller. These histories may be general, such as a general history of a caller purchasing a product, an average contact time with an agent, or an average customer satisfaction rating. These histories may also be agent specific, such as purchases by callers connecting to a particular agent, contact time, or customer satisfaction histories.
For example, an agent may be identified by their caller affinity data as a person highly likely to make a purchase because the caller has chosen to purchase a product or service in the past several times the caller was contacted. The purchase history can then be optimized for matching as appropriate so that the caller preferentially matches the agents appropriate for the caller to increase the chance of optimal interaction. With this embodiment, the contact center may preferentially match the caller with agents that do not have a high revenue generating rating, or are not acceptably matched agents, because there is still a potential for sale in view of the caller's past purchasing behavior. The matching strategy will leave other agents available that should have contact interaction with the caller. Alternatively, the contact center may seek to ensure that callers match to agents with high revenue generating ratings regardless of the results that the pairing produces using caller data and agent demographic or psychographic data.
In one embodiment, the caller's contact results are tracked across different agent data in the affinity data and affinity database developed by the embodiment. The analysis may indicate that the caller is most likely satisfied with the contact if, for example, the caller is connected to an agent of similar gender, race, age, or even a particular agent. With this embodiment, the method may preferentially match callers to a particular agent or this type of agent: this type of agent produces an acceptably optimal interaction based on caller affinity data.
The affinity database may provide executable information about callers when a business, customer, or publicly available database resource may lack information about callers. Even if there is caller data available, this database development can be used to further enhance contact routing and agent-caller matching, as such conclusions can be drawn: the contact results for individual callers may differ from what the business database suggests. For example, if the exemplary method relies solely on a business database to match callers and agents, it would predict that callers best match agents of the same gender to achieve optimal customer satisfaction. However, by including affinity database information developed from previous interactions with callers, the exemplary method can more accurately predict that callers best match agents of different genders to achieve optimal customer satisfaction.
Next in step 910, the caller and agent are matched based on the comparison of the relative rankings determined in step 906 and the pattern matching algorithm in step 908. For example, the results of the two methods may be combined, e.g., linearly or non-linearly, to determine the best matching caller-agent pair.
The caller to agent selection or mapping is then passed to a routing engine or router to route the caller to the agent at step 912. The routing engine or router may be local or remote to the system that maps callers to agents. It should be noted that other acts may be performed, that the acts need not be performed in the order recited, and that some acts may be performed in parallel.
Mapping by a variance algorithm: embodiments for call mapping based at least in part on a variance algorithm are described below. The following examples and descriptions are in terms of Agent Performance (AP), but similar problems exist in estimating caller propensity (e.g., purchasing propensity), and the same methodology may be used. Thus, to avoid duplication of terminology, embodiments are described in terms of Agent Performance (AP), with the understanding that the same applies for Caller Preferences (CP) based on different partitions.
An exemplary call mapping and routing system may use three different mathematical types of destination data. Two items of data, such as Conversion Rate (CR), i.e., sales/not-sales, multiple items of data, such as multiple RGUs sold per phone, and sequential data, such as Revenue Generating Units (RGUs) per phone, and processing time. All of the techniques described herein apply to the three data, although they require differences in the mathematical techniques used, particularly in the case of Bayesian Mean Regression (BMR), as is known to those skilled in the art. Again, to avoid repetition, the term CR is used, but it should be understood to represent binomial data, multinomial data or continuous data.
The present invention provides systems and methods that can be used to improve or optimize caller to agent mapping and routing in a contact center, where caller mapping and routing can use performance-based routing techniques. In one aspect of the invention, the system and method attempts to map or assign agents that perform well to callers belonging to groups where agent performance has a significant impact on call outcome and agents that perform poorly to callers belonging to groups where agent performance has a relatively small impact on call outcome. In one embodiment, the method and system assume that the caller's partition has been partitioned, e.g., { P }, which may be defined in different ways. The possible partitions may be based at least in part on caller demographic data, caller NPA (i.e., area code), or NPANXXX (six digits top of a telephone number), or a directory number (VDN), or a geographic area, or 800 number, or a forward number, etc. By any method, the caller is divided into sets, and various statistics of the partitions of each set can be calculated.
An exemplary method may be implemented as follows:
1. for example, the best estimate of Agent Performance (AP) is calculated by bayesian mean regression or other methods. And dividing the set of the seats into an upper half set { T } and a lower half set { B } of the best-performing seats according to the AP value of the seats. This can be achieved by: according to the median AP, separating the seats, allocating the seats with the AP larger than the median AP to { T } and allocating the rest seats to { B }. Note that in an embodiment, agents may be divided into more than two portions or groups based on performance or based on one or more other data related to demographics or trends.
2. Based on one or more criteria, by one or moreA computer divides callers in a caller set into a plurality of partitions. For each partition PiCalculating P hit by the agent in { T }iAverage Conversion Ratio (CR) of phones in (B), the same calculation is performed for agents in { B }. The difference Δ between these quantities is then calculated. In large delta partitions, the agents have a significant impact, i.e., a well-performing agent obtains a much higher CR than a poorly-performing agent. Conversely, in a partition with little or no Δ, the agent has little or no effect.
3. The rank or percentile of the partitions is calculated from Δ -from highest Δ to lowest Δ -, e.g., the 97 th percentile of partitions occupies 97% of calls in partitions with smaller Δ.
4. Percentiles of the Agent Performance (AP) are calculated. (these percentiles may be based on the number of calls, caller partitions or agents in each group and ensure that the number of agents and callers remain approximately equal for each match, thereby avoiding a bias in the agent pool or caller pool). Thus, in an embodiment, the agent with the 97 th percentile accounts for 97% of calls for callers with lower performance rankings.
5. In an embodiment, a call may be assigned to an agent-caller pair with the smallest difference Δ between the percentile of the partition assigned to the caller and the percentile of the AP of the agent. Thus, in an embodiment, calls from a partition with a higher Δ will be matched to a better performing agent, and phones with a lower Δ will be matched to a worse performing agent.
Referring to fig. 11, an implementation of an embodiment is disclosed. Block 1100 represents obtaining, by one or more computers, agent performance data for a set of agents. In an embodiment, the agent performance data may include information selected from the group consisting of sales/non-sales, number of goods sold per phone, and revenue per phone combined with processing time. In an embodiment, the performance data may be obtained by accessing a database containing such performance data.
Block 1110 represents ranking, by the one or more computers, agents based at least in part on the agent performance data.
Block 1120 represents dividing, by the one or more computers, the agents into agent performance scopes based at least in part on the ranking step.
Block 1130 represents dividing, by the one or more computers, callers in the set of callers into a plurality of partitions based on one or more criteria. In an embodiment, the partitioning is based at least in part on one or more selected from the group consisting of demographic data, area code, zip code, NPANXX, VTN, geographic area, 800 number, and transfer number, among others.
Block 1140 represents determining, by the one or more computers, for each of the partitions, a result value for at least a first one of the agent performance ranges and a result value for a second one of the agent performance ranges. In an embodiment, the result value includes one or more selected from the group consisting of sales, number of items sold per phone, and revenue per phone combined with processing time. In an embodiment, the step of determining a result value may comprise determining an average result value for a particular result of the range of agent performances.
Block 1150 represents calculating, by the one or more computers, a result value difference indicator for each partition based at least in part on a difference between a result value in the first range of agent performance and a result value in the second range of agent performance.
Block 1160 represents matching, by the one or more computers, the respective agents with the respective performance data to the respective callers in one of the partitions based at least in part on the result value difference indicators of the partitions.
In an embodiment, the matching step may be based at least in part on a rule that assigns a better performing agent to a caller from one of the partitions in which the result value difference indicator is relatively higher than the result value difference indicators of the other partitions, wherein the better performing agent is determined based at least in part on the agent performance data for each agent relative to the agent performance data for the other agents. In an embodiment, one or more thresholds may be used for the result difference indicator, and different ranges of agent performance may be associated with these thresholds. In an embodiment, a ranking and percentile may be used, and the agent of the ranking or percentile closest to the caller-partitioned result value difference indicator may be matched.
In an embodiment, the matching step further comprises the steps of: calculating, by the one or more computers, a ranking or percentile of the partitions based on a high delta to a low delta based at least in part on the first number of calls; and calculating, by the one or more computers, a ranking or percentile of Agent Performance (AP) for each agent in the set of agents based at least in part on the respective agent performance data and the second number of calls. In an embodiment, these percentiles may be based on the number of calls, caller partitions or agents in each group and ensure that the number of agents and callers are kept approximately equal for each match, thereby avoiding a bias in the agent pool or caller pool. In an embodiment, the matching step may further include the steps of: matching, by the one or more computers, the respective agents to the respective callers, at least in part, a rule that minimizes a difference between a partition percentile or ranking of the result value difference indicators for the respective caller partitions and a performance percentile or ranking of the respective agents.
In an embodiment, combined performance data may be used. In an embodiment, higher dimensional matching may be performed, where the matching step is performed for conversion rate or conversion rate, processing time, or customer satisfaction score.
In an embodiment, a combined matching algorithm may be used. For example, one or more computers may be configured with program code that, when executed, performs the steps of: switching, by the one or more computers, between a result value difference indicator matching algorithm and a second matching algorithm different from the result value difference indicator matching algorithm based on one or more criteria. In this embodiment, upon switching to a second matching algorithm, executing, by the one or more computers, the second matching algorithm to match a respective one of the agents to a respective one of the callers. In an embodiment, the second matching algorithm may be a pattern matching algorithm, or a closest percentile or rank match of the agent and the caller, or other matching type of algorithm. In an embodiment, the system may switch to a random matching algorithm or a purely queue-based algorithm to demonstrate the relative use effect of the result value difference indicator matching algorithm compared to the random matching algorithm or the queue-based matching algorithm.
In an embodiment, one or more computers may be configured with program code that, when executed, performs the steps of: obtaining, by the one or more computers, result data in the matching step using each of the result value difference indicator matching algorithm and the second matching algorithm; obtaining or receiving, by the one or more computers, a switch point in a distribution of agent performance and/or a distribution of caller propensity, wherein a result obtained from one of the algorithms is better than results obtained from other ones of the algorithms; and switching, by the one or more computers, between the algorithms using the switch point. The switching point may be determined empirically by examining performance data of the algorithmic model based on two different types of performance data. This check may be performed manually, periodically or aperiodically, or at runtime, or may be automatically determined based on a comparison of the performance results and a determination that a predetermined difference threshold between the performance results of the respective algorithms is exceeded. In embodiments, the combined performance data may also be used for processing time, or customer satisfaction, or other parameters.
In an embodiment, a pure conversion rate ranking or percentile may be used for low agent conversion rates (e.g., not good sales). The same may then switch to the ranking or percentile used. Thus, in an embodiment, the one or more computers may be configured with program code that, when executed, performs the steps of: switching, by the one or more computers, between a result value difference indicator matching algorithm and a second matching algorithm based on one or more criteria, the second matching algorithm configured to match individual agents having individual ranks or percentiles with callers in one of the partitions, the individual agents and individual callers having a closest rank or percentile; and executing, by the one or more computers, the second matching algorithm to match a respective one of the agents to a respective one of the callers when switching to the second matching algorithm.
And (4) aging comparison: the present invention also discloses time effect embodiments of call mapping that compensate for time effects, which may be used independently or in combination with other embodiments disclosed herein. As described above, the following embodiments and descriptions are based on Agent Performance (AP), but similar problems exist in estimating caller propensity (e.g., purchasing propensity), and the same methodology may be used. Thus, to avoid repetition of terminology, embodiments are described in terms of Agent Performance (AP), with the understanding that the same applies to Caller Propensity (CP).
The Conversion Ratio (CR) of a call center typically varies over time. For example, there may be periodic changes, e.g., the CR may change during the day, each day of the week, or longer periods. There are also long-term changes. Reasons for the latter include marketing campaigns, seasonal effects, e.g., cost in the holiday season, and economic conditions.
These effects, if not compensated for, can affect the accurate computation of the Agent Performance (AP) and CP. For example, if the CR for a particular call center night call is higher than the CR for a day call, then only the agents on the night shift are expected to have higher performance than the agents on the white shift. But this higher performance may be artificial and if uncorrected, may result in inaccurate APs. See fig. 12-14.
The present invention provides systems and methods that can be used to improve or optimize caller to agent mapping and routing in a contact center, where caller mapping and routing can use performance-based routing techniques. In one aspect of the invention, systems and methods are provided for matching callers to agents based on agent and/or caller data that includes, or is based on, temporal effects (e.g., temporal data or information that affects one or more of the agent and/or caller data used to determine a mapping between callers and agents). For example, agent data and caller data used by the pattern matching algorithm may include time effect data related to performance, possible performance or output variables based on time of day, day of week, month of day, year of day, etc. The pattern matching algorithm may compare caller data associated with each caller with agent data associated with each agent to determine a best match of caller and agent and may include analyzing temporal effects on possible outcomes of agent performance or specific matches when executing the matching algorithm.
In an embodiment, long-term trends in CR may be detected by smoothing call center data using a moving window averaging over the course of a day and a week. Periodic effects can be detected by power spectral analysis techniques such as FFT or Lomb Scargle periodograms (William H.Press and George B.Rybicki, fast algorithms for spectral analysis of unevenly sampled data, journal of astronomical physics, 338: 277-. For example, the mean and standard error of the mean (SE) can be calculated for all mondays, tuesdays, using a 3 month sample of data, by simply calculating the mean and standard error of the mean.
FIGS. 24-27 show and exemplify evidence of the effects of hours a day, days a week, and other periodic time periods. Figure 24 shows the average revenue change over a month. Figure 25 shows the average revenue change per day of the week. Fig. 26 shows the average revenue variation for each hour of the day. Fig. 27 shows normalized power spectral density according to frequency (1 hour).
An exemplary long-term trend correction method is provided. Daily means of CR over a period of time (typically months) and linear least squares regression, or local weighted least squares smoother-such as LOWESS (see, e.g., cleveland, W.S. (1979) strong local weighted regression and smooth scatter plots, j.am. statist. assoc, 74, 829-. Corrected CR data were next obtained by dividing the original daily time series by the fitted values.
The invention also provides an exemplary periodic variation correction method. From data samples of suitable length, a CR (conversion rate) epoch average according to hour of day (HOD), or day of week (DOW) or hour of week (HOW) can be calculated, the epoch average combining HOD and DOW in one variable.
Three exemplary correction methods are described below:
1. and (3) addition: the new target variable is defined as the original target variable minus the mean of the epochs in which the call occurred. In this and the following methods, the term "target variable" refers to any variable that the call mapping system is optimizing. It is O, I in terms of conversion rate, the number of RGUs per call in terms of Revenue Generating Units (RGUs), or the revenue per phone in terms of revenue.
2. Multiplication: the new target variable is defined as the original target variable divided by the mean of the epochs in which the call occurred.
3. The microtechnical method comprises the following steps: the associated time effect, HOD, DOW or HOW, is combined with the skills used in the AP calculation (or VDNs) by forming an outer product. For example, if there are two skills a and B, and only DOW correction is considered, then 2x7 ═ 14 new microtechnologies can be formed, including a & monday, a & tuesday … … a & sunday, B & monday, B & tuesday … … B & sunday. These 14 microtechnologies can then be used as factors in the calculation of BMR for agent performance. For example, when time effects are applied at the skill level or VDN level and 10 skills of an agent are measured, then time effect adjustments may be made to individual agents for each of the 10 skills, based on each hour of 24 days, e.g., 10x 24-240 time effect adjustments to performance data, i.e., microtechnical adjustments.
When corrected data with new target variables is calculated, AP and CP and all other mapping calculations can be implemented using the corrected data variables.
In an embodiment, a method of correcting for time effects by one or more computers includes subtracting from a target outcome variable an epoch mean from a sample of desired outcome data, wherein the epoch mean comprises a mean of one selected from the group consisting of hourly-daily, daily-weekly, and hourly-weekly desired outcome data from an epoch in which each call occurs, thereby obtaining a new target outcome variable.
In an embodiment, a method of correcting for time effects by one or more computers includes dividing a target outcome variable by an epoch mean from a sample of desired outcome data, wherein the epoch mean comprises a mean of one selected from the group consisting of hourly-daily, daily-weekly, and hourly-weekly desired outcome data from an epoch in which each call occurs, thereby obtaining a new target outcome variable.
In an embodiment, a method of correcting for time effects by one or more computers includes forming an outer product by combining selected results data from hourly-daily, daily-weekly, and hourly-weekly events of an epoch in which each call occurs to obtain factors to be used in Bayesian Mean Regression (BMR) calculations of agent performance.
Distribution compensation: in an embodiment, a matching algorithm may be used to match an agent to a caller, where a given number reflecting a parameter of the agent matches the caller with the closest number reflecting a different parameter of the caller. For example, in an embodiment, the number of agents may be a rank or percentile that reflects the performance of each agent relative to other agents in the set. Likewise, the caller's number may be a ranking or percentile of the caller relative to other callers in the queue or other grouping, such as a caller's propensity for something. In an embodiment, the ranking or percentile may be for a partition of callers (e.g., demographic data, zip code, area code, etc.) based at least in part on whether the performance level of the agent affects the outcome of the call.
It has been found that when using such an algorithm, the matching algorithm using the example of the agent performance percentile tends to match/cluster callers to agents in the middle percentile of the performance distribution, at the expense of agents at the end of the distribution (e.g., worst and best agents). In an embodiment, to compensate for this effect, an edge compensation algorithm is provided to increase the likelihood of utilizing more agents located at the edges of the performance distribution. In one embodiment, the edge compensation algorithm takes runtime idle agents and readjusts individual agent rankings or percentiles for these runtime idle agents to provide more space/white space at the edge of the agent distribution, e.g., weighting the worst agent's performance numbers to increase their performance levels and/or decrease the individual performance levels of the best agents. The amount of weighted white space is based at least in part on the number of agents that are free at runtime. For example, if there are n active agents, where k agents are available to answer the call, the n agent percentiles may be readjusted so that the bottom agent percentile is 100/(2 k) and the top agent percentile is 100 (1- (2/k)). In one embodiment, the edge compensation algorithm takes callers in a queue or other grouping and readjusts individual caller propensity rankings or percentiles to provide more space/margin at the edge of the agent distribution, e.g., weighting the propensity numbers of the worst callers to increase their individual propensity levels and/or decrease the individual propensity levels of the best callers. The amount of weighted white space is based at least in part on the number of callers in the queue or other grouping.
Various embodiments of edge compensation algorithms are now provided.
Notes & settings
All percentiles are given by 100, ranging between 0 and 1.
The experiment is directed to a one-dimensional unit interval caller-agent matching algorithm, wherein the purpose is to:
1. minimizing the average difference between agent and caller.
2. Without explicit interpolation to the presentation route, there is uniform agent utilization or average caller latency.
3. Simple algorithms are incorporated to interpolate between uniform agent utilization and route-based behavior.
L1 ═ a case where there are multiple free agents, a single call is incoming and routed to one of the free agents.
L2 ═ a case where there are multiple calls in the queue, only one agent becomes available. A call in the queue is routed to an idle agent.
Kappa-in the case of L1: a method of interpolating between pure performance routing (when there is a call incoming, the call is assigned to the best performing agent) and more uniform agent utilization. One embodiment is to readjust the seat percentile by raising the percentile to the kappa power for some kappa greater than 1.
Rho-in the case of L2: a method for when there is an insertion between a pure presentation route (best calls assigned to queues when an agent becomes empty; in this case, the latency of a low percentile call is much longer than the latency of a high percentile call) and a more uniform call expected latency algorithm. One embodiment is to readjust the seat percentile by boosting the percentile to rho power for some rho greater than 1.
The code to be tested is denoted as R.
T is time in seconds which is discontinuous
The method-value for the current methodology is now, the value for the look-ahead method is lah, the value for the adaptive migration algorithm is asm, the value for the static migration method is ssm, the value for the static migration method v6 is ssm6, the value for the mean distance method is adm, the value for the alternating circle is acl, the new method being analyzed is
nagents ═ number of seats
aht average processing time
mean number of free seats
base _ ap ═ percentage of seats before any adjustment or conversion, evenly distributed in [0,1) starting at 1/(2 × genes)
The caller's tendency before any adjustment or conversion is not made, evenly distributed in [0,1) ]
method _ ap is a vector of agent percentiles after any adjustment or conversion of the application method
method _ cp is a vector of caller trends in the queue after any adjustment or conversion by the application method, the callers waiting for agents in the order they entered the queue
base _ ap [ freeagents ] -a vector of agents percentiles for only free agents
base _ cp [ freeagents ] -a vector of caller trends for calls in queue
Adaptive offset method L1
The method comprises the following steps: in this case, there are one or more free agents and there is at most one call in the queue. At any point in time, the percentile of the seat is offset by { (1-max (base _ ap [ freesages ])) -max (base _ ap [ freesages ]) }/2. That is:
asm_ap=base_ap+(1-max(base_ap[freeagents]))/2-min(base_ap[freeagents])/2
theory: the method is based on the following steps: if no edge is present, there is no edge effect. That is, if the agent and caller percentiles are evenly distributed along a circle of length 1. Simply applying it would result in some poor matches, since callers with base _ cp close to 1 might be matched to an agent with base _ ap close to 0. The key to avoiding this is that under a purely adaptive methodology, for the internal idle agents (neither the top nth nor the bottom ith free agent), the probability that a call is assigned to the ith idle agent is (asm _ ap)i+1–asm_api-1) (ii)/2, the probability is (1-asm _ ap) for the bottom agentn+asm_ap2) (ii)/2, the probability is (asm _ ap) for the top idle agent1+1–asm_apn-1)/2. If the idle agent percentile is rigidly offset at runtime such that the bottom edge and the top edge are the same, then the probability is maintained that a call of 0 is always matched to the bottom idle agent and a call of 1 is always matched to the top idle agent. A disadvantage of this approach is that some internal matching may be less than ideal due to the offset.
Kappa: implementing Kappa with Kappa >1 for one level results in a higher utilization of the top seat and a lower utilization of the bottom seat. However, adaptive biasing means that this imbalance in utilization results in a larger edge area being allocated to the bottom-which results in a two-step increase in bottom utilization. Digital simulation determines the result, resulting in edges that tend to average. Many functional forms have been tried to compensate for the secondary effects. The final selected functional form is:
ap=base_ap-min(base_ap[freeagents])+(min(base_ap[freeagents])/1)^(kappa-1)*0.5*(min(base_ap[freeagents])+(1-max(base_ap[freeagents])))
ap=ap^kappa.
adaptive offset method L2:
the method comprises the following steps: in this case, there are one or more callers in the queue, with at most one free agent. At any point in time, the percentile of the call queue is offset by { (1-max (base _ cp)) -max (base _ cp) }/2. That is:
asm_cp=base_cp+(1-max(base_cp))/2-max(base_cp)/2.
theory: the method is based on the following steps: if no edge is present, there is no edge effect. That is, if the agent and caller percentiles are evenly distributed along a circle of length 1. Simply applying it would result in some poor matches, since callers with base _ cp close to 1 might be matched to an agent with base _ ap close to 0. When there is only one agent, the adaptive offset method prevents these poor matches by rotating the caller's tendency to be rotated so that the agent is equally likely to be on the left of the caller with the lowest base _ cp or on the right of the caller with the highest base _ cp. This results in the same probability: any given caller in the queue is matched when completed on the circle. A disadvantage of this approach is that some internal matching may be less than ideal.
Rho: rho can be simply implemented using the following formula, although it will slightly reduce the utilization of the top seat, but there is no confusion.
asm_cp with rho=asm_cp^rho.
Note that: when there is only one free agent and there are multiple callers in the queue, no offset should be applied to the percentile of agents, since an offset will shift the percentile of agents to 0.5, automatically matching to the middle percentile of callers. The seat percentile should be kept constant, moving the caller percentile. Similarly, when there is only one caller, and there are multiple free agents at the same time, only the percentile of the agents should be shifted. When there are multiple free agents and multiple callers in the queue, many possibilities are conceivable, three of which are: 1) not offsetting until enough callers and agents are matched to leave a caller or an agent unmatched, and then returning to the adjusted offset method; or 2) shift larger packet offsets after enough callers and agents are matched to leave a caller or an agent unmatched, and then return to the adjusted shift method; or 3) shift two packets after enough callers and agents are matched to leave one caller or one agent unmatched, and then return to the adjusted shift method. The particular method selected depends on a number of factors including, but not limited to: matching accuracy, simplicity, dropped call behavior, and external service level agreements (e.g., to limit call latency or to account for agent utilization).
Note (theoretical performance limit): since there is an interaction between the top and bottom of the seating stack, it is clear that this approach is not the best to utilize the homogenization scheme from the matching accuracy point of view.
Static offset method: l1:
the method comprises the following steps: in this case, there are one or more free agents and there is at most one call in the queue. At any given point in time, the percentile of the agents is readjusted to length (1-1/count _ freegenes) and the percentile is shifted by 1/(2 × count _ freegenes). That is to say:
ssm_ap=base_ap*(1-1/count_freeagents)+1/(2*count_freeagents)
theory: this approach attempts to address the major deficiencies of the adaptive offset approach. That is, the interaction between the bottom seat and the bottom seat degrades matching performance and makes kappa difficult to implement. We try to average the cumulative effect of the adaptive offset, performing a static affine transformation. The transformation is special. Other variations exist.
Kappa: kappa can be implemented simply using the following formula, although the utilization of the top seat is somewhat reduced, but there is no confusion.
Ssm _ ap of kappa is used ssm _ ap ^ kappa.
Static offset method: l2:
the method comprises the following steps: the same theory as the adaptive offset methodology.
Theory: the same as for the adaptive offset methodology.
Rho: rho can be simply implemented using the following formula, although it will slightly reduce the utilization of the top seat, but there is no confusion.
Ssm _ cp of rho is used ssm _ cp ^ rho.
Static offset method: v5 and v 6L 1:
the method comprises the following steps: in this case, there are one or more free agents and there is at most one call in the queue. At any given point in time, first readjust base _ ap to start at 0, end at 1, instead of starting at 1/(2 genes), end at 1- (1/(2 genes)), second readjust the percentile of the agent to length (1-1/count _ freegenes), and shift the percentile by 1/(2 count _ freegenes). That is to say:
ssm6_ap=(base_ap–1/(2*nagents))*(1-1/nagents)*(1-1/count_freeagents)+1/(2*count_freeagents).
theory: this approach attempts to address the major deficiencies of the static shift approach. Patterns occur in utilization when there are fewer idle agents. A number of variants-v 8 were tested, but it is listed here that v5 and v6. are very simple although the chosen transformation is ad hoc. Some modes are attenuated but remain.
Kappa: for v5, kappa was applied directly.
Asm5_ ap ^ asm5_ ap ^ kappa using kappa
However, it was found that the edge buffering inserted by ssm5 should be adjusted when applying kappa, otherwise the utilization of the bottom agents is too high and the utilization of the top agents is too low. One particular adjustment that appears reasonable is the bottom edge buffer divided by kappa and the difference added to the top edge buffer. This was chosen for ssm 6.
The use of kappa's asm6_ ap ═ (asm6_ ap- (1/(2 × count _ freeagents)) + (1/(2 × count _ freeagents))/(kappa)). kappa).
Static offset method: v5 and v 6L 2:
the method comprises the following steps: the same theory as the adaptive offset methodology.
Theory: the same as for the adaptive offset methodology.
Rho: for v5, rho was applied directly.
Asm5_ cp using rho asm5_ ap rho.
Average distance method: l1:
the method comprises the following steps: in this case, there are one or more free agents and there is at most one call in the queue. This method is a variation of the adaptive offset method and the static offset method, attempting to adjust the affine cipher to the configuration at each point in time. The idea is that all intervals should be considered when determining the edge adjustment, rather than just two edge intervals.
Theory: this approach attempts to address the major deficiencies of the adaptive offset approach. That is, the interaction between the bottom seat and the bottom seat degrades matching performance and makes kappa difficult to implement. This method is a variation of the adaptive offset method and the static offset method, attempting to adjust the affine cipher to the configuration at each point in time. The idea is that all intervals should be considered when determining the edge adjustment, rather than just two edge intervals. The disadvantages of this method can be improved as well.
Kappa: for adm, kappa is applied directly.
adm_ap with kappa=adm_ap^kappa
Average distance method: l2:
the method comprises the following steps: the same theory as the adaptive offset methodology.
Theory: the same as for the adaptive offset methodology.
Rho: for adm, rho is applied directly by the following formula.
adm_cp with rho=adm_ap^rho.
The alternate circle method comprises the following steps: l1:
the method comprises the following steps: in this case, there are one or more free agents and there is at most one call in the queue. At any given point in time, the percentile of free seats is mapped to a circle [ -1,1) by an alternating sign function. Furthermore, we randomize the starting sign function. First we only try to change the sign function of the idle agents. That is to say:
(acl_ap[freeagents])[i]=rbinom(1,1,0.5)*(base_ap[freeagents])[i]*(-1)^i.
caller cp is not changed. The distance is calculated based on identifying-1 and + 1. Unfortunately, for unknown reasons, a number of experiments indicate a higher sequential masking effect. To this end, we have tried a static variant of the sign function. That is to say:
acl_ap[i]=rbinom(1,1,0.5)*acl_ap[i]*(-1)^i
again, caller cp is not changed, and the distance is calculated based on the identifications-1 and + 1. This results in perfect utilization homogenization.
Theory: the method is based on the following steps: if no edge is present, there is no edge effect. In this case, we change the topology so that the agent percentile and caller percentile are evenly distributed along a circle of length 2 (with the interval [ -1, +1), and identify endpoints-1 and + 1). By randomizing the starting sign function of the free agent, we can leave the caller on the [0,1) portion of the circle. The drawback of this approach is that sometimes caller cp is far away from endpoints 0 and 1, but the "best" match is on the opposite side of the circle, the second "best" match is not very good.
Kappa: for acl, kappa is applied directly by the following formula.
acl_ap with kappa=|acl_ap|^kappa*signum(acl_ap).
The alternate circle method comprises the following steps: l2:
the method comprises the following steps: in this case, there are one or more callers in the queue, with at most one free agent. At any given point in time, the percentile of the caller is mapped to a circle-1 by an alternating sign function. Furthermore, we randomize the starting sign function. That is to say:
(acl_cp[callqueue])[i]=rbinom(1,1,0.5)*(base_cap[callqueue])[i]*(-1)^i
the distance is calculated based on identifying-1 and + 1.
Theory: the method is based on the following steps: if no edge is present, there is no edge effect. That is, if the agent percentile and the caller percentile are evenly distributed along a circle of length 2. By randomizing the starting sign function of the call queue, we can leave an agent on the [0,1) portion of the circle. The disadvantage of this approach is that sometimes the agent ap is far away from the endpoints 0 and 1, but the "best" match is on the opposite side of the circle, and the second "best" match is not very good.
Rho: for acl, rho is applied directly by the following formula.
acl_cp with rho=|acl_cp|^kappa*signum(acl_cp)
The forward-looking method comprises the following steps: l1:
the method comprises the following steps: this is a very complicated process.
Theory: this approach attempts to modify the current greedy approach to penalize greedy as making the expected distance of the next caller larger.
Kappa: for adm, kappa is applied directly.
lah_ap with kappa=lah_ap^kappa.
The forward-looking method comprises the following steps: l2:
theory: the same as for the adaptive offset methodology.
Rho: for lah, rho is applied directly by the following formula.
lah_cp with rho=lah_ap^rho.
Edge utilization: the graph at kappa-1 was examined. The results are summarized here, including many of these graphs for clarity. The first graph shows the case where no edge correction is performed.
The acl and asm agent utilization charts have the desired flat profile for mu-40. The profile of ssm6 is V-shaped (however, only a small portion of the variability contributes to the shape-the utilization range is 90 for ssm6 and 69/70 for asm/acl). The seat utilization graph for adm is W-shaped. now and lah are shaped with the U upside down.
For mu-20: acl, asm, ssm6 the seat utilization graph has the desired flat profile, and the adm seat utilization graph is W-shaped. now and lah are shaped with the U upside down.
For mu 10,5, 2: acl, asm and ssm6 have the desired flat profile. The others did not.
For mu ═ 0: acl and asm have the desired flat profile. ssm6 is somewhat the same shape, but the difference between the highest and lowest seat utilization is slightly higher than for acl and asm.
The graphs were examined for kappa ═ 1.2 and 1.4. The results are summarized here, including a number of charts for clarity.
Acl seamlessly accommodates kappa with monotonically increasing utilization.
Now, ssm5 and ssm6 have reduced utilization for high ap. The reduction in utilization for the highest ap agents is greatest for now and least for ssm 6. ssm6 is sufficiently small that we believe there is no reason to find a better solution this time.
The method chosen for practical implementation depends on a number of factors. The method comprises the following steps:
importance of minimizing agent and caller percentile differences
Agent utilization requirements of the call center
Service level agreement on caller latency
Technical implementation constraints
Higher dimensional similarity occurs when additional agents and caller parameters are matched. Other topologies are also possible. For example, the most straightforward extension is to characterize the agent and caller by two separate parameters, respectively, the first being the performance percentile discussed above, and the second being the percentile based on the expected processing time of the agent and caller. An edge compensation algorithm similar to the method discussed above corresponds to inserting a blank at the edge (additionally widening near the vertex, or modifying the topology from square to cylindrical or torus). If the classification parameters match, the topology can be disconnected.
Referring to fig. 12, an embodiment of a distributed compensation method is disclosed. Block 1200 represents obtaining, by one or more computers, agent parameter data for a set of agents.
Block 1210 represents ranking or percentile ranking, by the one or more computers, the agents based at least in part on the agent parameter data to obtain an agent distribution of agent rankings or percentiles. In an embodiment, the agent performance data includes a selection from the group consisting of sales or non-sales, number of goods sold per phone, and revenue per phone combined with processing time.
Block 1220 represents partitioning, by one or more computers, callers in a caller set into a plurality of partitions based on one or more criteria. In an embodiment, the partition of callers is based at least in part on one or more selected from the group consisting of demographic data, area code, zip code, NPANXX, VTN, geographic area, 800 number, and transfer number.
Block 1230 represents obtaining, by the one or more computers, caller trends for the respective partitions.
Block 1240 represents ranking or percentile ranking, by the one or more computers, the callers based at least in part on data related to caller propensity for a desired outcome or predicting caller propensity for a desired outcome based at least in part on the caller propensity data for the respective caller's partition to obtain a caller ranking or percentile distribution of callers.
Block 1250 represents performing, by the one or more computers, the distribution compensation using at least one algorithm selected from the group consisting of: an edge compensation algorithm applied to at least one selected from the group consisting of a distribution of agent rankings or percentiles and a distribution of caller rankings or percentiles near at least one edge of the respective portion, thereby obtaining an edge compensated ranking or percentile; and a topology modification algorithm applied to one or both of the distribution of agent rankings or percentiles and the distribution of caller rankings or percentiles to change one or more of the distributions to a different topology.
In an embodiment, performing the distribution compensation step uses the edge compensation algorithm and may provide edge compensation only for agent rankings or percentiles. In an embodiment, performing the distribution compensation step uses the edge compensation algorithm and may provide edge compensation only for caller rankings or percentiles. In an embodiment, performing the distribution compensation step uses the edge compensation algorithm and provides edge compensation for the caller rank or percentile and the agent rank or percentile.
In an embodiment, the distribution compensation step uses the edge compensation algorithm and takes the runtime idle agents and readjusts the individual agent rankings or percentiles for the runtime idle agents, thereby providing more space/white space at the edge of the agent distribution. In an embodiment, the amount of white space is based at least in part on a number of agents that are free at runtime.
In an embodiment, the distribution compensation step uses the edge compensation algorithm and takes callers in a queue or other grouping at runtime and re-adjusts individual caller propensity rankings or percentiles to provide more space/white space at the edges of the distribution. In an embodiment, the amount of white space is based at least in part on a number of callers in a queue or other grouping at runtime.
In an embodiment, the distribution compensation step uses the edge compensation algorithm to weight a plurality of agents that are free at runtime near at least one edge of the agent distribution and to weight a plurality of callers near at least one edge of the caller distribution, thereby increasing utilization of agents near at least one edge of the agent distribution.
In an embodiment, the distribution compensation step uses the edge compensation algorithm, which may weight a number of agents that are free at runtime near both edges of the agent distribution, or a number of callers near both edges of the caller distribution.
Block 1260 represents matching, by the one or more computers, a respective one of the agents having the respective rankings or percentiles with a respective one of the callers in one of the partitions, the respective one of the agents and the respective one of the callers having a closest ranking or percentile, wherein at least one of the caller rankings or percentiles and the agent rankings or percentiles have been subject to distribution compensation.
In an embodiment, the distribution compensation step uses a topology modification algorithm that can convert the distribution of agent performance and the distribution of callers to a loop topology.
In an embodiment, the distribution compensation step uses a topology modification algorithm that can convert the distribution of agent performances and the distribution of callers into a loop topology to remove edges of the distribution.
In embodiments where the distribution compensation step uses an edge compensation algorithm, Kappa of the agent distribution may be greater than 1.0.
In an embodiment, rho applied to callers in the queue may be 1.0. Note that rho is similar to Kappa as applied to calls. rho-1.0 is similar to the flat utilization of calls, e.g., the same expected L2 latency for all calls CP. When rho is greater than 1.0, the call with the highest rank or percentile is biased to answer first.
Many of the techniques described in this application may be implemented in hardware or software, or a combination of both. Preferably, these techniques are implemented in computer programs executing on a plurality of programmable computers each comprising a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), and suitable input and output devices. Program code is applied to data entered using the input device to perform the functions described herein and to generate output information. The output information is applied to one or more output devices. In addition, each program is preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, programs may be implemented in component or machine language, if desired. In any case, the language may be a compiled or interpreted language.
Each such computer program is preferably stored on a storage medium or device (CD-ROM, hard disk or magnetic tape) which is readable by a general or special purpose programmable computer, thereby configuring and operating the computer when the storage medium or device is read by the computer to perform the above-described program. The system may also be embodied as a computer-readable storage medium, configured with a computer program, where the storage medium is configured to cause a computer to operate in a particular predefined manner.
FIG. 10 illustrates a typical computing system 1000 that may be used to implement processing functionality in some embodiments of the invention. Computing systems of this type may be used, for example, as clients and servers. Those skilled in the art will know how to implement the invention using other computer systems or architectures. By way of example, computing system 1000 may represent a desktop, laptop or notebook computer, handheld computing device (PDA, cell phone, palmtop, etc.), mainframe, server, client, or any other special or general purpose computing device as may be suitable or appropriate for a given application or environment. Computing system 1000 may include one or more processors, such as a processor 1004. Processor 1004 may be implemented using a general or special purpose processing engine such as, for example, a microprocessor, microcontroller or other control logic. In this embodiment, the processor 1004 is connected to a bus 1002 or other communication medium.
Computing system 1000 may also include a main memory 1008, such as Random Access Memory (RAM) or dynamic memory, for storing information and instructions to be executed by processor 1004. Main memory 1008 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1004. Computing system 1000 may also include a Read Only Memory (ROM) or other static storage device coupled to bus 1002 for storing static information and instructions for the processor.
Computing system 1000 may also include an information storage system 1010, for example, information storage system 1010 may include a media drive 1012 and a removable storage interface 1020. The media drive 1012 may include a drive or other mechanism to support fixed or removable storage media, such as a hard disk drive, a floppy disk drive, a magnetic tape drive, an optical disk drive, a CD or DVD drive (R or RW), or other removable or fixed media drive. Storage media 1018 may include, for example, a hard disk, floppy disk, magnetic tape, optical disk, CD or DVD, or other removable or fixed medium that is read by and written to by media drive 1012. Storage medium 1018 may comprise a computer-readable storage medium having stored thereon particular computer software or data.
In alternative embodiments, information storage system 1010 may include other similar components for allowing computer programs or other instructions or data to be loaded into computing system 1000. By way of example, such components may include a removable storage unit 1022 and an interface 1020, such as a program cartridge and cartridge interface, a removable memory (e.g., a flash memory or other removable storage module) and memory slot, and other removable storage units 1022 and interfaces 1020 that allow software and data to be transferred from the removable storage unit 1018 to the computing system 1000.
Computing system 1000 may also include a communications interface 1024. Communication interface 1024 may be used to transfer software and data between computing system 1000 and external devices. Examples of communications interface 1024 may include a modem, a network port (e.g., an ethernet or NIC card), a communications port (e.g., a USB port), a PCMCIA slot and card, etc. Software and data transferred via communications interface 1024 are in the form of signals which are electrical, electromagnetic, optical or other signals capable of being received by communications interface 1024. These signals are provided to communications interface 1024 via a channel 1028. The channel may carry signals and may be implemented using a wireless medium, wire or cable, fiber optics, or other communications medium. Some examples of a channel include a telephone line, a cellular link, an RF link, a network interface, a local or wide area network, and other communication channels.
In the present application, the terms "computer program product," "computer-readable medium," and the like may be used generally to refer to physical, tangible media, such as memory 1008, storage medium 1018, or storage unit 1022. These and other forms of computer-readable media may be involved in storing one or more instructions for use by processor 1004 to cause the processor to perform particular operations. These instructions, which are generally referred to as "computer program code" (which may be in the form of a computer program or other assemblage of instructions), when executed, cause the computing system 1000 to perform features or functions of embodiments of the present invention. It should be noted that the code may directly cause the processor to perform certain operations, be compiled to cause the processor to perform certain operations, and/or be combined with other software, hardware, and/or firmware elements (e.g., libraries that perform standard functions) to cause the processor to perform certain operations.
In an embodiment where the elements are implemented using software, the software may be loaded into computing system 1000 using, for example, removable storage medium 1018, drive 1012, or communications interface 1024. The control logic (in this embodiment, software instructions or computer program code), when executed by the processor 1004, causes the processor 1004 to perform the functions of the invention as described above.
It will be appreciated that for clarity, the above description has described embodiments of the invention with reference to different functional units or processors. It will be apparent, however, that any suitable distribution of functionality across different functional units, processors or domains may be used without detracting from the invention. For example, functions illustrated as being performed by different processors or controllers may be performed by the same processor or controller. Thus, references to specific functions are only to be seen as references to suitable means for providing the described functions rather than indicative of a strict logical or physical structure or organization.
The above-described embodiments of the present invention are illustrative and not restrictive. Various changes and modifications may be made without departing from the invention. It is intended that the appended claims cover such changes and modifications as fall within the true spirit and scope of this present invention.
Claims (89)
1. A call mapping method using distributed compensation, the method comprising:
obtaining, by one or more computers, agent parameter data for a set of agents;
ranking or percentile ranking, by the one or more computers, the agents based at least in part on the agent parameter data to obtain an agent ranking or percentile agent distribution;
dividing, by the one or more computers, callers in a set of callers into a plurality of partitions based on one or more criteria;
obtaining, by the one or more computers, caller trends for respective partitions;
ranking or percentile the callers, by the one or more computers, based at least in part on data related to caller propensity for a desired outcome or predicting caller propensity for a desired outcome based at least in part on the caller propensity data for the respective caller's zone to obtain a caller ranked or percentile distribution of callers;
performing, by the one or more computers, distribution compensation using at least one algorithm selected from the group consisting of:
an edge compensation algorithm applied to at least one selected from the group consisting of a distribution of agent rankings or percentiles and a distribution of caller rankings or percentiles near at least one edge of the respective portion, thereby obtaining an edge compensated ranking or percentile; and
a topology modification algorithm applied to one or both of the distribution of agent rankings or percentiles and the distribution of caller rankings or percentiles to change one or more of the distributions to a different topology; and
matching, by the one or more computers, a respective one of the agents having the respective ranks or percentiles with a respective one of the callers in one of the partitions, the respective one of the agents and the respective one of the callers having a closest rank or percentile, wherein at least one of the caller rank or percentile and the agent rank or percentile receives distribution compensation.
2. The method as defined in claim 1, wherein performing the distribution compensation step uses the edge compensation algorithm and provides edge compensation only for agent rankings or percentiles.
3. The method as defined in claim 1, wherein performing the distribution compensation step uses the edge compensation algorithm and provides edge compensation only for caller rankings or percentiles.
4. The method as defined in claim 1, wherein performing the distribution compensation step uses the edge compensation algorithm and provides edge compensation for caller rankings or percentiles and agent rankings or percentiles.
5. The method as defined in claim 1, wherein the distribution compensation step uses the edge compensation algorithm and takes runtime idle agents and readjusts individual agent rankings or percentiles for the runtime idle agents to provide more space/white space at the edges of the agent distribution.
6. The method as defined in claim 5, wherein the amount of white space is based at least in part on a number of agents that are free at runtime.
7. The method as defined in claim 1, wherein the distribution compensation step uses the edge compensation algorithm and takes callers in a queue or other grouping at runtime and re-adjusts individual caller propensity rankings or percentiles to provide more space/white space at the edges of the distribution.
8. The method as defined in claim 7, wherein the amount of white space is based at least in part on a number of callers in a queue or other grouping at runtime.
9. The method as defined in claim 1, wherein the distribution compensation step uses the edge compensation algorithm to weight a plurality of agents that are free at runtime near at least one edge of the agent distribution and to weight a plurality of callers near at least one edge of the caller distribution to increase utilization of agents near the at least one edge of the agent distribution.
10. The method as defined in claim 1, wherein the distribution compensation step uses the edge compensation algorithm to weight a number of agents that are free at runtime near two edges of the agent distribution or to weight a number of callers near two edges of the caller distribution.
11. The method as defined in claim 1, wherein the partition of the callers is based at least in part on one or more selected from the group consisting of demographic data, area code, zip code, NPANXX, VTN, geographic area, 800 number, and transfer number.
12. The method as defined in claim 1, wherein the agent performance data includes data selected from the group consisting of sales, number of items sold per phone, and revenue per phone combined with processing time.
13. The method as defined in claim 1, wherein the topology modification algorithm is used and converts the distribution of agent performances and/or the distribution of callers into a loop topology.
14. The method as defined in claim 1, wherein the topology modification algorithm is used and transforms the distribution of the agent performances and/or the distribution of the callers, thereby removing the edges of the distribution.
15. The method as defined in claim 1, Kappa for the agent distribution being greater than 1.0 when multiple agents are available and there is only one caller.
16. The method as defined in claim 1, when there are multiple callers and only one agent, Rho applied to the callers is greater than 1.0.
17. A call mapping system using distributed compensation, the system comprising:
one or more computers configured with program code that, when executed, causes the following steps to be performed:
obtaining, by the one or more computers, agent parameter data for a set of agents;
ranking or percentile ranking, by the one or more computers, the agents based at least in part on the agent parameter data to obtain an agent ranking or percentile agent distribution;
dividing, by the one or more computers, callers in a set of callers into a plurality of partitions based on one or more criteria;
obtaining, by the one or more computers, caller trends for respective partitions;
ranking or percentile the callers, by the one or more computers, based at least in part on data related to caller propensity for a desired outcome or predicting caller propensity for a desired outcome based at least in part on the caller propensity data for the respective caller's zone to obtain a caller ranked or percentile distribution of callers;
performing, by the one or more computers, distribution compensation using at least one algorithm selected from the group consisting of:
an edge compensation algorithm applied to at least one selected from the group consisting of a distribution of agent rankings or percentiles and a distribution of caller rankings or percentiles near at least one edge of the respective portion, thereby obtaining an edge compensated ranking or percentile; and
a topology modification algorithm applied to one or both of the distribution of agent rankings or percentiles and the distribution of caller rankings or percentiles to change one or more of the distributions to a different topology; and
matching, by the one or more computers, a respective one of the agents having the respective ranks or percentiles with a respective one of the callers in one of the partitions, the respective one of the agents and the respective one of the callers having a closest rank or percentile, wherein at least one of the caller rank or percentile and the agent rank or percentile receives distribution compensation.
18. The system as defined in claim 17, wherein performing the distribution compensation step uses the edge compensation algorithm and provides edge compensation only for agent rankings or percentiles.
19. The system as defined in claim 17, wherein performing the distribution compensation step uses the edge compensation algorithm and provides edge compensation only for caller rankings or percentiles.
20. The system as defined in claim 17, wherein performing the distribution compensation step uses the edge compensation algorithm and provides edge compensation for caller rankings or percentiles and agent rankings or percentiles.
21. The system as defined in claim 17, wherein the distribution compensation step uses the edge compensation algorithm and takes runtime idle agents and readjusts individual agent rankings or percentiles for the runtime idle agents to provide more space/white space at the edges of the agent distribution.
22. The system as defined in claim 21, wherein the amount of white space is based at least in part on a number of agents that are free at runtime.
23. The system as defined in claim 17, wherein the distribution compensation step uses the edge compensation algorithm and takes callers in a queue or other grouping at runtime and re-adjusts individual caller propensity rankings or percentiles to provide more space/white space at the edges of the distribution.
24. The system as defined in claim 23, wherein the amount of white space is based at least in part on a number of callers in a queue or other grouping at runtime.
25. The system as defined in claim 17, wherein the distribution compensation step uses the edge compensation algorithm to weight a plurality of agents that are free at runtime near at least one edge of the agent distribution and to weight a plurality of callers near at least one edge of the caller distribution to increase utilization of agents near the at least one edge of the agent distribution.
26. The system as defined in claim 17, wherein the distribution compensation step uses the edge compensation algorithm to weight a number of agents that are free at runtime near two edges of the agent distribution or to weight a number of callers near two edges of the caller distribution.
27. The system as defined in claim 17, wherein the partition of the callers is based at least in part on one or more selected from the group consisting of demographic data, area code, zip code, NPANXX, VTN, geographic area, 800 number, and transfer number.
28. The system as defined in claim 17, wherein the agent performance data includes a selection from sales, number of items sold per phone, and revenue per phone combined with processing time.
29. The system as defined in claim 17, wherein the topology modification algorithm is used and converts the distribution of agent performances and/or caller's distribution into a loop topology.
30. The system as defined in claim 17, wherein the topology modification algorithm is used and transforms the distribution of agent performances and/or the distribution of callers to remove edges of the distribution.
31. The system as defined in claim 16, Kappa for the agent distribution being greater than 1.0 when a plurality of agents are available and there is only one caller.
32. The system as defined in claim 16, when there are multiple callers and only one agent, Rho applied to the callers is greater than 1.0.
33. A call mapping system using distributed compensation, the system comprising:
means for obtaining, by the one or more computers, agent parameter data for a set of agents;
means for ranking or percentile ranking, by the one or more computers, the agents based at least in part on the agent parameter data to obtain an agent ranking or percentile agent distribution;
means for dividing, by the one or more computers, callers in a set of callers into a plurality of partitions based on one or more criteria;
means for obtaining, by the one or more computers, caller trends for respective partitions;
means for ranking or percentile ranking the callers based at least in part on data, by the one or more computers, that is related to caller propensity for a desired outcome or that predicts caller propensity for a desired outcome based at least in part on the caller propensity data for the respective caller's zone to obtain a caller ranked or percentile distribution of callers;
means for performing, by the one or more computers, distribution compensation using at least one algorithm selected from the group consisting of:
an edge compensation algorithm applied to at least one selected from the group consisting of a distribution of agent rankings or percentiles and a distribution of caller rankings or percentiles near at least one edge of the respective portion, thereby obtaining an edge compensated ranking or percentile; and
a topology modification algorithm applied to one or both of the distribution of agent rankings or percentiles and the distribution of caller rankings or percentiles to change one or more of the distributions to a different topology; and
means for matching, by the one or more computers, a respective one of the agents having the respective ranks or percentiles with a respective one of the callers in one of the partitions, the respective one of the agents and the respective one of the callers having a closest rank or percentile, wherein at least one of the caller rank or percentile and the agent rank or percentile receives distribution compensation.
34. A call mapping method using distributed compensation, the method comprising:
obtaining, by one or more computers, agent performance data for a set of agents;
ranking, by the one or more computers, the agents based at least in part on the agent performance data;
dividing, by the one or more computers, the agent into an agent performance range based at least in part on the ranking step;
dividing, by the one or more computers, callers in a set of callers into a plurality of partitions based on one or more criteria;
determining, by the one or more computers, for each of the partitions, a result value for at least a first one of the agent performance ranges and a result value for a second one of the agent performance ranges;
calculating, by the one or more computers, a result value difference indicator for each of the partitions based at least in part on a difference between the result value of the first range of agent performance and the result value of the second range of agent performance; and
matching, by the one or more computers, respective agents having respective performance data with respective callers in one of the partitions based at least in part on the result value difference indicators of the partitions.
35. The method as defined in claim 34, wherein the step of determining a result value comprises determining an average result value for a particular result of the range of agent performance.
36. The method as defined in claim 34, wherein the partitioning is based at least in part on one or more selected from the group consisting of demographic data, area code, zip code, NPANXX, VTN, geographic area, 800 number, and transfer number.
37. The method defined in claim 34 wherein the result value comprises a value selected from the group consisting of sales, number of goods sold per phone, and revenue per phone combined with processing time.
38. The method defined in claim 34 wherein the matching step may be based at least in part on a rule that assigns better performing agents to callers from one of the partitions in which the result value difference indicator is relatively higher than result value difference indicators of other partitions, wherein better performing agents are determined based at least in part on agent performance data for each agent relative to agent performance data for other agents.
39. The method as defined in claim 34 wherein the matching step further comprises the steps of:
calculating, by the one or more computers, a ranking or percentile of the partition based on a delta from a high delta to a low delta based at least in part on the first number of calls;
calculating, by the one or more computers, a ranking or percentile of agent performance for each agent in the set of agents based at least in part on the respective agent performance data and the second number of calls; and
matching, by the one or more computers, the respective agents to the respective callers based at least in part on a rule that minimizes a difference between a partition percentile of the result value difference indicators for the respective caller partitions and a performance percentile of the respective agents.
40. The method as defined in claim 34, wherein the matching step is performed in a pair-wise manner based at least in part on using a multiple data element pattern matching algorithm to obtain a score or other indicator for each of a plurality of caller-agent pairs, the caller-agent pairs being from a set of agents and a set of callers.
41. The method as defined in claim 34, the method further comprising: correcting, by the one or more computers, the time effect by subtracting from the agent performance data an epoch average from a sample of the required outcome data, wherein the epoch average comprises an average selected from one of the group consisting of hourly daily required outcome data, daily weekly required outcome data, and hourly weekly required outcome data from epochs in which the respective calls occur, thereby obtaining a new target outcome variable.
42. The method as defined in claim 34, the method further comprising: correcting, by the one or more computers, the time effect by dividing the agent performance data by an epoch mean from samples of the required outcome data, wherein the epoch mean comprises a mean selected from one of the group consisting of hourly daily required outcome data, and hourly weekly required outcome data from epochs in which the respective calls occur, thereby obtaining a new target outcome variable.
43. The method as defined in claim 34, the method further comprising: correcting, by the one or more computers, the time effect by forming an outer product by combining the hourly demand result data for each day, the daily demand result data for each week, and the hourly demand result data for each week from the epoch in which each call occurred, thereby obtaining a time effect factor; and
calculating, by the one or more computers, the agent performance using the temporal effector in a Bayesian mean regression calculation of agent performance.
44. The method as defined in claim 34, the method further comprising:
switching, by the one or more computers, between a result value difference indicator matching algorithm and a second matching algorithm different from the result value difference indicator matching algorithm based on one or more criteria; and
when the second matching algorithm has been switched to, executing, by the one or more computers, the second matching algorithm to match a respective one of the agents to a respective one of the callers.
45. The method as defined in claim 44, the method further comprising:
obtaining, by the one or more computers, result data in the matching step using each of the result value difference indicator matching algorithm and the second matching algorithm;
determining a switch point in a distribution of agent performance and/or a distribution of caller propensity, wherein a result obtained from one of the algorithms is better than a result obtained from another of the algorithms; and
switching, by the one or more computers, between the algorithms using the switch point.
46. The method as defined in claim 34, the method further comprising:
switching, by the one or more computers, between a result value difference indicator matching algorithm and a second matching algorithm based on one or more criteria, the second matching algorithm configured to match individual agents having individual ranks or percentiles with callers in one of the partitions, the individual agents and individual callers having a closest rank or percentile; and
executing, by the one or more computers, the second matching algorithm to match a respective one of the agents to a respective one of the callers when switching to the second matching algorithm.
47. A call mapping system using distributed compensation, the system comprising:
one or more computers configured with program code that, when executed, performs the steps of:
obtaining, by the one or more computers, agent performance data for a set of agents;
ranking, by the one or more computers, the agents based at least in part on the agent performance data;
dividing, by the one or more computers, the agent into an agent performance range based at least in part on the ranking step;
dividing, by the one or more computers, callers in a set of callers into a plurality of partitions based on one or more criteria;
determining, by the one or more computers, for each of the partitions, a result value for at least a first one of the agent performance ranges and a result value for a second one of the agent performance ranges;
calculating, by the one or more computers, a result value difference indicator for each of the partitions based at least in part on a difference between the result value of the first range of agent performance and the result value of the second range of agent performance; and
matching, by the one or more computers, respective agents having respective performance data with respective callers in one of the partitions based at least in part on the result value difference indicators of the partitions.
48. The system as defined in claim 47, wherein the step of determining a result value comprises determining an average result value for a particular result of the range of agent performance.
49. The system as defined in claim 47, wherein the partition is based at least in part on one or more selected from the group consisting of demographic data, area code, zip code, NPANXX, VTN, geographic area, 800 number, and transfer number.
50. The system as defined in claim 47 wherein the result value comprises a value selected from the group consisting of sales, number of items sold per phone, and revenue per phone combined with processing time.
51. The system as defined in claim 47, wherein the matching step may be based at least in part on a rule that assigns better performing agents to callers from one of the partitions in which the result value difference indicator is relatively higher than result value difference indicators of other partitions, wherein better performing agents are determined based at least in part on agent performance data for each agent relative to agent performance data for other agents.
52. The system as defined in claim 47 wherein the step of computing the match further comprises the steps of:
calculating, by the one or more computers, a ranking or percentile of the partition based on a delta from a high delta to a low delta based at least in part on the first number of calls;
calculating, by the one or more computers, a ranking or percentile of agent performance for each agent in the set of agents based at least in part on the respective agent performance data and the second number of calls; and
matching, by the one or more computers, the respective agents to the respective callers based at least in part on a rule that minimizes a difference between a partition percentile of the result value difference indicators for the respective caller partitions and a performance percentile of the respective agents.
53. The system as defined in claim 47, wherein the matching step is performed in a pairwise manner based at least in part on using a multiple data element pattern matching algorithm to obtain a score or other indicator for each of a plurality of caller-agent pairs, the caller-agent pairs from a set of agents and a set of callers.
54. The system as defined in claim 47, the system further comprising: correcting, by the one or more computers, the time effect by subtracting from the agent performance data an epoch average from a sample of the required outcome data, wherein the epoch average comprises an average selected from one of the group consisting of hourly daily required outcome data, daily weekly required outcome data, and hourly weekly required outcome data from epochs in which the respective calls occur, thereby obtaining a new target outcome variable.
55. The system as defined in claim 47, the system further comprising: correcting, by the one or more computers, the time effect by dividing the agent performance data by an epoch mean from samples of the required outcome data, wherein the epoch mean comprises a mean selected from one of the group consisting of hourly daily required outcome data, and hourly weekly required outcome data from epochs in which the respective calls occur, thereby obtaining a new target outcome variable.
56. The system as defined in claim 47, the system further comprising: correcting, by the one or more computers, the time effect by forming an outer product by combining the hourly demand result data for each day, the daily demand result data for each week, and the hourly demand result data for each week from the epoch in which each call occurred, thereby obtaining a time effect factor; and
calculating, by the one or more computers, the agent performance using the temporal effector in a Bayesian mean regression calculation of agent performance.
57. The system as defined in claim 47, wherein the one or more computers are configured with program code that, when executed, performs the steps of:
switching, by the one or more computers, between a result value difference indicator matching algorithm and a second matching algorithm different from the result value difference indicator matching algorithm based on one or more criteria; and
when switched to the second matching algorithm, executing, by the one or more computers, the second matching algorithm to match a respective one of the agents to a respective one of the callers.
58. The system as defined in claim 57, wherein the one or more computers are configured with program code that, when executed, performs the steps of:
obtaining, by the one or more computers, result data in the matching step using each of the result value difference indicator matching algorithm and the second matching algorithm;
obtaining or receiving, by the one or more computers, a switch point in a distribution of agent performance and/or a distribution of caller propensity, wherein a result obtained from one of the algorithms is better than a result obtained from another of the algorithms; and
switching, by the one or more computers, between the algorithms using the switch point.
59. The system as defined in claim 47, wherein the one or more computers are configured with program code that, when executed, performs the steps of:
switching, by the one or more computers, between a result value difference indicator matching algorithm and a second matching algorithm based on one or more criteria, the second matching algorithm configured to match individual agents having individual ranks or percentiles with callers in one of the partitions, the individual agents and individual callers having a closest rank or percentile; and
executing, by the one or more computers, the second matching algorithm to match a respective one of the agents to a respective one of the callers when switching to the second matching algorithm.
60. A call mapping system using distributed compensation, the system comprising:
means for obtaining, by the one or more computers, agent performance data for a set of agents;
means for ranking, by the one or more computers, the agents based at least in part on the agent performance data;
means for dividing, by the one or more computers, the agent into an agent performance range based at least in part on the ranking step;
means for dividing, by the one or more computers, callers in a set of callers into a plurality of partitions based on one or more criteria;
means for determining, by the one or more computers, for each of the partitions, a result value for at least a first one of the agent performance ranges and a result value for a second one of the agent performance ranges;
means for calculating, by the one or more computers, a result value difference indicator for each of the partitions based at least in part on a difference between the result value of the first range of agent performance and the result value of the second range of agent performance; and
means for matching, by the one or more computers, respective agents having respective performance data with respective callers in one of the partitions based at least in part on the result value difference indicators of the partitions.
61. A call mapping method using distributed compensation, the method comprising:
obtaining, by one or more computers, agent parameter data for a set of agents logged into a call center;
ranking or percentile ranking, by the one or more computers, the agents based at least in part on the agent parameter data to obtain an agent ranking or percentile agent distribution;
ranking or percentile the callers, by the one or more computers, based at least in part on data related to caller propensity for a desired outcome or the data predicting caller propensity for a desired outcome to obtain a caller ranked or percentile distribution;
performing, by the one or more computers, distribution compensation using the following algorithm:
an edge compensation algorithm applied to at least one selected from the group consisting of a distribution of agent rankings or percentiles and a distribution of caller rankings or percentiles near at least one edge of the respective portion, thereby obtaining an edge compensated ranking or percentile; and matching, by the one or more computers, a respective one of the agents with a respective one of the callers based at least on its respective ranking or percentile, wherein at least one of the caller ranking or percentile and the agent ranking or percentile receives a distribution compensation.
62. The method as defined in claim 61, wherein performing the distribution compensation step uses the edge compensation algorithm to provide edge compensation only for agent rankings or percentiles.
63. The method defined in claim 61, wherein performing the distribution compensation step uses the edge compensation algorithm to provide edge compensation only for caller rankings or percentiles.
64. The method defined in claim 61, wherein performing the distribution compensation step uses the edge compensation algorithm to provide edge compensation for caller rankings or percentiles and agent rankings or percentiles.
65. The method as defined in claim 61, wherein the distribution compensation step uses the edge compensation algorithm to take runtime free agents and readjust individual agent rankings or percentiles for the runtime free agents to provide more space/white space at the edges of the agent distribution.
66. The method as defined in claim 65, wherein the amount of white space is based at least in part on a number of agents that are free at runtime.
67. The method as defined in claim 61, wherein said distribution compensation step uses said edge compensation algorithm to take callers that are in a queue or other grouping at runtime and to re-adjust individual caller propensity rankings or percentiles to provide more space/white space at the edges of said distribution.
68. The method as defined in claim 67, wherein the amount of white space is based at least in part on a number of callers that are in a queue or other grouping at runtime.
69. The method as defined in claim 61, wherein the distribution compensation step uses the edge compensation algorithm to weight a plurality of agents logged at runtime near at least one edge of the agent distribution and to weight a plurality of callers near at least one edge of the caller distribution to increase utilization of agents near the at least one edge of the agent distribution.
70. The method as defined in claim 61, wherein the distribution compensation step uses the edge compensation algorithm to weight a number of agents that are free at runtime near both edges of the agent distribution or to weight a number of callers near both edges of the caller distribution.
71. The method as defined in claim 61, the method further comprising: dividing, by one or more computers, the caller into a set of partitions, wherein the partition of the caller is based at least in part on one or more selected from the group consisting of demographic data, area code, zip code, NPANXX, VTN, geographic area, 800 number, and transfer number; and obtaining, by one or more computers, caller propensity data for each of the partitions, wherein the ranking or percentile of the callers is based at least in part on the divided caller propensity data for the respective caller.
72. The method defined in claim 61, wherein the agent performance data includes data selected from the group consisting of sales, number of items sold per telephone, and call processing time.
73. The method as defined in claim 61, when multiple agents are available and there is only one caller, and Kappa for the agent distribution is greater than 1.0.
74. The method as defined in claim 61, when there are multiple callers and only one agent, Rho applied to the callers is greater than 1.0.
75. A call mapping system using distributed compensation, the system comprising:
one or more computers configured with program code that, when executed, causes the following steps to be performed:
obtaining, by the one or more computers, agent parameter data for a set of agents logged into a call center;
ranking or percentile ranking, by the one or more computers, the agents based at least in part on the agent parameter data to obtain an agent ranking or percentile agent distribution;
ranking or percentile the callers, by the one or more computers, based at least in part on data related to caller propensity for a desired outcome or the data predicting caller propensity for a desired outcome to obtain a caller ranked or percentile distribution;
performing, by the one or more computers, distribution compensation using the following algorithm:
an edge compensation algorithm applied to at least one selected from the group consisting of a distribution of agent rankings or percentiles and a distribution of caller rankings or percentiles near at least one edge of the respective portion, thereby obtaining an edge compensated ranking or percentile; and
matching, by the one or more computers, a respective one of the agents with a respective one of the callers based at least on its respective ranking or percentile, wherein the caller ranking or percentile and at least one of the agent ranking or percentile receive a distribution compensation.
76. The system as defined in claim 75, wherein performing the distribution compensation step uses the edge compensation algorithm to provide edge compensation only for agent rankings or percentiles.
77. The system as defined in claim 75, wherein performing the distribution compensation step uses the edge compensation algorithm to provide edge compensation only for caller rankings or percentiles.
78. The system as defined in claim 75, wherein performing the distribution compensation step uses the edge compensation algorithm to provide edge compensation for caller rankings or percentiles and agent rankings or percentiles.
79. The system as defined in claim 75, wherein the distribution compensation step uses the edge compensation algorithm to take runtime logged in agents and readjust individual agent rankings or percentiles for those runtime idle agents to provide more space/white space at the edges of the agent distribution.
80. The system as defined in claim 79, wherein the amount of white space is based at least in part on a number of agents that are free at runtime.
81. The system as defined in claim 75, wherein said distribution compensation step uses said edge compensation algorithm to take callers that are in a queue or other grouping at runtime and to re-adjust individual caller propensity rankings or percentiles to provide more space/white space at the edges of said distribution.
82. The system defined in claim 81, wherein the amount of white space is based at least in part on a number of callers that are in a queue or other grouping at runtime.
83. The system defined in claim 75, wherein the distribution compensation step uses the edge compensation algorithm to weight a plurality of agents that are free at runtime near at least one edge of the agent distribution and to weight a plurality of callers near at least one edge of the caller distribution to increase utilization of agents near the at least one edge of the agent distribution.
84. The system as defined in claim 75, wherein the distribution compensation step uses the edge compensation algorithm to weight a number of agents that are free at runtime near two edges of the agent distribution or to weight a number of callers near two edges of the caller distribution.
85. The system as defined in claim 75, wherein the one or more computers configured with program code, when executed, cause the following steps to be performed: dividing, by one or more computers, the caller into a set of partitions, wherein the partition of the caller is based at least in part on one or more selected from the group consisting of demographic data, area code, zip code, NPANXX, VTN, geographic area, 800 number, and transfer number; and obtaining, by one or more computers, caller propensity data for each of the partitions, wherein the ranking or percentile of the callers is based at least in part on the divided caller propensity data for the respective caller.
86. The system as defined in claim 75, wherein said agent performance data includes data selected from the group consisting of sales, number of items sold per telephone, and call processing time.
87. The system as defined in claim 74, when multiple agents are available and there is only one caller, and Kappa for the agent distribution is greater than 1.0.
88. The system defined in claim 74, when there are multiple callers and only one agent, Rho applied to the callers is greater than 1.0.
89. A call mapping system using distributed compensation, the system comprising:
means for obtaining, by the one or more computers, agent parameter data for a set of agents logged into a call center;
means for ranking or percentile ranking, by the one or more computers, the agents based at least in part on the agent parameter data to obtain an agent ranking or percentile agent distribution;
means for ranking or percentile ranking the callers based at least in part on data, by the one or more computers, that is related to or predicts caller propensity for a desired outcome to obtain a caller ranked or percentile caller distribution;
means for performing, by the one or more computers, distribution compensation using the following algorithm:
an edge compensation algorithm applied to at least one selected from the group consisting of
Distribution of agent rankings or percentiles of one edge and caller rankings or percentiles
At least one of the group consisting of, thereby obtaining a ranking or percentile of edge compensation; and
means for matching, by the one or more computers, a respective one of the agents with a respective one of the callers based at least on its respective ranking or percentile, wherein at least one of the caller ranking or percentile and the agent ranking or percentile is subject to distribution compensation.
Applications Claiming Priority (9)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261615779P | 2012-03-26 | 2012-03-26 | |
| US201261615772P | 2012-03-26 | 2012-03-26 | |
| US201261615788P | 2012-03-26 | 2012-03-26 | |
| US61/615,788 | 2012-03-26 | ||
| US61/615,779 | 2012-03-26 | ||
| US61/615,772 | 2012-03-26 | ||
| US13/843,541 US8565410B2 (en) | 2012-03-26 | 2013-03-15 | Call mapping systems and methods using variance algorithm (VA) and/or distribution compensation |
| US13/843,541 | 2013-03-15 | ||
| PCT/US2013/033268 WO2013148454A1 (en) | 2012-03-26 | 2013-03-21 | Call mapping systems and methods using variance algorithm (va) and/or distribution compensation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1206893A1 HK1206893A1 (en) | 2016-01-15 |
| HK1206893B true HK1206893B (en) | 2018-03-02 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN106878572B (en) | Method, system and article of manufacture for processing contacts and agents in a contact center system | |
| US20220141339A1 (en) | Call mapping systems and methods using variance algorithm (va) and/or distribution compensation | |
| HK1233806A1 (en) | A method, system and article of manufacture for handling contacts and agents in a contact center system | |
| HK1206893B (en) | Call mapping systems and methods using variance algorithm (va) and/or distribution compensation | |
| HK1233806B (en) | A method, system and article of manufacture for handling contacts and agents in a contact center system | |
| HK1208975B (en) | Call mapping systems and methods using bayesian mean regression (bmr) |