Crowd level detection for in-store shopping

Embodiments of the present invention provide a method, computer program product, and computer system for predicting store busy times. The method includes gathering data associated with the active carts in the store. The method may also predict the number of active carts within the store based on historical data indicating the crowd level on a particular date. A discount offer is determined and offered to users for visiting the store at a specific time slot.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of shopping, and more particularly to detecting the crowd level in a store and notifying users of ideal shopping times.

An indoor positioning system (IPS), or indoor localization system, is a solution to locate objects or people inside a building using radio waves, magnetic fields, acoustic signals, or other sensory information collected by mobile devices. There is currently no de facto standard for an IPS design. Nevertheless, there are several commercial systems on the market. Instead of using satellites, IPS solutions rely on different technologies, including distance measurement to nearby anchor nodes (nodes with known positions, e.g., Wi-Fi access points), magnetic positioning, and dead reckoning. IPS s either actively locate mobile devices and tags or provide ambient location or environmental context for devices to get sensed. The localized nature of an IPS has resulted in design fragmentation, with systems making use of various optical, radio, or even acoustic technologies. The system may include information from other systems to cope for physical ambiguity and to enable error compensation.

SUMMARY

A method, computer program product, and computer system comprising: receiving, by one or more computer processors, a request for a crowd level at one or more time slots; gathering, by one or more computer processors, data associated with one or more active carts within a location, wherein a number of the one or more active carts are associated with a number of users within the location; predicting, by one or more computer processors, the number of the one or more active carts within the location at the one or more time slots, based in part on the data associated with the one or more active carts; determining, by one or more computer processors, a value of a discount offer for the user for visiting the location at the one or more time slots; and sending, by one or more computer processors, the one or more time slots and the value to the user.

DETAILED DESCRIPTION

Retail stores get very busy at times and are relatively empty at other times. Overcrowding in stores results in customers not finding, and subsequently not purchasing, every item they need. Also, stores lose out on business as customers typically look around more leisurely and purchase more items than needed (i.e., “impulse buy”) when they find the store more comfortable to shop in. Sometimes, a high crowd level is due to inherent limitations that cannot be controlled (e.g., an approaching storm might result in a wave of shoppers at a store to purchase necessary items). At other times, however, load balancing can be used to reduce crowd level by distributing shoppers across time. Moreover, some sections within a store tend to attract a higher crowd level than others. Embodiments of the present invention provide systems and methods for increasing the efficiency of shopping using user data and a crowd level detection program, which manages active carts and communications with external hosts.

The present invention will now be described in detail with reference to the figures.FIG. 1is a functional block diagram illustrating a crowd level detection processing environment, generally designated100, in accordance with one embodiment of the present invention.FIG. 1provides only an illustration of one implementation, and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by those skilled in the art without departing from the scope of the invention as recited by the claims. In an exemplary embodiment, crowd level detection processing environment100includes store140, store server130, and external host120connected to store server130over network110.

Network110can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and can include wired, wireless, or fiber optic connections. In general, network110can be any combination of connections and protocols that will support communication between external host120and store server130.

External host120may be a computing device, such as a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone or wearable device, a thin client, or any programmable electronic device capable of communicating with store server130via network110. In other embodiments, external host120may be a management server, a web server, or any other electronic device or computing system capable of receiving and sending data. External host120may include internal and external hardware components, as depicted and described in further detail with respect toFIG. 4.

Store140includes cart pickup area142and carts144A through144N (144A-N). Any number of carts144A-N may be added to, or removed from, store140as required to support the management of store items. In this exemplary embodiment, store140is a shopping center and is capable of communicating data to and from external host120, via store server130. Cart pickup area142is a location within store140where users can obtain carts144A-N.

Carts144A-N comprise shopping carts, shopping baskets, or any other device that can be used to collect and store items while shopping. In this exemplary embodiment, carts144A-N each include respective wireless indoor localization systems146A through146N (146A-N), which can be based on Wi-Fi, Bluetooth, iBeacon, RFID, or any known localization technology in the art. When carts144A-N are idle, their batteries are automatically charged so that wireless indoor localization systems146A-N work when they are in use within store140. Wireless indoor localization systems146A-N receive a data request from crowd level detection program134via store server130, and send location data to crowd level detection program134via store server130.

Store server130includes database132and crowd level detection program134. Store server130may be a management server, a web server, or any other electronic device or computing system capable of receiving and sending data. Store server130may be physically located within store140or at a remote location. In other embodiments of the present invention, store server130can represent a computing system utilizing clustered computers and components to act as a single pool of seamless resources when accessed through a network. In this exemplary embodiment, store server130is capable of receiving requests for data from external host120, via network110. Store server130may include internal and external hardware components, as depicted and described in further detail with respect toFIG. 4.

Database132is a central storage for a set of store crowd level data. In this exemplary embodiment, database132contains the location information for carts144A-N, individual user data, and historical data, including a calendar containing known busy times (e.g., holidays). For example, database132may contain, inter alia, the users' shopping lists, the estimated time taken by users currently in store140, and users' general store visit pattern (i.e., the typical day and time the user shops).

Crowd level detection program134receives the location of carts144A-N within store140via wireless indoor localization systems146A-N. Crowd level detection program134is capable of detecting the number of users currently in store140from the number of active carts144A-N in store140. Crowd level detection program134is capable of detecting the number of carts in each section of store140by locating carts144A-N within store140via wireless indoor localization systems146A-N. Crowd level detection program134is also capable of predicting the crowd level at a future time or date using data in database132. In this exemplary embodiment, crowd level detection program134processes requests from external host120. Crowd level detection program134is capable of communicating with carts144A-N, wireless indoor localization systems146A-N, cart pickup area142, and external host120. In this exemplary embodiment, crowd level detection program134is capable of accessing database132to predict crowd levels at a future time or date. Crowd level detection program134can also be used to inform sales representatives to help in particular sections (i.e., more crowded sections), use crowd information for restocking sections, and use crowd information for suggesting better routes for individual users based on dynamic crowd information updates. In one embodiment, crowd level detection program134is an application which may be installed on external host120. Crowd level detection program134can save user shopping lists and collect information about user store visit times to predict which times to recommend to a user, and map smartphone identification (i.e., external host120) to a user's cart. Based on wireless indoor localization systems146A-N, crowd level detection program134tracks user's interest in different sections of store140and uses this information for future suggestions to visit store140based on crowd information. Crowd level detection program134can determine store crowd level using individual user data and wireless indoor localization systems146A-N, or using wireless indoor localization systems146A-N only. If using the application installed on external host120, crowd level detection program134can predict general user visit patterns using calendar entries to predict a user's trajectory movements for a particular day, can use analytics on emails, SMS, and personal data, and the size of the shopping cart chosen. The user can manually enter a preferred time slot using the application installed on external host120. Crowd level detection program134can also predict the minimum expected time for any user to reach store140based on the GPS location of the user (i.e., application installed on external host120), the user's mode of transportation, calendar entries, and any other user information useful in the prediction of user arrival.

FIG. 2is a flowchart,200, depicting operational steps for fulfilling a crowd level detection request, in accordance with an embodiment of the present invention. For illustrative purposes, part of the following discussion is made with respect to cart144A and wireless indoor localization system146A; it being understood that the operational steps ofFIG. 2may be performed by any of carts144A-N using any of wireless indoor localization systems146A-N.

In step202, crowd level detection program134receives a user request. In this exemplary embodiment, crowd level detection program134receives a request from external host120, via network110, for the current crowd level or the predicted crowd level at a future time or date, within store140.

In step204, crowd level detection program134gathers data on active carts144A-N in store140. An active cart is a cart that is being used by a user within store140. An idle cart is a cart that is either not located within store140or a cart that is located in cart pickup area142. In this exemplary embodiment, crowd level detection program134communicates with wireless indoor localization systems146A-N to determine the location of carts144A-N. For example, if cart144A is located in cart pickup area142or the parking lot, then it is an idle cart. If cart144A is located within store140and is not in cart pickup area142, then it is an active cart. In some embodiments, when any of carts144A-N are idle, wireless indoor localization systems146A-N on those individual idle carts are inactive.

In step206, crowd level detection program134gathers data on the location of active carts144A-N within store140. In this exemplary embodiment, crowd level detection program134communicates with wireless indoor localization systems146A-N to determine the location of carts144A-N within store140. For example, if in step204crowd level detection program134determines that cart144A is active, then crowd level detection program134will request the specific location of cart144A within store140from wireless indoor localization system146A. This location will determine which section of store140that cart144A is located in (discussed in greater detail inFIG. 3).

In step208, crowd level detection program134predicts store busy times. In this exemplary embodiment, crowd level detection program134uses the data gathered in steps204and206, combined with data stored in database132, to predict the crowd level at a future time or date. For example, a user is at home and is located twenty (20) minutes from store140, but wants to go shopping now. Crowd level detection program134will use the current crowd level in store140(determined in step204) and historical crowd level data in database132to predict the estimated crowd level in store140upon arrival (i.e., in 20 minutes). In another example, a user wants to go shopping next Tuesday after work at 5:30 PM. Crowd level detection program134will use historical crowd level data in database132to predict an estimated crowd level in store140at the indicated future time. In another embodiment, crowd level detection program134saves user shopping lists. Sectional crowd information helps crowd level detection program134determine which users to recommend visiting the store at what time based on the items in users' shopping lists. In one embodiment, crowd level detection program134determines whether the crowd level exceeds a predetermined threshold, wherein the predetermined threshold is based on the size of store140. If the crowd level in store140exceeds this predetermined threshold, crowd level detection program will determine that store140is busy.

In step210, crowd level detection program estimates the discount offer value. In this exemplary embodiment, crowd level detection program134sends discount offers to users for visiting store140at particular times in an effort to load balance the crowd. For example, if a user indicates a request to visit store140at a future time and crowd level detection program134determines store140will have a high crowd level at that time, then crowd level detection program134may offer the user certain discounts to come at another time when store140is predicted to be less busy. Similarly, the discount offer system can be utilized by users within store140on a sectional basis. For example, if a user is shopping in a busy section of store140, then crowd level detection program134may offer the user certain discounts to proceed to another less busy section of store140to collect items on that user's shopping list. For both users not located in store140and users located in store140, the value of the discount offer is directly proportional to the percentage of certainty of the crowd level during the suggested time. For example, if crowd level detection program134is 100% certain that store140or a section of store140will be empty, then crowd level detection program134will offer a high value discount. If crowd level detection program134is 50% certain that store140or a section of store140will be empty, then crowd level detection program134will offer a lower value discount. In addition, for users not located in store140the value of the discount offer is inversely proportional to the time difference between when a user is notified with the suggested time and the suggested time. For example, if crowd level detection program134gives the user a discount offer to arrive at store140in ten (10) minutes, the value of the discount offer will be high because the user has less time to plan. If crowd level detection program134gives the user a discount offer to arrive at store140in two (2) days, the discount offer will be lower because the user has a lot of time to plan. In some embodiments, the value of the coupon is related to the user profiles.

In step212, crowd level detection program134sends a notification to the user. Crowd level detection program134fulfills the request received from the user in step202after predicting the estimated crowd level in store140at a given time. In this exemplary embodiment, crowd level detection program134sends this data to external host120via network110.

Accordingly, by performing the operational steps ofFIG. 2, the store crowd level can be detected and a user can plan to visit the store during non-busy times.

FIG. 3is a diagram depicting an example plan view of a store in which active carts are located in various sections of store140, in accordance with an embodiment of the present invention.

In this exemplary embodiment, store140includes section1, section2, section3, section4, section5, section6, and section7(cart pickup area142). Each of sections1-6represent a different section of store140(e.g., produce, frozen food, paper products, etc.). Store140also includes carts144A-Z. Crowd level detection program134receives a request for the current crowd level in store140(step202). Crowd level detection program134gathers data on active carts in store140. In this example, carts144L,144Y,144X,144N,144Q, and144W are located in cart pickup area142(section7) and are thus idle. The carts located in sections1-6are active. In this example, there are twenty (20) active carts within store140and six (6) idle carts in cart pickup area142. Crowd level detection program134then determines the location of active carts within store140(step206). Section1contains carts144A,144D, and144G; section2contains cart144C; section3contains carts144B and144H; section4contains144E,144D,144J, and144R; section5contains144F,144O,144S,144U,144Z,144M, and144I; and section6contains carts144V,144K, and144T. In this example, there are three (3) carts in section1, one (1) cart in section2, two (2) carts in section3, four (4) carts in section4, seven (7) carts in section5, and three (3) carts in section6, indicating that sections4and5are busy, while sections1,2,3, and6are less crowded. Based on this data, crowd level detection program134can provide a user with a more efficient route throughout store140. Crowd level detection program134may also provide discount offers to help load balance the crowd within each section of store140. For example, crowd level detection program134may provide the user associated with cart144I in section5a discount offer to proceed to section2and collect the items from that user's list located in section2(i.e., less crowded section of store140).

A user may also create their own route throughout store140using this data to delay visiting busy sections until the crowd level in those sections has subsided.

FIG. 4is a block diagram of internal and external components of computing device400, which is representative of the computing devices ofFIG. 1, in accordance with an embodiment of the present invention. It should be appreciated thatFIG. 4provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. In general, the components illustrated inFIG. 4are representative of any electronic device capable of executing machine-readable program instructions. Examples of computer systems, environments, and/or configurations that may be represented by the components illustrated inFIG. 4include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, laptop computer systems, tablet computer systems, cellular telephones (i.e., smart phones), multiprocessor systems, microprocessor-based systems, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices.

Computing device400includes communications fabric402, which provides for communications between one or more processing units404, memory406, persistent storage408, communications unit410, and one or more input/output (I/O) interfaces412. Communications fabric402can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, communications fabric402can be implemented with one or more buses.

Memory406and persistent storage408are computerreadable storage media. In this embodiment, memory406includes random access memory (RAM)416and cache memory418. In general, memory406can include any suitable volatile or non-volatile computer readable storage media. Software is stored in persistent storage408for execution and/or access by one or more of the respective processors404via one or more memories of memory406.

Persistent storage408may include, for example, a plurality of magnetic hard disk drives. Alternatively, or in addition to magnetic hard disk drives, persistent storage408can include one or more solid state hard drives, semiconductor storage devices, read-only memories (ROM), erasable programmable read-only memories (EPROM), flash memories, or any other computerreadable storage media that is capable of storing program instructions or digital information.

The media used by persistent storage408can also be removable. For example, a removable hard drive can be used for persistent storage408. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computerreadable storage medium that is also part of persistent storage408.

Communications unit410provides for communications with other computer systems or devices via a network. In this exemplary embodiment, communications unit410includes network adapters or interfaces such as a TCP/IP adapter cards, wireless Wi-Fi interface cards, or 3G or 4G wireless interface cards or other wired or wireless communications links. The network can comprise, for example, copper wires, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. Software and data used to practice embodiments of the present invention can be downloaded to computing device400through communications unit410(i.e., via the Internet, a local area network, or other wide area network). From communications unit410, the software and data can be loaded onto persistent storage408.

One or more I/O interfaces412allow for input and output of data with other devices that may be connected to computing device400. For example, I/O interface412can provide a connection to one or more external devices420such as a keyboard, computer mouse, touch screen, virtual keyboard, touch pad, pointing device, or other human interface devices. External devices420can also include portable computerreadable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. I/O interface412also connects to display422.

Display422provides a mechanism to display data to a user and can be, for example, a computer monitor. Display422can also be an incorporated display and may function as a touch screen, such as a built-in display of a tablet computer.