Abstract:
Methods and apparatus, including computer program products, for measuring how well interactive components of a service facility that are accessible to users through a communication network perform in serving users, the interactive components being a proper subset of all of the interactive components of the service facility, and using the results of the measuring to evaluate the performance of the service facility with respect to a target performance.

Description:
BACKGROUND  
       [0001]     This description relates to measuring customer service levels.  
         [0002]     Investment firms provide their customers (including managers, plan sponsors and participants) with on-line access to accounts, such as retirement accounts and investment accounts. To access an account via the Internet, for example, an owner of the account enters a user identifier (“ID”) and a password on a Web page provided by the investment firm. Once inside the account, the owner can view account information, such as balances, or change account parameters, such as fund allocations, by navigating from one Web page to another within the investment firm&#39;s Web site.  
         [0003]     Currently, the investment firm may measure the performance of individual Web pages by setting a quality of service performance requirement (e.g., service shall be available at least 99% of each week, download time for a Web page of the Web site shall be less than or equal to 8 seconds) and measuring the quality of service using one or more performance metrics (e.g., availability shall be measured as the number of minutes per day that the service is capable of receiving and responding to messages from the Internet divided by the total number of minutes in a day).  
       SUMMARY  
       [0004]     In general, in one aspect, the invention provides methods and apparatus, including computer program products, for measuring how well interactive components of a service facility that are accessible to users through a communication network perform in serving users, the interactive components being a proper subset of all of the interactive components of the service facility. The results of the measuring are used to evaluate the performance of the service facility with respect to a target performance.  
         [0005]     The interactive components of the selected proper subset are key components. The interactive components of the selected proper subset may be assigned weights. The service facility can be a Web-based service. The performance value can be measured using a time-based metric. A user can provide the target performance value for each interactive component of the selected proper subset.  
         [0006]     The invention provides methods and apparatus, including computer program products, enabling a user to select interactive components of one or more Web pages associated with the service facility to be included in the proper subset of components. The user can group interactive components of the selected proper subset into one or more groups of interactive components, for example, on a page-basis. A user can provide the target performance value for each group of interactive components.  
         [0007]     Advantages of particular implementations of the invention may include one or more of the following. The monitoring application provides a customer service level measurement for a Web-based service that is based on the performance of key components of Web pages associated with the Web-based service rather than the performance of all of the Web pages associated with the Web-based service. In so doing, the monitoring application approximates a customer experience when utilizing the Web-based service.  
         [0008]     By measuring the performance of key components rather than all of the pages associated with the Web-based service, the monitoring application filters out performance outliers, thus reducing false positive or false negative results. By monitoring and analyzing the customer service level measurements provided by the monitoring application, a Web-based service provider can determine which of the key components are causing the Web-based service users to have a negative or less than desirable experience, and troubleshoot the problem areas directly. This will enable the Web-based service provider to provide the users of its Web-based service with a consistent and reliable user experience.  
         [0009]     The details of one or more examples are set forth in the accompanying drawings and the description below. Further features, aspects, and advantages of the invention will become apparent from the description, the drawings, and the claims. 
     
    
     DESCRIPTION OF DRAWINGS  
       [0010]      FIG. 1 . shows a network system for monitoring customer service levels.  
         [0011]      FIGS. 2   a - 2   c  are screenshots of a Web-based service.  
         [0012]      FIG. 3  shows a customer service level monitoring process.  
         [0013]      FIG. 4  is a screenshot of a Customer Service Level (CSL) dashboard for a Web-based service. 
     
    
     DETAILED DESCRIPTION  
       [0014]     An organization can deploy a Web site to provide its clients with online access to one or more Web-based services. For example, an investment firm can deploy a Web site to provide customers having accounts with the investment firm with online access to a Web-based service that enables customers to manage their accounts. Each Web-based service is associated with a collection of Web pages accessible through the Web site. The Web pages can be static pages stored on and delivered by a Web server, dynamic pages that are generated on-the-fly by programs residing at the Web server, or some combination of static and dynamic pages.  
         [0015]     One way in which an organization can measure the success of a Web-based service is by devising a measure that is a good approximation for the customer satisfaction with the customer&#39;s experience in interacting with the Web-based service. By deploying a monitoring application on a Web server, a quantifiable approximation of a customer service level may be provided by monitoring the amount by which components of a Web-based service degrade under production conditions.  
         [0016]     When displayed on a user interface of a client computer, each Web page includes a set of interactive components that collectively form the Web page. Each “component” includes one or more displayed objects (e.g., a word, a line of text, a paragraph of text, an image, a hyperlink, a button, a counter, etc.) that is perceptible as a unit. Examples of components include a navigation bar, a menu, a footer, a logo, a banner, and a tool bar. Other examples of components are described below with reference to the Web pages of  FIGS. 2   a ,  2   b  and  2   c.    
         [0017]     The term “key components” refers to components of Web pages associated with a Web-based service that have been identified (e.g., by the Web-based service provider or the organization) as components representative of a customer&#39;s interaction with the Web-based service. A key component is typically associated with a Web page that has a high hit rate (indicating that the component is frequently used or visible, and therefore important to the customer in his interaction with the website). A customer is likely to perceive his interaction with the Web-based service more negatively when a key component experiences performance degradation. Accordingly, by measuring the performance degradation of key components (rather than all of the components) of Web pages associated with a Web-based service, the monitoring application can provide a customer service level measurement that approximates a customer&#39;s perception of his experience while using the Web-based service.  
         [0018]     Referring to  FIG. 1 , a network system  100  for monitoring customer service levels of a Web-based service includes a client computer  102 , a server computer  104 , a network  106 , and a firewall  108 . Additional or alternative network devices and computing devices that are not shown may also be included in the system  100 .  
         [0019]     The network  106  may be the Internet, a wide area network (“WAN”), or any other Internet Protocol (IP) or non-IP network capable of communicating Web pages. Connected to the network  106  is the client computer  102 . The client computer  102  is a personal computer (“PC”), or other processing device, which includes a memory for storing computer programs and a processor for executing those programs to perform various functions. Among the programs stored in memory are an operating system, such as Microsoft® Windows® XP, and a Web browser, such as Microsoft® Internet Explorer®, for accessing Web pages from the server computer  104 .  
         [0020]     The server computer  104  is connected to the network  106  through a firewall  108 . In one example, the server computer  104  is a Web server. The Web server  104  includes a memory  110  which stores computer programs and a processor  112  which executes instructions in those computer programs to perform various functions.  
         [0021]     The computer programs stored in the memory  110  of the Web server  104  include code  110   a  and applications  110   b . The applications  110   b  in the Web server  104  include Web-based services  110   c  that enable a remote user  114  at the client computer  102  to access information on accounts that are accessible to the Web server  104 . Examples of commercial embodiments of these Web-based services  110   c  include Plan Sponsor Webstation® (“PSW”), eWorkplace (“eWP”) and NetBenefits SM , from Fidelity Investments®. PSW provides a plan sponsor, such as an employer, with information about an investment plan. For example, using PSW, an employer can obtain information about its employees&#39; retirement plan. eWP provides human resource representatives and managers the ability to perform human resource transactions (i.e. hiring, employee reviews, etc.). NetBenefits provides an individual, such as an employee, with information about investment accounts and other financial services available to the individual.  
         [0022]     The code  110   a  in the Web server  104  receives identification information from a customer, and authenticates the customer based on information in a database  116 . The database  116  includes user identifiers, passwords, and other information for permitting a customer to access an account. Once the customer is authenticated, the code  110   a  retrieves information from the database  116  and provides that information to the customer. This information identifies which of the applications  110   b  are accessible to the customer.  
         [0023]      FIG. 2   a  shows an example screenshot of a Fidelity NetBenefits home page  202  on a display  204 . The Web page  202  includes a corner component  206 , and a body component  208 . In other examples, additional or different components, for example, a navigation bar component may be included in a Web page. In the example shown in  FIG. 2   a , the corner component  206  contains a logo for the NetBenefits Web site, and the body component  208  includes a user input section  210  in which a customer may enter identification information in the form of a user ID and password. The body component  208  also includes hyperlinks  212  to other Web pages of the Web-based service. The Web page  202  also includes a footer component  214  that includes lines of text and additional hyperlinks.  
         [0024]      FIG. 2   b  shows an example screenshot of a NetBenefits user home page  220  associated with a particular customer, which, in this illustrated example, is Pat Smith. The Web page  220  has a corner component  222  that includes the “Fidelity Investments” logo, and a navigation bar component  224  that provides links for top-level topic areas that are accessible from any Web page associated with the NetBenefits Web site. In a body component  226  of Pat Smith&#39;s user home page  220 , links (shown as underlined text) for service features that are available to Pat Smith&#39;s account are displayed. These links include links for viewing and modifying “Savings and Retirement” information, links to view “Pay” information, and links to manage personal information (“Profile”). The Web page  220  also includes a second navigation bar component  228  that provides links to topics that may be of interest to the customer “Pat Smith”, and a footer component  229  that includes lines of text and a “NetBenefits provided by Fidelity Investments” logo.  
         [0025]      FIG. 2   c  shows an example screenshot of a NetBenefits user home page  230  associated with a customer, which, in this illustrated example, is Annette A. Slater. The Web page  230  has a corner component  232  that includes the “Theta Corporation” logo, and a navigation bar component  234  that provides links for top-level topic areas that are accessible from any Web page associated with the “NetBenefits for Theta Corporation” Web site. In the body component  236  of Annette A. Slater&#39;s user home page  230 , links (shown as underlined text) for service features that are available to Annette A. Slater&#39;s account are displayed.  
         [0026]     As can be seen from the screenshots, there are fewer service features available to Annette A. Slater&#39;s account as compared to that of Pat Smith&#39;s account.  
         [0027]     In some instances, the download time for the Web pages shown in  FIGS. 2   b  and  2   c  is the same due to network conditions. In other instances, the download time is proportional to the number of objects to be displayed in the body component of the Web page, as the other components, e.g., the corner component and the navigation bar component, are the same on both Web pages.  
         [0028]      FIG. 3  shows a customer service level (“CSL”) monitoring process  300  that allows a Web-based service provider to obtain a reasonable approximation of a customer&#39;s satisfaction with the customer&#39;s experience in interacting with a Web-based service. One or more components of Web pages associated with a Web-based service are identified ( 302 ) to a monitoring application  110   d  as key components.  
         [0029]     Generally, the Web-based service provider identifies a proper subset (i.e., a subset which is not the entire set) of the components of the Web pages associated with the Web-based service as key components. In most instances, a proper subset of the components of one or more Web pages is identified as key components. However, there may be instances in which the set of all of the components that collectively form a particular Web page are identified as key components. The components that are identified as key components typically have a close clustering of performance value measurements regardless of customer or customer input. In other words, the amount of time it takes to download a particular key component from the Web server to a client computer is relatively consistent regardless of who the customer is, and which selections are made by the customer within the Web-based service.  
         [0030]     Referring to the examples shown in  FIGS. 2   a ,  2   b  and  2   c , a service provider is likely to identify the corner component  222 ,  232  and the navigation bar component  224 ,  234  as key components of the NetBenefits Web site because these components are the same regardless of user. The service provider may also include the body component  208  of the NetBenefits home page  202  shown in  FIG. 2   a  as a key component (thus identifying all components of the NetBenefits home page as key) because the NetBenefits home page is a high hit page that is frequented by many (if not all) NetBenefits customers, and is therefore representative of a customer&#39;s interaction with the NetBenefits Web site.  
         [0031]     The service provider is unlikely to identify the body component  226 ,  236  of the NetBenefits user home pages shown in  FIGS. 2   b  and  2   c  as a key component because the number of links (or objects) displayed in the body component  226 ,  236  differ based on the number of service features that are available to a particular user&#39;s account. Other components on other pages associated with the NetBenefits Web site may also be identified as key components.  
         [0032]     Selection of key components is preferably done by the service provider prior to deployment of the NetBenefits application. However, the service provider may select key components on an on-going basis as new features and Web pages are added to the NetBenefits application.  
         [0033]     After identifying the key components, the service provider defines ( 304 ) a target performance value for each key component using a suitable performance metric. A performance value is a value indicating how quickly a component is downloaded from the Web server to a client computer. A performance value may be expressed in terms of time (e.g., it took 1 second to download component X from a Web server to a client computer) or data rate (e.g., data for component X was transmitted at an average rate of 5 megabytes per second).  
         [0034]     In one example, the service provider operator defines a target performance value (e.g., through a graphical user interface of the monitoring application  110   d ) for each key component using a time-based metric. In another example, the service provider operator groups the key components on a page-basis and defines a target performance value for each page of key components using a time-based metric, such as “1 second to create, download and display key components of a Web page with a T 1  connection” and “5 seconds to create, download and display key components of a Web page with a 56 k connection”. In this example, the service provider operator defines a target performance value based on an aggregate download time for all of the key components associated with a particular Web page. As long as all of the key components of the Web page are created, downloaded and displayed in 1 second or less with a T 1  connection, for example, the target performance value is met regardless of how long it takes for the remaining components of that Web page to be created, downloaded and displayed.  
         [0035]     After defining the target performance values, the monitoring application  110   d  measures a performance value of each user request of a key component. For example, the monitoring application  110   d  measures ( 306 ) the download time for each key component of a Web site and compares ( 308 ) the measured performance value with the respective target performance value. A measured performance value that is less than or equal to a respective target performance value signifies an acceptable download time for the key component. The monitoring application  110   d  then determines ( 310 ) a CSL associated with the Web-based service based upon the comparisons of the measured performance values with the target performance values of all of the key components of the Web site. In one implementation, the monitoring application  110   d  calculates the CSL for the Web site using the following formula:  
         CSL   ⁡     (   T   )       =           Number  of  key  components  of  the  web  site  with  acceptable  download  time     ⁢     (   T   )           Total  number  of  downloaded  key  components  of  the  web  site     ⁢     (   T   )         ×   100         
 
 where T represents a sample. For example, if in a given hour, 45,978 key components out of a total of 48,457 components satisfied the previously-set benchmark criteria, the monitoring application  110   d  calculates the CSL for the Web site to be approximately 95%.  
         CSL   ⁡     (   T   )       =         45978   48457     ×   100     ≈   94.8         
 
         [0036]     In another example, the monitoring application  110   d  measures the aggregate download time for the key components of each Web page and compares the measured performance value with the target performance value for the key components of the respective Web page. A measured performance value that is less than or equal to a respective target performance value signifies an acceptable download time for the key components of a particular Web page. The monitoring application  110   d  then calculates the CSL using the following formula:  
         CSL   ⁡     (   T   )       =           Number  of  web  pages  with  key  components  having  acceptable  download  time     ⁢     (   T   )           Total  number  of  downloaded  web  pages  with  key  components     ⁢     (   T   )         ×   100         
 
 where T represents a sample. 
 
         [0037]     In some implementations, the service provider assigns weights to key components based upon customer access patterns and predicted customer expectations and calculates the CSL using the following formula:  
         CSL   ⁡     (   T   )       =       ∑     n   =   0       n   -   1       ⁢           ⁢         Weight     n     ·         Acceptable   n     ⁡     (   T   )               Acceptable     n     ⁢     (   T   )       +         Unacceptable     n     ⁢     (   T   )                   
 
 where n represents the key components of a particular page and T is a sample. Generally, customers expect high hit pages to load quickly and tend to have a much lower customer satisfaction level when high hit pages are negatively impacted by an event, e.g., a slowdown of a key data-providing resource, such as a database. Accordingly, the service provider may assign a heavier weight to the key components of a high hit page, e.g., the NetBenefits home page (shown in  FIG. 2   a ), as compared to the weighting of the key components of a low hit page, e.g., the NetBenefits Web page that is displayed when Pat Smith clicks on the “Pay” link ( FIG. 2   b ). In other examples, the service provider may assign a heavier weight to the key components of a Web page on particular day(s) of the week, month or year, e.g., the “Balances” page of the NetBenefits application may be assigned a heavier weight on every second Friday of the month when employees are paid. In so doing, if the key components of a high hit page experience an event, a reduction in the CSL will be more apparent on its face and the service provider may be more quickly alerted of the low CSL. 
 
         [0038]     Optionally, the monitoring application  110   d  may be pre-configured by a service provider operator to assign a weighting level based on the volume of customers attempting to access the NetBenefits application. For example, the monitoring application  110   d  may assign a first set of weights to the key components of the Web site when the number of customers accessing the NetBenefits application is less than 5,000 per hour, and otherwise assign a second set of weights to the key components.  
         [0039]     Optionally, the monitoring application  110   d  can be configured to calculate the CSLs in 5-minute intervals, 24-hour intervals, or other period-based intervals. The monitoring application  110   d  can also be configured to produce tables, charts or reports that provide the CSLs for a particular application, e.g., the NetBenefits application, in a graphical user interface (GUI).  FIG. 4  shows an example screenshot of a CSL dashboard  402  for the NetBenefits application. The NetBenefits CSL dashboard  402  provides, in a central location, information or links related to the CSLs for the NetBenefits application of  FIGS. 2   a ,  2   b , and  2   c . Examples of information include, for a particular day (e.g., Dec. 9, 2003), the total number of pages served  404 , the total number of successful contacts  406  (e.g., the number of successful logins), the total number of unsuccessful contacts  408  (e.g., the number of login attempts which failed because of an incorrect user identifier-password combination), and the total number of contacts  410 . Examples of information also include, for the particular day (e.g., Dec. 9, 2003), the overall CSL  412  for the NetBenefits Web site, as well as the CSLs for distinct portions of the NetBenefits Web site (e.g., the CSL  414  for the “HR &amp; Payroll” portion of the NetBenefits Web site). For more detailed information about the breakdown for any given CSL, a user can select a link (e.g., the “CSL: HR &amp; Payroll” link) shown on the NetBenefits CSL dashboard  402 .  
         [0040]     In some implementations, the monitoring application  110   d  receives as input (e.g., from Adlex Inc.) statistics related to traffic patterns on the Internet and uses these statistics to provide a historical context to real-time reports. In this manner, the service provider can differentiate between a CSL that is negatively impacted by an application-related event (e.g., the failure of the database) as opposed to a non-application-related event (e.g., the crippling effects of a virus).  
         [0041]     The described techniques can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The techniques can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.  
         [0042]     Method steps of the techniques described herein can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). Modules can refer to portions of the computer program and/or the processor/special circuitry that implements that functionality.  
         [0043]     Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry.  
         [0044]     To provide for interaction with a user, the techniques described herein can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer (e.g., interact with a user interface element, for example, by clicking a button on such a pointing device). Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.  
         [0045]     The techniques described herein can be implemented in a distributed computing system that includes a back-end component, e.g., as a data server, and/or a middleware component, e.g., an application server, and/or a front-end component, e.g., a client computer having a graphical user interface and/or a Web browser through which a user can interact with an implementation of the invention, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet, and include both wired and wireless networks.  
         [0046]     The computing system can include clients and servers. A client and server are generally remote from each other and typically interact over a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.  
         [0047]     Other embodiments are within the scope of the following claims. For example, the described techniques can be performed in a different order and still achieve desirable results. Although the description discusses the context of Web pages, other systems which enable user interaction through a communication network may also benefit from the features discussed.