Patent Publication Number: US-11645670-B2

Title: Multi-axis blockchain clearance of offers

Description:
BENEFIT CLAIM 
     This application claims the benefit under 35 U.S.C. § 120 as a continuation of application Ser. No. 16/824,783, filed Mar. 20, 2020, which claims the benefit of provisional application 62/822,282, filed Mar. 22, 2019, the entire contents of which is hereby incorporated by reference as if fully set forth herein. Applicant hereby rescinds any disclaimer of subject matter that occurred in prosecution of the priority applications and advises the USPTO that the claims of the present application may be broader than in any priority application. 
    
    
     FIELD OF THE DISCLOSURE 
     One technical field of this disclosure is computer-implemented redemption and payment of offers over distributed computer networks and the internet. Another technical field is applications of digital ledgers and blockchains. 
     BACKGROUND 
     The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section. 
     Offers to consumers such as printed cents-off coupons, digital coupons and other electronic offers have entered wide use with the ubiquitous availability of distributed computer systems, internetworks, and mobile computing. When consumers present valid offers to merchants for redemption, a clearance and reconciliation process is needed to transfer digital value from brand owners or offer publishers to merchants who have given discounts or other consideration to consumers at the point of redemption. Today, proxy companies are used to provide scanning, auditing, and negotiations between retailers and consumer packaged goods (CPG) manufacturers. These proxy companies receive data on coupons that have been redeemed in stores. They count, audit and present for payment. Any discrepancies between the retailer and the CPG manufacturers are addressed by the proxy companies. After all discrepancies are resolved, the proxy companies receive payment and pay as an escrow service. This relationship model is a legacy of two eras: paper coupons and centralized systems. 
     As today&#39;s coupon industry transitions from paper coupons to digital coupons, the manual clearing relationship remains despite simpler reporting, invoicing, and direct payments being available using automatic reconciliation. This continues an economic process where the escrow companies are taking a share of value that could otherwise be used for additional coupon budget. It is expected that these opportunities have faced resistance due to the nature of centralized systems and trust between business partners. 
     Current solutions have continued to approach the problem of needing an escrow service by creating centralized platforms of data. However, these centralized platforms must be integrated and trusted by all parties in the coupon process. Depending on the implementation, they may also need to reach a certain scale to have long term viability. However, this also creates an audit gap between parties as retailers, CPG manufacturers and platforms continue to maintain their own databases with differing counts. 
     Based on the foregoing, there is a need for a system that removes audit gaps between parties by ensuring all of the parties have same consistent information. 
     SUMMARY 
     The appended claims may serve as a summary of the disclosure. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanied drawings and in which like reference numerals refer to similar elements and in which: 
         FIG.  1 A  illustrates an example environment in accordance with some embodiments. 
         FIG.  1 B  illustrates example distributed networks of interconnected computers with blockchains in accordance with some embodiments. 
         FIG.  2    illustrates an example digital blockchain database in accordance with some embodiments. 
         FIG.  3    illustrates an example transaction lifecycle in accordance with some embodiments. 
         FIG.  4    illustrates example retailer redemption blockchains in accordance with some embodiments. 
         FIG.  5    illustrates example coupon campaign redemption blockchains in accordance with some embodiments. 
         FIG.  6    illustrates an example representation of payment events in accordance with some embodiments. 
         FIG.  7    illustrates an example method for generating a multi-axis blockchain in accordance with some embodiments. 
         FIG.  8    illustrates an example computer system in accordance with some embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present disclosure. 
     Embodiments are described in sections according to the following outline:
         1.0 GENERAL OVERVIEW   2.0 ENVIRONMENT OVERVIEW
           2.1 BLOCKCHAIN ARCHITECTURE   2.2 TRANSACTION LIFECYCLE   
           3.0 PROCEDURAL OVERVIEW   4.0 TECHNICAL BENEFITS   5.0 HARDWARE OVERVIEW   6.0 OTHER ASPECTS OF DISCLOSURE       

     1.0 General Overview 
     Systems and methods for implementing multi-axis blockchains are described herein. A server computer, controlled by a coupon provider, is the master or leader node in two different but related blockchains: one for a retailer and another for a consumer packaged goods (CPG) manufacturer&#39;s coupon campaign. The coupon provider is a party to both blockchains and posts transactions to both blockchains, keeping them in sync with one another. Posting to both blockchains allows transactions to be represented in multiple dimensions. In this manner, the retailer is able to view all redemptions that happen at its store regardless of which coupon campaigns they are for, and the CPG manufacturer is able to see the redemptions of all coupons for a particular coupon campaign regardless of which retailers redeemed the coupons. By ensuring all parties have equal information, the overhead in managing redemptions is reduced or even eliminated. 
     In an embodiment, a computer-implemented method providing improvements in clearance of offers, comprises receiving redemption transaction metadata from a first computing device or node controlled by a first entity. The first entity may be a retailer. The redemption transaction metadata originating at and relating to a point of sale transaction using a coupon associated with a coupon campaign. The redemption transaction metadata may have user and product metadata along with the coupon. The method further comprises, in response to approving the coupon for redemption, posting a redemption transaction to be written on two independent redemption blockchains including a first redemption blockchain associated with the first entity or retailer and a second redemption blockchain associated with the coupon campaign or CPG. The redemption transaction includes at least a portion of the redemption transaction metadata. The method further comprises receiving payout transaction metadata from a second computing device controlled by a second entity associated with the coupon campaign. The payout transaction metadata relates to a payout event that corresponds with a redemption transaction written on the second redemption blockchain. 
     Other features, aspects and embodiments will become apparent from the disclosure as a whole including the drawings and claims. 
     2.0 Environment Overview 
       FIG.  1 A  illustrates an example environment  100  in accordance with some embodiments. The environment  100  includes a coupon provider system  105  and different organizations, including one or more CPG manufacturer systems  110  (collectively) and one or more retailer systems  120  (collectively). A CPG manufacturer system may be a manufacturer or any organization which produces goods. A retailer system may be a retailer or any organization which pays a consumer for a coupon/rebate. The coupon provider system  105  is controlled by, used by or otherwise associated with a coupon provider, such as Quotient Technologies Inc. Similarly, each of the CPG manufacturer systems is controlled by, used by or otherwise associated with a CPG manufacturer, and each of the retailer systems  120  is controlled by, used by or otherwise associated with a retailer. 
     At the CPG manufacturers&#39; requests, the coupon provider system  105  generates paper and/or digital coupons  125  for different coupon campaigns to be used by customers  130  at the one or more retailers  120  within the environment  100 . Each of the coupon provider system  105 , the CPG manufacturer systems  110 , and the retailer systems  120  includes one or more computers that host or execute stored programs that provide the functions and operations that are described herein in connection with coupon transactions and blockchain operations. 
     The coupon provider system  105  is operatively coupled with the organizations  110 ,  120  by communication links  115  over a network. A network broadly represents a combination of one or more local area networks, wide area networks, global interconnected internetworks, such as the public Internet, or a combination thereof. Each such network may use or execute stored programs that implement internetworking protocols according to standards such as the Open Systems Interconnect (OSI) multi-layer networking model, including but not limited to Transmission Control Protocol (TCP) or User Datagram Protocol (UDP), Internet Protocol (IP), Hypertext Transfer Protocol (HTTP), and so forth. All computers described herein may be configured to connect to the network. 
     As is further explained below, a redemption digital ledger is distributed to nodes within a distributed network including the coupon provider system  105  and an organization, such as a CPG manufacturer  110  or a retailer  120 .  FIG.  1 B  illustrates example distributed networks  150 ,  155  of interconnected computers  105 ,  110 ′,  120 ′ of  FIG.  1 A  with blockchains  140 ,  145 . For simplicity of illustration,  FIG.  1 B  illustrates only two distributed networks  150 ,  155 . The distributed network  150  includes, as nodes, the coupon provider system  105  and the CPG manufacturer system  110 ′ associated with a specific coupon campaign. Updates (for example, new redemption transactions) sent over the network  115  to the redemption blockchain  140  are independently constructed and recorded/written by each of these two nodes  105 ,  110 ′ in the distributed network  150 . The distributed network  155  includes, as nodes, the coupon provider system  105  and the retailer system  120 ′. Updates (for example, new redemption transactions) sent over the network  115  to the redemption blockchain  145  are independently constructed and recorded/written by each of these two nodes  105 ,  120 ′ in the distributed network  155 . The coupon provider  105  is a party to both redemption blockchains  140 ,  145 , while the CPG manufacturer  110 ′ and the retailer  120 ′ are not parties to each other&#39;s redemption blockchain. Put differently, copies of the CPG manufacturer&#39;s redemption blockchain  140  for the coupon campaign are stored at the coupon provider system  105  and the CPG manufacturer system  110 ′ but not at the retailer system  120 ′. Similarly, copies of the retailer redemption blockchain  145  are stored at the coupon provider system  105  and the retailer system  120 ′ but not at the CPG manufacturer system  110 ′. However, copies of all blockchains may be shared with any approved third parties. 
     In some embodiments, the coupon provider system  105  is configured as a master node in these two different but related redemption blockchains  140 ,  145 . As the master node, the coupon provider system  105  posts redemption transactions to be written to both blockchains  140 ,  145 , keeping them in sync with one another. In some embodiments, the blockchain  140  may be initialized after the coupon for the coupon campaign is generated. In some embodiments, the blockchain  145  may be initialized after the retailer  120  enters the environment  100 . 
     Although only two distributed networks  150 ,  155  are illustrated in  FIG.  1 B , it will be appreciated that the environment  100  of  FIG.  1    may include at least as many distributed networks as there are coupon campaigns and retailers  120  within the environment  100 . In some embodiments, the coupon provider system  105  and an organization  110 ,  120  are the only nodes in a distributed network. 
     2.1 Blockchain Architecture 
     A blockchain functions as a decentralized digital ledger that tracks numerous entries, such as successful coupon redemptions. The distributed system utilizes a distributed blockchain database to store data, thereby using a consensus network for increased data security.  FIG.  2    illustrates an example digital blockchain database  200  in accordance with some embodiments. The digital blockchain database  200  comprises a blockchain  205 . The blockchain  205  may comprise blocks  205   a ,  205   b ,  205   c  of linked data that are stored in the interconnected network of computers, with suitable stored programs at those computers to support ordered creation and transmission of blockchain data. The blockchain  205  forms a distributed database that maintains a continuously growing list of ordered records, termed blocks, that are timestamped and linked to a previous block. Each block in the series of blocks is linked together chronologically, with each new block containing a hash of the previous block. Each node in a network of computers may store the entire record of linked data blocks. This creates a consensus network of computers that can verify the integrity of each block of data and the integrity of the entire blockchain  200 . The blockchain  200  functions as a distributed database that ensures the integrity of the data by utilizing cryptographic hash functions to link each block to its previous block and storing the entire record of data blocks at each node. 
     The digital blockchain database  200  comprises the blockchain  205  including blocks  205   a ,  205   b ,  205   c . The blockchain  205  may include any number of blocks. In the example of  FIG.  2   , each block  205   a ,  205   b ,  205   c  may include its own data  210   a ,  210   b ,  210   c , a hash  215   a ,  215   b ,  215   c  of its data, and a previous hash  220   a ,  220   b ,  220   c  of the previous block. The data  210  for a block may include its own index number, a pointer to a related block in the same or different blockchain, and metadata regarding a point of sale transaction, such as date and timestamp, coupon value, product details, store number, register number, transaction number, loyalty card number, employee ID, and the like. Depending on application, more or less data may be included in a block. The previous hash  220  is the hash of the previous block, which links the blocks in sequence. 
     In the example of  FIG.  2   , block  205   b  stores a record of previous hash  220   b  for block  205   a , while block  205   c  stores a record of previous hash  220   c  for block  205   b . These records of previous hashes link each new block to the previous block to form a chain that allows for integrity checks of each block. Block  205   a  is the first block in the blockchain  205  and is referred to as the genesis block as it is the ancestor that every other block in the blockchain  205  can trace its lineage back to. Block  205   a  is the only block in the blockchain  205  that does not reference to a previous block and is of index 0. 
     In some embodiments, coupon campaign redemption blockchains, such as the coupon campaign redemption blockchain  140  of  FIG.  1 B , are similarly configured as the blockchain  205 . Likewise, retailer redemption blockchains, such as the retailer redemption blockchain  145  of  FIG.  1 B , are similarly configured as the blockchain  205 . In some embodiments, the genesis block of each of the blockchains  140 ,  145  is constructed by the coupon provider  105 . 
     2.2 Transaction Lifecycle 
       FIG.  3    illustrates an example transaction lifecycle  300  in accordance with some embodiments. The lifecycle  300  begins with stage  305 , where a coupon for a coupon campaign is generated by the coupon provider, at the request of a CPG manufacturer. 
     At stage  310 , a new coupon campaign redemption blockchain is initialized by the coupon provider. This coupon campaign redemption blockchain is a private chain between the CPG manufacturer and the coupon provider and, if any, any approved third parties. 
     After the coupon campaign redemption blockchain is initialized, at stage  315 , the coupon for the coupon campaign is accepted at the various retailers within the environment. 
     At stage  320 , all redemption transactions at each retailer within the environment are written on its respective retailer redemption blockchain in real-time as the redemptions occur at point of sale. A redemption transaction may be for a redemption of a coupon associated with the coupon campaign generated at stage  305  or may be for a redemption of a different coupon campaign. During the writing process, the retailer sends the coupon provider redemption metadata regarding the point of sale transaction and, in return, receives a response from the coupon provider informing whether the coupon used during the point of transaction is approved or denied. A coupon can be denied for different reasons including, but not limited to, expiration of the coupon or if qualification(s) are not met. If the coupon provider approves the coupon, the coupon provider posts a redemption transaction to be written on the retailer redemption blockchain. The redemption transaction includes the redemption metadata. 
       FIG.  4    illustrates example retailer redemption blockchains in accordance with some embodiments. Each retailer has a copy of its own retailer redemption blockchain, writes redemption transactions to its retailer redemption blockchain and, therefore, is able to view all redemption transactions that happen at its store regardless of the coupon campaigns they are for. In  FIG.  4   , the redemption blockchain for Retailer A includes five blocks in connection with redemption transactions associated with coupon campaign (CC) 1, CC 1, CC 2, CC 3, and CC 1, respectively, as corresponding coupons are successfully redeemed at Retailer A. The redemption blockchain for Retailer B includes four blocks in connection with redemption transactions associated with CC 4, CC 1, CC 5, and CC 2, respectively, as corresponding coupons are successfully redeemed at Retailer B. The redemption blockchain for Retailer C includes three blocks in connection with redemption transactions associated with CC 2, CC 4, and CC 1, respectively, as corresponding coupons are successfully redeemed at Retailer C. 
     Returning to the transaction lifecycle  300  of  FIG.  3   , when a redemption transaction has been written to a retailer&#39;s redemption blockchain, at stage  325 , the coupon provider posts the redemption transaction to be written on the coupon campaign redemption blockchain associated with the coupon redeemed. In some embodiments, based on privacy policy, customer loyalty card number, employee ID, and other information not pertinent to the CPG manufacturer are removed from the redemption metadata before the redemption transaction is written on the coupon campaign redemption blockchain. The coupon campaign redemption blockchain is an accumulation of all redemptions for the coupon campaign across all retailers that have successfully redeemed coupons associated with the coupon campaign. 
       FIG.  5    illustrates example coupon campaign redemption blockchains in accordance with some embodiments. Each CPG manufacturer has a redemption blockchain per coupon campaign, writes redemption transactions relating to a coupon campaign on a corresponding coupon campaign blockchain and, therefore, is able to view all redemptions for the coupon campaign regardless of which retailers redeemed the coupons. In  FIG.  5   , the redemption blockchain for CC 1 includes five blocks in connection with redemption transactions at Retailer A, Retailer A, Retailer B, Retailer C, and Retailer A, respectively. The redemption blockchain for CC 2 includes three blocks in connection with redemption transactions at Retailer C, Retailer A, and Retailer B, respectively. The redemption blockchain for CC 3 includes a block in connection with a redemption transaction at Retailer C. The coupon campaign blockchains can be the same CPG manufacturer or for different CPG manufacturers. 
     In some embodiments, based on the coupon provider&#39;s complete knowledge of all transactions that occur within the environment, redemption transactions may be written on both the coupon campaign redemption blockchain and the retailer redemption blockchain with a pointer to both to enable traversing during any subsequent operations. Posting redemption transactions to both the coupon campaign redemption blockchain and the retailer redemption blockchain allows the redemption transactions to be represented in different dimensions, thereby forming a multi-dimension or multi-axis blockchain. The multi-axis blockchain provides consistency of redemption transactions as these redemption transactions are shared between, at least, the retailer and the CPG manufacturer associated with the coupon campaign, thereby advantageously eliminating audit gaps between parties in traditional platforms where the parties maintain their own databases with differing counts. 
     Returning again the transaction lifecycle  300  of  FIG.  3   , at stage  330 , after redemption transactions are registered across or otherwise written on both redemption blockchains (the coupon campaign&#39;s and the retailer&#39;s) with identical veracity, payout events occur either immediately, as the redemption transactions are written, or on scheduled intervals. In some embodiments, payout events are initiated from the coupon campaign redemption blockchain to the retailer(s) requiring reimbursement. The CPG manufacturer sends the coupon provider payout metadata regarding a payout event. In response, the coupon provider posts a payment transaction to be written on the coupon campaign redemption blockchain and the retailer redemption blockchain, thus completing the transaction lifecycle  300 . Although it has been described that payout transactions are written on the redemption blockchains, it is contemplated that payout transactions can be written on payout blockchains that are separate and distinct from the redemption blockchains. In some embodiments, the payout blockchains are similarly configured as the redemption blockchains with regards to, at least, initialization and privacy. 
       FIG.  6    illustrates an example virtual representation  600  of payout transactions in accordance with some embodiments. In  FIG.  6   , two retailers: Retailer D and Retailer E, and four coupon campaigns: CC 1, CC 2, CC 3, and CC 4, are illustrated. CC 1 and CC 2 are associated with one CPG manufacturer (CPG 1), and CC 3 and CC 4 are associated with a different CPG manufacturer (CPG 2). Horizontal payout transactions are payments made by CPG 1 and CPG 2 for CC 1, CC 2, CC3, and CC 4 to the Retailer D and Retailer E, while vertical payout transactions are payments received by Retailer D and Retailer E for CC 1, CC 2, CC 3, and CC 4, from CPG 1 and CPG 2. The multi-dimensional representation  600  advantageously allows CPG manufacturers and retailers to confirm payments as payout transactions are shared between respective CPG manufacturers and respective retailers. 
     3.0 Procedural Overview 
       FIG.  7    illustrates an example method  700  for generating a multi-axis blockchain in accordance with some embodiments. In particular, the method  700  is performed by one or more computers at the coupon provider system  105  of  FIG.  1   , which will be referred to as a server computer in the following discussion. For ease of description, the method  700  is described with reference to a single coupon campaign. However, it will be appreciated that the method  700  can be performed for multiple coupon campaigns without departing from the scope of the present disclosure. 
     The method  700  begins at step  705 , where the server computer receives redemption transaction metadata from a first computing device controlled by a first entity. The first entity is typically a retailer  120  in the environment  100  of  FIG.  1   . The redemption transaction metadata is related to a point of sale transaction using a coupon associated with the coupon campaign, at the first entity. The transaction metadata may include date and timestamp, store number, register number, transaction number, customer loyalty card number, employee ID, coupon offer, and/or the like. Upon receiving the redemption transaction metadata from the first computing device, the server computer determines whether to approve or deny the coupon. A coupon can be denied for different reasons including, but not limited to, expiration of the coupon or if qualification(s) are not met during the point of sale. 
     At step  710 , in response to approving the coupon for redemption, the server computer posts a redemption transaction to be written on independent redemption blockchains including a first redemption blockchain associated with the first entity (the retailer) and a second redemption blockchain associated with the coupon campaign. The redemption transaction includes the redemption transaction metadata. 
     In some embodiments, the server computer transforms the redemption transaction metadata before posting a modified redemption transaction that includes the transformed redemption transaction metadata, to be written on the second redemption blockchain, such that not all the details associated with the redemption transaction are written on the second redemption blockchain. For example, private or sensitive information like customer loyalty card number and employee ID associated with the redemption transaction are not written on the second redemption blockchain. 
     The first redemption blockchain and the second redemption blockchain form a multi-axis redemption blockchain by one or more redemption transactions written on both blockchains. The multi-axis redemption blockchain advantageously provides consistency of redemption transactions as these redemption transactions are shared between different entities, advantageously eliminating the need of a proxy, as required in prior clearing solutions, to handle redemption, payment discrepancies, or both. 
     As redemption transactions are written on the first redemption blockchain and the second redemption blockchain with identical veracity, payout can occur either immediately, as the redemptions are written, or on scheduled intervals. In some embodiments, payouts are initiated from the second redemption blockchain. 
     At a step  715 , the server computer receives a payout transaction metadata from a second computing device controlled by a second entity associated with the coupon campaign. The second entity is typically a CPG manufacturer  110  in the environment  100  of  FIG.  1   . The payout transaction metadata is related to a payout event corresponding with a redemption transaction written on the second redemption blockchain. 
     In response to receiving the payout transaction metadata, the computer server posts a payout transaction to be on two distinct blockchains including a first of the two distinct blockchains associated with the first entity and a second of the two distinct blockchains associated with the coupon campaign. The payout transaction includes the payout transaction metadata. 
     In some embodiments, the server computer transforms the payout transaction metadata before posting a modified payout transaction that includes the transformed payout transaction metadata, to be written on the first distinct blockchain, such that not all the details associated with the payout transaction are written on the first distinct blockchain. 
     The two distinct blockchains are the first redemption blockchain and the second redemption blockchain. Alternatively, the two distinct blockchains are payout blockchains that are separate from the redemption blockchains. In some embodiments, the payout blockchains are configured similarly as the redemptions blockchain (for example initiated by the coupon provider  105 ). These two distinct blockchains form a multi-axis payout blockchain by one or more payout transactions written on both blockchains, with the same advantages as the multi-axis redemption blockchain. The multi-axis blockchains are used to clear offers without a proxy as all parties have equal information. 
     4.0 Technical Benefits 
     Techniques discussed herein recite method(s) and system(s) that allows CPG manufacturers and retailers to discontinue reliance on centralized systems with regards to coupon clearing. Using the foregoing techniques, each redemption transaction is written to at least two separate blockchains that are kept in sync and each payment transaction is written to at least two separate blockchains that are kept in sync. Since every single transaction (redemption or payout) is shared and recorded on each organization&#39;s blockchain, there is a consensus about information and data and, as such, administrative load surrounding auditing transactions is reduced or even eliminated. In addition, the decentralized redemption blockchains allow payouts to be made directly from one organization to another organization without the assistance of a third-party, dramatically improving financial efficiency and allowing organizations to be less reliant on financial institutions. 
     The participating nodes in each distributed network are limited to the coupon provider and an organization and, if any, approved third parties. Transaction throughput and latency are improved by limiting the size of a distributed network as there is a limited number of nodes processing each transaction. Transactions are typically grouped into blocks and every block builds on the previous hash as it carries the history of the blocks before it. Each transaction will thus need more time to be processed before it is written. However, embodiments of the present invention utilize a multi-axis blockchain comprising shorter blockchains (for example, blockchain per campaign coupon) rather than one long blockchain to reduce verification cost of each block, thereby improving processing time. 
     Conventional systems rely on a centralized platform, as a proxy, that is integrated and trusted by all parties in a coupon process. However, the conventional systems create an audit gap between parties as retailers, CPG manufacturers and the platform as each continues to maintain their own databases with differing counts. In the last few years, decentralized databases and distributed ledger technologies enable firms to discontinue the reliance on centralized systems; however, this technology has its limitations and latency and scale for a coupon provider&#39;s uses. Yet, the present approach addresses these issues by using a multi-axis ecosystem to decrease use of computer resources, thus improving overall computing system efficiency. 
     5.0 Hardware Overview 
     The operations/techniques described herein are implemented by one or more special-purpose computing systems or devices. For example, in the environment  100  of  FIG.  1 A , the computers at the coupon provider system  105 , the CPG manufacturer systems  110 , and the retailer systems  120  may be stand-alone computer systems or implemented by a number of interconnected computing systems. 
     A given computing system may be hard-wired to perform the operations described and referred to herein, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the operations, or may include one or more general purpose hardware processors programmed to perform the operations pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hardwired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement relevant operations. 
       FIG.  8    illustrates an example computer system  800  in accordance with some embodiments. Operations described and referred to herein may be performed by such a computer system. For example, the computers at the coupon provider system  105 , the CPG manufacturer systems  110 , and the retailer systems  120  may be computer systems such as the computer system  800 . 
     The computer system  800  includes a bus  802  or other communication mechanism for communicating information between its various components. A hardware processor  804  for processing information is also provided and is coupled with bus  802 . A hardware processor  804  may be, for example, a general purpose microprocessor. 
     The computer system  800  also includes a main memory  806 , such as a random access memory (RAM) or other dynamic storage device, coupled to the bus  802  and for storing information and instructions to be executed by the processor  804 . The main memory  806  also may be used for storing temporary variables or other intermediate information during execution of instructions by the processor  804 . Such instructions, when stored in non-transitory storage media accessible to the processor  804 , render the computer system  800  into a special-purpose machine that is customized to perform the operations specified in the instructions. 
     The computer system  800  further includes a read only memory (ROM)  808  or other static storage device coupled to the bus  802  for storing static information and instructions for processor  804 . A storage device  810 , such as a magnetic disk or optical disk, is provided and coupled to the bus  802  for storing information and instructions. 
     The computer system  800  as depicted further comprises one more output devices such as a display  812  for displaying information. The display  812  may, for example, be a cathode ray tube (CRT), a liquid crystal display (LCD), a light emitting diode (LED display), or a touch screen display. An input device  814 , such as a keyboard, keypad, touch screen, is also provided (and coupled to the bus  802 ) for communicating information and command selections to the processor  804 . Another type of user input device is cursor control  816 , such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to the processor  804  and for controlling cursor movement on the display  812 . Additional and/or alternative input and output devices may be used. 
     In certain embodiments, the operations disclosed herein are performed by the computer system  800  in response to the processor  804  executing one or more sequences of one or more instructions contained in the main memory  806 . Such instructions may be read into the main memory  806  from another storage medium, such as the storage device  810 . Execution of the sequences of instructions contained in the main memory  806  causes the processor  804  to perform the operations described herein. In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions. 
     The term “storage media” as used herein refers to any non-transitory media that stores data and/or instructions that cause a machine to operation in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as the storage device  810 . Volatile media includes dynamic memory, such as the main memory  806 . Common forms of storage media include, for example, hard disks, solid state drives, magnetic tape devices (or any other magnetic data storage medium), CDs or DVDs (or any other optical data storage medium), any physical media with patterns of holes, RAM modules, a PROM modules, EPROM modules, FLASH-EPROM modules, NVRAM modules, or any other memory chip, cartridge or device. 
     Storage media is distinct from, but may be used in conjunction with, transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise the bus  802 . Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. 
     Various forms of media may be involved in carrying one or more sequences of one or more instructions to the processor  804  for execution. For example, the instructions may be carried on a portable storage medium (for example a disk or drive), loaded into dynamic memory, sent over a telephone line or other communication network. The bus  802  carries the instructions to the main memory  806 , from which the processor  804  retrieves and executes the instructions. The instructions received by the main memory  806  may optionally be stored on the storage device  810  either before or after execution by the processor  840 . 
     The computer system  800  also includes a communication interface  818  coupled to the bus  802 . The communication interface  818  provides a two-way data communication coupling to a network link  820  that is connected to a network such as the network  115  of  FIG.  1   . For example, the communication interface  818  may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication link to a corresponding type of telephone line. As another example, the communication interface  818  may be a network interface card which provides a data communication link to a compatible local area network. Wireless links may also be implemented. In any such implementation, the communication interface  818  sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information. 
     The network link  820  typically provides data communication through one or more networks  115  to other computing systems. For example, if the computing system  800  is a computer at a CPG manufacturer system  110 , the network link  820  will provide a connection through the network  115  to the coupon provider system  105 . For another example, if the computing system  800  is a computer at a retailer system  120 , the network link  820  will provide a connection through the network  115  to the coupon provider system  105 . 
     The computer system  800  can send messages and receive data, including transaction data, through the network  115 , the network link  820  and the communication interface  818 . 
     6.0 Other Aspects of Disclosure 
     In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention and, is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. 
     As used herein the terms “include” and “comprise” (and variations of those terms, such as “including”, “includes”, “comprising”, “comprises”, “comprised” and the like) are intended to be inclusive and are not intended to exclude further features, components, integers or steps. 
     Various operations have been described using flowcharts. In certain cases, the functionality/processing of a given flowchart step may be performed in different ways to that described and/or by different systems or system modules. Furthermore, in some cases a given operation depicted by a flowchart may be divided into multiple operations and/or multiple flowchart operations may be combined into a single operation. Furthermore, in certain cases the order of operations as depicted in a flowchart and described may be able to be changed without departing from the scope of the present disclosure. 
     It will be understood that the embodiments disclosed and defined in this specification extends to all alternative combinations of two or more of the individual features mentioned or evident from the text or drawings. All of these different combinations constitute various alternative aspects of the embodiments.