Abstract:
An apparatus and method present to a consumer information during consumer idle periods. A signal indicating the start of idle time is used to present to the consumer various offers. The interactions are planned based on previously acquired consumer data, the current transaction, the venue of the transaction, the time of day and the date of the transaction, and the estimated time available. The method of the invention collects information about the customer utilizing a point-of-sale terminal. Information concerning the customer&#39;s transactions are accumulated and analyzed and the resulting information is used to improve the efficiency of the customer&#39;s next interaction with the system. The efficiency increase results from a fitting of a set of possible dialogues, into the idle time, so as to select a set of dialogues and their order that will provide the highest value.

Description:
FIELD OF THE INVENTION 
     This invention relates to a method of selecting a set of transactions, from a larger possible set of transactions, to present to a customer, given: the customer&#39;s history, a store&#39;s history and the time and day of the customer&#39;s activity; such that a maximum value is extracted from the available customer idle time without exceeding the idle time in a specified percent of cases. 
     BACKGROUND OF THE INVENTION 
     This invention relates generally to point-of-sale computer systems of the type used in multilane retail stores, gas stations and banks to record transactions. Specifically, the invention relates to point-of-sale systems that can handle the presentation of visual or audio information to the customer and allow that customer to respond to that information. Point-of-sale systems have mechanisms for inputting a code recorded on a credit card, debit card, loyalty card, driver&#39;s license, and/or acquiring via some other means the identification of a customer being serviced. Such mechanisms include magnetic track readers (commonly called ‘stripe readers’), key pads, and touch screens. 
     During the final minutes of a purchase of products in a retail environment, the customer is faced with a period of idle time. In a multilane store (grocery, variety goods . . . ), the customer waits for the checkout clerk to ring up the various purchases. In a gas station, the customer waits for the attendant or pump to fill the tank. This is wasted time. In general, neither the customer nor the store benefits from the activities of the customer during this time. 
     A mechanism for making use of this time can allow the retailer to gain additional revenue and profit. This invention allows those objectives to be met by providing a selection of transactions that the customer can perform during this time, such that the transactions are likely to be the ones the customer would select. 
     SUMMARY OF THE INVENTION 
     The method of the invention involves the collecting of information about the characteristics of a customer in a specific venue, at a time of day, and date; building profiles regarding specific consumers and generic consumers; collecting information about a current retail transaction, and using that information in whole or in part to optimize the customer idle time. An optimization takes into effect the value of a proposed use of idle time to the presenting retailer, a service company managing the interactions, and a target retailer or product manufacturer, and the utility to the customer. 
     A number of means are provided to: identify the customer; identify the venue; identify a start of idle time; present information; measure the time taken to present information; measure the time taken by the customer to respond to information; log frames (screen or audio) presented to the customer; log the frame choice made by the customer; relate the frame choice to a specific ad, coupon, product offering, or service offering; to estimate consumer idle time; to construct dialogs leading to specific ads, coupons, product offerings and service offerings; to fit alternative dialogs to the idle time; evaluate the alternative dialogs; and to select between the alternative dialogs. 
     The invention performs the steps of collecting information from customer transactions at specific store locations; aggregating that information at a computer; analyzing the aggregated information to: extracting the probability of habitual activities, determining a likely speed of the customers response to various presentations, determining repeated sequences of actions that can be combined into a fewer number of actions; collecting the value of all the possible transactions; using this information to estimate the time the customer will be idle at the point-of-sale terminal; selecting the best set and ordering of transactions that will fit within the expected idle time while minimizing the probability of continuing the transaction(s) beyond the expected idle time. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG.  1 . is a diagram of the flow of information in the system implementing the invention. 
     FIG.  2 . is a diagram of a computer system, which is adapted to perform the method of the invention. 
     FIG.  3 . is a diagram of a computer system called the Central Server. 
     FIG.  4 . is a diagram of a computer system called the Store Controller. 
     FIG.  5 . is a diagram of a computer system called the Store Server. 
     FIG.  6 . is a diagram of a computer system representative of a point-of-sale terminal. 
     FIG.  7 . is a diagram of a Customer Interface. 
     FIG.  8 . is a diagram of a tree structure that represents a customer dialog. 
     FIG.  9 . is a diagram of a tree structure that represents a customer activity. 
     FIG.  10 . is a diagram of the Screen and its associated input areas. 
     FIG.  11 . is a diagram that shows Store Setup and Update process. 
     FIG.  12 . is a data table that describes the customer. 
     FIG.  13 . is a data table that describes a Customer/Store Profile. 
     FIG.  14 . is a data table that describes a Store Subset of the Customer/Store Profile. 
     FIG.  15 . is a data table that describes Credit, Debit, and Loyalty Cards. 
     FIG.  16 . is a data table that describes a Store Definition Table. 
     FIG.  17 . is a data table that describes a Customer Session. 
     FIG.  18 . is a data table that describes a Screen Instrumentation Message. 
     FIG.  19 . is a data table that describes a Customer Selection Instrumentation Message. 
     FIG. 20. a data table that describes an Instrumentation Table. 
     FIG.  21 . Customer Profile Generation Instrumentation Table. 
     FIG.  22 . is a Point-of-sale Terminal Table. 
     FIG.  23 . is a data table that describes a Store Profile Table. 
     FIG.  24 . is a data table that describes a Customer Session. 
     FIG.  25 . is a data table use for Time-of-day Conversion. 
     FIG.  26 . is a list of proposed Activities. 
     FIG.  27 . is the Activity Table. 
     FIG.  28 . is a Screen Definition Table. 
     FIG.  29 . is a Text Element Table. 
     FIG.  30 . is a Graphic Element Table. 
     FIG.  31 . is a Touch Element Table. 
     FIG.  32 . is a Key Pad Element Table. 
     FIG.  33 . is an Activity Work Table. 
     FIG.  34 . is a Store Configuration Table. 
     FIG.  35 . is a System Response Time Work Table. 
     FIG.  36 . is an activity diagram that describes a Customer Session in a Grocery Store. 
     FIG.  37 . is an activity diagram that describes usage of Customer Idle Time. 
     FIG.  38 . is an activity diagram that describes a Customer Transaction Cycle. 
     FIG.  39 . is an activity diagram that describes Customer Action Cycle. 
     FIG.  40 . is a flow chart for Detecting Start and End of Idle Time. 
     FIG.  41 . is a flow chart describing the Calculation of Expected Idle Time. 
     FIG.  42 . is a flow chart describing the Selection of Proposed Activities. 
     FIG. 43 a . is a flow chart describing the Store Profile Table Generation 
     FIG. 43 b . is a continuation of FIG.,  43   a . Store Profile Table Generation 
     FIG.  44 . is a flow chart describing the Customer Session Table Generation 
     FIG. 45 a . is a flow chart describing the Customer Store Profile Table Generation 
     FIG. 45 b . is a continuation of FIG.,  45   a . Customer Store Profile Table Generation 
     FIG. 45 c . is a continuation of FIG.,  45   a . Customer Store Profile Table Generation 
     FIG.  46 . is a flow chart describing the System Response Time Calculation 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The invention is described in terms of a multilane store (that is, a store with multiple checkout counters), but applies to other retail, wholesale, and financial institutions. 
     FIG.  1 . Describes the flow of information in the system. In a store there is a established process for collecting payment from a customer. This is represented in Process Customer  1604 . Prior to the installation of an implementation of this invention the process deals with ‘ringing up’ the prices of the items purchased, establishing the total price, and collecting that total from the customer; then repeating the process with subsequent customers. This process is modified to present information to the customer during the times in the Process Customer  1604  that the customer is idle (normally this is while the purchases are being ‘rung up’). To affect this, step  1604  is modified as shown subsequently, and steps  1600 , 1602 , and  1603  through  1618  are added to the system. 
     Once the store has been set up, Set Up Initial Store Parameters  1600  communicates to the Activity Manager  1602  a set of default parameters including Store Profile Table  510 , Screen Definition Table  800 , Text Element Table  820 , Graphic Element Table  840 , Touch Element  860  Table, Key Pad Element Table  880 , Store Configuration Table  910 , Activity Dialogs  200 , Store Subset—Customer Store Profile Table  290 , and Activity Table  600 . Process Customer  1604 , prompts Activity Manager  1602  with a Customer ID supplied by the Customer Interface  22 . The Activity Manager  1602 , using the available data constructs Proposed Activity List  590 , as describe in FIG.  42 . Selection of Proposed Activities  1090 , and transforms those activities into a Customer Idle Time Dialog  180  by using the Expected Idle Time  570  which is described in FIG.  41 . Calculation of Expected Idle Time  1080 . This is passed to FIG.  42 . Selection of Proposed Activities  1090 , which generates Proposed Activity List  590  with an excess of activities which are then pruned to fit Expected Idle Time  570  within the Percent On Time Completion  554  criteria. Then Activity Manager  1602  generates Customer Idle Time Dialog  180  from Proposed Activity List  590 . 
     Process Customer  1604  uses the Customer Idle Time Dialog  180  to control the presentation of various Screens  210  to the customer. 
     As Screens  210  are presented and responded to, Screen Instrumentation Messages  370  and Customer Selection Instrumentation Messages  390  are generated. These are transmitted to Collect Messages  1606  for transmission to Short Term Analysis  1608  and Consolidate Measurements  1610 . Short Term Analysis  1608  uses the information to update Store Configuration Table  910 . This information is used to refine the ability of the Activity Manager  1602  to estimate System Response Time  916  and Std. Deviation of System Response Time  918 . 
     Consolidate Measurements  1610 , pools the information for a period of time (say a month) adding it to a database of measurements (Add to Database  1612 ), then Analyze Database  1614  is triggered to generate a new set of parameter for Store Profile Table, and Store Subset—Customer Store Profile Table  290 . Inserts New Parameters Into Store Cycle  1618 , which takes that information and inserts it into the appropriate store&#39;s Activity Manger  1602 , completing the cycle. 
     FIG.  2 . is a diagram of a network of computers adapted to perform the method of the invention. A Central Server  10  is coupled by a wide area network (WAN)  16  to one or more Store Servers  36 . Readily available software and protocols such a TCP/IP are used by Central Server  10  and Store Server  36  to communicate with each other via WAN  16 . Store Controller  24  and Store Server  36  are connected via LAN  30  to one or more Point-of-sale Terminals  50 . Normal Point-of-sale Terminal activities are conducted between the Store Controller  24  and Point-of-sale Terminal  50 . These activities are well documented elsewhere and the details are not important to this invention. 
     FIG.  3 . Illustrates further details of Central Server  10 . Central Server  10  performs the functions of collecting customer data and store data, analyzing the data to extract information concerning buying habits and thinking characteristics of the customer, and information about the performance characteristics of the store. CPU  40  is a conventional microprocessor with a Bus  48  that connects it to Disk Drive(s)  44 , a WAN Adapter  46 , a Program Memory  48  and a Data Memory  58 . CPU  40  contains a Clock  42  that provides time in a form that includes the Month, Day-of-week, Hour, Minute, And Seconds. Program Memory  48  contains Application  50  that performs the following functions. It collects information stored in Store Server  36  via WAN  16  using standard communication protocols such as TCP/IP. The information collected is in the form of the following tables: Credit, Debit, Loyalty . . . Card Table  330 , Store Definition Table  340 , Screen Instrumentation Table  62 , Customer Selection Instrumentation Table  60 , and Activity Table  600 . 
     This information is stored using Database Software  52  into Data Memory  48  and subsequently onto Disk Drive(s)  44 . 
     Periodically a Profile Generator  56  analyzes the data to produce the: Customer/Store Profile Table  68 , and Store Profile Table  144 . See FIG. 43 description below for how this is accomplished. Customer/Store Profile Table  68  and Store Profile Table  144  are sent to the Store Server  36  specified in the Store ID  246 , and Store ID  512  of the respective table. Additionally Data Memory  58  contains the Current Time and Date  74  provided from the Time-of-day clock in CPU  40 . 
     FIG.  4 . Store Controller, is a representation of a typical Store Controller  24 . Store Controller  24  performs the functions required in a Point-of-Sale system that are in support of Point-of-Sale Terminals  50  in a location. CPU  80  is a conventional microprocessor with a Bus  90  that connects it to Disk Drive(s)  84 , a LAN Adapter  86 , a WAN Adapter  88 , a Program Memory  92  and a Data Memory  96 . CPU  40  contains a Clock  42  that provides time in a form that includes the Month, Day-of-week, Hour, Minute, And Seconds. This system typically contains an Audit Log  98 , a Price Table  104 , a Credit, Debit, Loyalty . . . Card Table  330 , and a Location ID  106 . In addition Application  94  collects Transaction Data  100  that identifies the customer and the details of the purchase. 
     The key function provided by the Store Controller  24  are signals from Application  94  to Store Server  36  concerning the start and completion of Check Out Idle Time  1010 . These signals comprise the sending of an Idle Time Message  360  containing a Message ID  362  of ‘Start of Idle Time’ or ‘End of Idle Time’ as appropriate. Point-of-Sale Terminal ID  364  is also included so as to be able to associate the signal with an existing entry in the FIG.  24 . 
     Customer Session Table or to create a new entry in the FIG.  24 . Customer Session Table. 
     Data Memory  96  contains Current Time and Date  108  provided from Clock  82  in CPU  82 . 
     FIG.  5 . Store Server, is a representation of a Store Server  36 . Store Server  36  is described as though it is implemented as a separate computer system, however the function provided can be performed in Store Controller  24  or other computer systems in the store. Store Server  36  communicates with Central Server  10  via WAN Adapter  118  to acquire the information in Data Memory  128 , some of which is stored on Disk Drive(s)  114 . The tables acquired are: Store Subset—Customer/Store Profile Table  138 , Customer Table  140 , Store Profile Table  144 , and Activities  200 . The rest of the tables are initialized or generated at Store Server  36 . Data Memory  128  also contains Current Time and Date  142  provided from Clock  112  in CPU  110 . Store Server  36  also communicates via Local Area Network Adapter  116  to LAN  30  and other components of the system. 
     FIG.  6 . is a diagram of a point-of-sale terminal. Current Point-of-sale Terminals  50  are configured using a Cash Register Micro-computer  26  of conventional design. The Cash Register Micro-computer  26  contains a Clock  27  that provides time in a form that includes the Month, Day-of-week, Hour, Minute, And Seconds. Attached to the Cash Register Micro-computer are various input and output devices including: a LAN  30 , Printer  12 , Clerk Interface  14 , Customer Interface  22 , and Magnetic Stripe Reader  34 . These are attached via electronic links  28  which normally are serial  10  like an RS232 serial port. Customer Interface  22  is used for presenting the actions to the customer and receiving the responses. Magnetic Stripe Reader  34  is often the source of the first customer response. Cash Register Microcomputer  26  sends Screens  210  from Customer Dialog  80  to Customer Interface  22  on behalf of Store Server  36  Application  124 . It also returns a Selection  64  . . . picked in response to these action alternatives, to Store Server  36  via LAN  30 . Processor-Memory  150  contains Application  152  and Application Data  154  needed to run Point-of-Sale Terminal  50 . 
     FIG.  7 . is a diagram of Customer Interface  22 . Customer Interface  22  has a Customer Interface Microcomputer  172  that is attached via a LAN  30  and/or Serial Interface  28  to Store Controller  24  and Store Server  36  (optionally), and is attached to Store Server  36  via LAN  30 . Customer Interface Microcomputer  172  contains a Clock  173  that provides time in a form that includes the Month, Day-of-week, Hour, Minute, And Seconds. Customer Interface  22  has a Display Screen  170 , which can display textual and (optionally) graphical information to the customer. Magnetic Stripe Reader  28  is provided to allow the input of customer identification information from a variety of identification cards. Input Device  34  is used to allow the customer to manually input information. Input Device  34  is typically a keypad or a touch screen. As Customer Interface Microcomputer  172  is programmable, it is capable of performing the various functions described elsewhere. The elements of Customer Interface  22  are connected by a Local Bus  166 . As implementations vary from manufacturer to manufacturer, more than one Local Bus  166  may be used. Processor Memory  160  contains Application  162  and Application Data  164  need to run the Customer Interface. 
     FIG.  8 . is a diagram of a structure that represents a Customer Dialog  180 . Customer Dialog  180  is composed of a number of screen presentations. The presentations start with a screen called Initial Screen  62 , which is a Screen as defined in the FIG.  28 . Screen Definition Table. Initial Screen ID  184  is a Screen ID for a screen stored in the FIG.  28 . Screen Definition Table. Associated with Initial Screen ID  184  is a list of Screen ID&#39;s  188 ,  192  and  196  that are individually associated with a Selection ID  186 ,  190 , and  194 . The selections are activated by Touch Element  860  or Key Pad Element  860  specified by the various Selection IDs. Customer Dialog Block  182  is a table with a list of the allowable Selection ID&#39;s  186 ,  190 , and  194  and Screen ID  188 ,  192  and  196 , of the screen that is to be displayed if that selection is made. Customer Dialog Blocks  182  are chained together using the various Screen IDs. As the Screen ID is used for the linkage, any meshed structure of Customer Dialog Blocks is possible. 
     FIG.  9 . is a diagram of a structure that represents a customer Activity  200 . An Activity  200  is a sub-set of a Customer Dialog  180 . It is composed of Customer Dialog Blocks  201 . An Activity  200  may result in the viewing of an advertisement, the issuance of a coupon, the sale of a product or service . . . through the presentation of a number of screens, as directed by the selections made by the customer as the screens are presented. Customer Dialog Blocks  201  are navigated as in the description in FIG.  8 . Activity&#39;s Screen ID  202  fills the same function as Initial Screen ID  184  for Activity  200 . It is the anchor point for the various screens required to accomplish an activity. 
     FIG.  10 . is a diagram showing the elements of a Screen  210  and associated Manual Input Areas  214 . In this embodiment, Screen  210  is composed of one or more Sub-screens  42 . Each Sub-screen  212  contains graphical and/or text elements that occupies an area of Screen  210 . These Sub-screens may be associated with a key on a keypad or a touch area on Screen  210 . These are called Manual Input Areas  214 . Screen  210  has a Screen ID  384 . The definition of a Screen  210  can be found in the FIG. 28 Screen Definition Table. 
     FIG.  11 . is a diagram showing Store Setup and Update process. There are two independent sources that start the process. Step  902  describes the sign up, modification or cancellation of a retail entity concerning its stores&#39; participation in presenting offers to customers, and the collection of various data, as is found in the FIG.  16 . Store Definition Table. This information is communicated from Central Server  10  to Store Server  36  via WAN  16  and is stored in Store Server  36  Data Memory  128  and subsequently to a Disk Drive  114  as in step  904 . 
     Independently, as in step  914 , merchants sign up to make, modify, or cancel offers through the various stores participating in the overall system. Step  916  shows the collection of various data that describes the sales campaign they wish to conduct. These activities result in building, for each store Involved In each offer, the various Screens  210 , Activities  200 , Screen Definition Table  800  entries, Text Element Table  820  entries, Graphic Element Table  840  entries, Touch Element Table  860  entries, and Keypad Element Table  880  entries. These are sent to Store Server  36  in the stores involved with the offer (Step  906 ). 
     In Step  908  the Store Server  36  activates the instrumentation in Customer Interface  22 , which begins sending Screen Instrumentation Messages  370  and Customer Selection Instrumentation Messages  390  to Store Server  36 . These are accumulated in Instrumentation Table  510 . When that table is filled to a preset level, the contents of Instrumentation Table  510  are sent to Central Server  10 , where it is added to instrumentation Table  510  at Central Server  10 . Store Server  36  Instrumentation Table  510  is then reset to empty awaiting more entries. 
     In Step  910 , an analysis process is started periodically in Central Server  10 , using current Instrumentation Table  510 , Customer Store Profile Table  240 , Store Profile Table  510 , Store Definition Table  340 , Customer Table  220 , and Credit, Debit, Loyalty . . . Card Table  330  to construct updated Customer Store Profile Tables  240 , Store Subset—Customer Store Profile Table  290 , and 
     Store Profile Tables  510 , as described in the FIG. 43 Store Profile Table Generation and FIG.  45 . Customer Store Profile Table Generation. 
     In Step  912  these updated Store Subset—Customer Store Profile Tables  290  and Store Profile Tables  510 , are sent back to the Store IDs as specified in Store IDs  294  and  512 . 
     This process continues by repeating Steps  908 ,  919  and  912 . 
     Data Table Formats 
     FIG.  12 . illustrates Customer Table  220  that contains a Customer ID  222  which is the ID provided to the retailer by the customer in the course of the primary transaction being performed. It may be a credit card number or other ID, or no ID (anonymous ID). It also contains Customer Name  226 , Address  228 , Date of Creation  230 , and Data of Profile Update  232 . 
     FIG.  13 . is a data table that describes a FIG.  13 . Customer/Store Profile Table  240 . This profile contains the information about the customer&#39;s time consumption habits in various circumstances. Customer ID  242  identifies a unique customer. Store ID  246  identifies the store the FIG.  13 . Customer/Store Profile Table  240  applies to. The Date of Last Update  248  is a control field that is used to trigger periodic updates of the FIG.  13 . Customer/Store Profile Table  240 . Date Created  250  is the date the first FIG.  13 . Customer/Store Profile Table  240  was generated by the system. Mean Think Time  252  is the estimated think time for the customer in the specified store. The Std. Deviation of Think Time  254  is standard deviation of the think time samples collected at the time Customer/Store Profile Table  240  was last updated. Number of Think Time Samples  256  is used to eliminate the need to maintain a historical database of think time samples beyond the current sample period. 
     To maintain this value, Mean Think Time  252  and Std. Deviation of Think Time  254  use their previous values and the current samples. 
     A number of statistics are maintained in the FIG.  13 . Customer/Store Profile Table  240  concerning customer idle time. The fields are: Mean Idle Time  264 , Std. Deviation of Idle Time  266 , Number of Idle Time Samples  268 , 1 st  most likely Activity ID  270 , 2 nd  most likely Activity ID  272 , and 3 rd  most likely Activity ID  274 . These values are repeated for morning, mid-day, and evening for each day of the week and each month, for a total of 252 repetitions. Mean Idle Time  264  and Std. Deviation of Idle Time  266  are computed from the information collected in Screen Instrumentation Table  300  and Customer Selection Instrumentation Table  320 , using Number of Idle Time Samples  268  as described above for Number of Think Time Samples  256 . The FIG.  13 . Customer/Store Profile Table  240  is generated and stored at Central Server  10 . 
     FIG.  14 . is the Store Subset—Customer/Store Profile  240 , a subset of the Customer/Store Profile  290  that contains the information needed by Store Server  36 . It is extracted from Customer/Store Profile  240 . 
     FIG.  15 . is the Credit, Debit, Loyalty . . . Card Table  330 . The table associates Card ID  332  with a Customer Name  334  and Customer ID  336  which is assigned by Central Server  10  when the customer is initially added to the system. 
     FIG.  16 . is the Store Definition Table  340 . The table contains a Store ID  342  which uniquely identifies the store; Store Type  343  which is used, optionally, to build Customer Store Profile Tables  240  that span instances of the same Store Type  343  or to build Store Profile Tables that span instances of the same Store Type  343 ; a Store a Corporate ID  380  which uniquely identifies the company or franchiser associated with the store; and Franchisee ID  346  which is used when the store is a franchise and uniquely identifies the franchisee. Store Definition Table  340  is built by Central Server  10  as stores are entered into the system. 
     FIG.  17 . is the Idle Time Message  360 . These signals are messages generated by Store Controller  24  when it detects the start or stop of idle time as described in FIG.  40 . Only two pieces of information are required in a FIG.  17 . Idle Time Message. Message ID  362  specifies whether the signal is a ‘Start of Idle Time’ or a ‘End of Idle Time’. Point-of-sale Terminal ID  364  associates that signal with a specific checkout counter. This is then associated to a specific customer via Customer Session Table&#39;s  560  Point-of-sale Terminal  562  field. 
     FIG.  18 . is a data structure that describes the Screen Instrumentation Message  370 . The FIG.  18 . Screen Instrumentation Message is generated by Customer Interface  22  when it presents a screen, as defined in the FIG.  28 . Screen Definition Table, and is sent to Store Server  36  for forwarding to Central Server  10  where it is placed in a table with the same format. Message Type  372  is a constant and is generated by Application  152  in Point-of-Sale Terminal  50 . Customer ID  374  is extracted from the FIG.  24 . Customer Session Table, as are: Store ID  378 , Point-of-sale Terminal ID  364 , and Session Number  382 . Screen ID  384 , and Size  386  are extracted from the current Customer Dialog Block  61 . Time Stamp  388  is generated from Customer Interface Micro-processors  908  internal clock. 
     FIG. 19 is a data structure that describes Customer Selection Instrumentation Message  390 . The FIG.  19 . Customer Selection Instrumentation Message is generated by Customer Interface  22  when it detects a touch or key press as defined in the FIG.  28 . Screen Definition Table, Element ID  808 . It is sent to Store Server  36  for forwarding to Central Server  10  where it is placed in a table with the same format. Message Type  392  is a constant and is generated by Application  152  in Point-of-Sale Terminal  50 . Customer ID  394  is extracted from the FIG.  24 . Customer Session Table, as are: Store ID  398 , Point-of-sale Terminal ID  400 , and Session Number  402 . Screen ID  404  and Selection ID  406  are extracted from the current Customer Dialog Block  61 . Time Stamp  408  is generated from the Customer Interface Micro-processor&#39;s  172  internal Clock  173 . 
     FIG.  20 . is an Instrumentation Table  410 , that describes a collection of Screen Instrumentation Messages  370  and Customer Selection Instrumentation Messages  390 . Message Type  412  distinguishes between these. The FIG.  20 . Instrumentation Table is generated by Store Server  36  when it receives Screen Instrumentation Messages  370  and Customer Selection Instrumentation Messages  390  from Point-of-Sale Terminal  50 . The Month  428 , Day-of-week  430 , Time  432 , and Time-of-day  434  are calculated from the Time Stamp  388  from the corresponding FIG.  19 . Customer Selection Instrumentation Message or FIG.  18 . Screen Instrumentation Message by use of a conventional conversion routine. 
     FIG.  21 . Profile Generation Instrumentation Table  440  is a copy of the FIG.  20 . Instrumentation Table that is used to generate Customer/Store Profile Tables  120 . That process is described under FIG. 23 below. 
     FIG.  22 . is Point-of-sale Terminal Table  500  which associates a Screen ID  504  with a Point-of-sale Terminal ID  502 . That screen is presented at End Of Session  1016  at Point-of-sale Terminal  50  specified by Point-of-sale Terminal ID  502 . 
     FIG.  23 . is Store Profile Table  510 . It is supplied from Central Server  10  as part of a periodic download process. Store ID  512  is a unique identifier assigned by Central Server  10  when the store is added to the system. Point-of-Sale Terminal ID  514  identifies Point-of-Sale Terminal  50  in the store that the specific profile applies to. For example, the Express Checkout Lane in a store would have a different FIG.  23 . Store Profile Table entry than the normal Checkout Lanes. Date Created entry  516  is assigned by Central Server  10  when the store is added to the system. Date of Last Update entry  518  is the date when the current profile was generated. It is set by Central Server  10  during Profile Generation. Mean of Think Time entry  520  is set during FIG.  43 . Store Profile Generation by averaging the time differences between Time  432  in the FIG.  20 . Instrumentation Table for Message Type  412 =‘Screen’ and the next Time  432  for Message Type  412 =‘Customer Selection’ for the FIG.  20 . Instrumentation Table for entries with the same Point-of-Sale Terminal ID  420  and Store ID  418 . This is done by sorting the FIG.  20 . Instrumentation Table into ascending sequence by Store ID  418 , Point-of-Sale Terminal ID  420 , Month  428 , Day-of-week  432  and Time  434  and summarizing from the sorted table. The Std. Deviation of Think Time  522  is similarly calculated using the well known formulas for calculation of the standard deviation of a set of numbers. The Number of Think Time Samples  524  is the count of samples used to calculate Mean of Think Time  520 . A number of fields are repeated for morning, mid-day, and evening for each day of the week. The weekly information is repeated for each month. The data elements repeated are: Mean Idle Time  532 , Std. Deviation of Idle Time  534 , Number of Idle Time Samples  536 , 1 st  most likely Activity ID  364 , 2 nd  most likely Activity ID  540 , and 3 rd  most likely Activity ID  542 . 
     Mean Idle Time  532 , Std. Deviation of Idle Time  534 , Number of Idle Time Samples  536  can be calculated by sorting the FIG.  20 . Instrumentation Table into ascending sequence by Store ID  418 , Point-of-Sale Terminal ID  420 , Customer ID  414 , Session Number  422 , Month  428 , Day-of-week  430 , and Time-of-day  434  and summarizing from the sorted table. The difference between the time of the first and last entries in the FIG.  20 . Instrumentation Table for a given Session Number  422 , less the time between the presentation of the Payment Screen and receiving the Customer Selection, is the idle time for that Customer Session  422 . These individual idle times are used to calculate the Mean Idle Time  532 , Std. Deviation of Idle Time  534  and Number of Idle Time Samples  536 . 1 st  most likely Activity ID  538 , 2 nd  most likely Activity ID  540 , and 3 rd  most likely Activity ID  542  are generated as described in FIG.  43 . Store Profile Generation. 
     Home Screen ID  550  is extracted from the FIG.  22 . Point-of-sale Terminal Table by finding the entry that matches Point-of-sale Terminal ID  514 . Percent On Time Completion  554  is the percentage of time that the idle time transactions will complete prior to the end of the idle time. It is selected by store management to meet their objectives and is based on their judgement of a correct balance between utilization of customer idle time and utilization of the checkout counter for the primary business of the store. 
     FIG.  24 . is the Customer Session Table  560  that is constructed as shown in FIG.  44 . Customer Session at the point the customer is identified during Checkout Idle Time  1010 . It contains Session Number  564  which is set from Next Session Number  914 . Customer ID  566  is provided by the customer, generally by passing an identification card Magnetic Stripe Reader  28 . Store Subset—Customer/Store Profile Table  290  is located by using Customer ID  294  to find the entry, and the time from Customer Interface Microprocessors  172  internal Clock  173  is used to locate: Mean Idle Time  306 , Std. Deviation of Idle Time  308 , 1 st  most likely Activity ID  310 , 2 nd  most likely Activity ID  312 , and 3 rd  most likely Activity ID  314 , which are entered into the corresponding fields of the FIG.  24 . Customer Session Table  560 . 
     FIG.  25 . is the Time-of-day Conversion Table  580  that is used to convert a clock value from the time of day in terms of Morning, Mid-day, and Evening. Time Morning Start  582  is the clock value that defines the start of Morning. Any clock value between Time Morning Start  582  and Time Mid-day Start  584  is Morning. Any clock value between Time Mid-day Start  584  and Time Evening Start  586  is Mid-day. Any clock value between Time Evening Start  586  and Time Morning Start  582  is Evening. Note: this table is readily expanded to handle more than three time periods per day. 
     FIG.  26 . is Proposed Activity List  590  to be presented to a customer. The FIG.  26 . Proposed Activity List is copied from the FIG.  27 . Activity Table. The first three entries are 1 st  most likely Activity ID  572 , 2 nd  most likely Activity ID  574 , and 3 rd  most likely Activity ID  576 ; followed by the rest of the entries in the FIG.  27 . Activity Table in descending Activity Value  598  order. Then, based on Expected Idle Time  570  from the FIG.  24 . Customer Session Table, the Expected System Response Time  594  and the Expected Std. Deviation of System Response Time  606  from the FIG.  27 . Activity Table, and Mean Think Time  296  and Std. Deviation of Think Time  298  from the FIG.  14 . Store Subset—Customer/Store Profile Table; the FIG.  26 . Proposed Activity List is purged of activities beyond the entry that will satisfy the Percent On Time Completion  554  criteria from FIG.  23 . See FIG.  42 . Selection of Proposed Activity for a flow chart implementation of this. 
     FIG.  27 . is the Activity Table  600  that has all the activities offered in the store. It contains Activity ID  602  and Screen ID  604 , which is a Screen ID  202  for a first screen in an Activity  200 ; and Activity Value  608 , which is value to the business entities that are involved in the offering associated with the activity. 
     FIG.  28 . is a Screen Definition Table  800  that is the anchor point for the generation of a screen. It is composed of: a Screen ID  802  which is a unique identifier assigned by Central Server  10  during the screen definition process; an X Dimension  804  and a Y Dimension  806  that define the size of the screen to be presented; a list of Sub-screen Elements composed of entries from the FIG.  29 . Text Element Table, FIG.  30 . Graphic Element Table, FIG.  31 . Touch Element Table and FIG.  32 . Key Pad Element Table. These are described below. 
     FIG.  29 . is the Text Element Table  820 , which is composed of: Text Element ID  822 , a unique identifier assigned by the Central Server  10  and downloaded into the Store Server  36  periodically; a Text Element Flag  824  which is used to identify an entry as a text element when it is copied into the FIG.  28 . Screen Definition Table; an X Position  826  and a Y Position  828  that specify the upper leftmost location on the screen where the text is to be placed; Font  830  which specifies which type font to use when displaying the text; Style  832  (Bold, Underlined, Italic . . . ) of font to use for the text; Length  834  in bytes of the following field which contains the text; and Text  836  which contains the text to be displayed. 
     FIG.  30 . is the Graphic Element Table  840 , which is composed of: Graphic Element ID  842 , a unique identifier assigned by Central Server  10  and downloaded into Store Server  36  periodically; a Graphic Element Flag  844  which is used to identify an entry as a graphic element when it is copied into the FIG.  28 . Screen Definition Table; an X Position  846  and a Y Position  848  that specifies the upper leftmost location on the screen where the text is to be placed; the Graphic&#39;s Type  850  (tiff, GIF . . . ) which specifies the format of the graphic; Size  852  of Graphic  854  in bytes; and Graphic  854  which contains the graphic to be displayed. 
     FIG.  31 . is the Touch Element Table  860 , which is composed of: Touch Element ID  862 , a unique identifier assigned by Central Server  10  and downloaded into Store Server  36  periodically; a Touch Element Flag  864  which is used to identify an entry as a touch element when it is copied into the FIG.  28 . Screen Definition Table; an X 1  Coordinate  866  and a Y 1  Coordinate  868  that specify the upper leftmost location on the screen that is to be active as a touch area, which in conjunction with the X 2  Coordinate  870  and Y 2  Coordinate  872  that specify the lower rightmost location on the screen that is to be active as a touch area, define a touch area, which if touched by the customer is associated with Selection ID  874  which uniquely identifies the customer response. 
     FIG.  32 . is the Key Pad Element Table  880 , which is composed of: Key Pad Element ID  882 , a unique identifier assigned by Central Server  10  and downloaded into Store Server  36  periodically; a Key Pad Element Flag  884 , which is used to identify an entry as a key pad element when it is copied into the FIG.  28 . Screen Definition Table; a Key ID  886  which if touched by the customer is associated with Selection ID  874  which uniquely identifies the customer response. 
     FIG.  33 . is the Activity Work Table  900  which is composed of Activity ID  902  and Count  904 . It is used to find the most likely activities in the Customer Store Profile Table  240 , Store Subset—Customer Store Profile Table  290 , and Store Profile Table  510 . 
     FIG.  34 . is the Store Configuration Table  910 , which is composed of Store ID  912  and Next Session Number  914 . Next Session Number  914  is initialized with the value of zero. It is incremented by one, each time a Session Number  564  in the FIG.  24 . Customer Session Table is assigned. When the field overflows, it is reset to zero. The field size is picked such that Session Numbers  914  assigned in one 24 hour period are unique. System Response Time  916  is calculated dynamically as shown in FIG.  46 . System Response Time Calculation. The Store Configuration Table  910  is built by Store Server  36  at system bring up. This table is in Store Server  36  and has one entry for the store 
     FIG.  35 . System Response Time Work Table  930 , which is composed of: point-of-sale Terminal ID  932  which identifies the terminals in the store where the table is sited; Time of Last Customer Response Instrumentation Signal  934 ; Time of Last Screen Instrumentation Signal  936 ; Number of Samples  938  of System Response Time; Total of Response Times  940 ; Sum of Square of Response Times  942 ; and System Response Time  944 . This table is in Store Server  36  and has one entry for each Point-of-sale Terminal  50  in the store. 
     Activity Diagrams 
     FIG.  36 . Customer Session  1000 , is a diagram that describes a typical FIG.  36 . Customer Session in a supermarket. It will be explained in the terms of a grocery store but applies with minor variations to most if not all Point-of-sale venues. This diagram illustrates the normal flow of a customer in a store. The first customer activity is to Shop  1002 . When the shopping list has been filled, the customer enters a Wait For Checkout  1004 . Eventually the customer reaches the point where he/she can Unload Shopping Cart  1006  and after having done so will Wait for Checker  1008 . Once the checker is available and starts to process the order, the customer enters Checkout Idle Time  1010 . When all the items have been rung up, the customer is asked to Make Payment  1012 . After this is completed the customer has a Bagging Idle Time  1014  and then proceeds to vacate the checkout counter at End of Session  1016 . Checkout Idle Time  1010  and Bagging Idle Time  1014  constitute the time available (idle Time) for the customer to engage with the Customer Interface  22  to perform other transactions. 
     FIG.  37 . is a diagram that describes how the Customer Idle Time  1020  is used. The system proposes a series of transactions (Activity  1   1022 , Activity  2   1022  through Activity n  1022 . These activities are selected based on the Expected Idle Time  570  for the FIG.  36 . Customer Session. That Expected Idle Time is calculated as shown in FIG.  41 . The selection of the Activities is described in FIG.  42 . 
     FIG.  38 . is a diagram that describes the Customer Activity Cycle  1030 . The FIG.  38 . Customer Activity Cycle is composed of one or more Actions  1032 . These Actions  1032  involve the presentation of a Screen  210  with a set of Selections  874  that constitute the customer&#39;s response to the screen. The FIG.  38 . Customer Activity Cycle starts with the ‘Start of Idle Time’ in the FIG.  17 . Idle Time Message and ends with the ‘End of Idle Time’ in the related FIG.  17 . Idle Time Message. 
     FIG.  39 . is a diagram that describes Customer Action Cycle  1040 . The FIG.  39 . Customer Action Cycle is viewed from the customer&#39;s perspective in that it starts with a screen displayed on the Customer Screen  210 . The customer reads and thinks about the information presented during Think Time  1042 . Once a decision is made the customer responds during Enter Response  1044 . The system evaluates the response which is in the form of a Selection ID  874  and then at the end of System Response Time  1046 , Presents Action Alternatives  1048  in the form of next Screen  210  to the customer by selecting a Screen ID  66 ,  70 ,  74  . . . associated with Selection ID  64 ,  68 ,  72  . . . in the Customer Dialog Block  61 . This cycle repeats for each Action  1032  in the FIG.  38 . Customer Activity Cycle. 
     Flow Charts 
     FIG.  40 . is a flow chart for Detecting Start and End of Idle Time. The flow chart illustrates a portion of the main loop in a conventional cash register. Each time a clerk takes an action, the Process Clerk Action Ring Up  1062  step is performed, then a test is made in the First Ring Up After Receipt?  1064  decision step. If the answer is ‘Yes’, Step  1066  sends a message to the Store Server  36  via the LAN  30  containing FIG.  17 . Idle Time Message with a Message ID  362  indicating ‘Start of Idle Time’, and then returns the flow to Step  1070 . If the answer generated in Step  1064  was ‘No’, flow continues to Acquire Next Clerk Action  1070  and then on to End of Transaction  1072 , where the decision is made as to whether the next action is the end of the current customer&#39;s transaction. If yes, control flows to Step  1074  which sends a message to the Store Server  36  via the LAN  30  containing FIG.  17 . Idle Time Message with a Message ID  362  indicating ‘End of Idle Time’, and then returns the flow to Process Clerk Action  1062 . Otherwise, flow goes directly to Process Clerk Action  1062 , where the normal checkout processing is performed for the action. 
     FIG.  41 . is a flow chart describing the calculation of Expected Idle Time  570  (FIG.  24 .). In step  1080 , using the Customer ID  566  from Customer Session Table  560 , Store Subset—Customer Store Profile Table  290  and Time-of-Day, Current-Day, Current-Month (derived from the current time): Then the Number Of Standard Deviations required to meet and Percent On Time Completion  554  is calculated using standard statistical formulas. The square root value is multiplied by Std. Deviation of Idle Time  534  for the Time-of-Day, Current-Day, and Current-Month. The product is added to the Mean Idle Time  532  for the Time-of-Day, Current-Day, and Current-Month, giving Expected Idle Time  570 . 
     FIG.  42 . is a flow chart describing the construction of Selection of Proposed Activities  1090 . Step  1090 , using FIG. 41., calculates Expected Idle Time  570 . Step  1092  builds a new instance of a Proposed Activity List  590  for this customer session and primes the table with the activities from the Activity Table  600 . Step  1094  inserts the three most likely activities from the Subset Customer/Store Profile  290  or Store Profile Table  510  (if the Subset Customer/Store Profile  290  for Customer ID  566  does not exist) into the head of the Proposed Activity List  590 . Step  1100  sets the Activity-List-Pointer (it points to the ‘current’ item in the list) to the first item in the Proposed Activity List  590  and initializes Cumulative Time to zero. 
     Step  1106  sums the time taken for the current Activity  1022  by adding: the product of Mean of Think Time  520  and the number of Actions  1032  in the Activity  1022 , and Expected System Response Time  594  to Cumulative-Time. Step  1108  tests Cumulative-Time to see if it exceed the Expected Idle Time  570 . 
     Step  1110  is executed in the case where the last activity did not fit into Expected Idle Time  570 . The calculation in Step  1106  is nullified and the current Activity is deleted from the Proposed Activity List  590 . This makes the next activity the current activity, so control is passed to Step  1114 . 
     Step  1112  sets the Activity-List-Pointer to the next Activity on the List. 
     Step  1114  checks to see if the last activity has been processed. If so the process is ended. Otherwise control is passed to Step  1106 , continuing the process. 
     FIG. 43 a . Store Profile Table Generation  1110  describes how the FIG. 23 Store Profile Table is constructed. 
     Step  1200  copies Instrumentation Table  410  to Profile Generation Instrumentation Table  440 , sorts the: Store Profile Table  240  into ascending sequence by Store ID  246 ; and then sorts Profile Generation Instrumentation Table  440  into ascending sequence by: Time  464 , Session Number  452 , Day-of-week  462 , Month  460 , Point-of-Sale Terminal ID  450 , and Store ID  448 . 
     Step  1202  sets up a loop to scan the to Profile Generation Instrumentation Table  440  and update the corresponding entries in the Store Profile Table  240 . 
     Step  1204  sets up a loop to look at each Point-of-Sale Terminal ID  450  entry within the current store. 
     Step  1206  initializes a temporary variables: Total-Think-Time to Mean to Think Time  520  * Number of Think Time Samples  524 , and Sum-of-Squares-of-Think-Time =(Number of Think Time Samples  524 −1) * (Std. Deviation of Think Time  522 ){circumflex over ( )}2+Mean Think Time  520 {circumflex over ( )}2; each time a new Point-of-Sale Terminal ID  450  is reached. 
     Step  1208  sets up a loop to process each pair of Screen Instrumentation Message  370  and Customer Selection Instrumentation Message  390 . 
     Step  1210  initializes a temporary variable: Think-Time=Time Stamp  388  Time Stamp  408 , adds Think-Time TO Total-Think-Time, adds Think-Time{circumflex over ( )}2 to Sum-of-Squares-of-Think-Time, and adds 1 to Number of Think Time Samples  524 . 
     Step  1212  checks to see if the last pair of Screen Instrumentation Message  370  and Customer Selection Instrumentation Message  390  within Point-of-Sale Terminal ID  450  has been processed. If not control is returned to Step  1210  to process the next pair. Otherwise control is passed to Step  1214 . 
     Step  1214  checks to see if all the within Point-of-Sale Terminal IDs  450  within the Store ID  448  have been processed. If not control is returned to Step  1206  to process the next pair. Otherwise control is passed to Step  1216 . 
     Step  1216  then calculates Mean of Think Time  520 =Total-Think-Time/Number of Think Time Samples  524 , Std. Deviation of Think Time  522 =((Sum-of-Squares-of-Think-Time−(Total-Think-Time){circumflex over ( )}2)/(Number of Think Time Samples  524 −1)){circumflex over ( )}0.5, adds 1 to Number of Idle Time Samples  536 , Mean Idle Time  532 =Total-of-ldle-Time/Number of Think Time Samples  524 : 
     Step  1218  sets up a loop to calculate the Mean Idle Time statistics for Store Profile Table  510 . 
     Step  1222  sets up a loop to process each Session Number  452  in the Point-of-Sale Terminal IDs  450 . 
     Step  1224  calculates temporary variables: Time-Min=MIN(Time  464  from current Session Number  452 ), Time-Max=MAX(Time  464  from current Session Number  452 ), Total-of-Idle-Time=Time-Max−Time-Min, and Sum-of-Squares-of−Idle-Time=(Time-Max−Time-Min){circumflex over ( )}2−1)){circumflex over ( )}0.5. It then updates Mean Idle Time  532 , Std. Deviation of Idle Time  534 , and Number of Idle Time Samples  536  for the Store Profile Table  510  that corresponds to the first Profile Generation Instrumentation Table  440  for the current session. 
     Step  1226  checks for more Session Numbers  452  in Profile Generation Instrumentation Table  440 . If there are more it transfers control to Step  1224 , otherwise to Step  1228 . 
     Step  1228  checks for more Point-of-Sale Terminal IDs  450  in Profile Generation Instrumentation Table  440 . If there are more it transfers control to FIG. 43 b . Step  1238 , otherwise to Step  1222 . 
     FIG. 43 b . is a continuation of FIG. 43 a . Store Profile Table Generation  1110   
     Step  1238  initializes Activity Work Table  900  to empty. 
     Step  1240  sets up a loop to look at each Point-of-Sale Terminal ID  450  entry within the current store. 
     Step  1244  adds a new element to Activity Work Table  900  by setting the next available element as follows: Activity ID  902 =Activity ID  454 , Count  904 =1. 
     Step  1246  checks for more Point-of-Sale Terminal IDs  450  in Profile  20  Generation Instrumentation Table  440 . If there are more it transfers control to Step  1244 , otherwise to Step  1248 . 
     Step  1248  sorts Activity Work Table  900  into Ascending Sequence by Activity ID  902 . 
     Step  1254  deletes duplicate elements in Activity Work Table  900  preserving the first duplicate activity to appear in the table and adding 1 to the Count  904  for each deletion. 
     Step  1258  deletes elements in Activity Work Table  900  that do not have corresponding elements in the Activity Table  600 . 
     Step  1262  updates Store Profile Table  240  for each Store ID  512  and Point-of-Sale Terminal ID  514 , setting 1st most likely Activity ID  538 , 2nd most likely Activity ID  540 , and  3 rd most likely Activity ID  542  for each Time of Day, Day of Week, and Month to the highest three Counts  904  in the Activity Work Table  900  that correspond to those entries. 
     Step  1264  checks for more Store ID in Profile Generation Instrumentation Table  440 . If there are more it transfers control to FIG. 42 a - 1 , Step  1204 , otherwise it ends the process. 
     FIG.  44 . Customer Session Table Generation  1120  describes how the FIG. 24 Customer Session Table is constructed. 
     Step  1300  receives the Idle Time Message  360  which is the trigger to build a Customer Session Table  560  entry. 
     Step  1302  checks Message ID  362  for ‘Start of Idle Time’ and passes control to Step  1304  if it is, otherwise to End. 
     Step  1304  sets Point-of-sale Terminal ID  562  to Point-of-sale Terminal ID  364 , reads Customer ID  566  from Customer Interface  22 , sets Session Number  564 =Next Session Number  914 , and adds 1 to Next Session Number  914 . 
     Step  1306  uses Customer ID  566 , Current-Month, Current-Day, Current-Time-of-Day TO FIND Store Subset—Customer Store Profile Table  290  entry: 
     From that entry setting: Expected Idle Time  570 =Mean Idle Time  306 , and moving 1st, 2nd and 3rd most likely Activity IDs  310 ,  312 , and  314  to the corresponding entries ( 572 ,  574 , and  576 ) in the Customer Session Table  560 . It then ends the routine. 
     FIG. 45 a . Customer Store Profile Generation  1140  describes how the FIG.  13 . Customer Store Profile Table is constructed. 
     Step  1400  copies Instrumentation Table  410  into Profile Generation Instrumentation Table  440 , sorts Customer Store Profile Table  240  by: Customer ID  242 , and Store ID  246  into ascending sequence: sorts Profile Generation Instrumentation Table  440  by: Time  464 , Session Number  452 , Day-of-week  462 , Month  460 , Point-of-Sale Terminal ID  450 , Customer ID  444 , and Store ID  448   
     Step  1402  creates a new entry in Customer Store Profile Table  240  for all entries in the Profile Generation Instrumentation Table  440  that do not have an entry in the Customer Store Profile Table  240 , setting Date Created  250  to today&#39;s date, sets Store ID  246  to Store ID  448 , Customer ID  242  to Customer ID  444 , and all other values to zero or blank: 
     Step  1406  sets up a loop to look at each Store ID  448  entry in Profile Generation Instrumentation Table  440 . 
     Step  1408  sets up a loop to look at each to Customer ID  444  entry in each Store ID  448 . 
     Step  1410  sets Date of Last Update  248  to today&#39;s date, temporary variables: Total-Think-Time=Mean of Think Time  252  * Number of Think Time Samples  256 , and Sum-of-Squares-of-Think-Time=(Number of Think Time Samples  256 −1) * (Std. Deviation of Think Time  254 ){circumflex over ( )}2+Mean Think Time  252 {circumflex over ( )}2 
     Step  1412  sets up a loop to look at each Screen Instrumentation Message  370 , Customer Selection Instrumentation Message  390  pair in Profile Generation Instrumentation Table  440  for Customer ID  444 . 
     Step  1414  sets temporary variable Think-Time to Time Stamp  408 −Time Stamp  388 , adding Think-Time to Total-Think-Time, Sum-of-Squares-of-Think-Time to Sum-of-Squares-of-Think-Time+Think-Time{circumflex over ( )}2, and adding 1 to Number of Think Time Samples  256 . 
     Step  1416  check to see if all pairs have been processed. If not, control is passed to Step  1414 , other wise to Step  1418 . 
     Step  1418  sets Mean of Think Time  252  to Total-Think-Time/Number of Think Time Samples  256 , sets Std. Deviation of Think Time  254 =((Sum-of-Squares-of-Think-Time-(Total-Think-Time) {circumflex over ( )}2)/(Number of Think Time Samples  256 −1)){circumflex over ( )}0.5: 
     Steps  1420 , 1422  and  1424  set up nested loops for Time-of-Day, Day-of-Week, and Month. These loop variables determine which fields in Customer Store Profile Table  240  are used with the loops. Control passes to FIG. 44 b . Step  1426 . 
     FIG. 45 b . is a continuation of FIG. 45 a . Customer Store Profile Generation 
     Step  1426  sets Total-of-Idle-Time=Mean Idle Time  264  * Number of Idle Time Samples  268 , Sum-of-Squares-of−Idle-Time=(Number of ldle Time 
     Samples  268 −1) * (Std. Deviation of Idle Time  266 ){circumflex over ( )}2+Mean Idle Time  254 {circumflex over ( )}2. 
     Step  1428  set up a loop for each Session Number  452  within the Time-of-day inverval. 
     Step  1430  sets temporary variables: Time-Min=MIN(Time  464  from current Session Number  452  within Profile Generation Instrumentation Table  440 ), Time-Max=MAX(Time  464  from current Session Number  452  within Profile Generation Instrumentation Table  440 ), Total-of-Idle-Time=Total-of-ldle-Time+Time-Max−Time-Min, Sum-of-Squares-of−Idle-Time=Sum-of-Squares-of-Idle−Time+(Time-Max−Time-Min){circumflex over ( )}2, and adds 1 to Number of Idle Time Samples. It then sets up to process the next session number in the Profile Generation Instrumentation Table  440 . 
       
     Step  1432  checks to see if all the session numbers in the Profile Generation Instrumentation Table  440  have been processed. If not control passes back to Step  1430 , otherwise control passes to Step  1434 . 
     Step  1434  sets Mean Idle Time  264 =Total-of-Idle-Time/Number of Idle Time Samples  268 , Std. Deviation of Idle Time  266 =((Sum-of-Squares-of-Idle-Time −Total-of-ldle-Time){circumflex over ( )}2)/(Number of Idle Time Samples  268 −1){circumflex over ( )}0.5. 
     Step  1436  checks to see if all the Time-of-day intervals in the Profile Generation Instrumentation Table  440  have been processed for the current Day-of-week interval. If not control passes back to Step  1426 , otherwise control passes to Step  1438 . 
     Step  1438  initializes Activity Work Table to Empty, and sets temporary variable Last-Activity-ID TO null. 
     Step  1440  set up a loop for each Time-of-day within Day. 
     Step  1444  adds a new element to Activity Work Table, setting Activity ID  902 , Count  904 , Month  906 , Day of Week  907 , and Time of Day  908  to the corresponding fields in Profile Generation Instrumentation Table  440 ; setting Count to 1 
     Step  1446  checks to see if all the Time-of-day intervals in the Profile Generation Instrumentation Table  440  have been processed for the current Day-of-week interval. If not control passes back to Step  1444 , otherwise control passes to Step  1448 . 
     Step  1450  sorts Activity Work Table  900  into ascending sequence by Activity ID  902 : 
     Step  1450  set up a loop for each element in Activity Work Table  900 . 
     Step  1452  checks the current element of Activity Work Table  900  has the same Activity ID  902  as the last element. If yes, control passes to  1454 , otherwise control passes to Step  1456 . 
     Step  1454  deletes the current element of the Activity Work Table  900  and adds 1 to the its Count  904 . 
     Step  1456  checks the current element of Activity Work Table  900  to see if its Activity ID  902  is in the Activity Table  600 . If yes, control passes to  1458 , otherwise control passes to Step  1460 . 
     Step  1458  deletes the current entry in the Activity Work Table  900 . 
     Step  1460  checks to see if the last element in the Activity Work Table  900  has been processed. If not, control passes to  1452 , otherwise control passes to FIG. 44 c . Step  1462   
     FIG. 45 c . is a continuation of FIG. 45 a . Customer Store Profile Generation Step  1462  sorts Activity Work Table  900  in ascending sequence by Count:  904 , moves 1st, 2nd &amp; 3rd elements&#39; Activity IDs  902  from Activity Work Table  900  to 1st, 2nd &amp; 3rd most likely Activity ID  270 ,  272 , &amp;  274 ; in Customer Store Profile Table  240  entry: 
     Step  1464  checks to see if the last Day-of-week  462  In Profile Generation Instrumentation Table  440  has been processed. If not, control passes to FIG. 44 a - 4 . Step  1424 , otherwise control passes to Step  1466 . 
     Step  1466  checks to see if the last Month  460  in Profile Generation Instrumentation Table  440  has been processed. If not, control passes to FIG. 44 a - 3 . Step  1422 , otherwise control passes to Step  1468 . 
     Step  1468  checks to see if the last Customer ID  444  in Profile Generation Instrumentation Table  440  has been processed. If not, control passes to FIG. 44 a - 2 . Step  1410 , otherwise control passes to Step  1470 . 
     Step  1470  checks to see if the last Store ID  448  in Profile Generation Instrumentation Table  440  has been processed. If not, control passes to FIG. 44 a - 1 . Step  1408 , otherwise the routine ends. 
     FIG.  46 . System Response Time Calculation  1160  describes how System Response Time is calculated. 
     This routine is a never ending loop. 
     Step  1500  read either Screen Instrumentation Message  370  or Customer Selection Instrumentation Message  390  from the Customer Interface  22  and inserts it in Instrumentation Table  410 . 
     Step  1502  checks to see if Record Type Flag  442  in Profile Generation Instrumentation Table  440  is equal to ‘Customer Selection’. If not, control passes to Step  1506 , otherwise control passes to Step  1504 . 
     Step  1504  sets Time of Last Customer Selection Instrumentation Signal  930  to Time  432 , using Point-of-sale Terminal ID  450  to select the corresponding entry in System Response Time Work Table  930 . It passes control to Step  1500 . 
     Step  1506  checks to see if Record Type Flag  442  in Profile Generation Instrumentation Table  440  is equal to ‘Screen Selection’. If not, control passes to Step  1508 , otherwise control passes to Step  1508 . 
     Step  1508  sets Time of Last Screen Instrumentation Signal USING Point-of-sale Terminal ID  420  TO select entry in System Response Time Work Table  930 . Then adds 1 to Number of Samples  938 , setting temporary variable Response-Time=Time of Last Screen Instrumentation Signal  936 −Time of Last Customer Response Instrumentation Signal  934 , adding Response-Time to Total of Response Time  940 , adding Response-Time{circumflex over ( )}2 TO Sum of Square of Response Times  942 , and passes control to Step  1500 . 
     Typical Hardware and Software Infrastructure 
     This invention is based on conventional point-of-sale systems. Many manufacturers supply point-of-sale equipment, and the invention is not limited to any particular manufacture&#39;s equipment. The invention can be implemented using IBM&#39;s 3680 Programmable Store System. The Store Controller  24  being an IBM 3650 and the Point-of-sale Terminal  50  being IBM 3683s. 
     IBM supplies software (IBM programmable store system MICROCODE) used in controlling operations in the hardware described and a program product (Subsystem Program Preparation Support II (SPPS II)) for writing controller and terminal programs. SPPS II includes languages, macro instructions, and a terminal display language. Communication between the terminals and the store controller is done by using a LAN  30  and a program written in IBM 3650 Programmable Store System Microcode. Other application programs that form the infrastructure for the invention are SDM (Store Data Management) and HCP (Host Communication Program), both sold by IBM. 
     It should be understood that the foregoing description is only illustrative of the invention. Various alternatives and modifications can be devised by those skilled in the art without departing from the invention. Accordingly, the present invention is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims.