Abstract:
A system compares website visitation data sets in response to receiving user input. The system includes a client for processing the input to define one or more data sets as a query to a network, which returns the requested data. The system calculates, for at least one website visitation metric, a difference between values of the website visitation metric for the data sets, and displays one or more reports. In addition, reports can be further adjusted per additional data input. The results enable users to analyze the effects of combinations of factors.

Description:
RELATED APPLICATIONS  
       [0001]     This application claims priority under 35 U.S.C. §119 from U.S. Provisional Application Ser. No. 60/731,398, filed Oct. 28, 2005 by Catherine Jen Wong et al., entitled “A/B Comparison and Lock Method,” (Attorney Docket No. 10927), and is related to U.S. patent application Ser. No. 11/313,588, filed Dec. 20, 2005 by Brett M. Error, entitled “Incrementally Adding Segmentation Criteria to a Data Set,” (Attorney Docket No. 10570), each incorporated herein by reference. 
     
    
     FIELD OF THE INVENTION  
       [0002]     The present invention relates generally to website usage tracking, and more specifically to improved techniques for comparing sets of website visitation data.  
       BACKGROUND  
       [0003]     Website providers often wish to collect data that describes usage and visitation patterns for their websites and for individual web pages within the sites. Such information can be extremely valuable in developing usage statistics for various purposes, including for example estimating server load, determining advertising rates, identifying areas of websites that are in need of redesign, and the like.  
         [0004]     Such information is useful in many ways, including for example collecting feedback that leads to improved web page design, determining the effect of various degrees of prominence of links and graphic elements on web pages, and determining the contribution of individual links to an eventual sale.  
         [0005]     Users, such as website administrators, often wish to compare data sets in various ways. They also often want to filter and aggregate the results. However, existing reporting systems do not allow the user to easily compare, customize, and/or filter results. Thus, much of the business utility of tracking website visitor/customer visitation data is lost using existing systems. Therefore, what is needed is an improved format that allows an easy comparison that visually depicts web page element usage and valuation statistics.  
       SUMMARY  
       [0006]     The present invention provides a fast, responsive way for users to perform advanced analysis on data via a graphical user interface. Users can compare data sets and to each other and easily click on any data item to filter the result set of all reports by that item. Users also can launch various pre-packaged reports onto a single workspace. The results of the comparison and filtering are shown in one or more reports, enabling users to analyze the effects of combinations of factors. In addition, this aspect of the present invention is advantageous because the results can be returned almost instantaneously.  
         [0007]     The present invention includes a user interface that receives user input to compare two or more data sets of website visitation data. In addition, input is received to define both data sets and adjust filtering criteria for the associated reports. The system retrieves data corresponding to the defined and/or adjusted data set(s), and calculates, for at least one website visitation metric, the difference between values of the website visitation metric for the data sets. Then, one or more reports are displayed reflecting the data and the calculated difference.  
         [0008]     In addition, while viewing one or more reports, the user can click on additional filter criteria. Following selection of compare mode or running reports, the display is updated so that it includes only report data that fit the specified criteria. Thus, the user can select various reports, compare data in the reports, add filter criteria, and quickly see the resulting changes in the output.  
         [0009]     These aspects of the present invention provide greater visibility of the information generated by the above-described methods, providing the website owner valuable insight into which elements of a website are contributing to the success of the site and contributing to return on investment.  
         [0010]     The description in the specification is not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]      FIG. 1  is a flowchart illustrating a method for providing a comparison of website visitation data sets according to one embodiment of the present invention.  
         [0012]      FIG. 2A  is a block diagram illustrating a system useful for providing a comparison of website visitation data sets according to one embodiment of the present invention.  
         [0013]      FIG. 2B  is a block diagram illustrating an architecture for a network according to one embodiment of the present invention.  
         [0014]      FIG. 2C  is a block diagram illustrating software modules used by a client according to one embodiment of the present invention.  
         [0015]      FIG. 3A  illustrates a user interface for comparing website visitation data according to one embodiment of the present invention.  
         [0016]      FIG. 3B  illustrates a report without comparison data according to one embodiment of the present invention.  
         [0017]      FIG. 3C  illustrates a user interface for comparing website visitation data according to one embodiment of the present invention.  
         [0018]      FIG. 3D  illustrates a report including comparison data according to one embodiment of the present invention.  
         [0019]      FIG. 4A  illustrates a user interface for comparing website visitation data to which a filter has been applied according to one embodiment of the present invention.  
         [0020]      FIG. 4B  illustrates a report including comparison data to which a filter has been applied according to one embodiment of the present invention.  
         [0021]      FIG. 5A  illustrates a user interface for comparing website visitation data reflecting a swap between baseline and non-baseline data according to one embodiment of the present invention.  
         [0022]      FIG. 5B  illustrates the user interface of  FIG. 5A , to which an additional segment filter has been added. 
     
    
       [0023]     One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.  
       DETAILED DESCRIPTION OF THE EMBODIMENTS  
       [0024]     The following description sets forth an embodiment wherein the invention takes place in the context of reporting of website visitation data gathered in the course of an online purchase. However, the description is merely illustrative of the techniques of the invention; one skilled in the art will recognize that the techniques of the invention can be applied in any context wherein it is desirable to filter website visitation data.  
         [0025]     In the course of purchasing an item from an online retailer, a visitor/customer generally follows a basic path. The visitor enters a website (by, for example, typing the URL for the website, or selected from a Favorites menu, or clicking on a link) and is presented with a home page for the online retailer. During the process, the visitor generally is presented with an item description. If the visitor wants to buy the item, he or she clicks on an “Add to Cart” link and navigates to a Checkout page and then to a page for entering billing and shipping information. After entering such information, the visitor generally is presented with a confirmation page where he or she is given the opportunity to review the order and finalize it before exiting the website. Analysis of visitor navigation through such sequence is extremely valuable to website administrators.  
         [0026]     Techniques for collecting site path sequences are known in the art. A particular visitor is recognized as he or she moves from page to page; the mechanics of visitor tracking are known in the art and need not be described in detail here. Visitor/customer web page visit records are stored in sequence according to they time that they occurred. Each visitation record typically contains two types of information: an identifier of the page visited, and metadata that provides further criteria for filtering and analyzing the sequential data.  
         [0027]     It is within this context that the description of one embodiment present invention is described herein. In other embodiments, the present invention is used to analyze other data for which comparison between data sets is desired.  
         [0028]      FIG. 1  is a flowchart illustrating a method for providing a comparison of website visitation data sets according to one embodiment of the present invention.  
         [0029]     The process begins by receiving input to compare  110  website visitation data sets. In one embodiment, the user clicks on a compare mode button, e.g.,  340  as shown in  FIG. 3A . In this example, any reports displayed are automatically populated into the baseline segment  345  and baseline date areas  350 , and will serve as the baseline for any adjustments to the segmentation  330  or date areas  335 . In another embodiment, segment filters have been applied, and the input to compare data sets includes swapping previously baseline data for new baseline data, e.g., the baseline areas  345 ,  350  and segment and date areas  330 ,  335 , may be swapped using button  505  as shown in  FIG. 5 .  
         [0030]     Next, input is received  120  to define one or more website visitation data set(s). In one embodiment, the input includes application of segmentation and/or date filters, e.g., in segment filter area  330  and date filter area  335 . In this example, the data in the baseline segment and baseline date filter areas  345 ,  350  are “locked” or otherwise not editable according to one embodiment, thus segment filters may be applied only to the segment filter  330  and date filter  335  areas.  
         [0031]     In various embodiments, the input to define the one or more website visitation data sets may include includes adding segmentation criteria; removing pre-existing segmentation criteria; adjusting a date range; creating a new segmentation criterion; and/or activating a contextual menu of options for the segmentation criteria.  
         [0032]     The user can define the one or more website visitation data sets by various means. For example, the user can click on an icon (“funnel”) adjacent to the desired filter criterion. In one embodiment, clicking on a funnel icon causes the filter to be applied as an “OR Visits where [dimension]=[selected item]” parameter. In one embodiment, the user can shift-click to apply the filter as an “AND” criterion. In one embodiment, the user can right-click to see a menu of options for applying the filter. The icon acts as a toggle in one embodiment, switching between activating and deactivating the criterion depending on its current state.  
         [0033]     According to one embodiment, elements of the displayed reports are themselves user input elements for specifying filters. Thus, the user can click on an area (such as a line) within a tabular report to apply a filter that corresponds to the data item being displayed in that area.  
         [0034]     Further, the input received takes the form of switching the baseline segment and date filter area  345 ,  350  data and the segment and date filter area  330 ,  335  data according to one embodiment. In this example, the switch may take place in addition to adjusting segmentation criteria, and may occur before and/or after segmentation criteria are adjusted.  
         [0035]     Next set data associated with the newly applied filter(s) is retrieved  130 . In one embodiment, this is accomplished by sending report queries and baseline data and receiving report data corresponding to the queries and baselines. In one embodiment, the data is sent to and received from to a network. In another embodiment, the data is sent to and received from a local machine. The reply is received, in one embodiment, with data. In this embodiment the retrieval includes interpreting the data. In one example hash codes stored, e.g., in local cache are used.  
         [0036]     Then, the difference between the baseline data and newly-entered data is calculated  140  for at least one website visitation metric. In one embodiment, the calculation includes subtraction and calculation of percent change between the data sets.  
         [0037]     Finally, one or more reports are displayed  150 . In some embodiments, various views of the report data are available. For example, types of views include trended, improved, ranked, over time, fall-out, conversions, averages, graphical, Gantt, tabular, raw data, and flexible. Some reports also include a search field that allows the user to search for and view entries for specific keywords or phrases.  
         [0038]     In one embodiment, the adjusted reports are displayed virtually instantaneously following the user input to compare data and/or adjust the segmentation criteria. In one embodiment, sampling rate for reports is selected based on requested date range, available RAM and other technological considerations.  
         [0039]     In one embodiment, the above process is preceded by user input received to select one or more defined reports for viewing. In one embodiment, the user initiates this step by clicking on a user interface control such as a reports button.  
         [0040]     Initially, reports, whether initial reports or reports adjusted by segmentation criteria or comparison mode, show a default number of data rows (such as 10), although the user can adjust the default number as desired. In various embodiments, the reports are standard, preset reports associated with a set of predefined filters; user-customized reports built during a current session; previously customized reports retrieved from storage; or fall-out reports.  
         [0041]     A “fall-out report” is a report based, in one embodiment, on a target path specified in terms of checkpoints as described herein. A fall-out report indicates how many visitors continued to the next checkpoint in target path, regardless of whether the visitor/customer visited other, tangential pages before continuing.  
         [0042]     One skilled in the art will recognize that the present invention can be used in connection with any type of filtering criteria that can be specified by the user, and/or with any combination of such filtering criteria. Examples include the ordinal visit number (indicating whether this is the visitor&#39;s first visit, second visit, etc.), which particular pages were visited, time of day of the visit, geographic location of the visitor, web browser being used, whether or not the visitor is using a beta version of the browser, and the like.  
         [0043]     Referring now to  FIG. 2A , there is shown an example of a system  200  useful for practicing the present invention according to one embodiment. One skilled in the art will recognize that the invention can be practiced using other embodiments that differ from the examples shown.  
         [0044]     The system  200  includes a client  201 , a network  202 , and optionally a cache  209 . The client  201  includes software including of a number of executable code portions and data files. These include code for viewing and interacting with website usage reports according to one embodiment of the present invention, as well as for supporting functionality of a user interface, as will be described in greater detail in conjunction with  FIG. 2C .  
         [0045]     Client  201  is responsible for orchestrating the processes performed according to the methods of the present invention. For example, client  201  receives input  212  from an input device, and sends reports to display  207  (or other output device) for output to the user. Client  201  runs on a standard personal computer.  
         [0046]     Network  202  is a centralized network for handling and responding to client requests for data on website usage, as described further in conjunction with  FIG. 2B .  
         [0047]     A cache  209 , if present, is a standard cache of small, fast memory holding recently accessed data. The cache  209  may include, for example a list of hash codes or other look up tables for report data as described below.  
         [0048]     In one embodiment, the components shown in  FIG. 2A  operate as follows. When a user requests one or more reports via an input device  210 , client  201  receives input  212  to this effect. Client  201  sends a query  203  to network  202 , specifying which reports are requested, and optionally specifying one or more filters or baselines for the reports. In one embodiment, query  203  is in XML format.  
         [0049]     In response to query  203 , network  202  returns data  204  that contains a representation of the report data. Data  204 , in various embodiments, may be coded or not, and may be hashed data or may be included in a standard look up table. For example, data  204  may specify, in hash coded terms, the text string name of an item in a report. The data  204  is received by client  201 .  
         [0050]     Client  201  stores, in local cache  209  in one embodiment, a list of previously received and decoded hash codes or look up table information, so that it can correctly interpret a hash code or table data that it has encountered previously. In one embodiment, local cache  209  is used and is cleared at the end of a session, so that only those codes previously received in the same session are stored in cache  209 . In other embodiments, local cache  209  is implemented in a more persistent or less persistent fashion, depending on user needs.  
         [0051]     Upon receiving data  204 , client  201  consults cache  209  if present; if cache  209  contains the hash code(s) or meanings of data  204  (in other words, if client  201  has previously received data containing the same hash code/meaning), client  201  can interpret the meaning of the hash-coded or look-up tabled data without any further communication with network  202 . For example, a hash code/meaning may specify that term #299 signifies a visitor using Internet Explorer 6.0. If hash code(s)/meaning(s) from data  204  is/are not present, client  201  sends a query  205  to network  202 ; network  202  responds by sending translation  206  to client  201 . Translation  206  provides client  201  with the meaning of terms. In one embodiment, client  201  stores this meaning in cache  209  for future use.  
         [0052]     Once client  201  has received sufficient data to generate a report, it sends report to display  207  for output to the user. In one embodiment, if some meanings have not yet been received, client  201  still sends report, and report states that certain terms are unknown. In another embodiment, client  201  displays an error message and/or waits until more complete meaning data is available.  
         [0053]     The user can interact with the displayed report via user input device  210  such as a mouse, keyboard, or the like. The user can click on areas within report. When the user activates the compare mode, the user interface adjusts accordingly, e.g., as described in conjunction with  FIG. 3C . When the user clicks on an area that can be interpreted as a filter, client  201  generates and sends a new query  203  containing the new report filter criteria. The above process then repeats, and an updated report is sent to display  207 .  
         [0054]     Referring now to  FIG. 2B , there is shown an example of an architecture for network  202  according to one embodiment. Network  202  includes any number of front-end web servers  250  that receive queries  203 ,  205  from client  201 , and any number of back-end servers  260  that obtain data from storage, e.g., from database  270 , analyze the obtained data, and send report data back to client  201 . Servers  250 ,  260  are computers or devices that send and receive information using well known network protocols, such as TCP/IP and HTTP, for communication across a network. Back-end servers  260  send an appropriate data set to client  201  based on the filter request and/or baseline data provided. For example, if a filter request specifies that the user is only interested in visitors that used a particular web browser, back-end servers  260  remove the data that does not match the specified criterion, and only forward to client  201  the data that does match.  
         [0055]     Database  270  may be a relational database or any other type of database that stores the data used by client  201 . Database  270  may be accessible by client  201  through a user interface, e.g., as described in conjunction with  FIGS. 3A-3G .  
         [0056]     Database  270  contains website visitation data, which in one embodiment is stored in a binary format stored in some storage medium such as a hard drive. In one embodiment, the website visitation data is broken up into files, or “bricks,” to facilitate extraction of portions of the data. When servers  260  extract data from database  270 , they are provided with specific bricks that match the criteria.  
         [0057]     In one embodiment, when the user requests a report showing website visitation data for a specified time period, back-end servers  260  extract data from database  270  that contains web visitation logs and/or statistics. In one embodiment, servers  260  obtain data from database  270  that represents a snapshot of website visitation over a specified time period. Servers  260  then store this website visitation data in temporary local storage (such as random access memory), using for example a binary format that is encoded according to an algorithm so as to minimize bandwidth usage. In one embodiment, this binary format is identical to the format used in database  270 , so that no file format translation need be performed when servers  260  extract data from database  270 . Servers  260  and then apply filters as requested, and send the filtered data to client  201 .  
         [0058]     In one embodiment, whenever the user requests a broader date range for website visitation data, back-end servers  260  perform a new data extraction from database  270 . However, when the user narrows the date range from a previously specified range, or uses a baseline already retrieved, no new data extraction is performed; rather back-end servers  260  filter the previously extracted data according to the new filter parameters.  
         [0059]      FIG. 2C  is a block diagram illustrating software modules used by a client according to one embodiment of the present invention. The modules include of a number of executable code portions and data files. These include code for creating and supporting a user interface according to one embodiment of the present invention, as well as for supporting a comparison of website visitation data sets. The modules include a definition module  275 , an input module  280 , a retrieval module  285 , a calculation module  290 , and a reporting module  295 .  
         [0060]     The definition module  275  is configured for receiving and interpreting input to compare website visitation data sets. In one embodiment, the definition module  275  interprets that the user clicked on a compare mode button. In addition, the definition module  275  may register that segmentation and/or date filters were applied to the data, or that input was received to define one or more website visitation data set(s). In another embodiment, the definition module  275  interprets user input switching the baseline filter data and non-baseline filter data.  
         [0061]     In one embodiment, the definition module  275 , prior to receiving user input to compare data sets, receives user input to select one or more reports for viewing. For example, the definition module  275  registers a user click on a user interface control such as a reports button.  
         [0062]     The retrieval module  280  is configured for retrieval of data associated with the newly applied baseline and/or filter(s). In one embodiment report queries and baseline information are sent to a network, and report data is received from the network. In another embodiment, report queries and baseline information are sent to a local machine, and report data is received from the local machine.  
         [0063]     The retrieval module  280  also interprets the data received according to one embodiment. In one embodiment, the retrieval module  280  uses hash codes/meanings stored for this purpose. If hash codes/meanings are not present, for example in local cache, in one embodiment the retrieval module  280  sends a query to the network, and receives back translation, providing the meaning of term.  
         [0064]     Further, the retrieval module  280  calculates the difference between the baseline data and newly-entered data for at least one website visitation metric. In one embodiment, the calculation includes subtraction and calculation of percent change between the data sets.  
         [0065]     The reporting module  285  is configured for displaying one or more reports. In some embodiments, various views of the report data are available. In one embodiment, the reporting module  285  causes reports, original or adjusted for baselines and/or filters, to display virtually instantaneously following user input. In one embodiment, the reporting module  285  sends reports to a display device for output to the user.  
         [0066]     The above software portions  275 - 285  need not be discrete software modules. The software configuration shown is meant only by way of example; other configurations are contemplated by and within the scope of the present invention.  
         [0000]     User Interface  
         [0067]      FIG. 3A  illustrates a user interface  305  for comparing website visitation data according to one embodiment of the present invention. In one embodiment, the user interface is implemented using a known environment such as Macromedia Flex, Java, DHTML, or any combination thereof.  
         [0068]     The user interface  305  includes two main functional areas: a report control area  310  and a report display area  315 . The report control area  310  includes functionality creating, filtering, and comparing reports. The report display area  315  includes functionality for displaying and filtering reports.  
         [0069]     The report control area  310  further includes a project toolbar  320 , a report selection area  325 , a segment filter area  330 , and a date filter area  335  according to one embodiment.  
         [0070]     The project toolbar  320  is a toolbar that includes icons for creating a new project, opening an existing project, saving the project in use, printing the project, selecting compare mode, etc. For example, the project toolbar  320  includes a compare mode button  340  as described below according to one embodiment.  
         [0071]     The report selection area  325  includes functionality for opening existing reports. Once a report is opened, the report name is added to a list of selected reports in the report selection area  325 , and a corresponding report  360  is displayed in the report display area  315 . For example,  FIG. 3A  depicts a products and customer loyalty reports  360 . The segment filter area  330  includes functionality for adding and displaying a list of segmentation criteria by which reports  360  are filtered. In the example shown in  FIG. 3A , no filters have been applied.  
         [0072]     The date filter area  335  includes functionality for filtering reports  360  by date, for example by selecting a date range for which the user would like to see report  360  data. The date filter area  335  includes to and from date selectors  370  and a show by selector  375  according to one embodiment. The to and from data selectors  370  allow the user to set start and end dates for the data displayed in the report  360 , either by typing in the desired dates or by clicking the calendar icon and selecting the dates on a calendar. The show by selector  375  allows the user to select the granularity of the report, for example, by day, week, or month. For example, the date filter area  335  shown in  FIG. 3A  shows a to and from date selector  370  showing a date range of Mar. 1, 2006 to Apr. 9, 2006, and the show by selector  375  shows that the granularity is by day.  
         [0073]     The project toolbar  320  includes a compare mode button  340 , which when selected, puts the report control area  310  into compare mode, thus altering the appearance of the report control area  310 . In one embodiment, the compare mode button  340  changes the report control area  310  to the form shown in  FIG. 3C , discussed below.  
         [0074]     The report display area  315  includes the reports  360  chosen in the reports selection area  325 .  FIG. 3B  illustrates a report  360  without comparison data according to one embodiment of the present invention. Each report  360  displays data corresponding to one dimension within the context of a larger data set. The report name  362  is the dimension that the selected report  360  displays. For each report  360 , data is sorted according to one or more default metrics  364 . In this example, the default metric  364  is revenue.  
         [0075]     Reports  360  also include a set of standard function keys, including a print button  366 , a download button  368 , an export button  369 , and view selector  372 . The print button  366  allows the user to print online reports without having to first download the reports. Clicking the print button opens a pop-up window with a printer-friendly version of the report.  
         [0076]     The download button  368  allows the user to select the format in which to download the report (e.g., Word, Excel, PDF, HTML). Once the user selects a format, the report is sent to the user as an email attachment or is downloaded directly to the user&#39;s computer. The export button  369  allows the user to export the report  360  to another format or file location.  
         [0077]     The view selector  372  allows the user to select various views of the report data. The Ranked view, shown in  FIG. 3B , is the default view for most reports, allowing the user to view report data in tabular format according to the selected time periods. Other views include Improved, which allows the user to see how selected items performed between previous and current time periods based on success metrics such as revenue of checkouts, and Trended, which allows the user to view report trends over a given time. The user may select other available views using the view selector  372  drop-down.  
         [0078]     In addition, some reports  360  include a search field  374 . A search field  374  allows the user to search for and view entries for specific keywords or phrases. As a result of clicking “go,” the report displayed is filtered by the entered search term. In addition an advanced search button  376  allows the user to search with greater specificity, for example, by choosing whether to search for the exact phrase, perform an “and” or “or” search using the search terms, or exclude entries with the entered search terms. In one embodiment, clicking the advanced search button  376  opens a pop-up window displaying these options.  
         [0079]     Each report  360  is divided into columns, including a filter column  380 , a data column  385 , and one or more metric columns  390 . The data column  385  includes a list of various forms of the dimension corresponding to the report  360 . In the depicted example, the dimension is Browsers, thus various browsers, such as Microsoft Internet Explorer 6.0, Netscape Navigator 6.2.3, etc., are listed. The metric column(s)  390  includes statistics for the respective row&#39;s  395  data column  385 . In the example depicted, for each browser (data column  385 ), the metric column  390  displays visitors (to the website) and percentage of the whole.  
         [0080]     The filter column  380  of each row  395  includes an icon that allows the user to filter the data by that row  395 . In one embodiment, all reports  360  are filtered to reflect the filter. In one embodiment, the filter column  380  icon acts as a toggle, narrowing or expanding the data depending on the present state of the data. Data may be further filtered if desired, and again all reports  360  are filtered by the additional criterion. In one embodiment, the filtering occurs virtually instantaneously. In addition, the rows are totaled in a totals row  396 .  
         [0081]     Reports  360  display rows up to a pre-selected number for the user interface  305 . In one embodiment, the number of rows can be edited. The user can interact with on-screen report windows according to well known interaction techniques for window-based operating systems. For example, the user can drag edges to change the height and width; minimize, delete, and maximize; reposition/rearrange windows on the canvas by dragging the window title bar; and drag the column margins to resize column width.  
         [0082]      FIG. 3C  illustrates a user interface  305  for comparing website visitation data according to one embodiment of the present invention. The user interface  305  shown in  FIG. 3C  is similar in structure and function to that described above in conjunction with  FIG. 3A , except that the report control area  310  of  FIG. 3C  is shown in compare mode. Thus, in addition to including a project toolbar  320 , a report selection area  325 , a segment filter area  330 , and a date filter area  335  as described above, a baseline segment filter area  345  and a baseline date filter area  350  are included.  
         [0083]     The baseline segment filter area  345  is similar to, and works in conjunction with, the segment filter area  330 . Together, the baseline segment filter area  345  and segment filter area  330  allow comparison of metrics common to the data sets represented by each filter area  330 ,  345 . In one embodiment, the baseline segment filter area  345  provides the baseline data, or first data set, to which the segment filter area  330  data is compared, as shown in  FIG. 3C . In this example, the data in the baseline segment filter area  345  is “locked” or otherwise not editable. In this example, the segment filter area  330  has a checkbox indicating whether it is available for editing according to one embodiment. In one embodiment, the baseline segment filter area  345  is grayed out or otherwise deemphasized, as depicted in the example shown in  FIG. 3C .  
         [0084]     In one embodiment, the baseline segment filter area  345  is populated using the data shown in the segment filter area  330  prior to switching into compare mode. In another embodiment, the baseline segment filter area  345  is not locked, and thus is editable. The baseline segment filter area  345  and segment filter area  330  may be used alone, or in conjunction with the baseline date filter area  350  and date filter area  335 .  
         [0085]     The baseline date filter area  350  is similar to, and works in conjunction with, the date filter area  335 . The baseline date filter area  350  and date filter area  335  allow comparison of data at one point in time to another point in time. In one embodiment, the baseline date filter area  350  provides the baseline dates, to which the date filter area  335  data is compared. In this example, the date information in the baseline date filter area  350  is “locked” or otherwise not editable. In this example, the date filter area  350  has a checkbox indicating whether it is available for editing according to one embodiment. In one embodiment, the baseline date filter area  350  is grayed out or otherwise deemphasized, as depicted in the example shown in  FIG. 3C .  
         [0086]     According to one embodiment, the baseline segment  345  and date  350  data can be swapped for the segment  330  and date  335  data, e.g., by the user clicking arrows  505  between the segment and date areas  330 ,  335  and the baseline areas  345 ,  350 , as shown in  FIG. 5A .  FIG. 5A  depicts the data after this swap has been made. In this example, the previous segment data  330 ,  335 , filtered to loyal customers, has become the baseline data  345 ,  350 . The new baseline data can then be compared against, e.g., using newly input data.  
         [0087]     Referring again to  FIG. 3C , in one embodiment the baseline date filter area  350  is populated using a report  360  displayed in the report display area  315 . In another embodiment, the baseline date filter area  350  is populated using the data shown in the date filter area  335  prior to switching into compare mode. In another embodiment, the baseline date filter area  350  is not locked, and thus is editable. The baseline date filter area  350  and date filter area  335  may be used alone, or in conjunction with the baseline segment filter area  345  and segment filter area  330 .  
         [0088]     The report display area  315  of  FIG. 3C  also is shown in compare mode.  FIG. 3D  illustrates a report  360  including comparison data according to one embodiment of the present invention. Each report  360  displays data corresponding to one dimension within the context of a larger data set. In addition to the aspects described in conjunction with  FIG. 3B , the report  360  of  FIG. 3D  includes one or more baseline metric columns  392 , a change column  394 , and may include a comparison area  382 .  
         [0089]     The baseline metric column(s)  392 , like metric columns  390 , include statistics, e.g., revenue by dollars and as a percentage of the whole. In one embodiment, the baseline metric column  392  displays data from the baseline segment and date filter areas  345 ,  350  and the metric column  390  displays data from the segment and date filter areas  330 ,  335 . In this example, the baseline metric column  392  provides the baseline data against which the data from the metric column  390  is compared. The report  360  in  FIG. 3D  is shown immediately after selecting compare mode, so the baseline metric  392  and metric columns  390  are identical.  
         [0090]     The change column  394  indicates the difference between the baseline metric column  392  and the metric column  390  for at least one website visitation metric. In one embodiment, the calculated difference is shown both as a numeric value (e.g., dollars as shown in  FIG. 3D ) and percent change. The difference shown in the change column  394  of  FIG. 3D  is zero, as the figure illustrates a report  360  immediately after selecting compare mode.  
         [0091]     The comparison area  382  displays a visual depiction of comparison data from the baseline date filter  350  and date filter areas  335  and/or the baseline segment filter  345  and segment filter areas  330 . In one embodiment, the comparison area  382  visual depiction comprises a bar graph, as shown in  FIG. 3D . In some embodiments, the baseline segment and/or date filter data is visually distinguished from the segment filter and/or date filter data, e.g., using colors or otherwise distinguishing the two data sets. In some embodiments, the comparison area  382  displays a portion of the comparison data, for example, the top five statistics from the data  385  column. This aspect of the invention allows for a side-by-side data comparison in a visual format. In one embodiment, the comparison area  382  is configured such that more than two sets of data can be compared. For example, the baseline segment data and/or segment data may include more than one set of data.  
         [0092]     Similar to  FIG. 3B , in the report  360  shown in  FIG. 3D , the filter column  380  of each row  395  includes an icon that allows the user to filter the data by that row  395 .  FIG. 4A  shows the user interface  305  after a filter has been applied.  
         [0093]     The user interface  305  shown in  FIG. 4A  illustrates the state of the reports  360  after the filter in the filter column  380  for loyal customers  395 a has been applied. The segment filter area  330  reflects this segment being added as a filter, as shown in  FIG. 4A . In addition, both reports  360  have been filtered by this segment according to one embodiment. The customer loyalty report  360 a filtered by loyal customers is shown in greater detail in  FIG. 4B .  
         [0094]     In the example shown in  FIG. 4B , the data in the baseline metric column  392  is unchanged from  FIG. 3D . The metric column  390  has been filtered on loyal customers  395   a,  thus one-hundred percent of revenue in the segment is attributable to loyal customers, and the return customer and new customer rows have been zeroed out. The change column  394  and totals row  396  reflect these differences. In addition, the comparison area  382  shows data from the metric column  390  for loyal customers  395   a  only.  
         [0095]     In any of the above-described interfaces  305 , segment and date filters can be added thereto and/or removed there from.  FIG. 5B  shows an example of an additional segment filter, a filter on the EMachines T4160 Minitower product, applied to the interface of  FIG. 5A .  
         [0096]     The present invention has been described in particular detail with respect to one possible embodiment. Those of skill in the art will appreciate that the invention may be practiced in other embodiments. First, the particular naming of the components, capitalization of terms, the attributes, data structures, or any other programming or structural aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, formats, or protocols. Further, the system may be implemented via a combination of hardware and software, as described, or entirely in hardware elements. Also, the particular division of functionality between the various system components described herein is merely exemplary, and not mandatory; functions performed by a single system component may instead be performed by multiple components, and functions performed by multiple components may instead performed by a single component.  
         [0097]     Some portions of above description present the features of the present invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules or by functional names, without loss of generality.  
         [0098]     Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “determining” or “displaying” refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.  
         [0099]     Certain aspects of the present invention include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the present invention could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.  
         [0100]     The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.  
         [0101]     The algorithms and operations presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will be apparent to those of skill in the, along with equivalent variations. In addition, the present invention is not described with reference to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present invention as described herein, and any references to specific languages are provided for invention of enablement and best mode of the present invention.  
         [0102]     The present invention is well suited to a wide variety of computer network systems over numerous topologies. Within this field, the configuration and management of large networks include storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.  
         [0103]     Finally, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.