Agent training sensitive call routing system

Information

  • Patent Grant
  • 10447855
  • Patent Number
    10,447,855
  • Date Filed
    Thursday, April 20, 2017
    7 years ago
  • Date Issued
    Tuesday, October 15, 2019
    5 years ago
  • Inventors
  • Examiners
    • Deane, Jr.; William J
    Agents
    • Tully Rinckey PLLC
    • Hoffberg; Steven M.
Abstract
A call-management method and system for distributing calls to agents, wherein each agent has a profile, e.g., defining agent skills, efficiency, etc. The call center management system implements an algorithm for selecting an agent to receive a call to optimize caller utility, call center efficiency, and agent training. Therefore, the algorithm does not seek to necessarily route a call to the agent having the skill set most suited to the call; rather, the call may be routed to an agent who needs experience in the area of the call, and thus serves as a training exercise. Skilled agents may be made available to shadow the training agent when available.
Description
TECHNICAL FIELD

The present invention relates generally to organized telecommunications systems and more particularly to a system and method for distributing communications among multiple possible destinations based on sensitivity to agent training status.


BACKGROUND OF THE INVENTION

The Call Center


A “call center” is an organization of people, telecommunications equipment and management software, with a mission of efficiently handling electronic customer contact. A typical call center must balance competing goals. Customers should experience high quality and consistent service as measured, for example, by how long the customer's call must wait in queue before being answered and receiving satisfactory service. At the same time, this service should be provided to make efficient use of call center resources.


Strategies for Call Center Management


“Workforce management” systems provide important tools for meeting the goals of the call center. These systems generate forecasts of call volumes and call handling times based on historical data, to predict how much staff will be needed at different times of the day and week. The systems then create schedules that match the staffing to anticipated needs.


Typically, an Automatic Call Distribution (ACD) function is provided in conjunction with a computerized Private Branch Exchange (PBX). This ACD function enables a group of agents, termed ACD agents, to handle a high volume of inbound calls and simultaneously allows a queued caller to listen to recordings when waiting for an available ACD agent. The ACD function typically informs inbound callers of their status while they wait and the ACD function routes callers to an appropriate ACD agent on a first-come-first-served basis.


Today, all full-featured PBXs provide the ACD function and there are even vendors who provide switches specifically designed to support the ACD function. The ACD function has been expanded to provide statistical reporting tools, in addition to the call queuing and call routing functions mentioned above, which statistical reporting tools are used to manage the call center. For example, ACD historical reports enable a manager to identify times: (a) when inbound callers abandon calls after long waits in a queue because, for example, the call center is staffed by too few ACD agents and (b) when many ACD agents are idle. In addition, ACD forecasting reports, based on the historical reports, allow the manager to determine appropriate staffing levels for specific weeks and months in the future.


Queue Management


ACD systems experience high traffic periods and low traffic periods. Consequently, ACD systems must be capable of automating two major decisions. The first major decision may be referred to as the “agent selection decision,” i.e., when more than one agent is available to handle the next transaction, which agent should be chosen? The second major decision may be referred to as the “transaction selection decision,” i.e., when more than one transaction is waiting for the next available agent and an agent becomes available, which transaction should the agent handle?


One approach to the agent selection decision is to set up a sequencing scheme, so that the switch of the ACD system follows the same sequence of agents until the first available agent in the sequence is found. The concern with this approach is that it creates “hot seats,” i.e. an inequitable distribution of inbound calls to ACD agents who are high in the sequence. Most current ACD systems solve the agent selection decision by using a longest-idle-eligible-agent approach to provide a more equitable distribution of transactions.


There are also different approaches to the transaction selection decision in which there are more available transactions than there are ACD agents. One approach is to create one or more first-in, first-out (FIFO) queues. Under this approach, each transaction may be marked with a priority level by the switch of the ACD system. When an agent becomes available, the transaction with the highest priority is routed to the agent. If several calls of equal priority are waiting in a queue, the call which has been waiting the longest is routed to the available agent. If the call center conducts outbound transactions, each transaction is similarly submitted to a FIFO queue with a priority designation, with the switch routing transactions from the queue to the agents.


Queue/Team Management


Calls that arrive at a call center generally are classified into “call types” based on the dialed number and possibly other information such as calling number or caller responses to prompts from the network. The call center is typically served by an automatic call distributor (ACD), which identifies the call type of each incoming call and either delivers or queues it. Each call type may have a separate first-in-first-out queue in the ACD. In most existing call centers, the agents answering calls are organized into one or more “teams,” with each team having primary responsibility of the calls in one or more queues. This paradigm is sometimes referred to as “queue/team.”


In the queue/team model, scheduling for each team can be done independently. Suppose, for example, that the call center handles calls for sales, service, and billing, and that each of these call types is served by a separate team. The schedule for sales agents will depend on the forecast for sales call volume and on various constraints and preferences applicable to the agents being scheduled, but this schedule is not affected by the call volume forecast for service or billing. Further, within the sales team, agents are typically considered interchangeable from a call handling viewpoint. Thus, within a team, schedule start times, break times and the like, may be traded freely among agents in the team to satisfy agent preferences without affecting scheduled call coverage. See, U.S. Pat. No. 5,325,292, expressly incorporated herein by reference.


In a queue/team environment, when a new call arrived, the ACD determines the call type and places it in the queue, if all agents are busy, or allocates this call to the team member who had been available the longest.


Skill-Based Routing


The longest-idle-agent approach and the FIFO approach function well in applications having little variation in the types of transactions being handled by the ACD agents. If all agents can handle any transaction, these approaches provide a sufficiently high level of transactional throughput, i.e., the number of transactions handled by the call center in a particular time interval. However, in many call center environments, the agents are not equally adept at performing all types of transactions. For example, some transactions of a particular call center may require knowledge of a language other than the native language of the country in which the call center is located. As another example, some transactions may require the expertise of “specialists” having training in the specific field to which the transaction relates, since training all agents to be knowledgeable in all areas would be cost-prohibitive. For ACD applications in which agents are not equally adept at performing all transactions, there are a number of problems which at least potentially reduce transactional throughput of the call center. Three such problems may be referred to as the “under-skilled agent” problem, the “over-skilled agent” problem, and the “static grouping” problem.


The under-skilled agent problem reduces transactional throughput when the switch routes transactions to ACD agents who do not have sufficient skills to handle the transactions. For example, a call may be routed to an English-only speaking person, even though the caller only speaks Spanish. In another example, the transaction may relate to product support of a particular item for which the agent is not trained. When this occurs, the agent will typically apologize to the customer and transfer the call to another agent who is capable of helping the customer. Consequently, neither the agent's nor the customer's time is efficiently utilized.


Inefficient utilization is also a concern related to the over-skilled agent problem. A call center may have fixed groupings of agents, with each group having highly trained individuals and less-experienced individuals. Call-management may also designate certain agents as “specialists,” since it would be cost prohibitive to train all agents to be experts in all transactions. Ideally, the highly skilled agents handle only those transactions that require a greater-than-average skill level. However, if a significant time passes without transactions that require highly skilled agents, the agents may be assigned to calls for which they are over-qualified. This places the system in a position in which there is no qualified agent for an incoming call requiring a particular expertise because the agents having the expertise are handling calls that do not require such expertise. Again, the transactional throughput of the call center is reduced.


Current ACD systems allow agents to be grouped according to training. For example, a product support call center may be divided into four fixed, i.e., “static,” groups, with each group being trained in a different category of products sold by the company. There are a number of potentially negative effects of static grouping. Firstly, the call center management must devise some configuration of agents into groups. This may be a costly process requiring extensive analysis and data entry. Secondly, the configuration that is devised is not likely to be optimal in all situations. The pace and mix of transactions will change during a typical day. At different times, the adverse effects of the under-skilled agent problem and the adverse effects of the over-skilled agent problem will vary with respect to the transactional throughput of the call center. Thirdly, when a new product is released, the devised configuration likely will be less valuable. In response to changes in the size, pace and mix of the transaction load over the course of time, call management must monitor and adjust the performance of the current grouping configuration on an ongoing basis. When trends are detected, the grouping configuration should be changed. This requires the time and attention of call center managers and supervisors. Again, the transactional throughput is reduced.


It is thus known in the prior art to provide ACD systems that depart from the queue/team model described above. Calls are still categorized into call types. In place of queues for the call types, however, queues associated with “skills” are provided. The ACD's call distribution logic for the call type determines which queue or queues a call will occupy at various times before it is answered. Agents are not organized into teams with exclusive responsibility for specific queues. Instead, each agent has one or more identified “skills” corresponding to the skills-based queues. Thus, both a given call and a given agent may be connected to multiple queues at the same time. Agent skills designations may be further qualified, for example, as “primary” or “secondary” skills, or with some other designation of skill priority or degree of skill attainment. The ACD call distribution logic may take the skill priority levels into account in its call distribution logic.


In a skills-based routing environment, the “matching” of calls to agents by the ACD becomes more sophisticated and thus complicated. Agents who have more than one skill no longer “belong” to a well-defined team that handles a restricted set of calls. Instead, the skills definitions form “implicit” teams that overlap in complex ways. If, for example, a call center has 10 skills defined, then agents could in principle have any of 1024 possible combinations (210) of those skills. Each skill combination could be eligible to handle a different subset of the incoming calls, and the eligible subset might vary with time of day, number of calls in queue, or other factors used by the ACD in its call routing decisions.


Today, call center managers want to connect a caller to an ACD agent having exactly the right skills to serve the caller. However, “skills based” ACD agent groups are often small and, as a result, whenever an inbound call arrives, all such “skills based” ACD agents may be busy. In such instances, the ACD function can take call back instructions from the caller and the ACD function can manage the call back functions, for example, by assigning such calls, in accordance with the caller instructions, to a “skills based” ACD agent whenever one becomes available.


Scheduling of agents in a skills-based environment is thus a much more difficult problem than it is in a queue/team environment. In a skills-based environment, call types cannot be considered in isolation. Thus, for example, a heavy volume of Service calls might place higher demands on multi-skilled agents, causing an unforeseen shortage of coverage for Billing calls. Further, agents with different skills cannot be considered interchangeable for call handling. Thus, trading lunch times between a Sales-only agent and a multi-skill agent might lead to over-staffing Sales at noon while under-staffing Service at 1:00 p.m. This would lead to undesirable results. Moreover, with respect to the needs of a particular call type, a multi-skilled agent might provide no help over a given span of time, might be 100% available for calls of that type, or might be available part of the time and handling other call types for another part of time.


All agents having a particular combination of skills may be deemed a “skill group.” A central problem of skills-based scheduling is then finding a way to predict what fraction of scheduled agents from each skill group will be available to each call type during each time interval being scheduled. If these fractions are known, then the effect of different agent schedules can be generated. Unfortunately, it is difficult or impossible to calculate the skill group availability fractions directly. These functions depend on the relative and absolute call volumes in each call type, on the particulars of the skills-based call distribution algorithms in the ACD, and on the skills profiles of the total scheduled agent population. Particularly as ACD skills-based routing algorithms themselves evolve and become more sophisticated, the factors affecting skill group availability become too complex for direct analysis. One proposed solution provides a feedback mechanism involving call handling simulation and incremental scheduling, to schedule agents in a skills-based routing environment. See, U.S. Pat. No. 6,044,355, expressly incorporated herein in its entirety.


In accordance with this “skills-based scheduling” method, a computer implemented tool is used to determine an optimum schedule for a plurality of scheduled agents in a telephone call center, each of the plurality of scheduled agents having a combination of defined skills. The plurality of scheduled agents are organized into “skill groups” with each group including all scheduled agents having a particular combination of skills. The method begins by generating a plurality of net staffing arrays, each net staff array associated with a given call type and defining, for each time interval to be scheduled, an estimate of a difference between a given staffing level and a staffing level needed to meet a current call handling requirement. In addition to the net staffing arrays, the method uses a plurality of skills group availability arrays, each skills group availability array associated with the given call type and defining, for each combination of skill group and time interval to be scheduled, an estimate of a percentage of scheduled agents from each skill group that are available to handle a call. According to the method, the plurality of arrays are used to generate a proposed schedule for each of the plurality of scheduled agents. Thereafter, a call handling simulation is then run against the proposed schedule using a plurality of ACD call distribution algorithms (one for each call type being scheduled). Based on the results of the call handling simulation, the net staffing arrays and the skills availability arrays are refined to more accurately define the net staffing and skills usage requirements. The process of generating a schedule and then testing that schedule through the simulator is then repeated until a given event occurs. The given event may be a determination that the schedule meets some given acceptance criteria, a passage of a predetermined period of time, a predetermined number of iterations of the process, or some combination thereof. A proposed schedule is “optimized” when it provides an acceptable call handling performance level and an acceptable staffing level in the simulation. Once the proposed schedule is “optimized,” it may be further adjusted (within a particular skill group) to accommodate agent preferences.


U.S. Pat. No. 5,206,903 to Kohler et al. describes ACD equipment which uses static grouping. Each static group of agents is referred to as a “split,” and each split is associated with a different queue. The agents are assigned to splits according to skills. Within a single split, the agents may be limited to knowledge of different subtypes of transactions. Preferably, there is at least one agent in each split who is trained to handle calls of any of the subtypes within the particular split. This “expert” may also be trained to efficiently handle calls of other types, i.e., other splits. Each agent possesses up to four skill numbers that represent various abilities of the agent with respect to handling transactions related to subtypes and types of transactions. The ACD equipment assigns each incoming call three prioritized skill numbers that estimate skill requirements of the incoming call. The skill numbers of the incoming call are considered “prioritized,” since they are viewed sequentially in searching for a match of the call with an agent, so that the second skill number of the call is unnecessary if a match is found using the first prioritized skill number. The incoming call is assigned the one, two or three prioritized skill numbers and is placed in the appropriate queue of the appropriate static group of agents. A search is made among the available agents for an agent-skill number that matches the first skill number of the call. If no match is found after a predetermined time delay, the second prioritized skill number of the call is used to find a match. If no match is found after a second predetermined time delay, the third prioritized skill number is considered. Then, if no match is still found, the ACD equipment of Kohler et al. expands the search of available agents to other groups of agents.


While the Kohler et al. patent does not directly address the problems associated with static groups, it does consider the skills of the individual agents. The prioritized skill numbers assigned to the incoming calls are logically ordered. The patent refers to the first skill number of a call as the primary call-skill indicator. This primary indicator is used to define the minimal skill level that is required for an agent to competently handle the call. Consequently, if a match is made with the primary indicator, the ACD agent may not be over-skilled or under-skilled. However, if the search is unsuccessful, the secondary call-skill indicator is utilized. The search for a match to the secondary indicator may cause the call to be routed to an agent having more than the minimal required skill. The third prioritized skill number that is assigned to the incoming call is referred to as the “tertiary” call-skill indicator. The tertiary indicator is yet another skill level beyond what is minimally required to competently handle a call. Since the tertiary indicator is utilized only if a match is not found for either of the primary or secondary indicators, an overly skilled agent of the appropriate group will handle the call only if that agent is the only available capable agent. Thus, more highly skilled agents are assigned only when their skills are required, or no lesser-skilled agent is available to handle the call.


Group Routing


Various types of conventional automatic distributors (ACDs) are available to distribute incoming calls to a group. Reservation and information services may be provided by large companies, such as major airlines, and may consist of geographically separated groups of agents that answer incoming calls distributed to the agents by separate ACDs. Agent communication terminals (ACTs) which are connected to an ACD are utilized by the agents to process incoming calls routed to a particular ACT by the ACD.


A PBX type ACD such as a Definity® ACD available from AT&T functions as a conventional PBX and further functions as an ACD to distribute incoming calls to local agents connected to the PBX. Another type of ACD consists of the utilization of an electronic telecommunication switch such as a 5ESS® switch available from AT&T which is capable of providing ACD service when supposed by ACTs coupled to the switch. Both types of ACD typically function as independent systems which handle incoming calls and make internal decisions concerning which agent will receive a given call. Both types of ACD systems are capable of generating statistical reports which can be monitored by a workstation coupled to the ACD system to allow a supervisor to monitor call handling statistics. Such data typically represents an average of statistics for a given system.


U.S. Pat. No. 4,737,983 to Frauenthal et al. addresses a method of balancing traffic loads to a plurality of customer ACDs. Each ACD periodically transmits call congestion data representing an accumulation of data for the ACD to a central database. Based on this data, the database determines a preferred ACD to which to route an incoming call. Although this technique may be generally sufficient for balancing certain traffic loads, it relies on accumulated or aggregate data on which to base decisions and, hence does not permit specific agents, i.e. ACTs, to be identified to receive a call.


In U.S. Pat. No. 4,953,204 to Cuschleg, Jr. et al., a method is described for queuing calls to a multi-location service provider having a plurality of ACDs. Decisions on routing a call to the ACD is based on the availability of a non-busy voice channel to the ACD. If all channels (circuits) are busy, a call is queued until an ACD becomes available to take the call as determined by a non-busy circuit to the respective ACD. However, the number of agents associated with a given ACD does not necessarily equal the number of circuits provided to the ACD. Thus, the monitoring of available circuits as the basis for queue management and the routing of calls does not correspond to actual agent availability.


Telephone call centers that handle calls to toll-free “800” numbers are well-known in the art. Typically, a company may have many call centers, all answering calls made to the same set of 800 numbers. Each of the company's call centers usually has an ACD or similar equipment capable of queuing calls. ACD management information systems keep statistics on agent and call status, and can report these statistics on frequent intervals. Such capabilities are in use today for centralized reporting and display of multi-location call center status.


In such systems, the company will want to distribute the calls to its call centers in a way that will optimally meet its business goals. Those goals might include low cost of call handling, answering most calls within a given amount of time, providing customized handling for certain calls, and many others. It is also known in the prior art that certain call routing criteria and techniques support a broad range of business goals. These include “load balancing,” “caller segmentation” and “geographic routing.” Load balancing refers to distribution of calls so that the expected answer delay for new calls is similar across all the call centers. If other considerations do not dictate otherwise, load balancing is desirable because it provides optimum efficiency in the use of agents and facilities, and it provides the most consistent grade of service to callers. In special situations it might be desirable to unbalance the load in a particular way, but control over the distribution of call load is still desired.


If the caller's identity can be inferred from the calling number, caller-entered digits, or other information, that identity may influence the choice of destination for the call. Call routing based on such information is referred to as caller segmentation. Also, it has been found desirable for particular call centers to handle calls from particular geographic areas. The motivation may be to minimize call transport costs, to support pre-defined call center “territories”, or to take advantage of agents specifically trained to handle calls from given locations. Such techniques are known as geographic routing.


The interexchange carriers who provide 800 service today generally support some form of “routing plan” to help achieve load balancing, caller segmentation and geographic routing. Typically these routing plans allow 800 call routing based on time of day, day of week, the caller's area code, caller-entered digits, and fixed percentage allocations. Predominately, however, the routing plans supported by the carriers are static in the sense that they do not automatically react to unexpected variations in incoming call volume or distribution, nor to actual call delays being experienced at each destination. Reaction to changing conditions is done via manual modification of the plan, on a time scale of minutes or hours.


Recent service offerings from some interexchange carriers offer some degree of automatic reaction to changing conditions. One such offering, called “alternate termination sequence” or “ATS” (from AT&T), allows customers to establish maximum numbers of calls to be queued for each destination, with a pre-defined alternative when a primary destination is overloaded. Another offering, referred to as “intelligent routing control” or “IRC” (from MCI), allows an ACD to refuse a call from the network, again resulting in pre-defined alternative call handling. A third kind of service, AT&T's Intelligent Call Processing, lets the interexchange network pass call-by-call data to a computer.


In a conventional ACD, phone calls are processed on a first-in, first-out basis: the longest call waiting is answered by the next available agent. Answering calls across multiple automated call distributors (ACD) is typically done on a first-in, first-out basis dependent upon time of receipt of the call by each ACD, whether the call is directly connected or forwarded.


U.S. Pat. No. 4,893,301 is an example of use of a multiple line interface modules with remote line interface connectivity to a PCM bus. Specifically, it discloses use of a portion of an ACD at a remote location from a call center which are connected together via a T-1 connection to perform centralized call processing. This is an example of a single ACD with remote input and processing rather than a network of multiple ACDs forming a virtual call center. In the invention described in this patent, it is possible to process calls at the single ACD on a first-in first-out basis.


U.S. Pat. No. 4,048,452 discloses an ACD where the time in queue for each call is measured and compared against upper and lower time thresholds. When time in queue exceeds an upper threshold, the call is re-directed, provided that the measured time in alternative queue for the oldest call is less than the threshold.


U.S. Pat. No. 4,737,983 discloses an ACD with a database with a pointer maintained to the next entry in a table to be initially selected in response to a next call routing query. Tests may be performed to determine if call should actually be routed to the selected ACD.


U.S. Pat. No. 4,757,529 discloses an ACD creating a separate queue for each call type, detecting when a terminal becomes available, and distributing waiting calls from different queues to servers in accordance with defined priority values.


U.S. Pat. No. 5,073,890 discloses an automatic call distributor for providing ACD service from remote ACD agents.


U.S. Pat. No. 5,278,898 discloses a system for managing a hold queue.


U.S. Pat. No. 5,309,513 discloses a telephone system comprising a plurality of automatic call distributors for receiving and distributing calls in a sequential order.


U.S. Pat. No. 5,369,695 discloses a facility for redirecting a call from one destination point to another, in which event a new timer value could be same as or different from prior timer value.


Another call distribution scheme is provided in Gechter et al., U.S. Pat. No. 5,036,535. This patent discloses a system for automatically distributing telephone calls placed over a network to one of a plurality of agent stations connected to the network via service interfaces, and providing status messages to the network. Gechter et al.'s disclosed system includes means for receiving the agent status messages and call arrival messages from the network, which means are connected via a network service interface to the network. Routing means responsive to the receiving means is provided for generating a routing signal provided to the network to connect the incoming call to an agent station through the network. In the system disclosed in Gechter et al, when an incoming call is made to the call router, it decides which agent station should receive the call, establishes a call with that agent station, and then transfers the original call onto the second call to connect the incoming caller directly to the agent station and then drops out of the connection. (See, Gechter et al., column 11, lines 45-51).


U.S. Pat. No. 5,193,110 issued to Jones et al discloses an integrated services platform for a telephone communications system which platform includes a plurality of application processing ports for providing different types of information services to callers. In Jones et al's disclosed system, a master control unit and a high speed digital switch are used to control processing of incoming phone calls by recognizing the type of service requested by the caller and then routing the call to the appropriate processing port. The Jones et al system is disclosed as an adjunct to current switching technology in public and private networks.


Intelligent Call Management


Call centers are also used to make outbound calls, for example for telemarketing. Agents making outbound calls, referred to as outbound agents, are typically separate from ACD agents handling inbound calls and call center software separately manages outbound call lists for outbound agents to ensure that each outbound agent wastes little time in dialing or in performing overhead operations.


A call center typically has multiple agents for answering incoming calls and placing outgoing calls. A call center may also have agents participating in outgoing call campaigns, typically in conjunction with an outbound call management system. Each agent may be assigned to a particular group, such as an inbound group or an outbound group. Agents can also be assigned to a supervisor team, which represents multiple agents that report to the same supervisor.


In certain situations, it is necessary to restrict an agent's activity to answering calls or handling a particular type of call (e.g., answering only incoming calls). For example, during an outbound campaign, the system placing the outbound calls and controlling the rate at which the calls are placed, e.g., a so-called predictive dialer, relies on the availability of the agent to handle an answered call. If the system places outbound calls expecting the agent to be available, but the agent instead places their own call to another agent or a supervisor, or has an incoming call connected to them, the outbound system may not have an agent available to handle an answered outbound call. Additionally, if an agent is assigned to handle incoming calls, but instead places a call to another agent or listens to voice mail messages, the number of queued incoming calls may increase, thereby increasing the waiting time experienced by the callers.


In existing call centers, agents can be manually switched from one group to another (e.g., from an inbound group to an outbound group). This switching may be performed by a supervisor using a terminal or other device coupled to the call center. In other systems, a supervisor may instruct particular agents to switch from inbound call processing to outbound call processing, or vice versa.


One document which provides considerable information on intelligent networks is “ITU-T Recommendation Q.1219, Intelligent Network User's Guide for Capability Set 1”, dated April, 1994. This document is incorporated herein by reference.


One known system proposes a call-management method and system for distributing calls to a plurality of individuals, such as automatic call distribution (ACD) agents, which routes calls to the individuals based upon a correlation of attributes of the individuals with calls that are tagged with identification of abilities that are advantageous to efficiently processing the calls. That is, for each call that is to be distributed, one or more skills that are relevant to efficient handling of the call are determined and then used to route the call to an appropriate individual. In addition, call management preferences may also be accommodated.


It is therefore apparent that the prior art has given a good deal of attention to the optimization of call center operations, including inbound automatic call directors, outbound predictive dialers, combined operations, agent scheduling, and call routing.


In general, the known optimization methods seek to minimize the immediate cost function for call center operation. Thus, factors relevant to a present cost of operations (“cost” being given a broad interpretation) are analyzed and an algorithm applied for minimization.


REFERENCES

The following references are considered pertinent to the present invention, and each is expressly incorporated herein by reference in its entirety:


U.S. Pat. Nos. 4,286,118; 4,677,663; 4,768,221; 4,797,911; 4,807,279; 4,852,149; 4,866,754; 4,878,243; 4,894,857; 4,924,501; 4,930,150; 4,933,964; 4,935,956; 4,941,168; 4,958,371; 4,975,841; 4979171; 4987587; 4998272; 5007000; 5007078; 5014298; 5016270; 5020095; 5020097; 5040208; 5048075; 5063522; 5070525; 5070526; 5073929; 5077789; 5081711; 5097528; 5103449; 5121422; 5128984; 5161181; 5163083; 5163087; 5164981; 5166974; 5168517; 5185786; 5214688; 5218635; 5224153; 5239574; 5251252; 5253289; 5276732; 5283818; 5289530; 5297146; 5297195; 5309504; 5309505; 5311574; 5311577; 5313516; 5319703; 5321745; 5327490; 5329579; 5333190; 5341412; 5341414; 5351285; 5359645; 5365575; 5381470; 5390236; 5400393; 5402474; 5420852; 5420919; 5425093; 5430792; 5432835; 5434906; 5436967; 5442693; 5448624; 5448631; 5459781; 5465286; 5467391; 5479487; 5479501; 5481596; 5485506; 5493690; 5495523; 5495528; 5502762; 5506898; 5511112; 5511117; 5515421; 5517566; 5519773; 5524140; 5524147; 5526417; 5528666; 5530931; 5533103; 5533107; 5533109; 5535257; 5537470; 5544220; 5544232; 5546452; 5546456; 5555290; 5555295; 5557668; 5559867; 5559878; 5561711; 5568540; 5570419; 5572576; 5572586; 5574784; 5577112; 5579377; 5579383; 5581602; 5581604; 5581607; 5586179; 5588049; 5590171; 5590188; 5592543; 5594790; 5594791; 5600710; 5610774; 5610978; 5619557; 5625676; 5625682; 5633917; 5633922; 5633924; 5636267; 5636268; 5638436; 5646986; 5646988; 5652788; 5655013; 5655014; 5657074; 5661283; 5675637; 5684863; 5687225; 5692033; 5692034; 5696809; 5696818; 5699418; 5701295; 5703935; 5715307; 5717741; 5724418; 5727154; 5729600; 5740233; 5740240; 5742675; 5748711; 5761285; 5768355; 5768360; 5774537; 5787156; 5787159; 5793846; 5796791; 5796816; 5799077; 5806071; 5812642; 5815551; 5815554; 5815566; 5822400; 5822401; 5822410; 5825869; 5828731; 5828734; 5835572; 5838772; 5838779; 5841852; 5848143; 5850428; 5854832; 5857013; 5867559; 5867564; 5867572; 5870464; 5872833; 5878126; 5878130; 5893902; 5894505; 5896446; 5898759; 5898762; 5901209; 5901214; 5903641; 5905792; 5905979; 5907601; 5907608; 5910982; 5912947; 5913195; 5914951; 5915011; 5917893; 5917903; 5918213; 5923745; 5923746; 5924016; 5926528; 5926539; 5930339; 5933480; 5933492; 5937055; 5937390; 5940493; 5940496; 5940497; 5940813; 5940947; 5943403; 5946387; 5946388; 5946394; 5949852; 5949854; 5949863; 5953332; 5953405; 5956392; 5956397; 5960073; 5963632; 5963635; 5966429; 5970132; 5970134; 5974120; 5974135; 5978465; 5978467; 5978471; 5982857; 5982868; 5987115; 5987116; 5987118; 5991391; 5991392; 5991393; 5991395; 5991604; 5991761; 5995614; 5995615; 5995948; 5999965; 6002760; 6005534; 6005928; 6005931; 6009149; 6011845; 6014439; 6016344; 6018579; 6021114; 6021190; 6021428; 6026149; 6026156; 6031899; 6035021; 6041116; 6041118; 6044135; 6044146; 6044149; 6044368; 6049599; 6052453; 6055307; 6058435; 6061347; 6064667; 6064730; 6064731; 6064973; 6067348; 6070142; 6072864; 6084943; 6097806; 6098069; 6102970; 6104801; 6115462; 6115693; 6118865; 6122358; 6122360; 6122364; 6122484; 6125178; 6128376; 6128380; 6130937; 6134530; 6137862; 6137870; 6144737; 6147975; 6148065; 6151387; 6154528; 6154535; 6157655; 6157711; 6170011; 6173052; 6175563; 6175564; 6178240; 6185283; 6185292; 6192121; 6192413; 6201950; 6205207; 6208970; 6212178; 6223165; 6226287; 6226289; 6226360; 6229888; 6230197; 6233332; 6243684; RE35,758; RE36,416; and RE37,001.


SUMMARY AND OBJECTS OF THE INVENTION

The present invention seeks to apply new methods of optimization for call routing. Thus, the present invention seeks to optimize long term call center operations, rather than immediate efficiency per se. Thus, at various times, the system performs functions which are different or even opposite the result expected to achieve highest short term efficiency. Preferably, however, during peak demand periods, the system assures high short term efficiency by switching or adapting mode of operation.


Therefore, according to the present invention, a number of additional factors are applicable, or the same factors analyzed in different ways, beyond those employed in existing optimizations. Since most call centers are operational for extended periods of time, by analyzing and optimizing significant cost factors beyond those contemplated by the prior art, a more global optimization may be achieved.


One critical long term cost factor in call center operations is agent training. While this is directly apparent for “help desks”, where the agents must be skilled in technical issues, it is also true in sales and service. Sales agents must be trained to close sales efficiently, with high customer satisfaction. This requires that the agent understand the customer's actual needs, price sensitivity, discretionary needs, and the available product or service to be sold. Training can assist agents in taking an order quickly, while avoiding incomplete transactions and non-purchase directed inquiries on a sales call.


In a service environment, the goal is to satisfy the customer at lowest cost to the company. Often, this comes through making a reasonable offer of compromise quickly, which requires understanding the issues raised by the customer. Delay leads to two costs; the agent's time, and the possibility of increased demands by the customer.


In technical support operations, the agent must understand the technical issues of the product or service. The agent must also understand the psychology of the user, who may be frustrated, angry, apologetic, or even lonely. The agent must often remotely diagnose the problem, or understand the information provided by the caller, and communicate a solution or resolution.


In each case, the caller characteristics and issues will often have a significant effect on the duration of the call. While, in general, more skilled agents will have a higher productivity, in some cases, the caller restricts throughput. Therefore, even though the agent is capable of completing the call quickly, the caller may cause inordinate delays. According to the present invention, through a number of methods, the caller characteristics are determined or predicted, and an appropriate agent selected based on the anticipated dynamic of the call. Thus, for example, if the anticipated call duration for a successful outcome, based on the caller characteristics is a minimum of 5 minutes (depending on the agent), then an agent who is likely to complete the call in about five minutes may be selected as the optimum; agents who would be able to complete the call within 4 minutes, while technically more productive, may have little impact on the actual call duration, and thus would be inefficiently employed. Likewise, an agent anticipated to complete the call in 6 minutes might be deemed inefficient, depending on the availability of other agents and additional criteria. The call may be selected as a training exercise. In this case, an agent is selected for whom training would be expected to operate with a certain degree of inefficiency to complete the call. In some cases, unsupervised training is instituted. In other cases, a training agent (or automated system) is allowed to shadow the call, providing assistance, instruction and/or monitoring of the trainee agent during the call. In this case, it would be anticipated that the call duration would be greater than 5 minutes, due to the training nature of the call. Further, the required trainer assistance further reduces immediate efficiency. However, as the agents in the pool become more skilled, long term efficiency increases.


More highly skilled agents are both worth more and generally command higher compensation. A program which trains agents internally is either required, due to lack of specific external training programs, or is cost effective, since new hires can be compensated at a lower rate than trained and experienced hires. Thus, for long-term operations, there is an incentive to train agents internally, rather than seeking to hire trained agents.


Agents may receive additional compensation for training activities, either for their training activities, performance based compensation based on the improvement of their trainees, or both. Thus, there is an incentive for agents to become skilled and to assist in the training. As a result, the average skill level and uniformity in a call center will increase. However, since the optimal skill palette within a call center typically is a moving target, the training process will never cease.


Often, live interaction is an important component of training. Therefore, a significant component of the training encompasses interaction with callers in real-world situations. Training often involves presenting agents with new challenges and experiences in order to assure breadth of exposure.


According to prior skill-based routing schemes, an agent skill level is considered a static upper limit on capabilities, and the ACD avoids distributing calls to agents below a threshold. Agents may be called upon to serve requests within their acknowledged skill set. On the other hand, according to the present invention, each call is considered a potential training exercise, in order to expand the capabilities of the agent. Therefore, to the extent that the nature of the call can be determined in advance, the incentive according to this scheme is to route the call to an agent who is barely capable of handling the call, and to avoid routing only to the best available agents. This strategy has other implications. Because agents are challenged continually, there is reduced incentive for an agent to limit his skills to avoid the “tougher” assignments. Further, a self-monitoring scheme may be implemented to determine the status of an agent's skill with each call. For example, agent performance is typically determined on a call-throughput basis, since call centers are managed on a man-hour requirement basis and agents compensated on a per-hour basis. Therefore, based on a presumed agent skill set and an estimation of the skills required for a given call, a call duration may be predicted. The actual duration is then compared with the predicted duration, providing a performance metric for the agent.


This scheme also allows determination of the pertinent factors for call duration, both based on the information about the call or caller and the skill set of the agent.


It is noted that, during peak demand periods, reduced productivity due to training is preferably minimized. Thus, as demand increases, high skill set agents are preferably reassigned from training to active status, while lower skill set agents are assigned to calls well within their capabilities. Thus, during such peak demand periods, the staffing requirement will be no worse than traditional call centers. On the other hand, since training is integrated with operations, over a period of time, the average skill of all agents will increase. Thus, more skilled agents will be available at peak periods, reducing overall staffing requirements over a long term.


It is noted that, while preferred embodiments of the invention involve the training of human agents, the invention is not so limited. The agents, which may be considered resources, may be automated devices which are capable or learning or training, e.g., so-called artificial agents, or even animals or other biological or hybrid systems. The state of the resource is preferably measured, predicted or modeled, to provide a skill set, skill profile, or aptitude rating. In some instances, e.g., where there is sufficient capacity in the system to permit short-term inefficiencies, a training mode or protocol is instituted, wherein the trainable resources are presented with training challenges. In this way, the resources are improved. On the other hand, when the available capacity is limited or deemed insufficient, a high-efficiency mode or protocol is adopted, to fill a short term demand on the system. Generally, a resource selected for efficient operation will differ from a resource for training operation, though this is not necessarily the case: an agent capable of training to perform a task generally has minimally sufficient skills for handling the task, albeit at lower efficiency than a trained resource. Likewise, even in the case of automated systems, it is sometimes undesirable to simply “clone” or copy a resource; rather, the internal logic and efficiency of such resources may differ; the trainer resource, for example, may have limited skills, be computationally inefficient, slow, require additional resources, or have high cost. (The trainer resource for an artificial agent may be, for example, a human.)


However, another reason for avoiding simply proliferating existing resources is that training errors in the trainer resources will propagate, without significant opportunity for remediation. Thus, for example, if the trainer resource is an artificial neural network, trained with real world example, erroneous data or artifacts will be propagated. On the other hand, training new resources without copying existing resources permits greater variety, and thus an ability to obtain new strategic paradigms. In some cases, resources (trainer or training) may be used in parallel, and a result selected by voting or selection of result through other known means. The parallel tasking will, of course, according to the present invention be reduced or eliminated when load handling requirements exceed available capabilities for such redundant (or partially redundant) activities.


In accordance with the present invention, an ACD function utilizes an Automatic Call Sharing (ACS) algorithm to enable inbound and outbound call functions to be performed by one ACD agent. Advantageously, in accordance with the present invention, ACD agent idle time is used to make outbound calls, while maintaining a desired level of service on inbound calls. As will be described in detail below, embodiments of the present invention accomplish the desired function by utilizing the ACS algorithm to determine when an ACD agent assignment to work on outbound calls will be given priority over the agent's waiting to work on inbound calls. Therefore, by combining inbound and outbound call handling, assuming that the skill sets for both tasks correspond, or that agents are capable of both, it is possible to staff a call center with sufficient headroom to allow non-emergent operational status most of the time.


Instead of maintaining skill disparities, the present invention seeks to minimize skill disparities between agents, making skill-based routing of calls within a center easier. Known call centers present issues due to small groups of agents having a requisite skill. On the other hand, as the proportion of agents with each skill increases, the ease of finding an agent with the right mix of skills is increased.


The present invention also provides a central database for skill set management, allowing a geographically dispersed call center or freelance agents to be called upon dynamically as required. Thus, if a peak demand period is much shorter than an agent shift, off-site freelance agents may be dynamically called upon, for example through the Internet, ISDN, POTS, DSL, Cable modem, or a VPN, to handle calls. In this case, the training of such off-site or freelance agents will generally differ from those who are in-house agents. For example, if freelance agents are called upon only during peak demand periods, these agents will be trained specifically for the skills in short supply during such periods.


In order to gage the skill set required of an agent for a call, a number of methods may be employed. Callers may use ACDs to instruct the system as to the nature of the call. Using a menu or hierarchal menu, a series of questions may be asked of callers in the queue to determine the identity of the caller and the nature of the call. Likewise, ANI/DNIS information, IP address or the like, or other communications channel identifier may be employed to identify the calling telephone communications channel. This, in turn, may be used to call a database record associated with the identity of the caller or communications channel.


In many instances, call centers are implemented to provide support for computer systems. It is known to provide a message automatically generated by a computer to identify the identity and status of the computer at a given time, and possibly the nature of a computer problem. The present invention allows this message to be associated with a direct semantic communication session with the user, for example to predefine the nature of the call and possibly the skill set required to address the issues presented. This information can also be used to trigger a call-back after the information is analyzed and an appropriate agent is available.


Often, a highly skilled agent will serve as mentor for the trainee, and “shadow” the call. Thus, the routing of a call may depend on availability of both trainee and skilled instructor.


Another aspect of call center efficiency impacted by this scheme is agent motivation. Because an agent with lower skill levels will be given assignments considered challenging, while more skilled agents given training assignments which may be considered desirable, there is an incentive for agents to progress, and likewise no incentive to avoid progressing. Thus, an agent will have no incentive to intentionally or subliminally perform poorly to avoid future difficult skill-based assignments.


In operation, the system works as follows. Prior to call setup, an estimation is made of the nature of the call and the prospective issues to be encountered. This is performed in standard manner, for example in an inbound call based on the number dialed, ANI/DNIS of the caller (with possible database past history lookup), selections made through automated menus, voice messages, or other triage techniques. In the case of outbound calls, a database of past history, demographic information (both particular to the callee and for the region of the call), and nature of the call may all be used to determine the projected agent skill set required for the call.


It is noted that, after initial call setup, the actual skill set required may become apparent, and the call may be rerouted to another agent.


Once the predicted skill sets are determined, these are then compared against a database of available agents and their respective skill sets. A weighting is applied based on perceived importance of selection criteria, and the requirements correlated with the available agent skill sets. When the call center is operating below peak capacity, marginally acceptable agents are selected to receive the call, possibly with a highly acceptable agent available if necessary or to monitor the call. When the call center is operating new peak capacity, the agents are assigned to minimize the anticipated man-hour burden (throughput) and/or wait time. Thus, peak throughput operation generally requires that agents operate within their proven skill sets, and that training be minimized. However, even during such peak periods, there may be significant training opportunities that should not be missed.


Each call is associated with a skill expression that identifies the skills that are relevant to efficient handling of the call. As previously noted, the preferred embodiment is one in which more than one relevant skill is identified, so that all of the factors that determine a “best” agent for handling a call can be considered. The relevant skills may be determined using different techniques. Automatic number identification (ANI) may be used to ascertain information regarding the calling party, while dialed number identification service (DNIS) may be used for information regarding the called party. Additional information may be gathered by means of interactive voice response (IVR) input and database lookups. For example, customer database retrieval allows call-management to determine a customer history and customer preferences.


The skill expression of a call includes the required skills and skill levels for efficiently handling the call. In one embodiment, the skills may be divided into two categories: mandatory and optional skills. Mandatory skills are those skills that an agent must possess in order to handle the call, even if the call remains in queue for an extended period of time, for example, language proficiency. Optional skills are those that are considered in the selection of the appropriate agent, but not critical.


It is noted that the peak/non-peak considerations may be applied on a call-by-call basis. Thus, certain callers may be privileged to have a shorter anticipated wait and greater efficiency service than others. Thus, these callers may be treated preferentially, without altering the essential aspects of the invention.


The present invention may also generate a set of reports directed to management of the call center. The quality of service reports are generated to indicate the effectiveness of the call-management method and system. An agent summary report is organized according to the activities of particular individuals, i.e. agents. A skill summary report organizes the data by skill expressions, rather than by agents. This report may list the number of calls requiring selected skill expressions and the average time spent on those calls. Other known report types are also possible. An important report type is the improvement in call center efficiency over time, i.e., decreased wait time, increased throughput, increased customer satisfaction, etc. Thus, each agent should demonstrate improved skills over time. Peak throughput should meet or exceed reasonable expectations based on a statically skill-routed call center. Other metrics may also be evaluated.


It is noted that the method according to the present invention provides a new optimization scheme method for automated call distribution. Therefore, the optimization scheme may generally be substituted for existing optimization schemes in such automated call distributors.


In addition, the present invention also suggests a new method of scheduling agents for work shifts. Rather than populating a set of required skill levels to fulfill anticipated needs, the work shift schedule includes complementary scheduling of trainers and trainees, both on a work shift level and shift rotation level.


It is therefore an object of the invention to provide a method of selecting a call handling agent handle a call, comprising the steps of identifying at least one characteristic of a call to be handled; determining whether the call center load is high; if the call center load is not high, selecting a first call handling agent having at least marginally sufficient skills to handle the call having the at least one characteristic, the call handling agent having a skill set determined to be deficient with respect to the characteristic, while also selecting a second call handling agent capable of training other agents with respect to the at least one characteristic to train the first call handling agent; and if the call center load is high, selecting a third call handling agent having at least marginally sufficient skills to handle the call having the at least one characteristic, the call handling agent having a skill set determined to be sufficient with respect to the characteristic.


It is also an object of the invention to provide a method of selecting an agent to handle a call, comprising the steps of, in response to availability of a call having a set of identified characteristics, selecting one of a plurality of agents who has a worst sufficient characteristic score for the individual call type to handle the call, including identifying a set of characteristics of the call, retrieving an agent profile, comprising a set of metrics corresponding to the set of identified characteristics, and selecting one of the available call handlers who has an agent profile which indicates that the agent is likely capable of handling the call, but requires training with respect to calls having the set of identified characteristics.


It is a further object of the invention to provide a method for determining an efficient schedule for a plurality of agents in a call center, balancing call center efficiency and agent training opportunity, each of the plurality of agents having a skill profile, comprising the steps of predicting an aggregate set of characteristics for received calls during a contiguous period of time; selecting a set of agents having a bimodal distribution of skills, a first mode representing agents having a skill set deficient with respect to the set of characteristics and a second mode representing agents having a skill set permitting them to train the agents represented by the first mode with respect to the characteristics; and scheduling the selected set of agents for the contiguous period of time and pairing agents corresponding to the first mode with agents corresponding to the second mode for a call of the set of characteristics.


Another object of the invention provides a method for determining an efficient schedule for a plurality of agents in a call center, balancing call center efficiency and agent training opportunity, each of the plurality of agents having a skill profile, comprising the steps of predicting an aggregate set of characteristics for received calls during a shift schedule; selecting a set of agents having a bimodal distribution of skills, a first mode representing agents having a skill set deficient with respect to the set of characteristics and a second mode representing agents having a skill set permitting them to train the agents represented by the first mode with respect to the characteristics; and scheduling the selected set of agents for the shift schedule and pairing agents corresponding to the first mode with agents corresponding to the second mode for a call of the set of characteristics.


A further object of the invention provides a method optimizing an association of a communication with an agent in a communications center, comprising the steps of determining a characteristic of a communication; retrieving a skill profile of a set of agents; and matching the communication with an agent based on the respective skill profile, the cost utility of the match being optimized with respect to long term operation of the communication center, including training costs and anticipated future improvements in agent skills based on training opportunities.


An object of the invention also includes providing a method for matching a communication with a communication handler, comprising the steps of predicting a set of issues to be handled during the communication; retrieving a profile record for each of a plurality of communications handlers; analyzing the profile records with respect to the anticipated issues of the communication to determine a minimal capability, training requirement, and a training capability with respect to the anticipated issues; selecting a first communication handler having a minimal capability to handle the anticipated issues, a training requirement with respect to the anticipated issues; and selecting a second communication handler having a training capability with respect to the anticipated issues to train the first communication handler.


A further object of the invention provides a method of improving a skill set of an agent, comprising the steps of determining a skill profile of each of a set of agents agent; determining a set of characteristics of a communication, the characteristics and the skill profile having correlated features; determining an anticipated surplus of agents for communication volume; selecting an available agent having a skill profile anticipated to be sufficient to handle the communication, said skill profile being indicative of a lower level of skill with respect to at least one of the set of characteristics than another available agent; and establishing channel for the communication with the selected available agent and employing the communication as a training exercise. Advantageously, the selected agent may not be penalized based on performance during the training exercise. The skill profile may be updated after the training exercise to represent a higher level of skill with respect to the characteristics of the communication, and/or based on a utility of a communication. The selecting may be based on an optimization of the utility and cost of the communication, the agent training resulting from the training exercise being a component of the utility. The communication routing may also be optimized based on a cost-utility function, said cost-utility function comprising a valuation of immediate costs and utilities and a valuation of persistent agent training costs and utilities.


It is also an object of the invention to provide a method of allocating a resource to handle a task, comprising the steps of: determining a task-handling load; identifying a characteristic of a task to be handled; in dependence on said determined task-handling load, selecting a handling protocol selected from the group consisting of: selecting a first trainable resource predicted to have deficient skills relating to the task based on the identified characteristic, while also selecting a second resource capable of assisting in training the first trainable resource with respect to the characteristic; and selecting a third resource predicted to have sufficient skills relating to the task based on the identified characteristic, wherein according to a selected protocol, a trainable resource is trained with respect to the at least one characteristic, or a sufficiently skilled resource handles the task. Preferably, the third resource has skills which are optimum for handling the task. Typically, a plurality of tasks are simultaneously handled, and a selected third resource has optimum skills with respect to the available resources and the identified characteristics of the tasks to be handled. Preferably, the system is provided for training humans, i.e., the trainable resource comprises a human. For example, the environment may be a communications or call center, where human communications handling agents are trained to have skills predicted to be required by incoming or outgoing communications requirements. The selecting step comprises, for example, retrieving a resource profile, comprising a set of metrics corresponding to the set of identified characteristics. The protocol selection may be based on a threshold task-handling load for a group of resources. The skill or imputer skill of a resource may be updated after selection thereof and/or successful completion of an assigned task, and/or based on a performance during task handling.


According to another object of the invention, each resource has skills which are classified as a multidimensional vector, and wherein the identified task to be handled has a characteristic represented as a predicted multidimensional vector of required skills of a handling resource, wherein a selected first resource and second resource together have a composite multidimensional skill vector which substantially corresponds to the predicted multidimensional vector of required skills.


According to a further object of the invention, the second resource has a training skill for remediating a skill deficiency with respect to the identified characteristic, such that after handling the task, the first resource skills are improved.


Another object of the invention provides a plurality of available trainable first resources, wherein a particular first resource is selected based on which particular trainable first resource is predicted to have a maximum value gain in skills as a result of selection. Likewise, a plurality of second resources may be available, wherein a particular second resource is selected based on which particular second resource is predicted to be able to impart a maximum value gain in skills as a result of selection. Further, a plurality of first and second resources may be available, wherein a particular set of first and second resources are selected based on which set of first and second resources is predicted to have an optimum gain in skills for the first resource and lowest overall cost, as a result of selection of the set.


According to another object of the invention, a group of resources having sufficient skills for handling the task are aggregated, with a first resource having a worst skill set for handling the task selected from the group.


A further object of the invention optimized long-term cost utility. For example, resources are selected based on an optimum long-term cost utility of such selection, including training costs and anticipated future improvements in resource skills based on training opportunities.


Another object of the invention provides a method wherein the identification step comprises anticipating issues to be raised in handling the task, the selecting step comprising analyzing profile records of resources with respect to the anticipated issues to determine a minimum capability requirement, training requirement of a first resource, and a training capability of a second resource with respect to the anticipated issues, selecting a first resource having a skill exceeding the minimum capability requirement to handle the anticipated issues and having a training requirement with respect to the anticipated issues, and selecting a second resource having a training capability with respect to the anticipated issues, whereby a selected first and second resource have sufficient skills to handle the anticipated task, while the second resource assists the first resource in improving task handling capabilities.


It is a further object of the invention to provide a method for determining an efficient schedule for a plurality of agents in a call center, balancing call center efficiency and agent training opportunity, each of the plurality of agents having a skill profile, comprising the steps of predicting an aggregate set of characteristics for received calls during a contiguous period of time; selecting a set of agents having a target aggregate distribution of skills, including training agents having a skill set deficient with respect to the set of characteristics and trainer agents having a skill set permitting them to train the training agents with respect to the characteristics; scheduling the training agents and trainer agents for the contiguous period of time; and pairing training and trainer agents corresponding for a call.


The foregoing has outlined some of the more pertinent objects of the present invention. These objects should be construed to be merely illustrative of some of the more prominent features and applications of the invention. Many other beneficial results can be attained by applying the disclosed invention in a different manner or modifying the invention as will be described. Accordingly, other objects and a fuller understanding of the invention may be had by referring to the following Detailed Description of the preferred embodiment.





BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and the advantages thereof, reference should be made to the following Detailed Description taken in connection with the accompanying drawings in which:



FIG. 1 is a block diagram of a telecommunications network having a switch connected between a call routing processor and multiple call centers that receive calls routed according to the teachings of the present invention;



FIG. 2 is a flowchart describing the decision routine of the present invention;



FIG. 3 is a flow chart showing a skill-training routing method according to the present invention; and



FIG. 4 is a flow chart of an outbound predictive dialer with a skill-training routing method according to the present invention.





Similar reference characters refer to similar parts or steps throughout the several views of the drawings.


DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following detailed description sets forth numerous specific details to provide a thorough understanding of the invention. However, those of ordinary skill in the art will appreciate that the invention may be practiced without these specific details. In other instances, well-known methods, procedures, protocols, components, and circuits have not been described in detail so as not to obscure the invention.


The present invention describes an improved method for distributing telephone calls or With reference to FIG. 1, an ACD system 10 includes switching circuitry 12 of a PBX 14 and an adjunct router 16. The telecommunication system of FIG. 1 permits inbound telephone calls (transactions) from customers to agents of a call center, as well as outbound telephone calls from the agents to customers. A number of customer telephones 18, 20, 22 and 24 are connected to a public switch 26 that is connected to the PBX 14 by means of a trunk 28, as is well known in the art. Also shown in FIG. 1 are a number of telephones 30, 32, 34 and 36 for use by ACD agents. The PBX also supports other telephones 38, 40, 42 and 44 that are used by persons that are not ACD agents, but who are also employed at the calling center that operates the ACD system 10. The non-agent telephones are not critical to the invention. With the exception of the adjunct router 16, the components of FIG. 1 are contained within conventional telecommunication systems having ACD capability.


In general terms, ACD agents use the agent telephones 30, 32, 34 and 36 to receive and/or place telephone calls between a call center that employs the agents and the customer telephones 18-24. For example, a customer may use a home telephone 20 to place a telephone call to the company to order one of the company's products. The customer dials a general sales telephone number of the company. The public switch 26 routes the inbound telephone call to the PBX 14. The PBX then routes all inbound calls that are directed to the general sales telephone number to the ACD system 10 for rerouting to one of the individuals at the agent telephones. The adjunct router 16 selects the appropriate agent telephone in a manner to be described below.


The adjunct router 16 is an dynamically adaptive optimizing system that controls the ACD switching circuitry 12 to route inbound calls to selected agents at the telephones 30-36. The selected agent receives the inbound call and processes the transaction.


The adjunct router is carried out in a combination of computer hardware and software. The adjunct router may be physically implemented in a stand-alone computer that interfaces with the PBX 14, or may be physically attached to the PBX. In the preferred embodiment, the router is a separate component in order to facilitate installation and maintenance of the adjunct router, and to provide the ability to readily interface with computer data networks and to support standards-based computer software. However, the inventive method may be carried out within an implementation in which the router is not an adjunct component, but is instead installed within the conventional components of a PBX and ACD system.


It is also noted that the entire telephony system may be a so-called Voice over Internet Protocol (VOIP) system, allowing the PBX to be implemented in one or more stand alone computers, communicating over computer networks which support Internet Protocol, optionally with quality of service guarantees.


Referring now to FIG. 2, the adjunct router 16 includes a call control interface 46 that establishes the coordination with the switching circuitry 12 of the ACD system. The call control interface may be a standard CSTA interface. A transaction requester 48, a queue controller 50, and a transaction dispatcher 52 may be separate routines of a computer program that establishes the router. A skills inventory database 54 may be stored on a hard disk and read into random access memory upon execution of the program. A transaction queue 56 may also be generated in random access memory during the execution of the program.


The adjunct router 16 may be used to control inbound or outbound calls or a combination of inbound and outbound calls. For example, if an outbound call is to be routed to a particular customer, the request will be received at the transaction requester 48 via the call control interface 46. Inbound or outbound calls are queued at the transaction queue 56. The transaction dispatcher 52 is used in the selection of a particular ACD agent for handling a queued call. The transaction dispatcher 52 may also select another agent to monitor the call in order to provide assistance and training to the selected agent.


As will be explained more fully below, the selection is determined based on a long term optimization algorithm, which balances call needs, agents skills, system preferences, and/or agent training.


The skills inventory database 54 stores a profile for each of the agents (and trainers, who may or may not also be agents) who utilize the agent telephones 30-36. The queue controller 50 coordinates operations involving transaction requests and transaction dispatches. When a queued call has been matched with a particular agent, the transaction dispatcher 52 causes the call control interface 46 to issue a command to the switching circuitry 12 of the PBX to route the queued call to the appropriate agent telephone corresponding to the selected agent. The transaction dispatcher also causes the queue controller 50 to delete the corresponding entry in the transaction queue 56. In other words, when a call is routed to an agent, it is removed from the list of call identifications waiting agent assignment.


For each ACD agent, a profile is created based on manual inputs, such as language proficiency, formal education and training, position, and the like, as well as automatically, based on actual performance metrics and analysis, and stored at the skills inventory database 54. A profile thus represents a synopsis of the skills and characteristics that an agent possesses, although it may not exist in a human readable or human comprehensible form.


Preferably, the profile includes a number of vectors representing different attributes, which are preferably independent, but need not be. The profile relates to both the level of ability, i.e. expertise, in each skill vector, as well as the performance of the agent, which may be a distinct criterion, with respect to that skill. In other words, an agent may be quite knowledgeable with respect to a product line, but nevertheless relatively slow to service callers. The profile, or an adjunct database file, may also include a level of preference that call management has for the agent to handle transactions that require particular skills versus transactions that require other skills, or other extrinsic considerations.



FIG. 3 shows a flow chard of an incoming call routing algorithm according to a preferred embodiment of the present invention. A call is placed by a caller to a call center 301. The call is directed, through the public switched telephone network, although, calls or communications may also be received through other channels, such as the Internet, private branch exchange, intranet VOIP, etc. The source address of the call, for example the calling telephone number, IP address, or other identifier, is received to identify the caller 302. This identifier is then used to call up an associated database record 303, providing, for example, a prior history of interaction, a user record, or the like. In some instances, there will be no associated record, or in others, the identification may be ambiguous or incorrect. For example, a call from a PBX, wherein an unambiguous caller extension is not provided outside the network, a call from a pay phone, or the like. Therefore, the identity of the caller is then confirmed using voice or promoted DTMF codes, which may include an account number, transaction identifier, or the like.


During the identity confirmation process, the caller is also directed to provide certain details relating to the purpose of the call. For example, the maybe directed to “press one for sales, two for service, three for technical support, four for returns, and five for other”. Each selected choice, for example, could include a further menu, or an interactive voice response, or an option to record information. The information is then coded as a call characteristic vector 304. In some instances, a human operator will analyze the information, or directly interact with the caller to determine the nature of the call. Thus, a number of methods are available and may be employed to determine a significant amount of information about the caller and the nature of the call. Some of these techniques are well known in the art, while others are not generally employed, but the techniques are clearly available to those skilled in the art.


Each agent has a skill profile vector. This vector is developed based on various efficiency or productivity criteria. For example, in a sales position, productivity may be defined as sales volume or gross profits per call or per call minute, customer loyalty of past customers, or other appropriate metrics. In a service call, efficiency may be defined in terms of minutes per call, customer loyalty after the call, customer satisfaction during the call, successful resolution of the problem, or other metrics. These metrics may be absolute values, or normalized for the agent population, or both. The skill profile vector is stored in a database, and the profiles, which may be updated dynamically, of available or soon to be available agents, are retrieved from the database 305.


The optimization entails various information, which may include the caller characteristics, the call incident characterization, the agent profile(s), and/or various routing principles.


Under some circumstances, it is desired to implement a traditional skill-based call routing. For example, if peak instantaneous efficiency is desired, for example when the call center is near capacity 306, more advanced optimizations may be bypassed and a traditional skill based call routing algorithm 307 implemented, which optimizes a short term cost-utility function of the call center 308. An agent who can “optimally” handle the call is then selected 309, and the call routed to that agent 310.


Thus, in order to immediately optimize the call routing, the general principle is to route the call such that the sum of the utility functions of the calls be maximized while the cost of handling those calls be minimized. This optimization is generally known. However, this routing is not sensitive to the requirement to train agent, a continuing problem for call centers, which must constantly train agents.


According to a particular aspect of the invention, the various routing principles discussed above explicitly value training as a utility of handling a call 311, and thus a long-term optimization is implemented 312. The utility of caller satisfaction is also weighted, and thus the agent selected is generally minimally capable of handling the call. Thus, while the caller may be somewhat burdened by assignment to a trainee agent, the call center utility is maximized over the long term, and call center agents will generally increase in skill rapidly.


As for the cost side of the optimization, the cost of running a call center generally is dependent on required shift staffing, since other costs are generally constant. Accordingly, the training algorithm serves to minimize sub-locally optimal call routing during peak load periods, and thus would be expected to have no worse cost performance than traditional call centers. However, as the call center load is reduced, the call routing algorithm routes calls to trainee agents with respect to the call characteristics. This poses two costs. First, since the trainee is less skilled than a fully trained agent, the utility of the call will be reduced. Second, call center agent training generally requires a trainer be available to monitor and coach the trainee. While the trainer may be an active call center agent, and therefore part of the fixed overhead, there will be a marginal cost since the trainer agent might be assuming other responsibilities instead of training. For example, agents not consumed with inbound call handling may engage in outbound call campaigns.


Thus, an optimization is performed, using as at least one factor the value of training an agent with respect to that call 312, and an appropriate trainee agent selected 313.


In order to provide proper training, the trainer and trainee must both be available, and the call routed to both 314. Generally, the trainee has primary responsibility for the call, and the trainer has no direct communication with the caller. Therefore, the trainer may join the call after commencement, or leave before closing. However, routing a call which requires two agents to be simultaneously available poses some difficulties. In general, the trainer is an agent capable of handling the entire call alone, while the trainee may not be. Therefore, the trainer is a more important participant, and the initial principle in routing the training call is to ensure that a trainer is available. The trainer may then await availability of an appropriate trainee, or if none is imminently available, handle the call himself or herself.


On the other hand, where a specific training campaign is in place, and a high utility associated with agent training, then the availability of a specific trainee or class of trainees for a call having defined characteristics is particularly important. In that case, when an appropriate trainee is available, the call held in that agent's cue, and the call possibly commenced, awaiting a training agent's availability.


If the training is highly structured, it is also possible to assign the trainer and trainee agents in pairs, so that the two are always available for calls together.


The same techniques are available for outbound campaigns and/or mixed call centers. In this case, the cost of training is more pronounced, since agents idle for inbound tasks are generally assigned to outbound tasks, and thus the allocation of trainer agents and trainee agents generally results in both longer call duration and double the number of agents assigned per call. This cost may again be balanced by avoiding training during peak utility outbound calling hours and peak inbound calling hours; however, training opportunities should not be avoided absolutely.


As shown in FIG. 4, an outbound call is cued by, for example, a predictive dialer, in an outbound call center 401. The callee is identified 402, and a callee record retrieved 403. Based on available information, call characteristics are predicted 404. A set of agent profiles are retrieved 405, for example for the agents which are or will be available for the call. The call center routing algorithm may operate in a number of modes, and a training an skill based routing scheme is employed 411. The operation of this scheme is to optimize the cost-utility function for long term operation of he call center 412. This optimization considers the expected incremental cost of the agent 415, the expected incremental utility of the agent 416, the expected incremental cost of a trainer, if required for a training exercise 417, and the expected incremental utility of training the agent 418. On this basis, an gent is selected 413, and the call routed to the agent, and to the trainer as well if the call is a training call 414.


Thus, it is seen that in the method described with respect to FIG. 3, a choice is made based on whether the call center is near capacity 306, while in the method described with respect to FIG. 4, the choice is made as a part of the optimization 412. It should be understood that in either scenario, the choice as to whether to engage in a training call may be made discretely or as part of a single optimization.


In an outbound call campaign, the anticipated call characteristics may be relatively uniform; that is, there may be few known unique characteristics of a call, since these campaigns often target a homogenous audience. However, after the call is commenced, there is often a survey or other interaction which allows certain characteristics to be identified. In that case, the call may be maintained by the agent; transferred to another agent; if the agent is an appropriate trainee for the call, then an appropriate training agent obtained to shadow the call to provide assistance and training to the primary agent; or the agent may be an appropriate training agent for the call, and a trainee agent selected to shadow the call or substitute for the trainer.


From the above description and drawings, it will be understood by those of ordinary skill in the art that the particular embodiments shown and described are for purposes of illustration only and are not intended to limit the scope of the invention. Those of ordinary skill in the art will recognize that the invention may be embodied in other specific forms without departing from its spirit or essential characteristics. References to details of particular embodiments are not intended to limit the scope of the claims.


It should be appreciated by those skilled in the art that the specific embodiments disclosed above may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims.

Claims
  • 1. A method optimizing a matching of individuals for engaging in a communication, comprising: retrieving profiles for a plurality of individuals, each respective profile representing at least dynamic characteristics of the respective individual, a subjective preference of the respective individual, and a past history of the respective individual;evaluating, with at least one automated processor, a plurality of proposed communications between the respective individuals, based on at least a predicted economic value of a respective proposed communication between respective individuals at a time after the respective proposed communication has concluded, based on at least the respective profiles of the respective individuals, a predicted change in the dynamic characteristics of the respective individuals, and an availability of the respective individuals;matching respective individuals for an actual communication, with the at least one automated processor, based on at least an optimization of the evaluations of the plurality of proposed communications and an at least partial balancing of availability of respective individuals;initiating the actual communication between the respective individuals by control of au automated communication router, dependent on an acceptance of the actual communication by the matched respective individuals; andupdating the respective profiles based on changes in the dynamic characteristics of the respective individuals and the past history.
  • 2. The method according to claim 1, wherein the predicted economic value comprises a cost-utility value for a respective individual.
  • 3. The method according to claim 2, wherein the matching is dependent on the predicted change in the cost-utility value for the respective individual as a result of the actual communication.
  • 4. The method according to claim 1, wherein said matching comprises performing an optimization of the respective proposed communications of all of the respective individuals, wherein the evaluation of each respective communication defines a prospective benefit and a prospective cost for each respective proposed communication.
  • 5. The method according to claim 1, wherein the respective individuals have at least two distinct and different types, and the proposed communications are between respective individuals have different types and are matched dependent on the difference between the types.
  • 6. The method according to claim 1, wherein the profiles for at least a portion of the individuals further comprise skill information, wherein the evaluating is further responsive to the skill of one respective individual and a need for the skill by another respective individual, as parties to the proposed communication.
  • 7. The method according to claim 6, further comprising updating the skill information for at least one respective individual participant in the actual communication.
  • 8. The method according to claim 1, wherein said initiating the actual communication comprises automatically establishing a bi-directional real time communication channel between at least two respective individuals.
  • 9. The method according to claim 1, wherein the profile for a respective individual is retrieved based on an identification of a telephone device of the respective individual.
  • 10. A system for optimizing a matching of individuals for engaging in a communication, comprising: a memory configured to store profiles for a plurality of individuals, each respective profile comprising dynamic information dependent on characteristics of the individual, a subjective preference of the individual, and a past history of the individual;at least one automated processor, configured to: evaluate a plurality of proposed communications between respective individuals, based on at least a predicted economic value of the proposed communication at a time after the proposed communication has concluded, the respective profiles of the individuals, a predicted change in the dynamic information of the respective profiles of respective individuals involved in the proposed communication, and an availability of the respective individuals;match respective individuals for an actual communication with another respective individual based on at least an optimization of the evaluation, said match being at least partially balanced among respective individuals with respect to availability of respective individuals; andupdate the respective profiles based on changes in the dynamic information and the past history; anda communication router configured to conduct the actual communication between the respective individuals dependent on acceptance of the actual communication by the matched respective individuals.
  • 11. The system according to claim 10, wherein the optimization comprises maximizing a cost-utility value for a plurality of respective individuals.
  • 12. The system according to claim 11, wherein the at least one automated processor is further configured to match the respective individuals dependent on at least a predicted change in a cost-utility function for a respective individual as a result of the proposed communication.
  • 13. The system according to claim 10, wherein the at least one automated processor is further configured to match the respective individuals by performing an optimization of the proposed communications of all of the respective individuals based on both the evaluation and the availability of the respective individuals.
  • 14. The system according to claim 10, wherein the respective individuals have at least two distinct and different types, and the proposed communications are between respective individuals have different types and are matched dependent on the difference between the types.
  • 15. The system according to claim 10, wherein the profiles for at least a portion of the individuals further comprise skill information, wherein the at least one automated processor is further configured to match the respective individuals responsive to the skill of one respective individual and a need for the skill by another respective individual.
  • 16. The system according to claim 15, wherein the at least one automated processor is further configured to update the skill information for at least one respective individual.
  • 17. The system according to claim 10, wherein the communication router is configured to establish a bi-directional real time communication channel between at least two respective individuals matched for actual communication.
  • 18. The system according to claim 10, wherein the communication router comprises a telephone switch configured to establish interactive bi-directional real time voice communications between at least two respective individuals matched for actual communication.
  • 19. The system according to claim 10, wherein the communication router comprises an internet protocol router.
  • 20. A method optimizing communications of sets of individuals, comprising: retrieving profiles for a plurality of individuals, each profile being dependent on at least dynamically-changing characteristics of a respective individual, and a preference of the respective individual;determining, with at least one automated processor, a predicted economic value of a communication between respective sets of individuals reflecting a period after an initiated communication has concluded;matching respective sets of individuals for a prospective communication based at least on the determined predicted economic value of the communication and a predicted change in the dynamically-changing characteristics of the sets of individuals dependent on the communication, and at least a partial balancing of availability of respective individuals for the communication;proposing a communication between respective sets of individuals dependent on the matching;initiating an interactive communication between the respective sets of individuals subsequent to acceptance of the proposed communication by control of an automated communication router; andupdating the respective profiles of at least one participant in the communication based on a communication-dependent change in the dynamically-changing characteristics.
RELATED APPLICATIONS

The present application is a continuation of U.S. patent application Ser. No. 14/635,868, filed Mar. 2, 2015, now U.S. Pat. No. 9,635,177, issued Apr. 25, 2017, which is a continuation of U.S. patent application Ser. No. 14/067,140, filed Oct. 30, 2013, now U.S. Pat. No. 8,971,519, issued Mar. 3, 2015, which is a continuation of U.S. patent application Ser. No. 13/073,559, filed Mar. 28, 2011, now U.S. Pat. No. 8,582,753, issued Nov. 12, 2013, which is a continuation of U.S. patent application Ser. No. 11/532,883, filed Sep. 18, 2006, now U.S. Pat. No. 7,916,858, issued Mar. 29, 2011, which is a continuation of U.S. patent application Ser. No. 10/180,763, filed Jun. 25, 2002, now U.S. Pat. No. 7,110,525 issued Sep. 19, 2006, which is a non-provisional application of U.S. Provisional Patent Application No. 60/300,684, filed Jun. 25, 2001, each of which is expressly incorporated herein by reference in its entirety.

US Referenced Citations (1068)
Number Name Date Kind
4048452 Oehring et al. Sep 1977 A
4286118 Mehaffey et al. Aug 1981 A
4415767 Gill et al. Nov 1983 A
4677663 Szlam Jun 1987 A
4736437 Sacks et al. Apr 1988 A
4737983 Frauenthal et al. Apr 1988 A
4757529 Glapa et al. Jul 1988 A
4768221 Green et al. Aug 1988 A
4797911 Szlam et al. Jan 1989 A
4805215 Miller Feb 1989 A
4807279 McClure et al. Feb 1989 A
4831551 Schalk et al. May 1989 A
4852149 Zwick et al. Jul 1989 A
4866754 Hashimoto Sep 1989 A
4878243 Hashimoto Oct 1989 A
4893301 Andrews et al. Jan 1990 A
4894857 Szlam et al. Jan 1990 A
4924501 Cheeseman et al. May 1990 A
4930150 Katz May 1990 A
4933964 Girgis Jun 1990 A
4935956 Hellwarth et al. Jun 1990 A
4941168 Kelly, Jr. Jul 1990 A
4953204 Cuschleg, Jr. et al. Aug 1990 A
4958371 Damoci et al. Sep 1990 A
4975841 Kehnemuyi et al. Dec 1990 A
4977595 Ohta et al. Dec 1990 A
4979171 Ashley Dec 1990 A
4987587 Jolissaint Jan 1991 A
4989248 Schalk et al. Jan 1991 A
4998272 Hawkins, Jr. et al. Mar 1991 A
5007000 Baldi Apr 1991 A
5007078 Masson et al. Apr 1991 A
5014298 Katz May 1991 A
5016270 Katz May 1991 A
5020095 Morganstein et al. May 1991 A
5020097 Tanaka et al. May 1991 A
5020411 Rowan Jun 1991 A
5036535 Gechter et al. Jul 1991 A
5040208 Jolissaint Aug 1991 A
5048075 Katz Sep 1991 A
5063522 Winters Nov 1991 A
5067166 Ito Nov 1991 A
5070525 Szlam et al. Dec 1991 A
5070526 Richmond et al. Dec 1991 A
5073890 Danielsen Dec 1991 A
5073929 Katz Dec 1991 A
5077789 Clark, Jr. et al. Dec 1991 A
5081711 Rickman, Jr. Jan 1992 A
5097528 Gursahaney et al. Mar 1992 A
5103449 Jolissaint Apr 1992 A
5121422 Kudo Jun 1992 A
5128984 Katz Jul 1992 A
5161181 Zwick Nov 1992 A
5163083 Dowden et al. Nov 1992 A
5163087 Kaplan Nov 1992 A
5164981 Mitchell et al. Nov 1992 A
5166974 Morganstein et al. Nov 1992 A
5168517 Waldman Dec 1992 A
5177684 Harker et al. Jan 1993 A
5185786 Zwick Feb 1993 A
5193110 Jones et al. Mar 1993 A
5206903 Kohler et al. Apr 1993 A
5214688 Szlam et al. May 1993 A
5218635 Bonvallet et al. Jun 1993 A
5224153 Katz Jun 1993 A
5237159 Stephens et al. Aug 1993 A
5237514 Curtin Aug 1993 A
5239574 Brandman et al. Aug 1993 A
5251252 Katz Oct 1993 A
5253289 Tanaka Oct 1993 A
5257369 Skeen et al. Oct 1993 A
5276732 Stent et al. Jan 1994 A
5278898 Cambray et al. Jan 1994 A
5280425 Hogge Jan 1994 A
5282130 Molnar Jan 1994 A
5283818 Klausner et al. Feb 1994 A
5289530 Reese Feb 1994 A
5297146 Ogawa Mar 1994 A
5297195 Thorne et al. Mar 1994 A
5309504 Morganstein May 1994 A
5309505 Szlam et al. May 1994 A
5309513 Rose May 1994 A
5311574 Livanos May 1994 A
5311577 Madrid et al. May 1994 A
5313516 Afshar et al. May 1994 A
5319703 Drory Jun 1994 A
5321745 Drory et al. Jun 1994 A
5325292 Crockett Jun 1994 A
5327490 Cave Jul 1994 A
5329579 Brunson Jul 1994 A
5333190 Eyster Jul 1994 A
5339392 Risberg et al. Aug 1994 A
5341412 Ramot et al. Aug 1994 A
5341414 Popke Aug 1994 A
5351285 Katz Sep 1994 A
5359645 Katz Oct 1994 A
5365575 Katz Nov 1994 A
5369695 Chakravarti et al. Nov 1994 A
5381470 Cambray et al. Jan 1995 A
5390236 Klausner et al. Feb 1995 A
5392353 Morales Feb 1995 A
5400393 Knuth et al. Mar 1995 A
5402474 Miller et al. Mar 1995 A
5420852 Anderson et al. May 1995 A
5420919 Arnaud et al. May 1995 A
5425093 Trefzger Jun 1995 A
5430792 Jesurum et al. Jul 1995 A
5432835 Hashimoto Jul 1995 A
5434906 Robinson et al. Jul 1995 A
5434913 Tung et al. Jul 1995 A
5436967 Hanson Jul 1995 A
5442693 Hays et al. Aug 1995 A
5448624 Hardy et al. Sep 1995 A
5448631 Cain Sep 1995 A
5459781 Kaplan et al. Oct 1995 A
5465286 Clare et al. Nov 1995 A
5467391 Donaghue, Jr. et al. Nov 1995 A
5479487 Hammond Dec 1995 A
5479501 Lai Dec 1995 A
5481596 Comerford Jan 1996 A
5485506 Recht et al. Jan 1996 A
5487168 Geiner et al. Jan 1996 A
5488570 Agarwal Jan 1996 A
5490247 Tung et al. Feb 1996 A
5493690 Shimazaki Feb 1996 A
5495419 Rostoker et al. Feb 1996 A
5495523 Stent et al. Feb 1996 A
5495528 Dunn et al. Feb 1996 A
5502688 Recchione et al. Mar 1996 A
5502762 Andrew et al. Mar 1996 A
5502826 Vassiliadis et al. Mar 1996 A
5506898 Costantini et al. Apr 1996 A
5506954 Arshi et al. Apr 1996 A
5508942 Agarwal Apr 1996 A
5511003 Agarwal Apr 1996 A
5511112 Szlam Apr 1996 A
5511117 Zazzera Apr 1996 A
5511121 Yacobi Apr 1996 A
5515296 Agarwal May 1996 A
5515421 Sikand et al. May 1996 A
5517566 Smith et al. May 1996 A
5519773 Dumas et al. May 1996 A
5524140 Klausner et al. Jun 1996 A
5524147 Bean Jun 1996 A
5526417 Dezonno Jun 1996 A
5528666 Weigand et al. Jun 1996 A
5530931 Cook-Hellberg et al. Jun 1996 A
5533103 Peavey et al. Jul 1996 A
5533107 Irwin et al. Jul 1996 A
5533109 Baker Jul 1996 A
5535257 Goldberg et al. Jul 1996 A
5537470 Lee Jul 1996 A
5544220 Trefzger Aug 1996 A
5544232 Baker et al. Aug 1996 A
5546452 Andrews et al. Aug 1996 A
5546456 Vilsoet et al. Aug 1996 A
5555290 McLeod et al. Sep 1996 A
5555295 Bhusri Sep 1996 A
5557533 Koford et al. Sep 1996 A
5557668 Brady Sep 1996 A
5557798 Skeen et al. Sep 1996 A
5559867 Langsenkamp et al. Sep 1996 A
5559878 Keys et al. Sep 1996 A
5560011 Uyama Sep 1996 A
5561711 Muller Oct 1996 A
5568540 Greco et al. Oct 1996 A
5570419 Cave et al. Oct 1996 A
5572576 Klausner et al. Nov 1996 A
5572586 Ouchi Nov 1996 A
5574784 LaPadula et al. Nov 1996 A
5577112 Cambray et al. Nov 1996 A
5579377 Rogers Nov 1996 A
5579383 Bales et al. Nov 1996 A
5581602 Szlam et al. Dec 1996 A
5581604 Robinson et al. Dec 1996 A
5581607 Richardson, Jr. et al. Dec 1996 A
5586179 Stent et al. Dec 1996 A
5588049 Detering et al. Dec 1996 A
5590171 Howe et al. Dec 1996 A
5590188 Crockett Dec 1996 A
5592543 Smith et al. Jan 1997 A
5594790 Curreri et al. Jan 1997 A
5594791 Szlam et al. Jan 1997 A
5600710 Weisser, Jr. et al. Feb 1997 A
5610774 Hayashi et al. Mar 1997 A
5610978 Punts Mar 1997 A
5619557 Van Berkum Apr 1997 A
5621201 Langhans et al. Apr 1997 A
5623547 Jones et al. Apr 1997 A
5625676 Greco et al. Apr 1997 A
5625682 Gray et al. Apr 1997 A
5627534 Craft May 1997 A
5633917 Rogers May 1997 A
5633922 August et al. May 1997 A
5633924 Kaish et al. May 1997 A
5636125 Rostoker et al. Jun 1997 A
5636267 Utsumi et al. Jun 1997 A
5636268 Dijkstra et al. Jun 1997 A
5638436 Hamilton et al. Jun 1997 A
5638498 Tyler et al. Jun 1997 A
5640468 Hsu Jun 1997 A
5646986 Sahni et al. Jul 1997 A
5646988 Hikawa Jul 1997 A
5649068 Boser et al. Jul 1997 A
5652788 Hara Jul 1997 A
5655013 Gainsboro Aug 1997 A
5655014 Walsh et al. Aug 1997 A
5657074 Ishibe et al. Aug 1997 A
5661283 Gallacher et al. Aug 1997 A
5666416 Micali Sep 1997 A
5671086 Parvin et al. Sep 1997 A
5675637 Szlam et al. Oct 1997 A
5677955 Doggett et al. Oct 1997 A
5679940 Templeton et al. Oct 1997 A
5682322 Boyle et al. Oct 1997 A
5684863 Katz Nov 1997 A
5687225 Jorgensen Nov 1997 A
5692033 Farris Nov 1997 A
5692034 Richardson, Jr. et al. Nov 1997 A
5696809 Voit Dec 1997 A
5696818 Doremus et al. Dec 1997 A
5696908 Muehlberger et al. Dec 1997 A
5699418 Jones Dec 1997 A
5701295 Bales et al. Dec 1997 A
5703935 Raissyan et al. Dec 1997 A
5715307 Zazzera Feb 1998 A
5717741 Yue et al. Feb 1998 A
5717757 Micali Feb 1998 A
5719794 Altshuler et al. Feb 1998 A
RE35758 Winter et al. Mar 1998 E
5724418 Brady Mar 1998 A
5727154 Fry et al. Mar 1998 A
5729600 Blaha et al. Mar 1998 A
5732234 Vassiliadis et al. Mar 1998 A
5740233 Cave et al. Apr 1998 A
5740240 Jolissaint Apr 1998 A
5742510 Rostoker et al. Apr 1998 A
5742675 Kilander et al. Apr 1998 A
5745363 Rostoker et al. Apr 1998 A
5748711 Scherer May 1998 A
5754939 Herz et al. May 1998 A
5761285 Stent Jun 1998 A
5768355 Salibrici et al. Jun 1998 A
5768360 Reynolds et al. Jun 1998 A
5768385 Simon Jun 1998 A
5774357 Hoffberg et al. Jun 1998 A
5774537 Kim Jun 1998 A
5774730 Aizikowitz et al. Jun 1998 A
5781439 Rostoker et al. Jul 1998 A
5784066 Aizikowitz et al. Jul 1998 A
5784616 Horvitz Jul 1998 A
5787156 Katz Jul 1998 A
5787159 Hamilton et al. Jul 1998 A
5790935 Payton Aug 1998 A
5793644 Koford et al. Aug 1998 A
5793846 Katz Aug 1998 A
5793868 Micali Aug 1998 A
5796791 Polcyn Aug 1998 A
5796816 Utsumi Aug 1998 A
5799077 Yoshii Aug 1998 A
5799087 Rosen Aug 1998 A
5799114 Dowling Aug 1998 A
5806061 Chaudhuri et al. Sep 1998 A
5806071 Balderrama et al. Sep 1998 A
5812642 Leroy Sep 1998 A
5812668 Weber Sep 1998 A
5815403 Jones et al. Sep 1998 A
5815551 Katz Sep 1998 A
5815554 Burgess et al. Sep 1998 A
5815566 Ramot et al. Sep 1998 A
5815657 Williams et al. Sep 1998 A
5822400 Smith Oct 1998 A
5822401 Cave et al. Oct 1998 A
5822410 McCausland et al. Oct 1998 A
5825869 Brooks et al. Oct 1998 A
5828731 Szlam et al. Oct 1998 A
5828734 Katz Oct 1998 A
5828840 Cowan et al. Oct 1998 A
5832089 Kravitz et al. Nov 1998 A
5835572 Richardson, Jr. et al. Nov 1998 A
5835896 Fisher et al. Nov 1998 A
5838583 Varadarajan et al. Nov 1998 A
5838772 Wilson et al. Nov 1998 A
5838779 Fuller et al. Nov 1998 A
5839119 Krsul et al. Nov 1998 A
5841852 He Nov 1998 A
5848143 Andrews et al. Dec 1998 A
5850385 Esaki Dec 1998 A
5850428 Day Dec 1998 A
5850446 Berger et al. Dec 1998 A
5850617 Libby Dec 1998 A
5854832 Dezonno Dec 1998 A
5857013 Yue et al. Jan 1999 A
5857023 Demers et al. Jan 1999 A
5867386 Hoffberg et al. Feb 1999 A
5867559 Jorgensen et al. Feb 1999 A
5867564 Bhusri Feb 1999 A
5867572 MacDonald et al. Feb 1999 A
5867799 Lang et al. Feb 1999 A
5870313 Boyle et al. Feb 1999 A
5870464 Brewster et al. Feb 1999 A
5870564 Jensen et al. Feb 1999 A
5872833 Scherer Feb 1999 A
5875108 Hoffberg et al. Feb 1999 A
5875117 Jones et al. Feb 1999 A
5878126 Velamuri et al. Mar 1999 A
5878130 Andrews et al. Mar 1999 A
5880958 Helms et al. Mar 1999 A
5884277 Khosla Mar 1999 A
5889862 Ohta et al. Mar 1999 A
5889863 Weber Mar 1999 A
5890138 Godin et al. Mar 1999 A
5893902 Transue et al. Apr 1999 A
5894505 Koyama Apr 1999 A
5896446 Sagady et al. Apr 1999 A
5898154 Rosen Apr 1999 A
5898759 Huang Apr 1999 A
5898762 Katz Apr 1999 A
5901209 Tannenbaum et al. May 1999 A
5901214 Shaffer et al. May 1999 A
5901229 Fujisaki et al. May 1999 A
5901246 Hoffberg et al. May 1999 A
5903454 Hoffberg et al. May 1999 A
5903461 Rostoker et al. May 1999 A
5903641 Tonisson May 1999 A
5903651 Kocher May 1999 A
5903880 Biffar May 1999 A
5905792 Miloslaysky May 1999 A
5905975 Ausubel May 1999 A
5905979 Barrows May 1999 A
5907601 David et al. May 1999 A
5907608 Shaffer et al. May 1999 A
5910982 Shaffer et al. Jun 1999 A
5912947 Langsenkamp et al. Jun 1999 A
5912988 Moore Jun 1999 A
5913195 Weeren et al. Jun 1999 A
5914887 Scepanovic et al. Jun 1999 A
5914951 Bentley et al. Jun 1999 A
5915011 Miloslavsky Jun 1999 A
5915093 Berlin et al. Jun 1999 A
5917893 Katz Jun 1999 A
5917903 Jolissaint Jun 1999 A
5918213 Bernard et al. Jun 1999 A
5920477 Hoffberg et al. Jul 1999 A
5920629 Rosen Jul 1999 A
5923745 Hurd Jul 1999 A
5923746 Baker et al. Jul 1999 A
5924016 Fuller et al. Jul 1999 A
5926528 David Jul 1999 A
5926539 Shtivelman Jul 1999 A
5926548 Okamoto Jul 1999 A
5930339 Nepustil Jul 1999 A
5930777 Barber Jul 1999 A
5933480 Felger Aug 1999 A
5933492 Turovski Aug 1999 A
5933498 Schneck et al. Aug 1999 A
5937055 Kaplan Aug 1999 A
5937390 Hyodo Aug 1999 A
5937394 Wong et al. Aug 1999 A
5940493 Desai et al. Aug 1999 A
5940496 Gisby et al. Aug 1999 A
5940497 Miloslavsky Aug 1999 A
5940813 Hutchings Aug 1999 A
5940947 Takeuchi et al. Aug 1999 A
5943403 Richardson, Jr. et al. Aug 1999 A
5943424 Berger et al. Aug 1999 A
5946387 Miloslavsky Aug 1999 A
5946388 Walker et al. Aug 1999 A
5946394 Gambuzza Aug 1999 A
5946669 Polk Aug 1999 A
5949045 Ezawa et al. Sep 1999 A
5949852 Duncan Sep 1999 A
5949854 Sato Sep 1999 A
5949863 Tansky Sep 1999 A
5952638 Demers et al. Sep 1999 A
5953332 Miloslavsky Sep 1999 A
5953405 Miloslavsky Sep 1999 A
5956392 Tanigawa et al. Sep 1999 A
5956397 Shaffer et al. Sep 1999 A
5960073 Kikinis et al. Sep 1999 A
5960083 Micali Sep 1999 A
5963632 Miloslavsky Oct 1999 A
5963635 Szlam et al. Oct 1999 A
5963648 Rosen Oct 1999 A
5963911 Walker et al. Oct 1999 A
5963924 Williams et al. Oct 1999 A
5963975 Boyle et al. Oct 1999 A
5966429 Scherer Oct 1999 A
5966531 Skeen et al. Oct 1999 A
5970132 Brady Oct 1999 A
5970134 Highland et al. Oct 1999 A
5974120 Katz Oct 1999 A
5974135 Breneman et al. Oct 1999 A
RE36416 Szlam et al. Nov 1999 E
5978465 Corduroy et al. Nov 1999 A
5978467 Walker et al. Nov 1999 A
5978471 Bokinge Nov 1999 A
5978840 Nguyen et al. Nov 1999 A
5982857 Brady Nov 1999 A
5982868 Shaffer et al. Nov 1999 A
5983208 Haller et al. Nov 1999 A
5983214 Lang et al. Nov 1999 A
5987115 Petrunka et al. Nov 1999 A
5987116 Petrunka et al. Nov 1999 A
5987118 Dickerman et al. Nov 1999 A
5987132 Rowney Nov 1999 A
5987140 Rowney et al. Nov 1999 A
5991391 Miloslavsky Nov 1999 A
5991392 Miloslavsky Nov 1999 A
5991393 Kamen Nov 1999 A
5991395 Miloslavsky Nov 1999 A
5991604 Yi Nov 1999 A
5991761 Mahoney et al. Nov 1999 A
5995614 Miloslavsky Nov 1999 A
5995615 Miloslavsky Nov 1999 A
5995948 Whitford et al. Nov 1999 A
5995997 Horvitz Nov 1999 A
5996076 Rowney et al. Nov 1999 A
5999908 Abelow Dec 1999 A
5999919 Jarecki et al. Dec 1999 A
5999965 Kelly Dec 1999 A
6002760 Gisby Dec 1999 A
6002767 Kramer Dec 1999 A
6003765 Okamoto Dec 1999 A
6005534 Hylin et al. Dec 1999 A
6005928 Johnson Dec 1999 A
6005931 Neyman et al. Dec 1999 A
6005939 Fortenberry et al. Dec 1999 A
6006218 Breese et al. Dec 1999 A
6006604 Rabelo et al. Dec 1999 A
6009149 Langsenkamp Dec 1999 A
6009452 Horvitz Dec 1999 A
6011845 Nabkel et al. Jan 2000 A
6014439 Walker et al. Jan 2000 A
6016344 Katz Jan 2000 A
6016475 Miller et al. Jan 2000 A
6016484 Williams et al. Jan 2000 A
6018579 Petrunka Jan 2000 A
6018724 Arent Jan 2000 A
6018738 Breese et al. Jan 2000 A
6021114 Shaffer et al. Feb 2000 A
6021190 Fuller et al. Feb 2000 A
6021202 Anderson et al. Feb 2000 A
6021399 Demers et al. Feb 2000 A
6021428 Miloslaysky Feb 2000 A
6026149 Fuller et al. Feb 2000 A
6026156 Epler et al. Feb 2000 A
6026379 Haller et al. Feb 2000 A
6029150 Kravitz Feb 2000 A
6029151 Nikander Feb 2000 A
6029161 Lang et al. Feb 2000 A
6031899 Wu Feb 2000 A
6035021 Katz Mar 2000 A
6035402 Vaeth et al. Mar 2000 A
6041116 Meyers Mar 2000 A
6041118 Michel et al. Mar 2000 A
6044075 Le Boudec et al. Mar 2000 A
6044135 Katz Mar 2000 A
6044146 Gisby et al. Mar 2000 A
6044149 Shaham et al. Mar 2000 A
6044355 Crockett et al. Mar 2000 A
6044368 Powers Mar 2000 A
6047067 Rosen Apr 2000 A
6047221 Piche et al. Apr 2000 A
6047269 Biffar Apr 2000 A
6047887 Rosen Apr 2000 A
6049599 McCausland et al. Apr 2000 A
6049786 Smorodinsky Apr 2000 A
6049787 Takahashi et al. Apr 2000 A
6052453 Sagady et al. Apr 2000 A
6055307 Behnke et al. Apr 2000 A
6055508 Naor et al. Apr 2000 A
6057872 Candelore May 2000 A
6058381 Nelson May 2000 A
6058435 Sassin et al. May 2000 A
6061347 Hollatz et al. May 2000 A
6061448 Smith et al. May 2000 A
6061665 Bahreman May 2000 A
6063028 Luciano May 2000 A
6064667 Gisby et al. May 2000 A
6064730 Ginsberg May 2000 A
6064731 Flockhart et al. May 2000 A
6064973 Smith et al. May 2000 A
6065675 Teicher May 2000 A
6067348 Hibbeler May 2000 A
6067565 Horvitz May 2000 A
6067572 Jensen et al. May 2000 A
6070142 McDonough et al. May 2000 A
6072864 Shtivelman et al. Jun 2000 A
6072870 Nguyen et al. Jun 2000 A
6078928 Schnase et al. Jun 2000 A
6081750 Hoffberg et al. Jun 2000 A
6084943 Sunderman et al. Jul 2000 A
6085226 Horvitz Jul 2000 A
6086626 Jain et al. Jul 2000 A
6097806 Baker et al. Aug 2000 A
6098069 Yamaguchi Aug 2000 A
6102958 Meystel et al. Aug 2000 A
6102970 Kneipp Aug 2000 A
6104801 Miloslaysky Aug 2000 A
6110214 Klimasauskas Aug 2000 A
6112181 Shear et al. Aug 2000 A
6112186 Bergh et al. Aug 2000 A
6115462 Servi et al. Sep 2000 A
6115693 McDonough et al. Sep 2000 A
6118865 Gisby Sep 2000 A
6120298 Jenkins et al. Sep 2000 A
6122358 Shoji et al. Sep 2000 A
6122360 Neyman et al. Sep 2000 A
6122364 Petrunka et al. Sep 2000 A
6122484 Fuller et al. Sep 2000 A
6125178 Walker et al. Sep 2000 A
6125398 Mirashrafi et al. Sep 2000 A
6128280 Jamoussi et al. Oct 2000 A
6128376 Smith Oct 2000 A
6128380 Shaffer et al. Oct 2000 A
6130937 Fotta Oct 2000 A
6132969 Stoughton et al. Oct 2000 A
6134530 Bunting et al. Oct 2000 A
6135396 Whitfield et al. Oct 2000 A
6137862 Atkinson et al. Oct 2000 A
6137870 Scherer Oct 2000 A
6138119 Hall et al. Oct 2000 A
6144737 Maruyama et al. Nov 2000 A
6144964 Breese et al. Nov 2000 A
6146026 Ushiku Nov 2000 A
6147975 Bowman-Amuah Nov 2000 A
6148065 Katz Nov 2000 A
6151387 Katz Nov 2000 A
6151424 Hsu Nov 2000 A
6154528 Bennett, III et al. Nov 2000 A
6154535 Velamuri et al. Nov 2000 A
RE37001 Morganstein et al. Dec 2000 E
6155725 Scepanovic et al. Dec 2000 A
6157655 Shtivelman Dec 2000 A
6157711 Katz Dec 2000 A
6163607 Bogart et al. Dec 2000 A
6170011 Macleod Beck et al. Jan 2001 B1
6170742 Yacoob Jan 2001 B1
6173052 Brady Jan 2001 B1
6174671 Anantharaman et al. Jan 2001 B1
6175563 Miloslavsky Jan 2001 B1
6175564 Miloslavsky et al. Jan 2001 B1
6177932 Galdes et al. Jan 2001 B1
6178141 Duckworth et al. Jan 2001 B1
6178240 Walker et al. Jan 2001 B1
6182133 Horvitz Jan 2001 B1
6185283 Fuller et al. Feb 2001 B1
6185292 Miloslavsky Feb 2001 B1
6185320 Bick et al. Feb 2001 B1
6185683 Ginter et al. Feb 2001 B1
6188965 Mayo et al. Feb 2001 B1
6192121 Atkinson et al. Feb 2001 B1
6192314 Khavakh et al. Feb 2001 B1
6192413 Lee et al. Feb 2001 B1
6200255 Yu Mar 2001 B1
6201950 Fuller et al. Mar 2001 B1
6205207 Scherer Mar 2001 B1
6208970 Ramanan Mar 2001 B1
6212178 Beck et al. Apr 2001 B1
6212669 Jain Apr 2001 B1
6215898 Woodfill et al. Apr 2001 B1
6221592 Schwartz et al. Apr 2001 B1
6223165 Lauffer Apr 2001 B1
6226287 Brady May 2001 B1
6226289 Williams et al. May 2001 B1
6226360 Goldberg et al. May 2001 B1
6229888 Miloslaysky May 2001 B1
6230197 Beck et al. May 2001 B1
6233332 Anderson et al. May 2001 B1
6236978 Tuzhilin May 2001 B1
6236980 Reese May 2001 B1
6243684 Stuart et al. Jun 2001 B1
6246972 Klimasauskas Jun 2001 B1
6253193 Ginter et al. Jun 2001 B1
6256648 Hill et al. Jul 2001 B1
6266649 Linden et al. Jul 2001 B1
6269312 Mayo et al. Jul 2001 B1
6273771 Buckley et al. Aug 2001 B1
6278899 Piche et al. Aug 2001 B1
6298303 Khavakh et al. Oct 2001 B1
6298304 Theimer Oct 2001 B1
6301687 Jain et al. Oct 2001 B1
6308175 Lang et al. Oct 2001 B1
6314420 Lang et al. Nov 2001 B1
6317718 Fano Nov 2001 B1
6317722 Jacobi et al. Nov 2001 B1
6317731 Luciano Nov 2001 B1
6321179 Glance et al. Nov 2001 B1
6321221 Bieganski Nov 2001 B1
6327590 Chidlovskii et al. Dec 2001 B1
6330483 Dailey Dec 2001 B1
6333979 Bondi et al. Dec 2001 B1
6333980 Hollatz et al. Dec 2001 B1
6334127 Bieganski et al. Dec 2001 B1
6334131 Chakrabarti et al. Dec 2001 B2
6340567 Schwartz et al. Jan 2002 B1
6345264 Breese et al. Feb 2002 B1
6347139 Fisher et al. Feb 2002 B1
6347366 Cousins Feb 2002 B1
6353813 Breese et al. Mar 2002 B1
6356632 Foster et al. Mar 2002 B1
6356890 Agrawal et al. Mar 2002 B1
6356891 Agrawal et al. Mar 2002 B1
6356899 Chakrabarti et al. Mar 2002 B1
6366903 Agrawal et al. Apr 2002 B1
6381504 Havener et al. Apr 2002 B1
6385245 De Haan et al. May 2002 B1
6389372 Glance et al. May 2002 B1
6400996 Hoffberg et al. Jun 2002 B1
6404920 Hsu Jun 2002 B1
6405922 Kroll Jun 2002 B1
6408064 Fedorov et al. Jun 2002 B1
6408066 Andruska et al. Jun 2002 B1
6411675 Llacer Jun 2002 B1
6411708 Khan Jun 2002 B1
6412012 Bieganski et al. Jun 2002 B1
6415248 Bangalore et al. Jul 2002 B1
6418424 Hoffberg et al. Jul 2002 B1
6421709 McCormick et al. Jul 2002 B1
6430558 Delano Aug 2002 B1
6446035 Grefenstette et al. Sep 2002 B1
6449367 Van Wie et al. Sep 2002 B2
6453038 McFarlane et al. Sep 2002 B1
6456737 Woodfill et al. Sep 2002 B1
6459784 Humphrey et al. Oct 2002 B1
6463299 Macor Oct 2002 B1
6463582 Lethin et al. Oct 2002 B1
6466654 Cooper et al. Oct 2002 B1
6466909 Didcock Oct 2002 B1
6466970 Lee et al. Oct 2002 B1
6470077 Chan Oct 2002 B1
6470261 Ng et al. Oct 2002 B1
6477245 Chevet et al. Nov 2002 B1
6477246 Dolan et al. Nov 2002 B1
6477494 Hyde-Thomson et al. Nov 2002 B2
6480844 Cortes et al. Nov 2002 B1
6484123 Srivastava Nov 2002 B2
6487497 Khavakh et al. Nov 2002 B2
6487533 Hyde-Thomson et al. Nov 2002 B2
6493432 Blum et al. Dec 2002 B1
6493658 Koford et al. Dec 2002 B1
6493696 Chazin Dec 2002 B1
6496568 Nelson Dec 2002 B1
6497169 Khosla Dec 2002 B1
6510220 Beckett, II et al. Jan 2003 B1
6510221 Fisher et al. Jan 2003 B1
6513029 Agrawal et al. Jan 2003 B1
6516310 Paulley Feb 2003 B2
6519259 Baker et al. Feb 2003 B1
6519459 Chavez, Jr. et al. Feb 2003 B1
6522726 Hunt et al. Feb 2003 B1
6529870 Mikkilineni Mar 2003 B1
6529891 Heckerman Mar 2003 B1
6536935 Parunak et al. Mar 2003 B2
6546378 Cook Apr 2003 B1
6549782 Roy Apr 2003 B2
6560360 Neskovic et al. May 2003 B1
6560758 Jain May 2003 B1
6597801 Cham et al. Jul 2003 B1
6607888 Schwartz et al. Aug 2003 B2
6618490 Cham et al. Sep 2003 B1
6618593 Drutman et al. Sep 2003 B1
6618716 Horvitz Sep 2003 B1
6621424 Brand Sep 2003 B1
6622160 Horvitz Sep 2003 B1
6633544 Rexford et al. Oct 2003 B1
6640145 Hoffberg et al. Oct 2003 B2
6641536 Hossack et al. Nov 2003 B2
6646572 Brand Nov 2003 B1
6651046 Sato et al. Nov 2003 B1
6678611 Khavakh et al. Jan 2004 B2
6697818 Li et al. Feb 2004 B2
6704410 McFarlane et al. Mar 2004 B1
6708120 Mayo et al. Mar 2004 B1
6714967 Horvitz Mar 2004 B1
6721337 Kroeger et al. Apr 2004 B1
6731605 Deshpande May 2004 B1
6733929 Pierrat May 2004 B2
6745172 Mancisidor et al. Jun 2004 B1
6751536 Kipersztok et al. Jun 2004 B1
6771765 Crowther et al. Aug 2004 B1
6782391 Scher Aug 2004 B1
6782515 Scott et al. Aug 2004 B2
6792356 Mayo et al. Sep 2004 B2
6795567 Cham et al. Sep 2004 B1
6798876 Bala Sep 2004 B1
6801861 Mayo et al. Oct 2004 B2
6804611 Mayo et al. Oct 2004 B2
6807155 Subramanian Oct 2004 B1
6816585 Blatt et al. Nov 2004 B1
6823315 Bucci et al. Nov 2004 B1
6834109 Pare, Jr. et al. Dec 2004 B1
6850252 Hoffberg Feb 2005 B1
6850965 Allen Feb 2005 B2
6859207 Nougaret et al. Feb 2005 B2
6873610 Noever Mar 2005 B1
6879926 Schmit et al. Apr 2005 B2
6898205 Chaskar et al. May 2005 B1
6898531 Sheehan et al. May 2005 B2
6904328 Rietman et al. Jun 2005 B2
6917932 Chang et al. Jul 2005 B2
6938024 Horvitz Aug 2005 B1
6944606 Schmit et al. Sep 2005 B2
6950711 Havener et al. Sep 2005 B2
6950754 Mayo et al. Sep 2005 B2
6953024 Linna et al. Oct 2005 B2
6965800 Schmit et al. Nov 2005 B2
6985881 Johnson et al. Jan 2006 B2
6993075 Kim et al. Jan 2006 B2
7003484 Keyes et al. Feb 2006 B2
7006881 Hoffberg et al. Feb 2006 B1
7028005 Messmer et al. Apr 2006 B2
7031936 Johnson et al. Apr 2006 B2
7035937 Haas et al. Apr 2006 B2
7039608 Johnson et al. May 2006 B2
7058587 Horne Jun 2006 B1
7058617 Hartman et al. Jun 2006 B1
7058638 Singh Jun 2006 B2
7072815 Chaudhary et al. Jul 2006 B1
7075892 Grover et al. Jul 2006 B2
7082411 Johnson et al. Jul 2006 B2
7083879 Pierrat et al. Aug 2006 B2
7092821 Mizrahi et al. Aug 2006 B2
7096197 Messmer et al. Aug 2006 B2
7110431 Oates Sep 2006 B2
7110437 Oates et al. Sep 2006 B2
7110440 Oates et al. Sep 2006 B2
7110452 Katsavounidis et al. Sep 2006 B2
7110525 Heller et al. Sep 2006 B1
7110970 Dingman et al. Sep 2006 B2
7117188 Guyon et al. Oct 2006 B2
7120599 Keyes Oct 2006 B2
7120865 Horvitz et al. Oct 2006 B1
7133451 Kim et al. Nov 2006 B2
7136530 Lee et al. Nov 2006 B2
7136710 Hoffberg et al. Nov 2006 B1
7162445 Johnson et al. Jan 2007 B2
7164706 Oates Jan 2007 B2
7165043 Keyes et al. Jan 2007 B2
7167576 Steenburgh et al. Jan 2007 B2
7171383 Johnson et al. Jan 2007 B2
7171385 Dembo et al. Jan 2007 B1
7177799 Calcagno et al. Feb 2007 B2
7177859 Pather et al. Feb 2007 B2
7187790 Sabol et al. Mar 2007 B2
7191140 Yu et al. Mar 2007 B2
7194681 Horvitz Mar 2007 B1
7203221 Oates Apr 2007 B2
7210062 Oates et al. Apr 2007 B2
7210624 Birjandi et al. May 2007 B1
7218668 Oates et al. May 2007 B2
7228207 Clarke et al. Jun 2007 B2
7234126 Catthoor et al. Jun 2007 B2
7242988 Hoffberg et al. Jul 2007 B1
7248623 Oates Jul 2007 B2
7263538 Hong Aug 2007 B2
7272613 Sim et al. Sep 2007 B2
7295966 Barklund et al. Nov 2007 B2
7313550 Kulkarni et al. Dec 2007 B2
7318051 Weston et al. Jan 2008 B2
7327780 Oates et al. Feb 2008 B2
7334044 Allen Feb 2008 B1
7337031 Birjandi et al. Feb 2008 B1
7343311 Ganesan et al. Mar 2008 B2
7343360 Ristanovic et al. Mar 2008 B1
7373481 Xu May 2008 B2
7376175 Oates et al. May 2008 B2
7426292 Moghaddam et al. Sep 2008 B2
7440914 Jacobsen Oct 2008 B2
7444269 Drumheller Oct 2008 B2
7451005 Hoffberg et al. Nov 2008 B2
7453922 Oates et al. Nov 2008 B2
7475048 Weston et al. Jan 2009 B2
7490085 Walker et al. Feb 2009 B2
7509671 Bedell et al. Mar 2009 B1
7526442 Edgar et al. Apr 2009 B2
7555542 Ayers et al. Jun 2009 B1
7567702 Woodfill et al. Jul 2009 B2
7570804 Kim et al. Aug 2009 B2
7603284 Stroman et al. Oct 2009 B2
7607440 Coste-Maniere et al. Oct 2009 B2
7617163 Ben-Hur et al. Nov 2009 B2
7627510 Jain et al. Dec 2009 B2
7650319 Hoffberg et al. Jan 2010 B2
7667707 Margulis Feb 2010 B1
7676594 Fukasawa et al. Mar 2010 B2
7707056 Anbil et al. Apr 2010 B1
7734493 Anbil Jun 2010 B1
7813822 Hoffberg Oct 2010 B1
7822658 Casati et al. Oct 2010 B2
7831392 Antoniotti et al. Nov 2010 B2
7844666 Horvitz et al. Nov 2010 B2
7848944 Anbil Dec 2010 B1
7860740 Anbil et al. Dec 2010 B1
7870240 Horvitz Jan 2011 B1
7904187 Hoffberg et al. Mar 2011 B2
7904875 Hegyi Mar 2011 B2
7912631 Howard et al. Mar 2011 B2
7916858 Heller et al. Mar 2011 B1
7917433 Jacobsen Mar 2011 B2
7925077 Woodfill et al. Apr 2011 B2
7956809 Haas et al. Jun 2011 B2
7966078 Hoffberg et al. Jun 2011 B2
7970699 Bramlage et al. Jun 2011 B1
7974714 Hoffberg Jul 2011 B2
7987003 Hoffberg et al. Jul 2011 B2
8000679 Hutcheson et al. Aug 2011 B2
8014908 Clarke et al. Sep 2011 B2
8019633 Stroman et al. Sep 2011 B2
8024415 Horvitz et al. Sep 2011 B2
8031060 Hoffberg et al. Oct 2011 B2
8032477 Hoffberg et al. Oct 2011 B1
8046313 Hoffberg et al. Oct 2011 B2
8131576 Rothberg et al. Mar 2012 B2
8165916 Hoffberg et al. Apr 2012 B2
8255269 Aued Aug 2012 B1
8260040 Woodfill et al. Sep 2012 B2
8311342 Schopp et al. Nov 2012 B2
8321335 Bramlage et al. Nov 2012 B1
8332059 Herre et al. Dec 2012 B2
8341073 Bramlage et al. Dec 2012 B1
8352400 Hoffberg et al. Jan 2013 B2
8364136 Hoffberg et al. Jan 2013 B2
8369967 Hoffberg et al. Feb 2013 B2
8402490 Hoffberg-Borghesani et al. Mar 2013 B2
8433593 Stroman et al. Apr 2013 B2
8516266 Hoffberg et al. Aug 2013 B2
8522192 Avalos et al. Aug 2013 B1
8552847 Hill Oct 2013 B1
8554656 Kotelba Oct 2013 B2
8582753 Heller et al. Nov 2013 B1
8583263 Hoffberg et al. Nov 2013 B2
8631044 Jebara et al. Jan 2014 B2
8639024 Woodfill et al. Jan 2014 B2
8642262 Stroman et al. Feb 2014 B2
8654964 Noble, Jr. et al. Feb 2014 B1
8665985 Piesinger Mar 2014 B1
8666885 Bramlage et al. Mar 2014 B1
8700438 Heinold Apr 2014 B1
8712098 Bodenmueller Apr 2014 B2
8718194 Doan et al. May 2014 B2
8725609 Pawelczyk et al. May 2014 B2
8732328 Margulis May 2014 B2
8793183 Bramlage et al. Jul 2014 B2
8812483 Bieren et al. Aug 2014 B2
8830189 Rimon et al. Sep 2014 B2
8892495 Hoffberg et al. Nov 2014 B2
8917852 Noble, Jr. et al. Dec 2014 B1
8941476 Hill Jan 2015 B2
8945916 Chou Feb 2015 B2
8971519 Hoffberg Mar 2015 B1
9015581 Nykyforov Apr 2015 B2
9021608 Rogel et al. Apr 2015 B2
9042645 Mainali et al. May 2015 B2
9043147 Chen et al. May 2015 B2
9083800 Noble, Jr. et al. Jul 2015 B1
9117235 Jebara et al. Aug 2015 B2
9135670 Mayer Sep 2015 B2
9212917 Lin et al. Dec 2015 B2
9223900 Jebara et al. Dec 2015 B2
9239951 Hoffberg et al. Jan 2016 B2
9269022 Rhoads et al. Feb 2016 B2
9305264 Anguera Miro Apr 2016 B2
9327703 Hill May 2016 B2
9344237 Margulis May 2016 B2
9384168 Mortensen Jul 2016 B2
9419943 Goyal et al. Aug 2016 B2
9478063 Rhoads et al. Oct 2016 B2
9491295 Shaffer et al. Nov 2016 B2
9535563 Hoffberg et al. Jan 2017 B2
RE46310 Hoffberg et al. Feb 2017 E
9563920 Lall Feb 2017 B2
9563926 Avni et al. Feb 2017 B2
9602532 Goyal et al. Mar 2017 B2
9635177 Hoffberg Apr 2017 B1
9690275 Gan et al. Jun 2017 B2
9703006 Stern et al. Jul 2017 B2
9727042 Hoffberg-Borghesani et al. Aug 2017 B2
9741085 Avni et al. Aug 2017 B2
9778719 Gan et al. Oct 2017 B2
9904630 Goyal et al. Feb 2018 B2
9948103 Heyde et al. Apr 2018 B2
9990565 Rhoads et al. Jun 2018 B2
9990714 Noack et al. Jun 2018 B2
20010000458 Shtivelman et al. Apr 2001 A1
20010011228 Shenkman Aug 2001 A1
20010014143 Kuhn Aug 2001 A1
20010024497 Campbell et al. Sep 2001 A1
20010056367 Herbert et al. Dec 2001 A1
20020006191 Weiss Jan 2002 A1
20020009190 McIllwaine et al. Jan 2002 A1
20020019846 Miloslavsky et al. Feb 2002 A1
20020046030 Haritsa et al. Apr 2002 A1
20020046200 Floven et al. Apr 2002 A1
20020046202 Honda Apr 2002 A1
20020111811 Bares et al. Aug 2002 A1
20030002646 Gutta et al. Jan 2003 A1
20030191632 Sumner et al. Oct 2003 A1
20040111310 Szlam et al. Jun 2004 A1
20040165717 Mcllwaine et al. Aug 2004 A1
20040186597 Wippersteg et al. Sep 2004 A1
20040215547 Nazari et al. Oct 2004 A1
20040249650 Freedman et al. Dec 2004 A1
20050031196 Moghaddam et al. Feb 2005 A1
20050086165 Pawelczyk et al. Apr 2005 A1
20050108414 Taylor et al. May 2005 A1
20050165713 Lafforet Jul 2005 A1
20060013473 Woodfill et al. Jan 2006 A1
20060015264 McShea et al. Jan 2006 A1
20060155398 Hoffberg et al. Jul 2006 A1
20060200253 Hoffberg et al. Sep 2006 A1
20060200258 Hoffberg et al. Sep 2006 A1
20060200259 Hoffberg et al. Sep 2006 A1
20060200260 Hoffberg et al. Sep 2006 A1
20060235686 Jeong et al. Oct 2006 A1
20060282855 Margulis Dec 2006 A1
20070016476 Hoffberg et al. Jan 2007 A1
20070053513 Hoffberg Mar 2007 A1
20070057919 Ng et al. Mar 2007 A1
20070061022 Hoffberg-Borghesani et al. Mar 2007 A1
20070061023 Hoffberg et al. Mar 2007 A1
20070061735 Hoffberg et al. Mar 2007 A1
20070070038 Hoffberg et al. Mar 2007 A1
20070118502 Aragones et al. May 2007 A1
20070168117 Howard et al. Jul 2007 A1
20070234272 Hegyi Oct 2007 A1
20070285815 Herre et al. Dec 2007 A1
20080040749 Hoffberg et al. Feb 2008 A1
20080041733 Hibbs et al. Feb 2008 A1
20080056184 Green Mar 2008 A1
20080059263 Stroman et al. Mar 2008 A1
20080059264 Stroman et al. Mar 2008 A1
20080059330 Stroman et al. Mar 2008 A1
20080059534 Stroman et al. Mar 2008 A1
20080065444 Stroman et al. Mar 2008 A1
20080065473 Stroman et al. Mar 2008 A1
20080077481 Stroman et al. Mar 2008 A1
20080097809 Stroman et al. Apr 2008 A1
20080102947 Hays et al. May 2008 A1
20080193800 Osawa et al. Aug 2008 A1
20080269953 Steels et al. Oct 2008 A1
20080319844 Hua et al. Dec 2008 A1
20090043698 Jacobsen Feb 2009 A1
20090063250 Burgess et al. Mar 2009 A1
20090063268 Burgess et al. Mar 2009 A1
20090110301 Schopp et al. Apr 2009 A1
20090136091 Woodfill et al. May 2009 A1
20090228291 Rothberg et al. Sep 2009 A1
20090248574 Leung et al. Oct 2009 A1
20090248587 Van Buskirk Oct 2009 A1
20090300012 Levow et al. Dec 2009 A1
20100017300 Bramlage et al. Jan 2010 A1
20100076642 Hoffberg et al. Mar 2010 A1
20100246969 Winder et al. Sep 2010 A1
20100293181 Muller et al. Nov 2010 A1
20110029922 Hoffberg et al. Feb 2011 A1
20110040619 Jebara et al. Feb 2011 A1
20110043328 Bassali Feb 2011 A1
20110156896 Hoffberg et al. Jun 2011 A1
20110167110 Hoffberg et al. Jul 2011 A1
20110210851 Woodfill et al. Sep 2011 A1
20110258201 Levow et al. Oct 2011 A1
20110279397 Rimon et al. Nov 2011 A1
20110282471 Herre et al. Nov 2011 A1
20110299734 Bodenmueller Dec 2011 A1
20110301997 Gale et al. Dec 2011 A1
20120005238 Jebara et al. Jan 2012 A1
20120017232 Hoffberg et al. Jan 2012 A1
20120036016 Hoffberg et al. Feb 2012 A1
20120143674 Ziskrout et al. Jun 2012 A1
20120150651 Hoffberg et al. Jun 2012 A1
20120150768 Kotelba Jun 2012 A1
20120182415 Toyoda et al. Jul 2012 A1
20120253770 Stern et al. Oct 2012 A1
20120330970 Bieren et al. Dec 2012 A1
20130016032 Margulis Jan 2013 A1
20130031643 Rogel et al. Jan 2013 A1
20130073098 Gan et al. Mar 2013 A1
20130080516 Bologh Mar 2013 A1
20130101160 Woodfill et al. Apr 2013 A1
20130138473 Balko et al. May 2013 A1
20130139164 Balko May 2013 A1
20130147598 Hoffberg et al. Jun 2013 A1
20130191145 Nudd et al. Jul 2013 A1
20130197957 Nudd et al. Aug 2013 A1
20130218611 Mornell et al. Aug 2013 A1
20130238158 Gan et al. Sep 2013 A1
20130238461 Tieken et al. Sep 2013 A1
20130253971 Nudd Sep 2013 A1
20130254655 Nykyforov Sep 2013 A1
20130304533 Nudd et al. Nov 2013 A1
20130308860 Mainali et al. Nov 2013 A1
20130315448 Fletcher et al. Nov 2013 A1
20130330335 Bremel et al. Dec 2013 A1
20140038137 Hill Feb 2014 A1
20140039962 Nudd et al. Feb 2014 A1
20140089241 Hoffberg et al. Mar 2014 A1
20140097250 Antognini et al. Apr 2014 A1
20140122506 Jebara et al. May 2014 A1
20140129320 Jebara et al. May 2014 A1
20140143042 Bhasin et al. May 2014 A1
20140164171 Lu et al. Jun 2014 A1
20140164286 Jha et al. Jun 2014 A1
20140173452 Hoffberg et al. Jun 2014 A1
20140195474 Anguera Miro Jul 2014 A1
20140247112 Bassali Sep 2014 A1
20140247197 Margulis Sep 2014 A1
20140254790 Shaffer et al. Sep 2014 A1
20140277796 Peskin et al. Sep 2014 A1
20140277814 Hall et al. Sep 2014 A1
20140279304 Lall Sep 2014 A1
20140281945 Avni et al. Sep 2014 A1
20140281946 Avni et al. Sep 2014 A1
20140289076 Jebara et al. Sep 2014 A1
20140289106 Pawelczyk et al. Sep 2014 A1
20140297548 Wilner et al. Oct 2014 A1
20140309932 Chen et al. Oct 2014 A1
20140351166 Schlossberg Nov 2014 A1
20140365548 Mortensen Dec 2014 A1
20150016712 Rhoads et al. Jan 2015 A1
20150046254 Raab et al. Feb 2015 A1
20150051824 Mayer Feb 2015 A1
20150142646 Timm et al. May 2015 A1
20150145665 Hill May 2015 A1
20150153476 Prange et al. Jun 2015 A1
20150178547 Bahjat et al. Jun 2015 A1
20150186786 Goyal et al. Jul 2015 A1
20150193602 Rogel et al. Jul 2015 A1
20150204559 Hoffberg et al. Jul 2015 A1
20150207938 Shaffer et al. Jul 2015 A1
20150220454 Goyal et al. Aug 2015 A1
20150220845 Goyal et al. Aug 2015 A1
20150300824 Lin et al. Oct 2015 A1
20150339923 Konig et al. Nov 2015 A1
20160085868 Young et al. Mar 2016 A1
20160140244 Gerding et al. May 2016 A1
20160171744 Rhoads et al. Jun 2016 A1
20160189217 Burgess et al. Jun 2016 A1
20160232546 Ranft et al. Aug 2016 A1
20160276835 Heyde et al. Sep 2016 A1
20160314265 Sternberg et al. Oct 2016 A1
20160314266 Sternberg et al. Oct 2016 A1
20160314267 Sternberg et al. Oct 2016 A1
20160314268 Sternberg et al. Oct 2016 A1
20160321881 Hill Nov 2016 A1
20160328742 Shiravi Khozani et al. Nov 2016 A1
20160350445 Dowski, Jr. et al. Dec 2016 A1
20160379284 Alizadeh et al. Dec 2016 A1
20170069016 Rackley et al. Mar 2017 A1
20170109430 Lall Apr 2017 A1
20170148125 Ericksrud et al. May 2017 A1
20170167882 Ulloa Paredes et al. Jun 2017 A1
20170193547 Berrett et al. Jul 2017 A1
20170206797 Solomon et al. Jul 2017 A1
20170236037 Rhoads et al. Aug 2017 A1
20170347222 Kanter Nov 2017 A1
20180004849 Davey-Rogers et al. Jan 2018 A1
20180025452 Fadeev et al. Jan 2018 A1
20180068435 Noack et al. Mar 2018 A1
20180095967 Kota Apr 2018 A1
20180096300 Boye et al. Apr 2018 A1
20180101872 Mongeau Apr 2018 A1
20180107804 Rogel et al. Apr 2018 A1
20180111051 Xue et al. Apr 2018 A1
20180112983 Ahmed et al. Apr 2018 A1
20180124143 Bologh May 2018 A1
20180129691 Mathur May 2018 A1
Provisional Applications (1)
Number Date Country
60300684 Jun 2001 US
Continuations (5)
Number Date Country
Parent 14635868 Mar 2015 US
Child 15492781 US
Parent 14067140 Oct 2013 US
Child 14635868 US
Parent 13073559 Mar 2011 US
Child 14067140 US
Parent 11532883 Sep 2006 US
Child 13073559 US
Parent 10180763 Jun 2002 US
Child 11532883 US