The subject matter of this disclosure relates generally to point-of-sale (POS) fraud analytic systems.
Employees operating cash registers have numerous opportunities to steal from their employers at a POS by price overrides, refund fraud, void fraud, invoicing scams and the like. To combat employee theft, employers have installed sophisticated video surveillance systems at the POS. These systems often include one or more cameras directed to a virtual zone in front of the checkout counter. The one or more video cameras are configured to record video during a transaction, which is then stored in a database with additional transaction information. The video can be reviewed at a later time by security personnel to determine if a theft or pattern of theft has occurred. For large retail store chains that store thousands of transactions associated with hundreds of employees the amount of data can be massive. Searching through a large database of transaction records to identify employee theft is time consuming and expensive.
A system, method and non-transitory, computer-readable storage medium are disclosed for point-of-sale (POS) fraud detection using, POS transaction data, video data and statistical evaluations of human behavior. The POS transaction data, video data and statistical evaluations are used to examine patterns of individual employees of an organization versus metrics across all employees of the organization to identify employees that are most likely to perform a fraudulent transaction.
In an embodiment, a method comprises: obtaining, by a computer, video data associated with a plurality of point-of-sale (POS) transactions; obtaining, by the computer, POS transaction data associated with the plurality of POS transactions, including the identities of employees associated with the POS transactions; obtaining, by the computer, statistical data representing past behaviors of the identified employees; identifying, by the computer, and based on the statistical data, the POS transaction data and the video data, one or more particular employees as possibly participating in fraudulent activity during one or more of the POS transactions; and causing to display, on a display device communicatively coupled to the computer, data identifying the one or more particular employees.
In an embodiment, a system comprises: one or more processors; memory coupled to the one or more processors and operable to store instructions, which, when executed by the one or more processors, causes the one or more processors to perform operations comprising: obtaining video data associated with a plurality of point-of-sale (POS) transactions; obtaining point-of-sale (POS) transaction data associated with the plurality of POS transactions, including the identities of employees associated with the POS transactions; obtaining statistical data representing past behaviors of the identified employees; identifying, based on the statistical data, the POS transaction data and the video data, one or more particular employees as possibly participating in fraudulent activity during one or more of the POS transactions; and causing to display, on a display device, data identifying the one or more particular employees.
The disclosed embodiments determine a likelihood that an employee of an organization is committing fraud. Determining if any one individual POS transaction is fraudulent is difficult. Furthermore, the job of reviewing each individual POS exception event given a list of tens of thousands of POS exceptions is too burdensome. The disclosed embodiments create a ranked list or graph of employees suspected of fraud. Rather than trying to find one exception in the POS data, the disclosed embodiments instead examine patterns of individual employees versus metrics across all employees. This effectively scores each employee's behavior with respect to known patterns of fraud as calibrated by the entire organization which may include thousands of stores and tens of thousands of employees. In an embodiment, the output of a system is a ranked list of employees that are most suspicious. Reviewing this ranked list or graph is a more manageable task than reviewing in individual POS exceptions.
Employee 110 is operating transaction computer 108 (e.g., an electronic cash register). When employee 110 initiates a transaction using transaction computer 108, transaction data is captured and stored in a database, as described in reference to
Video management system 203 provides a physical interface for one or more video cameras, such as video camera 106. In an embodiment, video management system 203 includes computer hardware and software that implements people counting/tracking technology, queue management, loitering functionality, crowd detection and remote access.
Transaction processing system 206 provides an interface for various transaction action devices (e.g., cash registers, scanners) and software for implementing a set of policies, procedures designed to facilitate transactions at the POS.
A system administrator can use console 208 to analyze and display data, run search queries and generally facilitate user interaction with analytics engine 202 through a number of graphical user interfaces (GUIs) and input devices. Console 208 can be physically located at the POS and/or located remotely and coupled to analytics engine through a network-based connection (e.g., in Internet or Intranet connection). Console 208 can be any device capable of providing a human interface to analytics engine 202, including but not limited to a desktop computer or mobile device (e.g., a tablet computer, smart phone).
Analytics engine 202 calculates statistical parameters (e.g., averages, medians, variances, standard deviations, quantiles) of various business activities (e.g., POS transactions) to identify patterns in data (e.g., patterns in POS transactions and video data). Analytics engine 202 can generate employee or customer profiles, perform time-series analysis of time-dependent data, perform clustering and classification to discover patterns and associations among groups of data, apply matching algorithms to detect anomalies in the behavior of transactions. The discovered data patterns and associations can be used for a variety of business purposes, including but not limited to improving sales, marketing and customer service. As described herein, the discovered data patterns and associations can also be used to detect certain types of fraud at the POS, such as fraudulent refund transactions, where the employee rings up a cash refund for a customer and then pockets the cash.
In operation, when employee 110 performs a refund transaction using transaction computer 108, video camera 106 captures a video of virtual zone 102. In this example scenario, there is no customer present in virtual zone 102. Video management system 204 receives the video data from video camera 106 and formats the video data so that it can be processed by analytics engine 202. Transaction processing system 206 receives transaction data from transaction computer 108 and formats the transaction data so that it can be processed by analytics engine 202. In this example, statistical data associated with employee 110 is obtained from statistical data database 210 and the video data are placed into record 214 in transaction action database 212. The statistical data can be updated by the transaction data before being placed into record 214.
In an embodiment, analytics engine 202 can maintain a rolling average of refund transactions for each employee including employee 110. For example, assume Employee A has 100 total transactions, 5 of which were refund transactions. Employee A would have an average of 0.05, or 5% of her transactions were refund transactions. Employee B has 100 total transactions, 8 of which were refund transactions. Employee B would have an average of 0.08, or 8% of her transactions were refund transactions. Employee C has 100 total transactions, 1 of which was refund transactions. Employee C would have an average of 0.01, or 1% of her transactions were refund transactions. Employee D has 100 total transactions, 15 of which were refund transactions. Employee D would have an average of 0.15, or 15% of her transactions were refund transactions. From this example, it is clear that Employee D has a much larger percentage of refund transactions than Employees A-C. This information can be stored in statistics database 210 and used by analytics engine 202 to assist system administrators (e.g., through console 208) in focusing on particular records 214 to analyze for fraudulent activity related to refund transactions. Analytics engine 202 can use this statistical data to sort a search result, such as cluster records 214 for Employee D at the top of a search result that is responsive to a search query on refund transactions. In an embodiment, records 214 of Employee D can be augmented with visual indicia (e.g., highlighting, color, badges, background glowing, animation, shading, text) to indicate priority for review. For example, the records for refund transactions for Employee D can be highlighted on a display on console 108 to facilitate review of video clips for each transaction to see if a customer was present in virtual zone 102 during the transaction. In an embodiment, charts and graphs can be presented on the employee to assist the reviewer.
In an embodiment, a baseline value can be used to determine if a particular employee behavior has deviated from the norm. For example, a normal distribution (Gaussian distribution) characterized by a mean and standard deviation can be used to determine an outlier employee for a particular transaction type. In this case, the mean computed from all of the refund transactions of all or a subset of all employees over a specified period of time would be the baseline value. The standard deviation can then be calculated to measure the variability within the normal distribution. Once the distribution is defined mathematically, a norm score can be calculated for each of the employees. The norm scores express the distance of each employee from the mean in terms of standard deviations. Employees with norm scores that are a specified number of standard deviations above the mean (e.g., 2 standard deviations) can be flagged for prioritized review by analytics engine 202.
The mean
and the standard deviation σ is calculated using Equation [2]:
Assuming that there are 6 employees (n=6) with refund transaction totals x=(6, 2, 3, 8, 1, 4), then
In an embodiment, analytic engine 202 can process each video clip automatically to determine if a customer is present in the virtual zone. For example, background subtraction/segmentation, or direct detection algorithms can be used to determine the presence of a customer in a video frame. Background subtraction techniques find a foreground object from the video and classify the object as human based on shape, color, motion or other features. Direct techniques operate on features extracted from video patches and classify the features by shape (in the form of contours or other descriptors), color (skin color detection), motion or combinations of these.
GUI 301 further includes POS exception navigator 305 for allowing the user to select a particular POS exception for detailed review, including Post Void (a transaction which cancels, or deletes entirely, a previously completed transaction), Cash Refund and Line Item Void. In other embodiment, any number and type of POS exceptions could also be included in or accessed using POS exception navigator 305. Note that in this example, the system administrator selected the Line Item Void exception from POS exception navigator 305, resulting in bar graphs 302, 303 for Line Item Void to be displayed. Selecting other POS exceptions, such as Cash Refund would cause bar graphs 302, 303 to display the statistics corresponding to Cash Refund. In some embodiment, statistics and other detailed information for two or more transaction exceptions can be displayed simultaneously in GUI 301. In the example shown, for each POS exception various statistics are displayed including: total transaction count, total dollar amount involved in the transaction and an average dollar amount per transaction.
GUI 301 further includes scrollable transaction window 306, which provides pertinent information for each transaction for the POS exception selected by the user from POS exception navigation 305. Window 306 includes a table where each entry or row represents a single transaction. In this example, the columns of the table include but are not limited to: store name, terminal number, cashier name, time, exception, number of items and total dollar amount associated with the exception. Additionally, a line (e.g., a virtual button) is included in each transaction entry, which when selected by the system administrator causes video window 307 to display a video snippet of the selected transaction. In some embodiments, detailed receipt information 304 can be displayed for the selected transaction.
In an embodiment, process 400 can begin by obtaining video and transaction data at a POS (402). For example, a video camera can be mounted to the ceiling or a wall behind a checkout counter in a retail store. The video camera can be pointed towards a virtual zone in front of the checkout counter and can be activated each time a transaction is performed by an employee using a transaction computer, as described in reference to
Process 400 can continue by obtaining human behavior statistics (404). For example, transaction data can be processed by an analytics engine to determine which employees are statistical outliers for certain types of transactions, such as refund transactions. Employees that deviate from a norm can be identified and flagged for prioritized review.
Process 400 can continue by generating transaction records based on the transaction data and the statistics (406). For example, in response to a search query for a certain type of transaction, the records for the transaction type are flagged for prioritized review and presented on a display of a system administrator console with visual indicia to indicate the priority. In an embodiment, the transaction records are sorted so that the transaction records for a particular employee cluster together in the search results to facilitate review by the system administrator. Any type of visual indicia can be used to indicate to the system administrator that the flagged records are presented for prioritized review. In an embodiment, records can be flagged for prioritized review by associating a transaction ID with a priority code, flag, tag or other data in a transaction database that can be used by a search engine to respond to a search query.
In an embodiment, process 500 can begin by receiving a search query specifying a transaction type (502). For example, a system administrator can search for refund transactions by submitting an appropriate search query specifying refund transactions. Process 500 can continue by determining record(s) responsive to the query (504) and formatting the record(s) for display based on the transaction type and human behavior statistics (506). For example, records in the search for outlier employees can be sorted so that they are clustered at the top of the search results and also augmented with visual indicia.
The term “computer-readable medium” refers to any medium that participates in providing instructions to processor(s) 602 for execution, including without limitation, non-volatile media (e.g., optical or magnetic disks), volatile media (e.g., memory) and transmission media. Transmission media includes, without limitation, coaxial cables, copper wire and fiber optics.
Computer-readable medium(s) 608 can further include operating system 612 (e.g., Mac OS® server, Windows® NT server), network communication module 614, transaction processing module 616, video management system 618 and analytics engine 620. Operating system 612 can be multi-user, multiprocessing, multitasking, multithreading, real time, etc. Operating system 612 performs basic tasks, including but not limited to: recognizing input from and providing output to devices 602, 604, 606 and 608; keeping track and managing files and directories on computer-readable medium(s) 608 (e.g., memory or a storage device); controlling peripheral devices; and managing traffic on the one or more communication channel(s) 610. Network communications module 614 includes various components for establishing and maintaining network connections (e.g., software for implementing communication protocols, such as TCP/IP, HTTP, etc.). Transaction processing module 616, video management system 618 and analytics engine 620 are described in reference to
Architecture 600 can be included in any computer device, including one or more server computers in a local or distributed network each having one or more processing cores. Architecture 600 can be implemented in a parallel processing or peer-to-peer infrastructure or on a single device with one or more processors. Software can include multiple software components or can be a single body of code.
The features described may be implemented in digital electronic circuitry or in computer hardware, firmware, software, or in combinations of them. The features may be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor; and method steps may be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output.
The described features may be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that may be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program may be written in any form of programming language (e.g., Objective-C, Java), including compiled or interpreted languages, and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors or cores, of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer may communicate with mass storage devices for storing data files. These mass storage devices may include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in, ASICs (application-specific integrated circuits). To provide for interaction with a user the features may be implemented on a computer having a display device such as a CRT (cathode ray tube), LED (light emitting diode) or LCD (liquid crystal display) display or monitor for displaying information to the author, a keyboard and a pointing device, such as a mouse or a trackball by which the author may provide input to the computer.
One or more features or steps of the disclosed embodiments may be implemented using an Application Programming Interface (API). An API may define on or more parameters that are passed between a calling application and other software code (e.g., an operating system, library routine, function) that provides a service, that provides data, or that performs an operation or a computation. The API may be implemented as one or more calls in program code that send or receive one or more parameters through a parameter list or other structure based on a call convention defined in an API specification document. A parameter may be a constant, a key, a data structure, an object, an object class, a variable, a data type, a pointer, an array, a list, or another call. API calls and parameters may be implemented in any programming language. The programming language may define the vocabulary and calling convention that a programmer will employ to access functions supporting the API. In some implementations, an API call may report to an application the capabilities of a device running the application, such as input capability, output capability, processing capability, power capability, communications capability, etc.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. Elements of one or more implementations may be combined, deleted, modified, or supplemented to form further implementations. In yet another example, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.
This application claims priority to U.S. Provisional Patent Application No. 62/430,301, filed Dec. 5, 2016, the entire contents of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62430301 | Dec 2016 | US |