CA2909957A1 - Large-scale customer-product relationship mapping and contact scheduling - Google Patents
Large-scale customer-product relationship mapping and contact scheduling Download PDFInfo
- Publication number
- CA2909957A1 CA2909957A1 CA2909957A CA2909957A CA2909957A1 CA 2909957 A1 CA2909957 A1 CA 2909957A1 CA 2909957 A CA2909957 A CA 2909957A CA 2909957 A CA2909957 A CA 2909957A CA 2909957 A1 CA2909957 A1 CA 2909957A1
- Authority
- CA
- Canada
- Prior art keywords
- customer
- customers
- product
- sales channel
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
In an example embodiment, a method retrieves a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to 1) a customer tier, 2) a product class associated with an online, retail, and/or phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer with the product class via the online, retail, and/or phone sales channel. The method generates a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using predetermined online sales channel rules, predetermined retail sales channel rules, and/or predetermined phone sales channel rules, respectively, and the plurality of variables. The method selects a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination and generates a schedule for contacting the first set of customers.
Description
LARGE-SCALE CUSTOMER-PRODUCT RELATIONSHIP
MAPPING AND CONTACT SCHEDULING
CROSS-REFERENCE TO RELATED APPLICATION
[00011 This application claims the benefit under 35 U.S.C. 119(e) of U.S.
Provisional Patent Application No. 62/067,328, entitled "Rule-Based Probabilistic Algorithm for Large-Scale Non-Linear Customer-Product Relationship" filed October 22, 2014, the entire contents of which are incorporated herein by reference.
BACKGROUND
100021 The present disclosure relates to mapping customer-product relationships.
[0003] Customer-product mapping is an industry-related question that many are trying to answer with limited success. In particular, so far existing solutions have not been able to effectively (a) identify the individual customers/groups who are potential buyers and prioritize them for reaching out, (b) identify the customer base which cannot be influenced to make a purchase (regardless of the amount of effort exerted by the seller), (c) map the customers who have been identified as potential buyers and prioritized in a list to the exact products that are being sought after, and (d) facilitate customer reach-out efforts based on the consolidation of past purchases, potential purchases, proposed products, and store inventory.
[0004] Moreover, in many cases, the mappings that are provided by existing solutions are full of errors, which can translate into an uninteresting product being presented to the user. This in turn leads to disengagement and divergence from a customer transaction.
100051 As a result, many industry giants are using ineffective and inefficient vendor-provided methods for matching products and customers. These methods are ineffective at least in part because of the lack of integration between statistical, probabilistic, and data engineering efforts. These methods are only capable of considering a limited amount of data, such as only the product browsing cycles, to suggest particular products.
100061 Other limitations and obstacles have prevented an effective solution to this problem from being developed include the cost of large-scale training of individuals (e.g., account managers) for an effective implementation, management requirements and constraints, and process security.
SUMMARY
[00071 The innovative technology disclosed in this document addresses the above-noted limitations.
100081 In one innovative aspect, the technology includes a computer-implemented method comprising retrieving from a data store a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to I) a customer tier, 2) a product class interacted with by the customer via one or more of an online sales channel, a retail sales channel, and a phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer associated with the customer identifier with the product class via the one or more of the online sales channel, the retail sales channel, and the phone sales channel; generating a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using one or more of predetermined online sales channel rules, predetermined retail sales channel rules, and predetermined phone sales channel rules, respectively, and the plurality of variables; selecting a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination; generating a schedule for contacting the first set of customers based on one or more of the predictive score and the revenue; and providing the schedule to a client device of a stakeholder for use by the stakeholder in contacting the first set of customers.
[00091 In another innovative aspect, the technology includes a computer system comprising one or more computer processors and one or more computer memories storing instructions that, when executed by the one or more computer processors, cause the computer system to perform operations including: retrieving from a data store a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to 1) a customer tier, 2) a product class interacted with by the customer via one or more of an online sales channel, a retail sales channel, and a phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer associated with the customer identifier with the product class via the one or more of the online sales channel, the retail sales channel, and the phone sales channel; generating a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using one or more of predetermined online sales channel rules, predetermined retail sales channel rules, and predetermined phone sales channel rules, respectively, and the plurality of variables;
= selecting a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination;
generating a schedule for contacting the first set of customers; and providing the schedule to a client device of a stakeholder for use by the stakeholder in contacting the first set of customers.
[0010] Other aspects include corresponding systems, methods and apparatus, including computer program products. It should be noted that the language used in the present disclosure to describe these systems, methods and apparatus has been principally selected for readability and instructional purposes, and not to limit the scope of the subject matter disclosed herein.
[0011] One or more of the embodiments described can also include the following features: aggregating customer data associated with each customer of the multiplicity of the customers from one or more data stores storing data related to the online sales channel by retrieving, from the one or more data stores, first product identifiers reflecting products purchased by the customer using the online sales channel, retrieving, from the one or more data stores, second product identifiers reflecting products that were added to a virtual cart that was subsequently abandoned without having purchased the one or more products, the virtual cart being associated with the online sales channel, retrieving, from one or more data stores, third product identifiers reflecting product pages of products that were viewed by the customer but were not purchased using the online sales channel, generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the first product identifiers reflecting the products purchased by the customer, the second product identifiers reflecting the products added to the virtual cart, and the third product identifiers reflecting the products that were viewed by the customer but were not purchased, and storing the entry in an aggregated data store storing the customer product-class mapping; determining product classes for the products associated with the first product identifiers, the second product identifiers, and the third product identifiers; retrieving customer tier data describing the customer tier of the customer; and categorizing the customer by each unique product class and customer tier combination; that the plurality of variables characterizing the interaction of the customer regarding a particular product includes one or more of browsing for product price, browsing for product features, browsing for product reviews, comparing the product with other products, and reviewing product details; that generating the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class using the predeteimined online sales channel rules and the plurality of variables comprises: estimating time spent by the customer on each of the plurality of variables associated with a particular product that the customer has indicated interest in using the online sales channel; allocating weights to the time spent by the customer on each of the plurality of the variables based on the predetermined online sales channel rules; and generating the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class based on the weights allocated to the time spent by the customer on each of the plurality of variables; determining, for the customer identifier of each customer of the multiplicity of the customers, a visit cadence score based on a number of visits by the customer to one or more pages of one or more products;
determining, for the customer identifier of each customer of the multiplicity of the customers, a purchase cadence score based on product purchase history associated with the customer identifier; determining, for the customer identifier of each customer of the multiplicity of the customers, a revenue cadence score customer cadence score based on amount of revenue generated from purchases by the customer; combining, for the customer identifier of each customer of the multiplicity of the customers, the visit cadence score, the purchase cadence score, and the revenue cadence score into an overall cadence score for the customer identifier; selecting a second set of customers from the multiplicity of the customers based on overall cadence scores associated with the second set of customers; injecting the second set of customers into the schedule, which includes the first set of customers;
selecting a second set of customers from the multiplicity of the customers based on one or more of a visit cadence score, a purchase cadence score, and a revenue cadence score; injecting the second set of customers into the schedule, which includes the first set of customers that the first set of customers have higher priority than the second set of customers and the schedule is sorted based on the higher priority; registering a plurality of stakeholder accounts for a plurality of stakeholders including the stakeholder, each stakeholder of the plurality of stakeholders being assigned to a group of customer identifiers associated with customers;
selecting for each stakeholder account of the plurality, a first subset of customer identifiers from the group of customer identifiers assigned to that stakeholder account based on 1) a predictive score for each unique combination of each customer identifier, customer tier, and product class using one or more of the predetermined online sales channel rules, the predetermined retail sales channel rules, and the predetermined phone sales channel rules, respectively, and the plurality of variables, and 2) a revenue generated from each unique combination, wherein selecting includes selecting the first set of customers from the multiplicity of the customers based on the predictive score and the revenue generated from the each unique combination; selecting for each stakeholder account of the plurality, a second subset of customers identifiers from the group of customer identifiers assigned to that stakeholder based on cadence scores associated with the customer identifiers of the second subset; generating, for each stakeholder account of the plurality, a schedule for contacting certain customers of the group of customers associated with the stakeholder account based on a combination of the first subset of customers and the second subset of customers associated with the stakeholder account;
providing, to a client device of each stakeholder account of the plurality, the schedule generated for that stakeholder account; aggregating customer data of a plurality of customers from an online data store reflecting the online sales channel, a retail data store reflecting the retail sales channel, and a call center data store reflecting the phone sales channel;
statistically analyzing the aggregated customer data of the plurality of customers to determine the multiplicity of customers from the plurality of customers whose interest in products offered by a business merchant fall within a certain interval; aggregating customer data associated with each customer of the multiplicity of the customers from one or more data stores storing data related to the retail sales channel and the phone sales channel by:
determining a total number of orders associated with the customer, determining a number of items included in each of the orders; determining revenue generated by each of the orders, determining revenue generated by each item included in each of the orders, determining any discounts applied to each of the orders; generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the total number of orders associated with the customer, the number of items included in each of the orders, the revenue generated by each of the orders, the revenue generated by each item included in each of the orders, and any discounts applied to each of the orders, and storing the entry in an aggregated data store storing the customer product-class mapping.
[0012] The innovative technology also includes various methods and apparatus, including computer program products, as well as other aspects. The innovative technology described is particularly advantageous in a number of respects. For example, it provides the capability to list out the customers on the basis of their prominence and potential to buy.
Having identified the individuals and groups of customers, it uses a unique a frequency interval for repeating the communication process. The communication process involves automated, algorithmically-chosen, highly-probable products that the customer may buy depending on the behavioral pattern shown by past buyers and product researchers.
[0013] The technology achieves the long-time, multi-fold, pending goals unattainable by others in the industry. In particular, the invention identifies the individual customers/groups who are potential buyers and prioritizes them for reaching out. The invention includes an algorithm that identifies the customer base which cannot be influenced with any effort to make a purchase. The invention connects the exact products that are being sought after to the customers, who have been identified as potential buyers and prioritized in a list. Finally, the invention provides and consolidates the past purchases, potential purchases, proposed products, and store inventory to be pursued, into a multi-dimensional mapping to facilitate customer reach-out efforts.
10014] The technology also includes various algorithms and automated processes for continuous simulation and identification of the delta changes with next to negligible manual cumbersome effort to dig the data. It also includes a method of analyzing product browsing cycles and suggesting the particular products. The present invention uses a rule-based algorithm that looks at non-linear patterns and finds specific thresholds, and uses heuristics to determine the appropriate time to approach the customer with his/her preferred products.
100151 The above list of features and advantages is not all-inclusive and many additional features and advantages are within the scope of the present disclosure. Moreover, it should be noted that the language used in the present disclosure has been principally selected for readability and instructional purposes, and not to limit the scope of the subject matter disclosed herein.
BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The present disclosure is illustrated by way of example, and not by way of limitation in the figures of the accompanying drawings in which like reference numerals are used to refer to similar elements.
[0017] Figure I is a block diagram of an example system for large-scale customer-product relationship mapping and contact scheduling.
[0018] Figures 2A-2C are flow diagrams of the example system.
[0019] Figure 3 is a block diagram of a method 300 for customer reach-out based on a generated schedule.
[0020] Figure 4 is a flowchart of an example method 400 for generating and providing schedule.
[0021] Figure 5A is a flowchart of an example method for aggregating customer data associated with each of a multiplicity of the customers from one or more data stores (e.g., databases, web servers, etc.) storing data related to the online sales channel.
10022] Figure 5B is a flowchart of an example method for aggregating customer data associated with each of a multiplicity of the customers from one or more data stores (e.g., databases, web servers, etc.) storing data related to the retail and phone sales channels.
100231 Figure 6 is a flowchart of an example method for categorizing a multiplicity of customers by each unique product class and customer tier combination.
[0024] Figure 7 is a flowchart of an example method for generating a predictive score.
[0025] Figure 8 is a flowchart of an example method for providing a customized schedule to a stakeholder.
[0026] Figure 9 is a flowchart of an example method for generating a schedule for contacting a high-value subset of customers associated with each stakeholder.
[0027] Figure 10 is a block diagram of an example system for large-scale customer-product relationship mapping and contact scheduling.
[0028] Figure 11 is a block diagram of an example computing system.
DETAILED DESCRIPTION
[0029] Figure 1 is a block diagram of an example system 100 for large-scale customer-product relationship mapping and contact scheduling. Figure 1 includes a scoring engine 200, a scheduler 201, an aggregator 202, and a priority engine 203, and various other components such as a UI module 148, a SKU data store 150, and/or a CRM 158, which are coupled for communication with one another.
[0030] The aggregator 202 is executable to aggregate and processing raw data, and store the aggregated data for retrieval. The aggregator 202 accumulates the data from various information sources. In some embodiments, the information sources may include retail purchase data source(s), such as the retail purchase data store 102, and raw browse data source(s) such as raw browse data store 108. The retail purchase data store 102 stores data reflecting purchases by customers in physical stores using rewards accounts.
In some instances, the retail purchase data may be stored by point-of-sale systems and/or other systems associated with retail sales. The retail purchase data may describe the product identifiers of the products that were purchased, the date and time the purchases were made, the customer identifiers associated with the purchases, and/or any other related data, etc. The raw browse data store 102 stores data reflecting customers' actions in interacting with an online sales channel. The online sales channel is embodied by an e-commerce application providing a virtual market place associated with a merchant (e.g., Staples) to customers to browse and purchase products. The virtual market place is, in some embodiments, linked to the retail and phone sales channels offered by the same merchant.
[00311 The retail data aggregator is executable to aggregate the retail purchase data, standardize it, and store it into the aggregated retail data store 106 for efficient access and/or retrieval by the schedule module 118, as discussed in further detail elsewhere herein. The schedule aggregator 110 and the scoring aggregator 112 may each aggregate and standardize raw browse data from the raw browse data store and store in a corresponding aggregated data store (e.g., the data stores 114 and 116, respectively), as discussed in further detail elsewhere herein.
[00321 By way of further example, the data collection process by the aggregator 202 performed for the online, retail, and/or phone sales channels (e.g., online, store-based, and phone customers). For all channels, the aggregator 202 aggregates information such as customer IDs, customer tier (e.g., reward tier), products bought over certain timeframe (e.g., over last 5/10/15 orders, during a certain period of time, etc.), repeat flag (reflecting if multiple repeat purchases have been made), etc. The timeframe of the purchases is an indicator of the frequency of the repetitions.
10033] Further, for the online sales channel, the aggregator 202 aggregates data describing products purchased, products not bought but added to a virtual cart, and products not bought but viewed, etc. A "Product View" interaction and an "Add To Cart (ATC)"
interaction have established definitions in the data aggregation process, and the dates on which a given customer viewed products and/or added products to cart are vital signs that are used to optimize the schedules generated herein.
[00341 Regarding the retail and/or phone channels, the aggregator 202 aggregates purchase data reflecting discounts available on products bought over a certain timeframe (e.g., last 5/10/15 orders, during a certain period of time, etc.), any product identifiers describing cross-sell products related to previously purchased products, any product identifiers reflecting supplies and accessories related to previously purchased products, etc.
For any missing data, the aggregator 202 may aggregate product identifiers describing related products, cross-sell products, supplies and accessories in the same product class, etc.
[00351 In some embodiments, the data is correlated by the aggregator 202 with the applicable customer identifiers reflecting the customers that performed the actions. In some embodiments, only data meeting certain action thresholds (e.g., page views, purchases, etc.) is aggregated, although other variations are also possible and contemplated.
In addition, in some embodiments, certain product criteria may be required to be met in order for data about that product to be aggregated to reduce the time and intensity of the processing that must be performed by the aggregator 202, especially considering that thousands, hundreds of thousands, etc., of product may be processed. For example, a SKU may need to have a minimum price to be aggregated, or may need to belong to a certain SKU
category.
10036] The aggregator 202 may standardize the raw data (e.g., format, classify, stagger, group, etc.) aggregated by it and stage it for retrieval by the scoring engine 200 and/or the scheduler 201. By way of further example and not limitation, during the aggregation phase, the aggregator 202 calculates visits by a customer (reflected by that customer's identifier) to product pages associated with products. In some embodiments, absent page view data, as a heuristic the aggregator 202 may consider the number of orders by a customer identifier as visits and the number of product purchases (independent and repeat) as product views (e.g., during a certain period), and store/provide them as such as aggregated data for retrieval by the scoring module 132.
[0037] The aggregator 202 is coupled for communication to the other components of the system 100, including the scheduler 201, the scoring engine 200, the CRM
158, etc.
[00381 The scoring engine 200 is executable to generate and update data for the customer product-class mapping for use by the priority engine 203 and/or scheduler 201, as discussed elsewhere herein. In generating data for the mapping, the scoring engine 200 may process the aggregated data and scores for unique combinations ofzustomer identifiers, customer tiers, and product classifications. The scores are generated for each of the sales channels based on unique rules associated with each of those channels (e.g., retail, online, and phone).
[0039] The scoring engine 200 may perform data preparation on the aggregated data in preparation for generating the scores for each channel. In some embodiments, the scoring engine 200 includes a scoring data preparation module 122 that retrieves data from the retail purchase data store 102, the aggregated data store for scoring 116, the legacy orders data store 120, and the shared orders data store 124. For each channel (e.g., browse, retail, and phone), the scoring data preparation module 122 may standardize the data for processing by the scoring module 132.
[0040] In some embodiments, using the retrieved data, the scoring data preparation module 122 generates a list of all the products bought by each customer with dates (e.g., by ordered date, shipped date, delivery date, etc.) and products that have not been bought but added to cart and/or viewed (e.g., by descending product views). The scoring data preparation module 122 may store each set of prepared data in a corresponding data store.
For example, the scoring engine 200 may store the prepped browse data in the browse data store 126, the prepped retail data in the retail data store 128, and the prepped phone data in the phone data store 130.
[00411 The scoring module 132 is executable to generate, for each unique combination of customer ID, customer tier, and product class, a score for each sales channel, as discussed in further detail elsewhere herein, such as with respect to Figure 4. The scoring module 132 is coupled to the browse, retail, and phone data stores 126, 128, and 130 to retrieve the data prepped by the scoring data preparation module 122. The scoring module 132 uses this data. to compute the various scores.
- [0042] In some embodiments, for the online sales channel, the scoring engine 200 may generate the scores using the below equations. In particular, the scoring data preparation module 122 may prepare the data by performing brute force analytics of laying out scatter plots to look for outliers, trends, and biases. The scoring data preparation module 122 may use a residual sum of squares (RSS) method to select a certain relevant portion of the data.
For instance, the method may select the customers that fall within a certain closeness to mean (e.g., mean and confidence interval, such as 2-sigma, 95% CI). In this example, the method selects 95% of the mined data thus deleting the bottom and top 2.5%
respectively.
[0043] Once the data has been prepped, the scoring module 132 compute the scores by modeling the relationship between the input variables and the output function by computing coefficients of an equation and identifying the relationship between products purchased and the browsing purpose (e.g., price, features, details, comparisons, reviews, number of offerings similar to the product, visits, views, etc.).
[0044] Example variables of the equation may include:
y = Number of units of a particular product ordered;
x1 = Time spent on browsing price;
X2 = Time spent on browsing for features;
x3 = Time spent on browsing for reviews;
x4= Time spent on comparing products;
xs = Time spent on product details page; and E = Random error.
[0045] The above question may in some cases take the form of the following consolidated linear equation:
y =bp+ bi*xi + b2*x2+ b34`x3+ b4*x4+ bs*xs + E
[0046] In the above question, coefficients 1)0, b1, etc., may be derived for a multiple linear regression (MLR) model. By way of further example, the coefficients may be derived using "R" code and the following equations:
Zin-i(x10) b ¨ xid * Oro) ¨ y 1 ,) - _____________________________________________ Zin xip)2 a1(x20) x2m) * (Y(i) - Y ) b2 ¨
=1(x2 (O x2 )2 [0047] The model in some instances may begin with a single linear regression model that considers the response of each input variable on the total orders (y) with calculation of intercepts and slopes as follows:
y =1301 + bi*xi y = b02+1:42*x2 [0048] The random error may be computed as follows:
= Er-1 (Y(i) Yp)2 [0049] Intercepts may be calculated as follows:
bo, = y ¨ [ b1 * X1 + El b02 = y ¨ [b2 * xz +
[0050] The scoring module 132 may apply a null hypothesis of the coefficients for each variable (Ho: b1 = b2 = = 0), in which case if Null is rejected then the alternate hypothesis stands accepted. Using the above equations, the F-statistic test would turn out to be close to "1" if there is no relationship between response and predictor.
Otherwise it would be much greater than I.
[0051] The RSS may be computed using the following equation:
RSS = ¨ y(0))2 [00521 In the above equation, y(i) = actual observation and y(0) =
calculated line (or plane) value using the linear regression equation.
[00531 The scoring module 132 may group the customer ids into unique product-class customer-tier groups and then compute scores for each unique combination and channel. The scoring module 132 may process the data associated with each of the product-class customer-tier groups to generate a score. By way of example and not limitation, a customer associated with a customer ID may belong to a Gold customer tier and purchase a product in a product class #500, and the scoring module 132 generates a unique score for that product-class, customer tier, customer ID combination based on the variables discussed herein. The scoring module 132 retrieves a set of customer rules associated with the channel that it is generating a score for, and applies the rules to the relevant data when generating the score.
[0054] In some embodiments, the scoring module 132 may include specialized "R-code" adapted to each of the product-class customer-tier groups and executed for that particular group's dataset, which allows for the possibility of migration of a customer ID to another unique combination (e.g., a Gold rewards customer becomes a Platinum rewards customer (and possibly begins purchasing products with higher margin of profit)).
100551 As a further example, each product class may have a customer group for an account manager customer tier (e.g., Gold, Platinum, etc.). In this example, the group designation combines the product class ID "500" with the reward tier designation "Platinum"
(e.g., Group name = "500-Platinum"). Based on the data accumulated, the scoring module 132 includes an equation (e.g., linear, non-linear, etc.) that is representative of its character.
As discussed further herein, the system 100 may promote, recommend, etc., products associated with each unique group based on the findings of the product purchase criteria and customer buying pattern(s) identified from the output of the scoring module 132 algorithm.
[00561 In some embodiments, when generating the scores, the scoring module establishes a relationship of each variable with the response function. The scoring module 132 may calculate an F-statistics value. If this value is very high corresponding to the p-value, then it will result in rejection of NULL hypothesis and the acceptance that a relationship exists. The strength in relationship between the variable, (predictor) and response function, is indicated by calculating the RSE and adjusted R2 explaining the variances. The contribution of each predictor to the response function is examined by t-statistics. To determine the largest contributor, the scoring module 132 may perform a single linear regression. The scoring module 132 may further identify the synergy among the predictors. Non-linear terms along with interaction may often end up giving the lowest p-value. The MLR equation with lowest p-value thus gets accepted as the likelihood function for the product-consumer group in consideration.
[00571 The scoring engine 200 may limit the data processed to a certain period of time. In an example, 38 days of sales data may be substantial for developing rule-based product mapping model for retail customers, although it should be understood that a different date range (e.g., past two weeks, 30, 60, 90, 180, past year, etc.) may also be used.
[0058] The priority engine 203 is executable to determine the priority of the customers based on the scores generated by the scoring engine 200. The priority engine 203 includes a priority module 142 and a top scores data store 144. The priority module 142 is executable to combine the browse, retail, and phone score(s) associated with each unique combination into a total score. The priority module 142 may retrieve the given scores from the browse, retail, and phone scores databases 136, 138, and 140, and combine them into a CA 02 90 9957 2 015 ¨ 10-22 total score where applicable, select the total scores meeting a certain threshold as top scores, and store the top scores into a top scores database 144.
[0059] In some embodiments, the priority module 142 evaluates whether, for a given =
unique product-class customer-tier combination, a score exists for more than one channel, and if so, combines the scores into a total score. The priority module 142 may access information about a product class from the SKU data store 150. In some embodiments, if a customer identifier has transactions in two or three of the sales channels, and the scoring engine 200 applies a predefined precedence to sort the transactions. For example, the scoring =
engine 200 may apply the following order: online interactions > cross-sell interactions >
interactions involving supplies and accessories. In other embodiments, other sorting algorithms may be used. If a score exists for a single channel only, the priority module 142 uses that score as for the total score and evaluates it as a top score based thereon.
[0060] In some embodiments, the priority module 142 sums a given list generated from the online, retail, and/or phone channels and sorts select entries from the customer product-class mapping in a particular order (e.g., descending order). The sorting may be performed per the score for the product classes and revenue generated in recent past, as discussed elsewhere herein.
10061] Entries from an example customer-product class mapping are provided below, although it should be understood that the mapping may take other forms and include additional or other data and may be stored in single data store or distributed across data stores.
Group Customer Time r Tiers Units Total Total Total Visits Product Page Cart Orders Score (tier/class) identifier spent revenue revenue visits views views adds in group GOLD-568 5346563314 211 G10 0 0 466.03 152 1. 2 2 0 0 1 GOLD-568 5373990521 249 P65 1 27.36 27.36 12 2 6 10 1 1 1 GOLD-568 5385707244 66 610 1 20.59 23653 2 2 1 2 1 1 1 GOLD-568 5387115636 0 P65 0 0 339.13 16 1 1 1 0 0 1 GOLD-568 5395084527 482 G10 1 11.99 403.14 50 2 3 10 0 1 2_ GOLD-568 5605719201 61 610 1 7.99 151.27 1. 1 1 2 _ 6OLD-568 5669183690 31 P55 0 0 471.35 10 1 1, 1 GOLD-568 5755845277 6 610 0 _ 0 220.56 2 _ 1 0 1 6OLD-568 5759266520 373 610 0 0 92.38 1 1 4 4 0 0 -GOLD-569 23798028 89 P65 0 0 322.11 3 1 0 1 GOLD-569 2109251708 4 G10 _ 0 0 173.85 20 1 0 0 601D-569 2379020973 145 P65 0 0, 382.73 5 2 1 4
MAPPING AND CONTACT SCHEDULING
CROSS-REFERENCE TO RELATED APPLICATION
[00011 This application claims the benefit under 35 U.S.C. 119(e) of U.S.
Provisional Patent Application No. 62/067,328, entitled "Rule-Based Probabilistic Algorithm for Large-Scale Non-Linear Customer-Product Relationship" filed October 22, 2014, the entire contents of which are incorporated herein by reference.
BACKGROUND
100021 The present disclosure relates to mapping customer-product relationships.
[0003] Customer-product mapping is an industry-related question that many are trying to answer with limited success. In particular, so far existing solutions have not been able to effectively (a) identify the individual customers/groups who are potential buyers and prioritize them for reaching out, (b) identify the customer base which cannot be influenced to make a purchase (regardless of the amount of effort exerted by the seller), (c) map the customers who have been identified as potential buyers and prioritized in a list to the exact products that are being sought after, and (d) facilitate customer reach-out efforts based on the consolidation of past purchases, potential purchases, proposed products, and store inventory.
[0004] Moreover, in many cases, the mappings that are provided by existing solutions are full of errors, which can translate into an uninteresting product being presented to the user. This in turn leads to disengagement and divergence from a customer transaction.
100051 As a result, many industry giants are using ineffective and inefficient vendor-provided methods for matching products and customers. These methods are ineffective at least in part because of the lack of integration between statistical, probabilistic, and data engineering efforts. These methods are only capable of considering a limited amount of data, such as only the product browsing cycles, to suggest particular products.
100061 Other limitations and obstacles have prevented an effective solution to this problem from being developed include the cost of large-scale training of individuals (e.g., account managers) for an effective implementation, management requirements and constraints, and process security.
SUMMARY
[00071 The innovative technology disclosed in this document addresses the above-noted limitations.
100081 In one innovative aspect, the technology includes a computer-implemented method comprising retrieving from a data store a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to I) a customer tier, 2) a product class interacted with by the customer via one or more of an online sales channel, a retail sales channel, and a phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer associated with the customer identifier with the product class via the one or more of the online sales channel, the retail sales channel, and the phone sales channel; generating a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using one or more of predetermined online sales channel rules, predetermined retail sales channel rules, and predetermined phone sales channel rules, respectively, and the plurality of variables; selecting a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination; generating a schedule for contacting the first set of customers based on one or more of the predictive score and the revenue; and providing the schedule to a client device of a stakeholder for use by the stakeholder in contacting the first set of customers.
[00091 In another innovative aspect, the technology includes a computer system comprising one or more computer processors and one or more computer memories storing instructions that, when executed by the one or more computer processors, cause the computer system to perform operations including: retrieving from a data store a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to 1) a customer tier, 2) a product class interacted with by the customer via one or more of an online sales channel, a retail sales channel, and a phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer associated with the customer identifier with the product class via the one or more of the online sales channel, the retail sales channel, and the phone sales channel; generating a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using one or more of predetermined online sales channel rules, predetermined retail sales channel rules, and predetermined phone sales channel rules, respectively, and the plurality of variables;
= selecting a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination;
generating a schedule for contacting the first set of customers; and providing the schedule to a client device of a stakeholder for use by the stakeholder in contacting the first set of customers.
[0010] Other aspects include corresponding systems, methods and apparatus, including computer program products. It should be noted that the language used in the present disclosure to describe these systems, methods and apparatus has been principally selected for readability and instructional purposes, and not to limit the scope of the subject matter disclosed herein.
[0011] One or more of the embodiments described can also include the following features: aggregating customer data associated with each customer of the multiplicity of the customers from one or more data stores storing data related to the online sales channel by retrieving, from the one or more data stores, first product identifiers reflecting products purchased by the customer using the online sales channel, retrieving, from the one or more data stores, second product identifiers reflecting products that were added to a virtual cart that was subsequently abandoned without having purchased the one or more products, the virtual cart being associated with the online sales channel, retrieving, from one or more data stores, third product identifiers reflecting product pages of products that were viewed by the customer but were not purchased using the online sales channel, generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the first product identifiers reflecting the products purchased by the customer, the second product identifiers reflecting the products added to the virtual cart, and the third product identifiers reflecting the products that were viewed by the customer but were not purchased, and storing the entry in an aggregated data store storing the customer product-class mapping; determining product classes for the products associated with the first product identifiers, the second product identifiers, and the third product identifiers; retrieving customer tier data describing the customer tier of the customer; and categorizing the customer by each unique product class and customer tier combination; that the plurality of variables characterizing the interaction of the customer regarding a particular product includes one or more of browsing for product price, browsing for product features, browsing for product reviews, comparing the product with other products, and reviewing product details; that generating the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class using the predeteimined online sales channel rules and the plurality of variables comprises: estimating time spent by the customer on each of the plurality of variables associated with a particular product that the customer has indicated interest in using the online sales channel; allocating weights to the time spent by the customer on each of the plurality of the variables based on the predetermined online sales channel rules; and generating the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class based on the weights allocated to the time spent by the customer on each of the plurality of variables; determining, for the customer identifier of each customer of the multiplicity of the customers, a visit cadence score based on a number of visits by the customer to one or more pages of one or more products;
determining, for the customer identifier of each customer of the multiplicity of the customers, a purchase cadence score based on product purchase history associated with the customer identifier; determining, for the customer identifier of each customer of the multiplicity of the customers, a revenue cadence score customer cadence score based on amount of revenue generated from purchases by the customer; combining, for the customer identifier of each customer of the multiplicity of the customers, the visit cadence score, the purchase cadence score, and the revenue cadence score into an overall cadence score for the customer identifier; selecting a second set of customers from the multiplicity of the customers based on overall cadence scores associated with the second set of customers; injecting the second set of customers into the schedule, which includes the first set of customers;
selecting a second set of customers from the multiplicity of the customers based on one or more of a visit cadence score, a purchase cadence score, and a revenue cadence score; injecting the second set of customers into the schedule, which includes the first set of customers that the first set of customers have higher priority than the second set of customers and the schedule is sorted based on the higher priority; registering a plurality of stakeholder accounts for a plurality of stakeholders including the stakeholder, each stakeholder of the plurality of stakeholders being assigned to a group of customer identifiers associated with customers;
selecting for each stakeholder account of the plurality, a first subset of customer identifiers from the group of customer identifiers assigned to that stakeholder account based on 1) a predictive score for each unique combination of each customer identifier, customer tier, and product class using one or more of the predetermined online sales channel rules, the predetermined retail sales channel rules, and the predetermined phone sales channel rules, respectively, and the plurality of variables, and 2) a revenue generated from each unique combination, wherein selecting includes selecting the first set of customers from the multiplicity of the customers based on the predictive score and the revenue generated from the each unique combination; selecting for each stakeholder account of the plurality, a second subset of customers identifiers from the group of customer identifiers assigned to that stakeholder based on cadence scores associated with the customer identifiers of the second subset; generating, for each stakeholder account of the plurality, a schedule for contacting certain customers of the group of customers associated with the stakeholder account based on a combination of the first subset of customers and the second subset of customers associated with the stakeholder account;
providing, to a client device of each stakeholder account of the plurality, the schedule generated for that stakeholder account; aggregating customer data of a plurality of customers from an online data store reflecting the online sales channel, a retail data store reflecting the retail sales channel, and a call center data store reflecting the phone sales channel;
statistically analyzing the aggregated customer data of the plurality of customers to determine the multiplicity of customers from the plurality of customers whose interest in products offered by a business merchant fall within a certain interval; aggregating customer data associated with each customer of the multiplicity of the customers from one or more data stores storing data related to the retail sales channel and the phone sales channel by:
determining a total number of orders associated with the customer, determining a number of items included in each of the orders; determining revenue generated by each of the orders, determining revenue generated by each item included in each of the orders, determining any discounts applied to each of the orders; generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the total number of orders associated with the customer, the number of items included in each of the orders, the revenue generated by each of the orders, the revenue generated by each item included in each of the orders, and any discounts applied to each of the orders, and storing the entry in an aggregated data store storing the customer product-class mapping.
[0012] The innovative technology also includes various methods and apparatus, including computer program products, as well as other aspects. The innovative technology described is particularly advantageous in a number of respects. For example, it provides the capability to list out the customers on the basis of their prominence and potential to buy.
Having identified the individuals and groups of customers, it uses a unique a frequency interval for repeating the communication process. The communication process involves automated, algorithmically-chosen, highly-probable products that the customer may buy depending on the behavioral pattern shown by past buyers and product researchers.
[0013] The technology achieves the long-time, multi-fold, pending goals unattainable by others in the industry. In particular, the invention identifies the individual customers/groups who are potential buyers and prioritizes them for reaching out. The invention includes an algorithm that identifies the customer base which cannot be influenced with any effort to make a purchase. The invention connects the exact products that are being sought after to the customers, who have been identified as potential buyers and prioritized in a list. Finally, the invention provides and consolidates the past purchases, potential purchases, proposed products, and store inventory to be pursued, into a multi-dimensional mapping to facilitate customer reach-out efforts.
10014] The technology also includes various algorithms and automated processes for continuous simulation and identification of the delta changes with next to negligible manual cumbersome effort to dig the data. It also includes a method of analyzing product browsing cycles and suggesting the particular products. The present invention uses a rule-based algorithm that looks at non-linear patterns and finds specific thresholds, and uses heuristics to determine the appropriate time to approach the customer with his/her preferred products.
100151 The above list of features and advantages is not all-inclusive and many additional features and advantages are within the scope of the present disclosure. Moreover, it should be noted that the language used in the present disclosure has been principally selected for readability and instructional purposes, and not to limit the scope of the subject matter disclosed herein.
BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The present disclosure is illustrated by way of example, and not by way of limitation in the figures of the accompanying drawings in which like reference numerals are used to refer to similar elements.
[0017] Figure I is a block diagram of an example system for large-scale customer-product relationship mapping and contact scheduling.
[0018] Figures 2A-2C are flow diagrams of the example system.
[0019] Figure 3 is a block diagram of a method 300 for customer reach-out based on a generated schedule.
[0020] Figure 4 is a flowchart of an example method 400 for generating and providing schedule.
[0021] Figure 5A is a flowchart of an example method for aggregating customer data associated with each of a multiplicity of the customers from one or more data stores (e.g., databases, web servers, etc.) storing data related to the online sales channel.
10022] Figure 5B is a flowchart of an example method for aggregating customer data associated with each of a multiplicity of the customers from one or more data stores (e.g., databases, web servers, etc.) storing data related to the retail and phone sales channels.
100231 Figure 6 is a flowchart of an example method for categorizing a multiplicity of customers by each unique product class and customer tier combination.
[0024] Figure 7 is a flowchart of an example method for generating a predictive score.
[0025] Figure 8 is a flowchart of an example method for providing a customized schedule to a stakeholder.
[0026] Figure 9 is a flowchart of an example method for generating a schedule for contacting a high-value subset of customers associated with each stakeholder.
[0027] Figure 10 is a block diagram of an example system for large-scale customer-product relationship mapping and contact scheduling.
[0028] Figure 11 is a block diagram of an example computing system.
DETAILED DESCRIPTION
[0029] Figure 1 is a block diagram of an example system 100 for large-scale customer-product relationship mapping and contact scheduling. Figure 1 includes a scoring engine 200, a scheduler 201, an aggregator 202, and a priority engine 203, and various other components such as a UI module 148, a SKU data store 150, and/or a CRM 158, which are coupled for communication with one another.
[0030] The aggregator 202 is executable to aggregate and processing raw data, and store the aggregated data for retrieval. The aggregator 202 accumulates the data from various information sources. In some embodiments, the information sources may include retail purchase data source(s), such as the retail purchase data store 102, and raw browse data source(s) such as raw browse data store 108. The retail purchase data store 102 stores data reflecting purchases by customers in physical stores using rewards accounts.
In some instances, the retail purchase data may be stored by point-of-sale systems and/or other systems associated with retail sales. The retail purchase data may describe the product identifiers of the products that were purchased, the date and time the purchases were made, the customer identifiers associated with the purchases, and/or any other related data, etc. The raw browse data store 102 stores data reflecting customers' actions in interacting with an online sales channel. The online sales channel is embodied by an e-commerce application providing a virtual market place associated with a merchant (e.g., Staples) to customers to browse and purchase products. The virtual market place is, in some embodiments, linked to the retail and phone sales channels offered by the same merchant.
[00311 The retail data aggregator is executable to aggregate the retail purchase data, standardize it, and store it into the aggregated retail data store 106 for efficient access and/or retrieval by the schedule module 118, as discussed in further detail elsewhere herein. The schedule aggregator 110 and the scoring aggregator 112 may each aggregate and standardize raw browse data from the raw browse data store and store in a corresponding aggregated data store (e.g., the data stores 114 and 116, respectively), as discussed in further detail elsewhere herein.
[00321 By way of further example, the data collection process by the aggregator 202 performed for the online, retail, and/or phone sales channels (e.g., online, store-based, and phone customers). For all channels, the aggregator 202 aggregates information such as customer IDs, customer tier (e.g., reward tier), products bought over certain timeframe (e.g., over last 5/10/15 orders, during a certain period of time, etc.), repeat flag (reflecting if multiple repeat purchases have been made), etc. The timeframe of the purchases is an indicator of the frequency of the repetitions.
10033] Further, for the online sales channel, the aggregator 202 aggregates data describing products purchased, products not bought but added to a virtual cart, and products not bought but viewed, etc. A "Product View" interaction and an "Add To Cart (ATC)"
interaction have established definitions in the data aggregation process, and the dates on which a given customer viewed products and/or added products to cart are vital signs that are used to optimize the schedules generated herein.
[00341 Regarding the retail and/or phone channels, the aggregator 202 aggregates purchase data reflecting discounts available on products bought over a certain timeframe (e.g., last 5/10/15 orders, during a certain period of time, etc.), any product identifiers describing cross-sell products related to previously purchased products, any product identifiers reflecting supplies and accessories related to previously purchased products, etc.
For any missing data, the aggregator 202 may aggregate product identifiers describing related products, cross-sell products, supplies and accessories in the same product class, etc.
[00351 In some embodiments, the data is correlated by the aggregator 202 with the applicable customer identifiers reflecting the customers that performed the actions. In some embodiments, only data meeting certain action thresholds (e.g., page views, purchases, etc.) is aggregated, although other variations are also possible and contemplated.
In addition, in some embodiments, certain product criteria may be required to be met in order for data about that product to be aggregated to reduce the time and intensity of the processing that must be performed by the aggregator 202, especially considering that thousands, hundreds of thousands, etc., of product may be processed. For example, a SKU may need to have a minimum price to be aggregated, or may need to belong to a certain SKU
category.
10036] The aggregator 202 may standardize the raw data (e.g., format, classify, stagger, group, etc.) aggregated by it and stage it for retrieval by the scoring engine 200 and/or the scheduler 201. By way of further example and not limitation, during the aggregation phase, the aggregator 202 calculates visits by a customer (reflected by that customer's identifier) to product pages associated with products. In some embodiments, absent page view data, as a heuristic the aggregator 202 may consider the number of orders by a customer identifier as visits and the number of product purchases (independent and repeat) as product views (e.g., during a certain period), and store/provide them as such as aggregated data for retrieval by the scoring module 132.
[0037] The aggregator 202 is coupled for communication to the other components of the system 100, including the scheduler 201, the scoring engine 200, the CRM
158, etc.
[00381 The scoring engine 200 is executable to generate and update data for the customer product-class mapping for use by the priority engine 203 and/or scheduler 201, as discussed elsewhere herein. In generating data for the mapping, the scoring engine 200 may process the aggregated data and scores for unique combinations ofzustomer identifiers, customer tiers, and product classifications. The scores are generated for each of the sales channels based on unique rules associated with each of those channels (e.g., retail, online, and phone).
[0039] The scoring engine 200 may perform data preparation on the aggregated data in preparation for generating the scores for each channel. In some embodiments, the scoring engine 200 includes a scoring data preparation module 122 that retrieves data from the retail purchase data store 102, the aggregated data store for scoring 116, the legacy orders data store 120, and the shared orders data store 124. For each channel (e.g., browse, retail, and phone), the scoring data preparation module 122 may standardize the data for processing by the scoring module 132.
[0040] In some embodiments, using the retrieved data, the scoring data preparation module 122 generates a list of all the products bought by each customer with dates (e.g., by ordered date, shipped date, delivery date, etc.) and products that have not been bought but added to cart and/or viewed (e.g., by descending product views). The scoring data preparation module 122 may store each set of prepared data in a corresponding data store.
For example, the scoring engine 200 may store the prepped browse data in the browse data store 126, the prepped retail data in the retail data store 128, and the prepped phone data in the phone data store 130.
[00411 The scoring module 132 is executable to generate, for each unique combination of customer ID, customer tier, and product class, a score for each sales channel, as discussed in further detail elsewhere herein, such as with respect to Figure 4. The scoring module 132 is coupled to the browse, retail, and phone data stores 126, 128, and 130 to retrieve the data prepped by the scoring data preparation module 122. The scoring module 132 uses this data. to compute the various scores.
- [0042] In some embodiments, for the online sales channel, the scoring engine 200 may generate the scores using the below equations. In particular, the scoring data preparation module 122 may prepare the data by performing brute force analytics of laying out scatter plots to look for outliers, trends, and biases. The scoring data preparation module 122 may use a residual sum of squares (RSS) method to select a certain relevant portion of the data.
For instance, the method may select the customers that fall within a certain closeness to mean (e.g., mean and confidence interval, such as 2-sigma, 95% CI). In this example, the method selects 95% of the mined data thus deleting the bottom and top 2.5%
respectively.
[0043] Once the data has been prepped, the scoring module 132 compute the scores by modeling the relationship between the input variables and the output function by computing coefficients of an equation and identifying the relationship between products purchased and the browsing purpose (e.g., price, features, details, comparisons, reviews, number of offerings similar to the product, visits, views, etc.).
[0044] Example variables of the equation may include:
y = Number of units of a particular product ordered;
x1 = Time spent on browsing price;
X2 = Time spent on browsing for features;
x3 = Time spent on browsing for reviews;
x4= Time spent on comparing products;
xs = Time spent on product details page; and E = Random error.
[0045] The above question may in some cases take the form of the following consolidated linear equation:
y =bp+ bi*xi + b2*x2+ b34`x3+ b4*x4+ bs*xs + E
[0046] In the above question, coefficients 1)0, b1, etc., may be derived for a multiple linear regression (MLR) model. By way of further example, the coefficients may be derived using "R" code and the following equations:
Zin-i(x10) b ¨ xid * Oro) ¨ y 1 ,) - _____________________________________________ Zin xip)2 a1(x20) x2m) * (Y(i) - Y ) b2 ¨
=1(x2 (O x2 )2 [0047] The model in some instances may begin with a single linear regression model that considers the response of each input variable on the total orders (y) with calculation of intercepts and slopes as follows:
y =1301 + bi*xi y = b02+1:42*x2 [0048] The random error may be computed as follows:
= Er-1 (Y(i) Yp)2 [0049] Intercepts may be calculated as follows:
bo, = y ¨ [ b1 * X1 + El b02 = y ¨ [b2 * xz +
[0050] The scoring module 132 may apply a null hypothesis of the coefficients for each variable (Ho: b1 = b2 = = 0), in which case if Null is rejected then the alternate hypothesis stands accepted. Using the above equations, the F-statistic test would turn out to be close to "1" if there is no relationship between response and predictor.
Otherwise it would be much greater than I.
[0051] The RSS may be computed using the following equation:
RSS = ¨ y(0))2 [00521 In the above equation, y(i) = actual observation and y(0) =
calculated line (or plane) value using the linear regression equation.
[00531 The scoring module 132 may group the customer ids into unique product-class customer-tier groups and then compute scores for each unique combination and channel. The scoring module 132 may process the data associated with each of the product-class customer-tier groups to generate a score. By way of example and not limitation, a customer associated with a customer ID may belong to a Gold customer tier and purchase a product in a product class #500, and the scoring module 132 generates a unique score for that product-class, customer tier, customer ID combination based on the variables discussed herein. The scoring module 132 retrieves a set of customer rules associated with the channel that it is generating a score for, and applies the rules to the relevant data when generating the score.
[0054] In some embodiments, the scoring module 132 may include specialized "R-code" adapted to each of the product-class customer-tier groups and executed for that particular group's dataset, which allows for the possibility of migration of a customer ID to another unique combination (e.g., a Gold rewards customer becomes a Platinum rewards customer (and possibly begins purchasing products with higher margin of profit)).
100551 As a further example, each product class may have a customer group for an account manager customer tier (e.g., Gold, Platinum, etc.). In this example, the group designation combines the product class ID "500" with the reward tier designation "Platinum"
(e.g., Group name = "500-Platinum"). Based on the data accumulated, the scoring module 132 includes an equation (e.g., linear, non-linear, etc.) that is representative of its character.
As discussed further herein, the system 100 may promote, recommend, etc., products associated with each unique group based on the findings of the product purchase criteria and customer buying pattern(s) identified from the output of the scoring module 132 algorithm.
[00561 In some embodiments, when generating the scores, the scoring module establishes a relationship of each variable with the response function. The scoring module 132 may calculate an F-statistics value. If this value is very high corresponding to the p-value, then it will result in rejection of NULL hypothesis and the acceptance that a relationship exists. The strength in relationship between the variable, (predictor) and response function, is indicated by calculating the RSE and adjusted R2 explaining the variances. The contribution of each predictor to the response function is examined by t-statistics. To determine the largest contributor, the scoring module 132 may perform a single linear regression. The scoring module 132 may further identify the synergy among the predictors. Non-linear terms along with interaction may often end up giving the lowest p-value. The MLR equation with lowest p-value thus gets accepted as the likelihood function for the product-consumer group in consideration.
[00571 The scoring engine 200 may limit the data processed to a certain period of time. In an example, 38 days of sales data may be substantial for developing rule-based product mapping model for retail customers, although it should be understood that a different date range (e.g., past two weeks, 30, 60, 90, 180, past year, etc.) may also be used.
[0058] The priority engine 203 is executable to determine the priority of the customers based on the scores generated by the scoring engine 200. The priority engine 203 includes a priority module 142 and a top scores data store 144. The priority module 142 is executable to combine the browse, retail, and phone score(s) associated with each unique combination into a total score. The priority module 142 may retrieve the given scores from the browse, retail, and phone scores databases 136, 138, and 140, and combine them into a CA 02 90 9957 2 015 ¨ 10-22 total score where applicable, select the total scores meeting a certain threshold as top scores, and store the top scores into a top scores database 144.
[0059] In some embodiments, the priority module 142 evaluates whether, for a given =
unique product-class customer-tier combination, a score exists for more than one channel, and if so, combines the scores into a total score. The priority module 142 may access information about a product class from the SKU data store 150. In some embodiments, if a customer identifier has transactions in two or three of the sales channels, and the scoring engine 200 applies a predefined precedence to sort the transactions. For example, the scoring =
engine 200 may apply the following order: online interactions > cross-sell interactions >
interactions involving supplies and accessories. In other embodiments, other sorting algorithms may be used. If a score exists for a single channel only, the priority module 142 uses that score as for the total score and evaluates it as a top score based thereon.
[0060] In some embodiments, the priority module 142 sums a given list generated from the online, retail, and/or phone channels and sorts select entries from the customer product-class mapping in a particular order (e.g., descending order). The sorting may be performed per the score for the product classes and revenue generated in recent past, as discussed elsewhere herein.
10061] Entries from an example customer-product class mapping are provided below, although it should be understood that the mapping may take other forms and include additional or other data and may be stored in single data store or distributed across data stores.
Group Customer Time r Tiers Units Total Total Total Visits Product Page Cart Orders Score (tier/class) identifier spent revenue revenue visits views views adds in group GOLD-568 5346563314 211 G10 0 0 466.03 152 1. 2 2 0 0 1 GOLD-568 5373990521 249 P65 1 27.36 27.36 12 2 6 10 1 1 1 GOLD-568 5385707244 66 610 1 20.59 23653 2 2 1 2 1 1 1 GOLD-568 5387115636 0 P65 0 0 339.13 16 1 1 1 0 0 1 GOLD-568 5395084527 482 G10 1 11.99 403.14 50 2 3 10 0 1 2_ GOLD-568 5605719201 61 610 1 7.99 151.27 1. 1 1 2 _ 6OLD-568 5669183690 31 P55 0 0 471.35 10 1 1, 1 GOLD-568 5755845277 6 610 0 _ 0 220.56 2 _ 1 0 1 6OLD-568 5759266520 373 610 0 0 92.38 1 1 4 4 0 0 -GOLD-569 23798028 89 P65 0 0 322.11 3 1 0 1 GOLD-569 2109251708 4 G10 _ 0 0 173.85 20 1 0 0 601D-569 2379020973 145 P65 0 0, 382.73 5 2 1 4
2 0 0 , _ GOLD-569 2712237177 18 610 0 0 96.41 3 1 0 1 0 0 _ , 6010-569 2720989454 . 90 PG5 0 0 416,23 10 . 1 4 GOLD-569 2843758968 26 _ 510 0 0 431.95 1 _1 1 1 0 GOLD-569 2851566758 18 610 0 0 199.61 1 1 1 1 0 0 GOLD-569 2901112629 0 , 610 0 0 97.56 9 1 1 1 0 GOLD-569 3486587946 97 PG5 - 0 0 372.33 66 , 1 4 , 4 , 0 0 -1 GOLD-569 _4025389505 73 610 . 0 _0 394.68 4 1 3 3 _ 6010-569 4047523735 12 _ 610 0 0 199.27 14 1 0 1 0 0 , 0 GOLD-569 4075867574 49 P65 1 33.39 , 174.8 1 1 1 .2 1 1 1 _ _ 5010-569 5332520229 320 610 4 119.96 379.75 4 1 4 12 2 2 1 .
- , 6010-570 219655529 0 , P65 _ 0 0 321.05 33 1 1 GOLD-570 553340589 0 610 0 0, 0 1 1 1 1 . 0 6010-570 1998227589 439 P65 0 0 . 382.9 2 2 4 6 1 GOLD-570 2001004734 32 610 0 0_ 1338.35 97 1 1 , 1 , 0 0 _ 5 _ GOLD-570 2165236791 102 610 r 0 - 0 133.98 1 1 2 0 _ GOLD-570 2721101174 32 G10 0 0 0 3 1 1 1 _ 0 , 5 , 6OLD-570 3455954127 160 610 1 19,19 228.4 58 2 7_ 8 1 , 1 5 -GOLD-570 3956448819 106 P65 00 2207.13 12 1 1 1 6010-570 4017357569 10 ' 610 0 - 0 0 3 1 1 1 0 60L0-570 4052140748 94 510 0 0 666.59 _ 43 1 1 1 _ - _ GOLD-570 4089797148 0 610 0 0 83.07 5 1 1 1 0 , 0 5 6010-570 4193300987 90 610 G 0 387.12 26 1 3 3 -GOLD-570 4205883582 21 510 0 o _ 229.99 5 1 1 1 0 0 . 5 _I
GOLD-570 4217988247 0 P65 0 _ 0 67.73 2 1 1 1 0 GOLD-570 5675366081 116 , P65 _ 0 0 360.48 15 , 1 2 2 . 0 0 5 GOLD-570 5677524406 288 G10 0 0 0 2 , 1 6 10 1 , 0 5 _ GOLD-571 2482099 120 P65 4 26.76 26.76 2 2 1 8 3 2 6010-571 4666509 88 610 1 23.99 204.07 85 2 1 =4-6OLD-571 8584856 31 610 0 247.24 9 1 1 1 0 0
- , 6010-570 219655529 0 , P65 _ 0 0 321.05 33 1 1 GOLD-570 553340589 0 610 0 0, 0 1 1 1 1 . 0 6010-570 1998227589 439 P65 0 0 . 382.9 2 2 4 6 1 GOLD-570 2001004734 32 610 0 0_ 1338.35 97 1 1 , 1 , 0 0 _ 5 _ GOLD-570 2165236791 102 610 r 0 - 0 133.98 1 1 2 0 _ GOLD-570 2721101174 32 G10 0 0 0 3 1 1 1 _ 0 , 5 , 6OLD-570 3455954127 160 610 1 19,19 228.4 58 2 7_ 8 1 , 1 5 -GOLD-570 3956448819 106 P65 00 2207.13 12 1 1 1 6010-570 4017357569 10 ' 610 0 - 0 0 3 1 1 1 0 60L0-570 4052140748 94 510 0 0 666.59 _ 43 1 1 1 _ - _ GOLD-570 4089797148 0 610 0 0 83.07 5 1 1 1 0 , 0 5 6010-570 4193300987 90 610 G 0 387.12 26 1 3 3 -GOLD-570 4205883582 21 510 0 o _ 229.99 5 1 1 1 0 0 . 5 _I
GOLD-570 4217988247 0 P65 0 _ 0 67.73 2 1 1 1 0 GOLD-570 5675366081 116 , P65 _ 0 0 360.48 15 , 1 2 2 . 0 0 5 GOLD-570 5677524406 288 G10 0 0 0 2 , 1 6 10 1 , 0 5 _ GOLD-571 2482099 120 P65 4 26.76 26.76 2 2 1 8 3 2 6010-571 4666509 88 610 1 23.99 204.07 85 2 1 =4-6OLD-571 8584856 31 610 0 247.24 9 1 1 1 0 0
3 GOLD-571 8595969 6 PGD - 0 .. 0 - 0 81.98 23 1 1 GOLD-571 11182946 41 G10 _ 0 _0 313.46 13 1 2 2 GOLD-571 11958279 22 P65 0 , 0 354.23 6 , 1 2 2 _ 6010-571 12588810 1009 P60 _ 0 0 25135 23 , 1 1 _ GOLD-571 13438296 99 PGS___ _ 1 7.09 44.66 1 1 0 _ .
6010-571 21940077 73 610 1 12.39 170.52 7 _ 2 2 3 GOLD-571 23732704 167 510 20 99.8 209.25 1 1 2 6 1 1 [00621 The scheduler 201 is executable to generate a schedule for each registered stakeholder (e.g., account manager). The scheduler 201 includes the schedule module 118, the config data store 156, the priority classes data store 154, and the schedule data store 152.
The schedule module 118 is executable to generate a schedule including ranked list(s) of customer identifiers for each stakeholder. The schedule module 118 stores the data generated by it into the schedule data store 152 and/or provides it to another module, such as the III
module 148.
.._ 10063] The schedule module 118 can evaluate the cycle of purchasing by each customer identifier (representing a customer) to determine optimal timing for contacting a certain customer. A customer may be contacted via a variety of means, include by phone, via electronic message (e.g., email, chat, SMS, etc.), etc. In some embodiments, the scheduler 188 can evaluate historical data associated with each customer identifier including frequency of the purchases associated with the customer identifier.
[00641 The schedule module 118 generates, for each stakeholder identifier, a schedule describing ranked list of customer identifiers based on the top scores 144.
The schedule module 118 may retrieve data about the customer identifiers (e.g., accounts) and the stakeholder identifier (e.g., profile) from the CRM 158. In some embodiments, the schedule module 118 retrieves aggregated transactional data for browse, retail and phone channels from one or more information sources, such as the data store 114 and 106, for example. The schedule module 118 may prune the data retrieved by it to remove noise, outliers, etc.
100651 In some embodiments, the schedule module 118 determines a cadence for each customer identifier/account. For instance, for each account, the schedule module 118 may determine visit, purchase and revenue cadence scores, and then combine the three scores to an overall cadence score using a sigmoidal function, as discussed elsewhere herein.
Operations for computing cadence scores and selecting customer identifiers based there is discussed elsewhere herein, such as with respect to Figure 8.
[0066] The schedule module 118 may determine the schedulable accounts for each stakeholder identifier (e.g., account manager) based on customer rules retrieved from the customer rules data store 134. The customer rules may define the business rules unique to each customer account and the schedule module 118 may apply the rules to generate the schedule for a given account manager. By way of example, for each account manager, the schedule module 118 may generate and provide a list of accounts including one or more of a first segment of accounts determined based on the top scores generated by the priority module 142, and a second segment of accounts determined based on the cadence scores. In implementations involving both segments, the schedule module 118 may selects a first set of customers based on priority and a second set of customers from the multiplicity of the - customers based on one or more of a visit cadence score, a purchase cadence score, and a revenue cadence score and injects the second set of customers into the schedule, which includes the first set of customers. In further example, the schedule module 118 may interweave the segments based on one or more rule and cadence strategies.
[0067] By way of further example and not limitation, the business needs of a merchant may drive the persuasion of specific products with potential customers. The scheduler 201 is configured to provide curated lists of customers to for display on client devices of account managers. The curated lists are generated to include customers with the highest propensity to satisfy the particular business need (e.g., purchase products from certain product classes, etc.). For instance, assume the current business need is to sell furniture products for next 8 weeks.
100681 The schedule module 118 may execute the following sequential process to identify the customers with a persuasion toward furniture. A list of classes for furniture (for that matter any business need) is input by and received from stakeholders. For instance, using a corresponding interface, a manager may input the furniture product classes that should be promoted. The scheduler 201 will retrieve and rank customer identifiers associated with 1) the product classes; and 2) the highest scores for the product classes. The output of this processing (e.g., customer ID, class ID, and rank score) is fed to a scheduling algorithm of the schedule module 118, which evaluates the purchase and browsing cadence of the customers, and generates the schedule (e.g., appropriate list) of customers, which is formatted and/or transmitted by the UI module 148 to the client device of each of the account managers.
In some instances, a schedule may be transmitted upon receiving a schedule request, may be transmitted upon login into an account manager system portal, may be transmitted via electronic message according to a certain schedule (e.g., on a daily basis), etc.
[0069] In some embodiments, the schedule (e.g., including the customer list) provided to a given stakeholder (e.g., account manager) may contain the customers already considered for the business need at the top (considered list) followed by a list of customers (consolidated list) being pursued for the business need based on priority (selected from high rank, about to purchase, intent shown through browsing, and falling-off curve). In some instances, various business needs are cyclically pursued and the system 100 updates data of the mapping on a regular basis for use by the scheduler 118.
[0070] The Ul module 148 receives and replies to content requests. The Ul module 148 may retrieve schedule data generated by the schedule module 118, retrieve data from the SKU data store 150, prepare the schedule customized for a given stakeholder based on the retrieved data, and transmit the schedule to the client device of the stakeholder for display.
[0071] In some embodiments, the UT module 148 is associated with a web server, such as the web server 1024 depicted in Figures 10 and 11. The UI module may provide data forming an account manager portal associated with the CRM 158. In this embodiment, stakeholders can use the account manager portal for customer reach-out and follow-up with prescriptions for products and predictions of particular business group progressions. In some further embodiments, a stakeholder may use the account manager portal to access other data associated with a given customer or customer order, such as the date of purchase, customer ID, order number, SKU's in the Order, revenue from the order, revenue from individual SKUs, coupons/discounts applied to individual SKUs, coupons/discounts applied to the order, discounted or free product attached to purchase of another product, etc.
[00721 It should be understood that the UI module 148 may embody other communication platforms, such as a messaging or data service (e.g., email, SMS, chat, API, etc.). For instance, the UI module 148 or another component of the system (e.g., the scheduler 201) may manager and triggering targeted electronic notifications (e.g., email, SMS, social media, etc.) with product recommendations to the high-value customers in the schedule data at an effective adaptable frequency.
44- .
[0073] In some embodiments, the data presented to a given account manager has been aggregated within a particular timefi-ame (e.g., the past 24 hours), or is real-time or near-real time (e.g., less than an hour old). In some embodiments, the schedule includes 1) products that were previously purchased and 2) products that were not bought but added to cart or not bought but viewed, with hyperlinks selectable to land on the corresponding product pages and make virtual cart additions along with provisions to place orders. Other variations are also possible and contemplated.
[0074] The SKU data store 150 is an information source storing SKU pricing (e.g., pricing for the products, such as the list, discount, and/or dynamic price for each SKU), SKU
categories describe the category(ies) to which a SKU belongs, etc. The categories may be hierarchical in nature, and a give SKU may belong to more than one category.
[00751 The CRM 158 reflects a customer relations management information source storing the accounts and relationships between one or more vendors and/or customers. The CRM 158 may store data associated with sales, marketing, customer service, and technical support. The vendor may employ a plurality of individuals (e.g., account mangers) that are each responsible for managing certain customer accounts. Data reflecting the relationship between the account manager profiles and the profiles of the customer accounts may be stored in the CRM 158.
no [00761 Figures 2A-2B are data flow diagrams of the example system 100, and Figure 3C is a code dependency diagram of the example system 100. As shown in Figure 2A, the aggregator 202 may retrieve raw browse clickstream data 250 describing user interactions with a virtual marketplace, rewards direct purchased items describing products purchased by customers by phone, rewards retail purchase items describing products purchased by customers in-store, and orris purchased items describing products process by the order management system associated with the virtual marketplace.
[00771 The aggregator 202 processes this data into aggregated browse clickstream data 258 and CRM account manager data 260, and stores this data accordingly for use by the browse scoring module as shown in Figure 2B. The aggregator 202 and processes this data outputs config data 262, CRM retail purchase items data 266, CRM oms purchased items data 268, aggregated scheduler browse data 270, priority classes customer data 272, and customer rules data 274, and stores this data accordingly for use by the other components of the system 100, as shown in Figure 2B.
[0078] Referring to Figure 2B, the browse scoring module 204 receives aggregated browse clickstream data 258 and CRM account manager data 260, the phone scoring module 206 receives oms purchased items data 256, CRM account manager data 260, and the SKU
category data 276, and the retail scoring module 208 receives retail purchased items data 286 and SKU categories data 288. Each of these modules 204, 206, and 208 processes their respective retrieved data and updates the priority considered classes data 278, SKU categories data 276, top scores browse data 280, top scores phone data 282, and/or top scores retail data 284. The priority engine 203 receives and processes this data, and updates config data 262, CRM account manager data 260, CRM retail purchase items data 266, CRM oms purchased items data 268, aggregated scheduler browse data 270, priority classes customer data 272, and/or customer rules data 274. The scheduler receives and uses this data to generate the schedule 290. In some embodiments, the components 250, 252, 254, 256, 258, 260, 262, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, and 290 embody tables that are updated by the aggregator 202, scoring engine 200, priority engine 203, and scheduler 201 based on the operations discussed herein.
[0079] As shown in Figure 2C, the scheduler 201 may include a batch module 214.
The batch module may be dependent upon, and trigger the operation of the aggregator 202, the browse scoring module 204, the phone scoring module 206, the retail scoring module 208, the priority module 210, and the scheduler 212. The browse scoring module 204, the phone scoring module 206, and the retail scoring module 208 may be dependent upon and use the browse rules 216, phone rules 218, and the retail rules 220 to perform their respective operations, as discussed in further detail elsewhere herein.
[0080] The methods 300-900 depicted in Figures 3-9, respectively, are now described. However, it should be understood that the methods 300-900 are provided by way of example, and that variations and combinations of these methods, as well as other methods, are contemplated. For example, in some embodiments, at least a portion of one or more of the methods 300-900 represent various segments of one or more larger methods and may be concatenated or various steps of these methods may be combined to produce other methods which are encompassed by the present disclosure. Additionally, it should be understood that various operations in the methods 300-900 may be iterative, and thus repeated as many times as necessary generate the results described herein. Further the ordering of the operations in the methods 300-900 is provided by way of example and it should be understood that various operations may occur earlier and/or later in the method without departing from the scope thereof.
[0081] Figure 3 is a block diagram of a method 300 for customer reach-out based on a generated schedule. In block 302, the account manager logs into a CRM and in block 204, accesses a call list. Responsive thereto, the method 300 displays the call list in block 306.
The call list reflects the schedule generated using the systems and methods discussed herein.
The call list may include information relating to who, what, where, when, and why a particular customer should be called for a given product or product class.
[0082] In block 308, the method 300 determines whether to call a particular customer from the call list (responsive to. a selection by the account manager). If yes, the method 300 calls the customer in block 310 and the account manager uses the call list for talking points in block 312. In block 314, the method 300 logs the call and the routine ends (e.g., returns to block 308 or another operation; terminates, etc.). If in block the determination is negative, the method 300 receives an account manager's request for more details on customer in block 316. Responsive thereto, the method 300 retrieves company details containing browse and purchase history associated with the customer in block 318, at which point the method 300 determines whether to call the customer in block 320. If the determination is affirmative in block 320, the method 300 proceeds to block 310 and the method 300 proceeds accordingly.
If the determination in block 320 is negative, the method 300 logs notes input by the account manager for a given customer and then ends (e.g., returns to block 308 or another operation, terminates, etc.).
[0083] The method 300 may replicate the data stored in the CRM data store 324 in the scoring and scheduling data store 326. In some embodiments, the scoring and schedule data store 326 reflects the data stores described in Figure 1 with respect to the aggregator 202, the scheduler 201, and/or the scoring engine 200, etc. In addition, data from other external data sources 328 may be aggregated into the scoring and schedule data store 326.
100841 Figure 4 is a flowchart of an example method 400 for generating and providing a schedule.
=
[0085] In block 402, the method 400 retrieves from a data store a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to 1) a customer tier, 2) a product class interacted with by the customer via one or more of an online sales channel, a retail sales channel, and a phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer associated with the customer identifier with the product class via the one or more of the online sales channel, the retail sales channel, and the phone sales channel. Examples of the variables characterizing the interaction of the customer regarding a particular product include browsing for product price, browsing for product features, browsing for product reviews, comparing the product with other products, and/or reviewing product details, etc.
[0086] In block 404, the method 400, generates a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using one or more of predetermined online sales channel rules, predetermined retail sales channel rules, and predetermined phone sales channel rules, respectively, and the plurality of variables. A
further example method for generating the predictive score is described herein with respect to Figure 7.
100871 In block 406, the method 400 selects a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination.
[0088] In block 408, the method 400 generates a schedule for contacting the first set of customers regarding products that the customers of the first set have indicated interest in.
[00891 In block 410, the method 400 provides the schedule to a client device of a stakeholder for use by the stakeholder in contacting the first set of customers regarding potential purchases.
[0090] As discussed elsewhere herein, such as with respect to the aggregator 202, the aggregator 202 may aggregate customer data of a plurality of customers from an online data store reflecting the online sales channel, a retail data store reflecting the retail sales channel, and a call center data store reflecting the phone sales channel and statistically analyze the aggregated customer data of the plurality of customers to determine the multiplicity of customers from the plurality of customers whose interest in products offered by a business merchant fall within a certain interval. Figure 5A is a flowchart of one such example method 500 for aggregating customer data associated with each of a multiplicity of the customers from one or more data stores (e.g., databases, web servers, etc.) storing data related to the online sales channel.
[0091] In block 502, the method 500 retrieves, from one or more data stores, first product identifiers reflecting products purchased by the customer using the online sales channel.
[0092] In block 504, the method 500 retrieves, from the one or more data stores, second product identifiers reflecting products that were added to a virtual cart that was subsequently abandoned without having purchased the one or more products, the virtual cart being associated with the online sales channel.
[00931 In block 506, the method 500 retrieves, from one or more data stores, third product identifiers reflecting product pages of products that were viewed by the customer but were not purchased using the online sales channel.
[0094] In block 508, the method 500 generates an entry for the customer product-class mapping for the customer identifier associated with the customer using product classes associated with the first product identifiers reflecting the products purchased by the customer, the second product identifiers reflecting the products added to the virtual cart, and the third product identifiers reflecting the products that were viewed by the customer but were not purchased; and [0095] In block 510, the method 500 stores the entry in an aggregated data store storing the customer product-class mapping.
[00961 Figure 5B is a flowchart of an example method 550 for aggregating customer data associated with each of a multiplicity of the customers from one or more data stores -(e.g., databases, web servers, etc.) storing data related to the retail and phone sales channels.
[0097] In block 552, the method 550 determines a total number of orders associated with the customer, a number of items included in each of the orders, the revenue generated by each of the orders, the revenue generated by each item included in each of the orders, and/or any discounts applied to each of the orders.
[0098] In block 554, the method 550 generates an entry for the customer product-class mapping for the customer identifier associated with the customer using the total number of orders associated with the customer, the number of items included in each of the orders, the revenue generated by each of the orders, the revenue generated by each item included in each of the orders, and any discounts applied to each of the orders.
[0099] In block 556, the method 550 stores the entry in an aggregated data store storing the customer product-class mapping.
[00100] Figure 6 is a flowchart of an example method 600 for categorizing the multiplicity of customers by each unique product class and customer tier combination.
[00101] In block 602, the method 600 determines product classes for the products associated with the first product identifiers, the second product identifiers, and the third product identifiers. In block 604, the method 600 retrieves customer tier data describing the customer tier of the customer. In block 606, the method categorizes the customer by each unique product class and customer tier combination.
[001021 Figure 7 is a flowchart of an example method 700 for generating a predictive score. In block 702, the method 700 estimates time spent by the customer on each of the plurality of variables associated with a particular product that the customer has indicated interest in using the online sales channel. In block 704, the method 700 allocates weights to the time spent by the customer on each of the plurality of the variables based on the predetermined online sales channel rules. In block 706, the method 700 generates the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class based on the weights allocated to the time spent by the customer on each of the plurality of variables.
[001031 Figure 8 is a flowchart of an example method 800 for providing a customized schedule to a stakeholder.
[001041 In block 802, the method 800 determines, for the customer identifier of each customer of the multiplicity of the customers, a visit cadence score based on a number of visits by the customer to one or more pages of one or more products.
[001051 In block 804, the method 800 determines, for the customer identifier of each customer of the multiplicity of the customers, a purchase cadence score based on product purchase history associated with the customer identifier.
[00106] In block 806, the method 800 determines, for the customer identifier of each customer of the multiplicity of the customers, a revenue cadence score customer cadence score based on amount of revenue generated from purchases by the customer.
[00107] In block 808, the method 800 combines, for the customer identifier of each customer of the multiplicity of the customers, the visit cadence score, the purchase cadence score, and the revenue cadence score into an overall cadence score for the customer identifier.
[00108] In block 810, the method 800 selects a second set of customers from the multiplicity of the customers based on overall cadence scores associated with the second set of customers.
[00109] In block 812, the method 800 injects the second set of customers into the schedule, which includes the first set of customers. In some embodiments, the first set of customers have higher priority than the second set of customers and the schedule is sorted based on the higher priority.
[00110] Figure 9 is a flowchart of an example method 900 for generating a schedule for contacting a high-value subset of customers associated with each stakeholder.
1001111 In block 902, the method 900 registers a plurality of stakeholder accounts for a plurality of stakeholders including the stakeholder. Each stakeholder of the plurality of stakeholders is assigned to a group of customer identifiers associated with customers.
[00112] In block 904, the method 900 selects for each stakeholder account of the plurality, a first subset of customer identifiers from the group of customer identifiers assigned to that stakeholder account based on a predictive score for each unique combination of each customer identifier, customer tier, and product class and a revenue generated from each unique combination. The predictive score is generated using one or more of the predetermined online sales channel rules, the predetermined retail sales channel rules, and the predetermined phone sales channel rules, respectively, and the plurality of variables.
[00113] In block 906, the method 900 selects for each stakeholder account of the plurality, a second subset of customer identifiers from the group of customer identifiers assigned to that stakeholder based on cadence scores associated with the customer identifiers of the second subset.
[00114] In block 908, the method 900 generates, for each stakeholder account of the plurality, a schedule for contacting certain customers of the group of customers associated with the stakeholder account based on a combination of the first subset of customers and the second subset of customers associated with the stakeholder account.
[001151 In block 910, the method 900 provides, to a client device of each stakeholder account of the plurality, the schedule generated for that stakeholder account [001161 Figure 10 is a block diagram of an example system 1000 for large-scale customer-product relationship mapping and contact scheduling. The illustrated system 1000 may include client devices 1006a....1006n (also referred to herein individually and/or collectively as 1006), a third-party server 1018, and an application server 1022, which are electronically communicatively coupled via a network 1002 for interaction with one another, although other system configurations are possible including other devices, systems, and networks. For example, the system 1000 could include any number of client devices 1006, third-party servers 1018, application servers 1022, and other systems and devices.
[001171 The client devices 1006a...1006n, and their components, may be coupled to the network 1002 via signal lines 1012a.. .1012n. The application server 1022 and its components may be coupled to the network 1002 via signal line 1020. The third-party server 1018 and its components may be coupled to the network 1002 via signal line 1016. The users 1014a...1014n may access one or more of the devices of the system 1000.
1001181 The netWork 1002 may include any number of networks and/or network types.
For example, the network 1002 may include, but is not limited to, one or more local area networks (LANs), wide area networks (WANs) (e.g., the Internet), virtual private networks (VPNs), wireless wide area network (WWANs), WiMAX networks, personal area networks (PANs) (e.g., Bluetooth communication networks), various combinations thereof, etc.
These private and/or public networks may have any number of configurations and/or topologies, and data may be transmitted via the networks using a variety of different communication protocols including, for example, various Internet layer, transport layer, or application layer protocols. For example, data may be transmitted via the networks using TCP/IP, UDP, TCP, HTTP, HTTPS, DASH, RTSP, RTP, RTCP, VOIP, FTP, WS, WAP, SMS, MMS, XMS, 11\4AP, SMTP, POP, WebDAV, or other known protocols.
[001191 The client device 1006 includes one or more computing devices having data processing and communication capabilities. The client device 1006 may couple to and communicate with other client devices 1006 and the other entities of the system 1000 via the network 1002 using a wireless and/or wired connection. Examples of client devices 1006 may include, but are not limited to, mobile phones, tablets, laptops, desktops, nctbooks, server appliances, servers, virtual machines, TVs, etc. The system 1000 may include any number of client devices 1006, including client devices of the same or different type.
1001201 A plurality of client devices 1006a... 1006n are depicted in Figure 10 to indicate that the application server 1022 and its components may aggregate information about and provide product suggestions to a multiplicity of users 1014a...1014n on a multiplicity of client devices 1006a... 1006n. In some embodiments, a single user may use more than one client device 1006, which the application server 1022 may track and aggregate interaction data associated with the user through a variety of different channels including online, retail, and phone sales channels, as discussed elsewhere herein.
[00121] The application server 1022 may include a web server 1024 and an enterprise application 1026. hi some configurations, the enterprise application 1026 may be distributed over the network 1002 on disparate devices in disparate locations or may reside on the same locations, in which case the client device 1006a and/or the application server 1022 may each include an instance of the enterprise application 1026 and/or portions thereof. The client devices 1006 may also store and/or operate other software such as a client application 1008, an operating system, other applications, etc., that are configured to interact with the application server 1022 via the network 1002.
[00122] As shown, the enterprise application 1026 may include a scoring engine 200, an aggregator 202, a scheduler 201, and a priority engine 203, which are discussed in further detail elsewhere herein.
[00123] The application server 1022 and the third-party server 1018 have data processing, storing, and communication capabilities, as discussed elsewhere herein. For example, the servers 1022 and/or 1018 may include one or more hardware servers, server arrays, storage devices and/or systems, etc. In some embodiments, the servers 1022 and/or 1018 may include one or more virtual servers, which operate in a host server environment.
[00124] Third-party server 1018 can host services such as a third-party application (not shown), which may be individual and/or incorporated into the services provided by the application server 1022.
[00125] It should be understood that the system 1000 illustrated in Figure 10 is representative of an example system and that a variety of different system environments and configurations are contemplated and are within the scope of the present disclosure. For instance, various acts and/or finictionality may be moved from a server to a client, or vice versa, data may be consolidated into a single data store or further segmented into additional data stores, and some embodiments may include additional or fewer computing devices, services, and/or networks, and may implement various functionality client or server-side.
Further, various entities of the system may be integrated into a single computing device or system or divided into additional computing devices or systems, etc.
[00126] Figure 11 is a block diagram of an example computing system 1100, which may represent the computer architecture of a client device 1006, a third-party server 1018, and/or an application server 1022, as depicted in Figure 10, depending on the implementation.
[001271 As depicted in Figure 11, the computing system 1100 may include an enterprise application 1026, a web server 1024, and a client application 1008, depending on the configuration. For instance, a client device 1006 may include one or more of the client application 1008 (which could incorporate various aspects of the enterprise application 1026 in some embodiments); and the application server 1022 may include the web server 120, the enterprise application 1026, and/or components thereof, although other configurations are also possible and contemplated.
[001281 The enterprise application 1026 includes computer logic executable by the processor 1104 to provide large-scale customer-product relationship mapping and contact scheduling, as discussed elsewhere herein. The enterprise application 1026 is coupled to the data stores 1108 to store, retrieve, and/or manipulate data stored therein and may be coupled to the web server 1024, the client application 1008, and/or other components of the system 100 to exchange information therewith. In the depicted embodiment, the enterprise application 1026 includes the scoring engine 200, the scheduler 201, the aggregator 202, and the priority engine 203.
[001291 The web server 1024 includes computer logic executable by the processor 1104 to methods content requests. The web server 1024 may include an HTTP
server, a REST (representational state transfer) service, or other suitable server type.
The web server 1024 may receive content requests (e.g., product search requests, HTTP
requests) from client devices 1006, cooperate with the enterprise application 1026 to determine the content, retrieve and incorporate data from the data stores 1108, format the content, and provide the content to the client devices. In some embodiments, the web server 1024 includes the Ul prep module 146 and the UI module 148, although other configurations are also possible and contemplated.
A
[001301 In some instances, the web server 1024 may format the content using a web language and provide the content to a corresponding client application 1008 for processing and/or rendering to the user for display. The web server 1024 may be coupled to the data stores 1108 to store retrieve, and/or manipulate data stored therein and may be coupled to the scheduler 201 to facilitate its operations. For example, the web server 1024 may allow a user on a client device 1006 to communicate with scheduler 201, the CRNI 158, and/or the other components of the system 100.
[00131] The client application 1008 includes computer logic executable by the processor 1104 on a client device 1006 to provide for user interaction, receive user-input, present information to the user via a display, and send data to and receive data from the other entities of the system 1000 via the network 1002. In some embodiments, the client application 1008 may generate and present user interfaces based at least in part on information received from the enterprise application 1026 and/or the web server 1024 via the network 1002. For .example, a customer/user 1014 may use the client application 1008 to receive the product pages provided by the application server 1022, view various products available online, add products to a virtual cart, purchase products, receive discounts on products, etc. In some embodiments, the client application 1008 includes a web browser and/or code operable therein, a customized client-side application (e.g., a dedicated mobile app), a combination of both, etc.
[001321 As depicted, the computing system 1100 may include a processor 1104, a memory 1106, a communication unit 1102, an output device 1106, an input device 1104, and a data stores 1108, which may be communicatively coupled by a communication bus 1110.
The computing system 1100 depicted in Figure 11 is provided by way of example and it should be understood that it may take other forms and include additional or fewer components without departing from the scope of the present disclosure. For instance, various components of the computing devices may be coupled for communication using a variety of communication protocols and/or technologies including, for instance, communication buses, software communication mechanisms, computer networks, etc. While not shown, the computing system 1100 may include various operating systems, sensors, additional processors, and other physical configurations. The processor 1104, memory 1106, communication unit 1102, etc., are representative of one or more of these components.
[00133] The processor 1104 may execute software instructions by performing various input, logical, and/or mathematical operations. The processor 1104 may have various computing architectures to method data signals (e.g., CISC, RISC, etc.). The processor 1104 may be physical and/or virtual, and may include a single core or plurality of processing units and/or cores. In some embodiments, the processor 1104 may be coupled to the memory 1106 via the bus 1110 to access data and instructions therefrom and store data therein. The bus 1110 may couple the processor 1104 to the other components of the computing system 1100 including, for example, the memory 1106, the communication unit 1102, the input device 1104, the output device 1106, and the data stores 1108.
100134] The memory 1106 may store and provide access to data to the other components of the computing system 1100. The memory 1106 may be included in a single computing device or a plurality of computing devices. In some embodiments, the memory 1106 may store instructions and/or data that may be executed by the processor 1104. For example, the memory 1106 may store one or more of the enteiprise application 1026, the web server 1024, the client application 1008, and their respective components, depending on the configuration. The memory 1106 is also capable of storing other instructions and data, including, for example, an operating system, hardware drivers, other software applications, databases, etc. The memory 1106 may be coupled to the bus 1110 for communication with the processor 1104 and the other components of computing system 1100.
[00135] The memory 1106 may include a non-transitory computer-usable (e.g., readable, writeable, etc.) medium, which can be any non-transitory apparatus or device that can contain, store, communicate, propagate or transport instructions, data, computer programs, software, code, routines, etc., for processing by or in connection with the processor 1104. In some embodimentthe memory 1106 may include one or more of volatile memory and non-volatile memory (e.g., RAM, ROM, hard disk, optical disk, etc.). It should be understood that the memory 1106 may be a single device or may include multiple types of devices and configurations.
[00136] The bus 1110 can include a communication bus for transferring data between components of a computing device or between computing devices, a network bus system including the network 1002 or portions thereof, a processor mesh, a combination thereof, etc.
In some embodiments, the enterprise application 1026, web server 1024, client application 1008, and various other components operating on the computing system/device (operating systems, device drivers, etc.) may cooperate and communicate via a communication mechanism included in or implemented in association with the bus 1110.
The software communication mechanism can include and/or facilitate, for example, inter-method communication, local function or procedure calls, remote procedure calls, an object broker (e.g., CORBA), direct socket communication (e.g., TCP/IP sockets) among software modules, UDP broadcasts and receipts, HTTP connections, etc. Further, any or all of the communication could be secure (e.g., SSH, HTTPS, etc.).
[001371 The communication unit 1102 may include one or more interface devices (I/F) for wired and wireless connectivity among the components of the system 1000.
For instance, the communication unit 1102 may include, but is not limited to, various types known connectivity and interface options. The communication unit 1102 may be coupled to the other components of the computing system 1100 via the bus 1110. The communication unit 1102 can provide other connections to the network 1002 and to other entities of the system 1000 using various standard communication protocols.
[001381 The input device 1104 may include any device for inputting information into the computing system 1100. In some embodiments, the input device 1104 may include one or more peripheral devices. For example, the input device 1104 may include a keyboard, a pointing device, microphone, an image/video capture device (e.g., camera), a touch-screen display integrated with the output device 1106, etc. The output device 1106 may be any device capable of outputting information from the computing system 1100. The output device 1106 may include one or more of a display (LCD, OLED, etc..), a printer, a 3D printer, a haptic device, audio reproduction device, touch-screen display, a remote computing device, etc. In some embodiments, the output device is a display which may display electronic images and data output by a processor of the computing system 1100 for presentation to a user 106, such as the processor 1104 or another dedicated processor.
[00139] The data stores 1108 are information sources for storing and providing access to data. In some embodiments, the data stores 1108 may store data associated with a database management system (DBMS) operable on the computing system 1100. For example, the DBMS could include a structured query language (SQL) DBMS, a NoSQL DMBS, various combinations thereof, etc. In some instances, the DBMS may store data in multi-dimensional tables comprised of rows and columns, and manipulate, e.g., insert, query, update and/or delete, rows of data using programmatic operations.
[00140] The data stored by the data stores 1108 may organized and queried using various criteria including any type of data stored by them, such as a customer identifier, employee identifier, account identifier, IP address, rewards account number, product classification, product identifier, etc_ The data stores 1108 may include data tables, databases, or other organized collections of data. Examples of the types of data stored by the data stores 1108 may include, but are not limited to the data described with respect to Figures 1-2C, for example.
[00141.1 The data stores 1108 may be included in the computing system 1100 or in another computing system and/or storage system distinct from but coupled to or accessible by the computing system 1100. The data stores 1108 can include one or more non-transitory computer-readable mediums for storing the data. In some embodiments, the data stores 1108 may be incorporated with the memory 1106 or may be distinct therefrom.
[001421 The components 1008, 1024, 1026, 200, 201, 202, and/or 203 may be communicatively coupled by the bus 1110 and/or the processor 1104 to one another and/or the other components 1102, 1106, 1108, 1114, and 1116 of the computing system 1100. In some embodiments, the components 1008, 1024, 1026, 200, 201, 202, and/or 203 may include computer logic (e.g., software logic, hardware logic, etc.) executable by the processor 1104 to provide their acts and/or functionality. In any of the foregoing embodiments, these components 1008, 1024, 1026, 200, 201, 202, and/or 203 may be adapted for cooperation and communication with the processor 1104 and the other components of the computing system 1100.
[001431 In the above description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure.
However, it should be understood that the technology described herein can be practiced without these specific details. Further, various systems, devices, and structures are shown in block diagram form in order to avoid obscuring the description. For instance, various embodiments are described as having particular hardware, software, and user interfaces.
However, the present disclosure applies to any type of computing device that can receive data and commands, and to any peripheral devices providing services.
1001441 In some instances, various embodiments may be presented herein in terms of algorithms and symbolic representations of operations on data bits within a computer memory. An algorithm is here, and generally, conceived to be a self-consistent set of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[001451 To ease description, some elements of the system 100 and/or the methods are referred to using the labels first, second, third, etc. These labels are intended to help to distinguish the elements but do not necessarily imply any particular order or ranking unless indicated otherwise.
1001461 It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout this disclosure, discussions utilizing terms including "processing," "computing," "calculating," "determining,"
"displaying," or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
[001471 Various embodiments described herein may relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the A CI
required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, including, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memories including USB keys with non-volatile memory or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
[00148] The technology described herein can take the form of an entirely hardware embodiment, an entirely software embodiment, or embodiments containing both hardware and software elements. For instance, the technology may be implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the technology can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any non-transitory storage apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
[00149] A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories that provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input or I/0 devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
hi [00150] Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems, storage devices, remote printers, etc., through intervening private and/or public networks.
Wireless (e.g., Wi-FiTm) transceivers, Ethernet adapters, and Modems, are just a few examples of network adapters. The private and public networks may have any number of configurations and/or topologies. Data may be transmitted between these devices via the networks using a variety of different communication protocols including, for example, various Internet layer, transport layer, or application layer protocols. For example, data may be transmitted via the networks using transmission control protocol / Internet protocol (TCP/IP), user datagram protocol (UDP), transmission control protocol (TCP), hypertext transfer protocol (HTTP), secure hypertext transfer protocol (HTTPS), dynamic adaptive streaming over HTTP
(DASH), real-time streaming protocol (RTSP), real-time transport protocol (RTP) and the real-time transport control protocol (RTCP), voice over Internet protocol (VOIP), file transfer protocol (FTP), WebSocket (WS), wireless access protocol (WAP), various messaging protocols (SMS, MMS, XMS, IMAP, SMTP, POP, WebDAV, etc.), or other known protocols.
1001511 Finally, the structure, algorithms, and/or interfaces presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method blocks.
The required structure for a variety of these systems will appear from the description above.
In addition, the specification is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the specification as described herein.
[001521 The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the specification to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. As will be understood by those familiar with the art, the specification may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, routines, features, attributes, methodologies and other aspects are not mandatory or significant, and the mechanisms that implement the specification or its features may have different names, divisions and/or formats.
Furthermore, the modules, routines, features, attributes, methodologies and other aspects of the disclosure can be implemented as software, hardware, firmware, or any combination of -the foregoing. Also, wherever a component, an example of which is a module, of the specification is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future. Additionally, the disclosure is in no way limited to implementation in any specific programming language, or for any specific operating system or environment.
6010-571 21940077 73 610 1 12.39 170.52 7 _ 2 2 3 GOLD-571 23732704 167 510 20 99.8 209.25 1 1 2 6 1 1 [00621 The scheduler 201 is executable to generate a schedule for each registered stakeholder (e.g., account manager). The scheduler 201 includes the schedule module 118, the config data store 156, the priority classes data store 154, and the schedule data store 152.
The schedule module 118 is executable to generate a schedule including ranked list(s) of customer identifiers for each stakeholder. The schedule module 118 stores the data generated by it into the schedule data store 152 and/or provides it to another module, such as the III
module 148.
.._ 10063] The schedule module 118 can evaluate the cycle of purchasing by each customer identifier (representing a customer) to determine optimal timing for contacting a certain customer. A customer may be contacted via a variety of means, include by phone, via electronic message (e.g., email, chat, SMS, etc.), etc. In some embodiments, the scheduler 188 can evaluate historical data associated with each customer identifier including frequency of the purchases associated with the customer identifier.
[00641 The schedule module 118 generates, for each stakeholder identifier, a schedule describing ranked list of customer identifiers based on the top scores 144.
The schedule module 118 may retrieve data about the customer identifiers (e.g., accounts) and the stakeholder identifier (e.g., profile) from the CRM 158. In some embodiments, the schedule module 118 retrieves aggregated transactional data for browse, retail and phone channels from one or more information sources, such as the data store 114 and 106, for example. The schedule module 118 may prune the data retrieved by it to remove noise, outliers, etc.
100651 In some embodiments, the schedule module 118 determines a cadence for each customer identifier/account. For instance, for each account, the schedule module 118 may determine visit, purchase and revenue cadence scores, and then combine the three scores to an overall cadence score using a sigmoidal function, as discussed elsewhere herein.
Operations for computing cadence scores and selecting customer identifiers based there is discussed elsewhere herein, such as with respect to Figure 8.
[0066] The schedule module 118 may determine the schedulable accounts for each stakeholder identifier (e.g., account manager) based on customer rules retrieved from the customer rules data store 134. The customer rules may define the business rules unique to each customer account and the schedule module 118 may apply the rules to generate the schedule for a given account manager. By way of example, for each account manager, the schedule module 118 may generate and provide a list of accounts including one or more of a first segment of accounts determined based on the top scores generated by the priority module 142, and a second segment of accounts determined based on the cadence scores. In implementations involving both segments, the schedule module 118 may selects a first set of customers based on priority and a second set of customers from the multiplicity of the - customers based on one or more of a visit cadence score, a purchase cadence score, and a revenue cadence score and injects the second set of customers into the schedule, which includes the first set of customers. In further example, the schedule module 118 may interweave the segments based on one or more rule and cadence strategies.
[0067] By way of further example and not limitation, the business needs of a merchant may drive the persuasion of specific products with potential customers. The scheduler 201 is configured to provide curated lists of customers to for display on client devices of account managers. The curated lists are generated to include customers with the highest propensity to satisfy the particular business need (e.g., purchase products from certain product classes, etc.). For instance, assume the current business need is to sell furniture products for next 8 weeks.
100681 The schedule module 118 may execute the following sequential process to identify the customers with a persuasion toward furniture. A list of classes for furniture (for that matter any business need) is input by and received from stakeholders. For instance, using a corresponding interface, a manager may input the furniture product classes that should be promoted. The scheduler 201 will retrieve and rank customer identifiers associated with 1) the product classes; and 2) the highest scores for the product classes. The output of this processing (e.g., customer ID, class ID, and rank score) is fed to a scheduling algorithm of the schedule module 118, which evaluates the purchase and browsing cadence of the customers, and generates the schedule (e.g., appropriate list) of customers, which is formatted and/or transmitted by the UI module 148 to the client device of each of the account managers.
In some instances, a schedule may be transmitted upon receiving a schedule request, may be transmitted upon login into an account manager system portal, may be transmitted via electronic message according to a certain schedule (e.g., on a daily basis), etc.
[0069] In some embodiments, the schedule (e.g., including the customer list) provided to a given stakeholder (e.g., account manager) may contain the customers already considered for the business need at the top (considered list) followed by a list of customers (consolidated list) being pursued for the business need based on priority (selected from high rank, about to purchase, intent shown through browsing, and falling-off curve). In some instances, various business needs are cyclically pursued and the system 100 updates data of the mapping on a regular basis for use by the scheduler 118.
[0070] The Ul module 148 receives and replies to content requests. The Ul module 148 may retrieve schedule data generated by the schedule module 118, retrieve data from the SKU data store 150, prepare the schedule customized for a given stakeholder based on the retrieved data, and transmit the schedule to the client device of the stakeholder for display.
[0071] In some embodiments, the UT module 148 is associated with a web server, such as the web server 1024 depicted in Figures 10 and 11. The UI module may provide data forming an account manager portal associated with the CRM 158. In this embodiment, stakeholders can use the account manager portal for customer reach-out and follow-up with prescriptions for products and predictions of particular business group progressions. In some further embodiments, a stakeholder may use the account manager portal to access other data associated with a given customer or customer order, such as the date of purchase, customer ID, order number, SKU's in the Order, revenue from the order, revenue from individual SKUs, coupons/discounts applied to individual SKUs, coupons/discounts applied to the order, discounted or free product attached to purchase of another product, etc.
[00721 It should be understood that the UI module 148 may embody other communication platforms, such as a messaging or data service (e.g., email, SMS, chat, API, etc.). For instance, the UI module 148 or another component of the system (e.g., the scheduler 201) may manager and triggering targeted electronic notifications (e.g., email, SMS, social media, etc.) with product recommendations to the high-value customers in the schedule data at an effective adaptable frequency.
44- .
[0073] In some embodiments, the data presented to a given account manager has been aggregated within a particular timefi-ame (e.g., the past 24 hours), or is real-time or near-real time (e.g., less than an hour old). In some embodiments, the schedule includes 1) products that were previously purchased and 2) products that were not bought but added to cart or not bought but viewed, with hyperlinks selectable to land on the corresponding product pages and make virtual cart additions along with provisions to place orders. Other variations are also possible and contemplated.
[0074] The SKU data store 150 is an information source storing SKU pricing (e.g., pricing for the products, such as the list, discount, and/or dynamic price for each SKU), SKU
categories describe the category(ies) to which a SKU belongs, etc. The categories may be hierarchical in nature, and a give SKU may belong to more than one category.
[00751 The CRM 158 reflects a customer relations management information source storing the accounts and relationships between one or more vendors and/or customers. The CRM 158 may store data associated with sales, marketing, customer service, and technical support. The vendor may employ a plurality of individuals (e.g., account mangers) that are each responsible for managing certain customer accounts. Data reflecting the relationship between the account manager profiles and the profiles of the customer accounts may be stored in the CRM 158.
no [00761 Figures 2A-2B are data flow diagrams of the example system 100, and Figure 3C is a code dependency diagram of the example system 100. As shown in Figure 2A, the aggregator 202 may retrieve raw browse clickstream data 250 describing user interactions with a virtual marketplace, rewards direct purchased items describing products purchased by customers by phone, rewards retail purchase items describing products purchased by customers in-store, and orris purchased items describing products process by the order management system associated with the virtual marketplace.
[00771 The aggregator 202 processes this data into aggregated browse clickstream data 258 and CRM account manager data 260, and stores this data accordingly for use by the browse scoring module as shown in Figure 2B. The aggregator 202 and processes this data outputs config data 262, CRM retail purchase items data 266, CRM oms purchased items data 268, aggregated scheduler browse data 270, priority classes customer data 272, and customer rules data 274, and stores this data accordingly for use by the other components of the system 100, as shown in Figure 2B.
[0078] Referring to Figure 2B, the browse scoring module 204 receives aggregated browse clickstream data 258 and CRM account manager data 260, the phone scoring module 206 receives oms purchased items data 256, CRM account manager data 260, and the SKU
category data 276, and the retail scoring module 208 receives retail purchased items data 286 and SKU categories data 288. Each of these modules 204, 206, and 208 processes their respective retrieved data and updates the priority considered classes data 278, SKU categories data 276, top scores browse data 280, top scores phone data 282, and/or top scores retail data 284. The priority engine 203 receives and processes this data, and updates config data 262, CRM account manager data 260, CRM retail purchase items data 266, CRM oms purchased items data 268, aggregated scheduler browse data 270, priority classes customer data 272, and/or customer rules data 274. The scheduler receives and uses this data to generate the schedule 290. In some embodiments, the components 250, 252, 254, 256, 258, 260, 262, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, and 290 embody tables that are updated by the aggregator 202, scoring engine 200, priority engine 203, and scheduler 201 based on the operations discussed herein.
[0079] As shown in Figure 2C, the scheduler 201 may include a batch module 214.
The batch module may be dependent upon, and trigger the operation of the aggregator 202, the browse scoring module 204, the phone scoring module 206, the retail scoring module 208, the priority module 210, and the scheduler 212. The browse scoring module 204, the phone scoring module 206, and the retail scoring module 208 may be dependent upon and use the browse rules 216, phone rules 218, and the retail rules 220 to perform their respective operations, as discussed in further detail elsewhere herein.
[0080] The methods 300-900 depicted in Figures 3-9, respectively, are now described. However, it should be understood that the methods 300-900 are provided by way of example, and that variations and combinations of these methods, as well as other methods, are contemplated. For example, in some embodiments, at least a portion of one or more of the methods 300-900 represent various segments of one or more larger methods and may be concatenated or various steps of these methods may be combined to produce other methods which are encompassed by the present disclosure. Additionally, it should be understood that various operations in the methods 300-900 may be iterative, and thus repeated as many times as necessary generate the results described herein. Further the ordering of the operations in the methods 300-900 is provided by way of example and it should be understood that various operations may occur earlier and/or later in the method without departing from the scope thereof.
[0081] Figure 3 is a block diagram of a method 300 for customer reach-out based on a generated schedule. In block 302, the account manager logs into a CRM and in block 204, accesses a call list. Responsive thereto, the method 300 displays the call list in block 306.
The call list reflects the schedule generated using the systems and methods discussed herein.
The call list may include information relating to who, what, where, when, and why a particular customer should be called for a given product or product class.
[0082] In block 308, the method 300 determines whether to call a particular customer from the call list (responsive to. a selection by the account manager). If yes, the method 300 calls the customer in block 310 and the account manager uses the call list for talking points in block 312. In block 314, the method 300 logs the call and the routine ends (e.g., returns to block 308 or another operation; terminates, etc.). If in block the determination is negative, the method 300 receives an account manager's request for more details on customer in block 316. Responsive thereto, the method 300 retrieves company details containing browse and purchase history associated with the customer in block 318, at which point the method 300 determines whether to call the customer in block 320. If the determination is affirmative in block 320, the method 300 proceeds to block 310 and the method 300 proceeds accordingly.
If the determination in block 320 is negative, the method 300 logs notes input by the account manager for a given customer and then ends (e.g., returns to block 308 or another operation, terminates, etc.).
[0083] The method 300 may replicate the data stored in the CRM data store 324 in the scoring and scheduling data store 326. In some embodiments, the scoring and schedule data store 326 reflects the data stores described in Figure 1 with respect to the aggregator 202, the scheduler 201, and/or the scoring engine 200, etc. In addition, data from other external data sources 328 may be aggregated into the scoring and schedule data store 326.
100841 Figure 4 is a flowchart of an example method 400 for generating and providing a schedule.
=
[0085] In block 402, the method 400 retrieves from a data store a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to 1) a customer tier, 2) a product class interacted with by the customer via one or more of an online sales channel, a retail sales channel, and a phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer associated with the customer identifier with the product class via the one or more of the online sales channel, the retail sales channel, and the phone sales channel. Examples of the variables characterizing the interaction of the customer regarding a particular product include browsing for product price, browsing for product features, browsing for product reviews, comparing the product with other products, and/or reviewing product details, etc.
[0086] In block 404, the method 400, generates a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using one or more of predetermined online sales channel rules, predetermined retail sales channel rules, and predetermined phone sales channel rules, respectively, and the plurality of variables. A
further example method for generating the predictive score is described herein with respect to Figure 7.
100871 In block 406, the method 400 selects a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination.
[0088] In block 408, the method 400 generates a schedule for contacting the first set of customers regarding products that the customers of the first set have indicated interest in.
[00891 In block 410, the method 400 provides the schedule to a client device of a stakeholder for use by the stakeholder in contacting the first set of customers regarding potential purchases.
[0090] As discussed elsewhere herein, such as with respect to the aggregator 202, the aggregator 202 may aggregate customer data of a plurality of customers from an online data store reflecting the online sales channel, a retail data store reflecting the retail sales channel, and a call center data store reflecting the phone sales channel and statistically analyze the aggregated customer data of the plurality of customers to determine the multiplicity of customers from the plurality of customers whose interest in products offered by a business merchant fall within a certain interval. Figure 5A is a flowchart of one such example method 500 for aggregating customer data associated with each of a multiplicity of the customers from one or more data stores (e.g., databases, web servers, etc.) storing data related to the online sales channel.
[0091] In block 502, the method 500 retrieves, from one or more data stores, first product identifiers reflecting products purchased by the customer using the online sales channel.
[0092] In block 504, the method 500 retrieves, from the one or more data stores, second product identifiers reflecting products that were added to a virtual cart that was subsequently abandoned without having purchased the one or more products, the virtual cart being associated with the online sales channel.
[00931 In block 506, the method 500 retrieves, from one or more data stores, third product identifiers reflecting product pages of products that were viewed by the customer but were not purchased using the online sales channel.
[0094] In block 508, the method 500 generates an entry for the customer product-class mapping for the customer identifier associated with the customer using product classes associated with the first product identifiers reflecting the products purchased by the customer, the second product identifiers reflecting the products added to the virtual cart, and the third product identifiers reflecting the products that were viewed by the customer but were not purchased; and [0095] In block 510, the method 500 stores the entry in an aggregated data store storing the customer product-class mapping.
[00961 Figure 5B is a flowchart of an example method 550 for aggregating customer data associated with each of a multiplicity of the customers from one or more data stores -(e.g., databases, web servers, etc.) storing data related to the retail and phone sales channels.
[0097] In block 552, the method 550 determines a total number of orders associated with the customer, a number of items included in each of the orders, the revenue generated by each of the orders, the revenue generated by each item included in each of the orders, and/or any discounts applied to each of the orders.
[0098] In block 554, the method 550 generates an entry for the customer product-class mapping for the customer identifier associated with the customer using the total number of orders associated with the customer, the number of items included in each of the orders, the revenue generated by each of the orders, the revenue generated by each item included in each of the orders, and any discounts applied to each of the orders.
[0099] In block 556, the method 550 stores the entry in an aggregated data store storing the customer product-class mapping.
[00100] Figure 6 is a flowchart of an example method 600 for categorizing the multiplicity of customers by each unique product class and customer tier combination.
[00101] In block 602, the method 600 determines product classes for the products associated with the first product identifiers, the second product identifiers, and the third product identifiers. In block 604, the method 600 retrieves customer tier data describing the customer tier of the customer. In block 606, the method categorizes the customer by each unique product class and customer tier combination.
[001021 Figure 7 is a flowchart of an example method 700 for generating a predictive score. In block 702, the method 700 estimates time spent by the customer on each of the plurality of variables associated with a particular product that the customer has indicated interest in using the online sales channel. In block 704, the method 700 allocates weights to the time spent by the customer on each of the plurality of the variables based on the predetermined online sales channel rules. In block 706, the method 700 generates the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class based on the weights allocated to the time spent by the customer on each of the plurality of variables.
[001031 Figure 8 is a flowchart of an example method 800 for providing a customized schedule to a stakeholder.
[001041 In block 802, the method 800 determines, for the customer identifier of each customer of the multiplicity of the customers, a visit cadence score based on a number of visits by the customer to one or more pages of one or more products.
[001051 In block 804, the method 800 determines, for the customer identifier of each customer of the multiplicity of the customers, a purchase cadence score based on product purchase history associated with the customer identifier.
[00106] In block 806, the method 800 determines, for the customer identifier of each customer of the multiplicity of the customers, a revenue cadence score customer cadence score based on amount of revenue generated from purchases by the customer.
[00107] In block 808, the method 800 combines, for the customer identifier of each customer of the multiplicity of the customers, the visit cadence score, the purchase cadence score, and the revenue cadence score into an overall cadence score for the customer identifier.
[00108] In block 810, the method 800 selects a second set of customers from the multiplicity of the customers based on overall cadence scores associated with the second set of customers.
[00109] In block 812, the method 800 injects the second set of customers into the schedule, which includes the first set of customers. In some embodiments, the first set of customers have higher priority than the second set of customers and the schedule is sorted based on the higher priority.
[00110] Figure 9 is a flowchart of an example method 900 for generating a schedule for contacting a high-value subset of customers associated with each stakeholder.
1001111 In block 902, the method 900 registers a plurality of stakeholder accounts for a plurality of stakeholders including the stakeholder. Each stakeholder of the plurality of stakeholders is assigned to a group of customer identifiers associated with customers.
[00112] In block 904, the method 900 selects for each stakeholder account of the plurality, a first subset of customer identifiers from the group of customer identifiers assigned to that stakeholder account based on a predictive score for each unique combination of each customer identifier, customer tier, and product class and a revenue generated from each unique combination. The predictive score is generated using one or more of the predetermined online sales channel rules, the predetermined retail sales channel rules, and the predetermined phone sales channel rules, respectively, and the plurality of variables.
[00113] In block 906, the method 900 selects for each stakeholder account of the plurality, a second subset of customer identifiers from the group of customer identifiers assigned to that stakeholder based on cadence scores associated with the customer identifiers of the second subset.
[00114] In block 908, the method 900 generates, for each stakeholder account of the plurality, a schedule for contacting certain customers of the group of customers associated with the stakeholder account based on a combination of the first subset of customers and the second subset of customers associated with the stakeholder account.
[001151 In block 910, the method 900 provides, to a client device of each stakeholder account of the plurality, the schedule generated for that stakeholder account [001161 Figure 10 is a block diagram of an example system 1000 for large-scale customer-product relationship mapping and contact scheduling. The illustrated system 1000 may include client devices 1006a....1006n (also referred to herein individually and/or collectively as 1006), a third-party server 1018, and an application server 1022, which are electronically communicatively coupled via a network 1002 for interaction with one another, although other system configurations are possible including other devices, systems, and networks. For example, the system 1000 could include any number of client devices 1006, third-party servers 1018, application servers 1022, and other systems and devices.
[001171 The client devices 1006a...1006n, and their components, may be coupled to the network 1002 via signal lines 1012a.. .1012n. The application server 1022 and its components may be coupled to the network 1002 via signal line 1020. The third-party server 1018 and its components may be coupled to the network 1002 via signal line 1016. The users 1014a...1014n may access one or more of the devices of the system 1000.
1001181 The netWork 1002 may include any number of networks and/or network types.
For example, the network 1002 may include, but is not limited to, one or more local area networks (LANs), wide area networks (WANs) (e.g., the Internet), virtual private networks (VPNs), wireless wide area network (WWANs), WiMAX networks, personal area networks (PANs) (e.g., Bluetooth communication networks), various combinations thereof, etc.
These private and/or public networks may have any number of configurations and/or topologies, and data may be transmitted via the networks using a variety of different communication protocols including, for example, various Internet layer, transport layer, or application layer protocols. For example, data may be transmitted via the networks using TCP/IP, UDP, TCP, HTTP, HTTPS, DASH, RTSP, RTP, RTCP, VOIP, FTP, WS, WAP, SMS, MMS, XMS, 11\4AP, SMTP, POP, WebDAV, or other known protocols.
[001191 The client device 1006 includes one or more computing devices having data processing and communication capabilities. The client device 1006 may couple to and communicate with other client devices 1006 and the other entities of the system 1000 via the network 1002 using a wireless and/or wired connection. Examples of client devices 1006 may include, but are not limited to, mobile phones, tablets, laptops, desktops, nctbooks, server appliances, servers, virtual machines, TVs, etc. The system 1000 may include any number of client devices 1006, including client devices of the same or different type.
1001201 A plurality of client devices 1006a... 1006n are depicted in Figure 10 to indicate that the application server 1022 and its components may aggregate information about and provide product suggestions to a multiplicity of users 1014a...1014n on a multiplicity of client devices 1006a... 1006n. In some embodiments, a single user may use more than one client device 1006, which the application server 1022 may track and aggregate interaction data associated with the user through a variety of different channels including online, retail, and phone sales channels, as discussed elsewhere herein.
[00121] The application server 1022 may include a web server 1024 and an enterprise application 1026. hi some configurations, the enterprise application 1026 may be distributed over the network 1002 on disparate devices in disparate locations or may reside on the same locations, in which case the client device 1006a and/or the application server 1022 may each include an instance of the enterprise application 1026 and/or portions thereof. The client devices 1006 may also store and/or operate other software such as a client application 1008, an operating system, other applications, etc., that are configured to interact with the application server 1022 via the network 1002.
[00122] As shown, the enterprise application 1026 may include a scoring engine 200, an aggregator 202, a scheduler 201, and a priority engine 203, which are discussed in further detail elsewhere herein.
[00123] The application server 1022 and the third-party server 1018 have data processing, storing, and communication capabilities, as discussed elsewhere herein. For example, the servers 1022 and/or 1018 may include one or more hardware servers, server arrays, storage devices and/or systems, etc. In some embodiments, the servers 1022 and/or 1018 may include one or more virtual servers, which operate in a host server environment.
[00124] Third-party server 1018 can host services such as a third-party application (not shown), which may be individual and/or incorporated into the services provided by the application server 1022.
[00125] It should be understood that the system 1000 illustrated in Figure 10 is representative of an example system and that a variety of different system environments and configurations are contemplated and are within the scope of the present disclosure. For instance, various acts and/or finictionality may be moved from a server to a client, or vice versa, data may be consolidated into a single data store or further segmented into additional data stores, and some embodiments may include additional or fewer computing devices, services, and/or networks, and may implement various functionality client or server-side.
Further, various entities of the system may be integrated into a single computing device or system or divided into additional computing devices or systems, etc.
[00126] Figure 11 is a block diagram of an example computing system 1100, which may represent the computer architecture of a client device 1006, a third-party server 1018, and/or an application server 1022, as depicted in Figure 10, depending on the implementation.
[001271 As depicted in Figure 11, the computing system 1100 may include an enterprise application 1026, a web server 1024, and a client application 1008, depending on the configuration. For instance, a client device 1006 may include one or more of the client application 1008 (which could incorporate various aspects of the enterprise application 1026 in some embodiments); and the application server 1022 may include the web server 120, the enterprise application 1026, and/or components thereof, although other configurations are also possible and contemplated.
[001281 The enterprise application 1026 includes computer logic executable by the processor 1104 to provide large-scale customer-product relationship mapping and contact scheduling, as discussed elsewhere herein. The enterprise application 1026 is coupled to the data stores 1108 to store, retrieve, and/or manipulate data stored therein and may be coupled to the web server 1024, the client application 1008, and/or other components of the system 100 to exchange information therewith. In the depicted embodiment, the enterprise application 1026 includes the scoring engine 200, the scheduler 201, the aggregator 202, and the priority engine 203.
[001291 The web server 1024 includes computer logic executable by the processor 1104 to methods content requests. The web server 1024 may include an HTTP
server, a REST (representational state transfer) service, or other suitable server type.
The web server 1024 may receive content requests (e.g., product search requests, HTTP
requests) from client devices 1006, cooperate with the enterprise application 1026 to determine the content, retrieve and incorporate data from the data stores 1108, format the content, and provide the content to the client devices. In some embodiments, the web server 1024 includes the Ul prep module 146 and the UI module 148, although other configurations are also possible and contemplated.
A
[001301 In some instances, the web server 1024 may format the content using a web language and provide the content to a corresponding client application 1008 for processing and/or rendering to the user for display. The web server 1024 may be coupled to the data stores 1108 to store retrieve, and/or manipulate data stored therein and may be coupled to the scheduler 201 to facilitate its operations. For example, the web server 1024 may allow a user on a client device 1006 to communicate with scheduler 201, the CRNI 158, and/or the other components of the system 100.
[00131] The client application 1008 includes computer logic executable by the processor 1104 on a client device 1006 to provide for user interaction, receive user-input, present information to the user via a display, and send data to and receive data from the other entities of the system 1000 via the network 1002. In some embodiments, the client application 1008 may generate and present user interfaces based at least in part on information received from the enterprise application 1026 and/or the web server 1024 via the network 1002. For .example, a customer/user 1014 may use the client application 1008 to receive the product pages provided by the application server 1022, view various products available online, add products to a virtual cart, purchase products, receive discounts on products, etc. In some embodiments, the client application 1008 includes a web browser and/or code operable therein, a customized client-side application (e.g., a dedicated mobile app), a combination of both, etc.
[001321 As depicted, the computing system 1100 may include a processor 1104, a memory 1106, a communication unit 1102, an output device 1106, an input device 1104, and a data stores 1108, which may be communicatively coupled by a communication bus 1110.
The computing system 1100 depicted in Figure 11 is provided by way of example and it should be understood that it may take other forms and include additional or fewer components without departing from the scope of the present disclosure. For instance, various components of the computing devices may be coupled for communication using a variety of communication protocols and/or technologies including, for instance, communication buses, software communication mechanisms, computer networks, etc. While not shown, the computing system 1100 may include various operating systems, sensors, additional processors, and other physical configurations. The processor 1104, memory 1106, communication unit 1102, etc., are representative of one or more of these components.
[00133] The processor 1104 may execute software instructions by performing various input, logical, and/or mathematical operations. The processor 1104 may have various computing architectures to method data signals (e.g., CISC, RISC, etc.). The processor 1104 may be physical and/or virtual, and may include a single core or plurality of processing units and/or cores. In some embodiments, the processor 1104 may be coupled to the memory 1106 via the bus 1110 to access data and instructions therefrom and store data therein. The bus 1110 may couple the processor 1104 to the other components of the computing system 1100 including, for example, the memory 1106, the communication unit 1102, the input device 1104, the output device 1106, and the data stores 1108.
100134] The memory 1106 may store and provide access to data to the other components of the computing system 1100. The memory 1106 may be included in a single computing device or a plurality of computing devices. In some embodiments, the memory 1106 may store instructions and/or data that may be executed by the processor 1104. For example, the memory 1106 may store one or more of the enteiprise application 1026, the web server 1024, the client application 1008, and their respective components, depending on the configuration. The memory 1106 is also capable of storing other instructions and data, including, for example, an operating system, hardware drivers, other software applications, databases, etc. The memory 1106 may be coupled to the bus 1110 for communication with the processor 1104 and the other components of computing system 1100.
[00135] The memory 1106 may include a non-transitory computer-usable (e.g., readable, writeable, etc.) medium, which can be any non-transitory apparatus or device that can contain, store, communicate, propagate or transport instructions, data, computer programs, software, code, routines, etc., for processing by or in connection with the processor 1104. In some embodimentthe memory 1106 may include one or more of volatile memory and non-volatile memory (e.g., RAM, ROM, hard disk, optical disk, etc.). It should be understood that the memory 1106 may be a single device or may include multiple types of devices and configurations.
[00136] The bus 1110 can include a communication bus for transferring data between components of a computing device or between computing devices, a network bus system including the network 1002 or portions thereof, a processor mesh, a combination thereof, etc.
In some embodiments, the enterprise application 1026, web server 1024, client application 1008, and various other components operating on the computing system/device (operating systems, device drivers, etc.) may cooperate and communicate via a communication mechanism included in or implemented in association with the bus 1110.
The software communication mechanism can include and/or facilitate, for example, inter-method communication, local function or procedure calls, remote procedure calls, an object broker (e.g., CORBA), direct socket communication (e.g., TCP/IP sockets) among software modules, UDP broadcasts and receipts, HTTP connections, etc. Further, any or all of the communication could be secure (e.g., SSH, HTTPS, etc.).
[001371 The communication unit 1102 may include one or more interface devices (I/F) for wired and wireless connectivity among the components of the system 1000.
For instance, the communication unit 1102 may include, but is not limited to, various types known connectivity and interface options. The communication unit 1102 may be coupled to the other components of the computing system 1100 via the bus 1110. The communication unit 1102 can provide other connections to the network 1002 and to other entities of the system 1000 using various standard communication protocols.
[001381 The input device 1104 may include any device for inputting information into the computing system 1100. In some embodiments, the input device 1104 may include one or more peripheral devices. For example, the input device 1104 may include a keyboard, a pointing device, microphone, an image/video capture device (e.g., camera), a touch-screen display integrated with the output device 1106, etc. The output device 1106 may be any device capable of outputting information from the computing system 1100. The output device 1106 may include one or more of a display (LCD, OLED, etc..), a printer, a 3D printer, a haptic device, audio reproduction device, touch-screen display, a remote computing device, etc. In some embodiments, the output device is a display which may display electronic images and data output by a processor of the computing system 1100 for presentation to a user 106, such as the processor 1104 or another dedicated processor.
[00139] The data stores 1108 are information sources for storing and providing access to data. In some embodiments, the data stores 1108 may store data associated with a database management system (DBMS) operable on the computing system 1100. For example, the DBMS could include a structured query language (SQL) DBMS, a NoSQL DMBS, various combinations thereof, etc. In some instances, the DBMS may store data in multi-dimensional tables comprised of rows and columns, and manipulate, e.g., insert, query, update and/or delete, rows of data using programmatic operations.
[00140] The data stored by the data stores 1108 may organized and queried using various criteria including any type of data stored by them, such as a customer identifier, employee identifier, account identifier, IP address, rewards account number, product classification, product identifier, etc_ The data stores 1108 may include data tables, databases, or other organized collections of data. Examples of the types of data stored by the data stores 1108 may include, but are not limited to the data described with respect to Figures 1-2C, for example.
[00141.1 The data stores 1108 may be included in the computing system 1100 or in another computing system and/or storage system distinct from but coupled to or accessible by the computing system 1100. The data stores 1108 can include one or more non-transitory computer-readable mediums for storing the data. In some embodiments, the data stores 1108 may be incorporated with the memory 1106 or may be distinct therefrom.
[001421 The components 1008, 1024, 1026, 200, 201, 202, and/or 203 may be communicatively coupled by the bus 1110 and/or the processor 1104 to one another and/or the other components 1102, 1106, 1108, 1114, and 1116 of the computing system 1100. In some embodiments, the components 1008, 1024, 1026, 200, 201, 202, and/or 203 may include computer logic (e.g., software logic, hardware logic, etc.) executable by the processor 1104 to provide their acts and/or functionality. In any of the foregoing embodiments, these components 1008, 1024, 1026, 200, 201, 202, and/or 203 may be adapted for cooperation and communication with the processor 1104 and the other components of the computing system 1100.
[001431 In the above description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure.
However, it should be understood that the technology described herein can be practiced without these specific details. Further, various systems, devices, and structures are shown in block diagram form in order to avoid obscuring the description. For instance, various embodiments are described as having particular hardware, software, and user interfaces.
However, the present disclosure applies to any type of computing device that can receive data and commands, and to any peripheral devices providing services.
1001441 In some instances, various embodiments may be presented herein in terms of algorithms and symbolic representations of operations on data bits within a computer memory. An algorithm is here, and generally, conceived to be a self-consistent set of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[001451 To ease description, some elements of the system 100 and/or the methods are referred to using the labels first, second, third, etc. These labels are intended to help to distinguish the elements but do not necessarily imply any particular order or ranking unless indicated otherwise.
1001461 It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout this disclosure, discussions utilizing terms including "processing," "computing," "calculating," "determining,"
"displaying," or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
[001471 Various embodiments described herein may relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the A CI
required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, including, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memories including USB keys with non-volatile memory or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
[00148] The technology described herein can take the form of an entirely hardware embodiment, an entirely software embodiment, or embodiments containing both hardware and software elements. For instance, the technology may be implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the technology can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any non-transitory storage apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
[00149] A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories that provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input or I/0 devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
hi [00150] Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems, storage devices, remote printers, etc., through intervening private and/or public networks.
Wireless (e.g., Wi-FiTm) transceivers, Ethernet adapters, and Modems, are just a few examples of network adapters. The private and public networks may have any number of configurations and/or topologies. Data may be transmitted between these devices via the networks using a variety of different communication protocols including, for example, various Internet layer, transport layer, or application layer protocols. For example, data may be transmitted via the networks using transmission control protocol / Internet protocol (TCP/IP), user datagram protocol (UDP), transmission control protocol (TCP), hypertext transfer protocol (HTTP), secure hypertext transfer protocol (HTTPS), dynamic adaptive streaming over HTTP
(DASH), real-time streaming protocol (RTSP), real-time transport protocol (RTP) and the real-time transport control protocol (RTCP), voice over Internet protocol (VOIP), file transfer protocol (FTP), WebSocket (WS), wireless access protocol (WAP), various messaging protocols (SMS, MMS, XMS, IMAP, SMTP, POP, WebDAV, etc.), or other known protocols.
1001511 Finally, the structure, algorithms, and/or interfaces presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method blocks.
The required structure for a variety of these systems will appear from the description above.
In addition, the specification is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the specification as described herein.
[001521 The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the specification to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. As will be understood by those familiar with the art, the specification may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, routines, features, attributes, methodologies and other aspects are not mandatory or significant, and the mechanisms that implement the specification or its features may have different names, divisions and/or formats.
Furthermore, the modules, routines, features, attributes, methodologies and other aspects of the disclosure can be implemented as software, hardware, firmware, or any combination of -the foregoing. Also, wherever a component, an example of which is a module, of the specification is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future. Additionally, the disclosure is in no way limited to implementation in any specific programming language, or for any specific operating system or environment.
Claims (22)
1. A computer-implemented method comprising:
retrieving from a data store a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to 1) a customer tier, 2) a product class interacted with by the customer via one or more of an online sales channel, a retail sales channel, and a phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer associated with the customer identifier with the product class via the one or more of the online sales channel, the retail sales channel, and the phone sales channel;
generating a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using one or more of predetermined online sales channel rules, predetermined retail sales channel rules, and predetermined phone sales channel rules, respectively, and the plurality of variables;
selecting a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination;
generating a schedule for contacting the first set of customers based on one or more of the predictive score and the revenue; and providing the schedule to a client device of a stakeholder for use by the stakeholder in contacting the first set of customers.
retrieving from a data store a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to 1) a customer tier, 2) a product class interacted with by the customer via one or more of an online sales channel, a retail sales channel, and a phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer associated with the customer identifier with the product class via the one or more of the online sales channel, the retail sales channel, and the phone sales channel;
generating a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using one or more of predetermined online sales channel rules, predetermined retail sales channel rules, and predetermined phone sales channel rules, respectively, and the plurality of variables;
selecting a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination;
generating a schedule for contacting the first set of customers based on one or more of the predictive score and the revenue; and providing the schedule to a client device of a stakeholder for use by the stakeholder in contacting the first set of customers.
2. The computer-implemented method of Claim 1, further comprising aggregating customer data associated with each customer of the multiplicity of the customers from one or more data stores storing data related to the online sales channel by:
retrieving, from the one or more data stores, first product identifiers reflecting products purchased by the customer using the online sales channel;
retrieving, from the one or more data stores, second product identifiers reflecting products that were added to a virtual cart that was subsequently abandoned without having purchased the one or more products, the virtual cart being associated with the online sales channel;
retrieving, from one or more data stores, third product identifiers reflecting product pages of products that were viewed by the customer but were not purchased using the online sales channel;
generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the first product identifiers reflecting the products purchased by the customer, the second product identifiers reflecting the products added to the virtual cart, and the third product identifiers reflecting the products that were viewed by the customer but were not purchased; and storing the entry in an aggregated data store storing the customer product-class mapping.
retrieving, from the one or more data stores, first product identifiers reflecting products purchased by the customer using the online sales channel;
retrieving, from the one or more data stores, second product identifiers reflecting products that were added to a virtual cart that was subsequently abandoned without having purchased the one or more products, the virtual cart being associated with the online sales channel;
retrieving, from one or more data stores, third product identifiers reflecting product pages of products that were viewed by the customer but were not purchased using the online sales channel;
generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the first product identifiers reflecting the products purchased by the customer, the second product identifiers reflecting the products added to the virtual cart, and the third product identifiers reflecting the products that were viewed by the customer but were not purchased; and storing the entry in an aggregated data store storing the customer product-class mapping.
3. The computer-implemented method of Claim 2, further comprising:
determining product classes for the products associated with the first product identifiers, the second product identifiers, and the third product identifiers;
retrieving customer tier data describing the customer tier of the customer;
and categorizing the customer by each unique product class and customer tier combination.
determining product classes for the products associated with the first product identifiers, the second product identifiers, and the third product identifiers;
retrieving customer tier data describing the customer tier of the customer;
and categorizing the customer by each unique product class and customer tier combination.
4. The computer-implemented method of Claim 1, wherein the plurality of variables characterizing the interaction of the customer regarding a particular product includes one or more of browsing for product price, browsing for product features, browsing for product reviews, comparing the product with other products, and reviewing product details.
5. The computer-implemented method of Claim 1, wherein generating the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class using the predetermined online sales channel rules and the plurality of variables comprises:
estimating time spent by the customer on each of the plurality of variables associated with a particular product that the customer has indicated interest in using the online sales channel;
allocating weights to the time spent by the customer on each of the plurality of the variables based on the predetermined online sales channel rules; and generating the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class based on the weights allocated to the time spent by the customer on each of the plurality of variables.
estimating time spent by the customer on each of the plurality of variables associated with a particular product that the customer has indicated interest in using the online sales channel;
allocating weights to the time spent by the customer on each of the plurality of the variables based on the predetermined online sales channel rules; and generating the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class based on the weights allocated to the time spent by the customer on each of the plurality of variables.
6. The computer-implemented method of Claim 1, further comprising:
determining, for the customer identifier of each customer of the multiplicity of the customers, a visit cadence score based on a number of visits by the customer to one or more pages of one or more products;
determining, for the customer identifier of cach customer of the multiplicity of the customers, a purchase cadence score based on product purchase history associated with the customer identifier;
determining, for the customer identifier of each customer of the multiplicity of the customers, a revenue cadence score customer cadence score based on amount of revenue generated from purchases by the customer;
combining, for the customer identifier of each customer of the multiplicity of the customers, the visit cadence score, the purchase cadence score, and the revenue cadence score into an overall cadence score for the customer identifier;
selecting a second set of customers from the multiplicity of the customers based on overall cadence scores associated with the second set of customers; and injecting the second set of customers into the schedule, which includes the first set of customers.
determining, for the customer identifier of each customer of the multiplicity of the customers, a visit cadence score based on a number of visits by the customer to one or more pages of one or more products;
determining, for the customer identifier of cach customer of the multiplicity of the customers, a purchase cadence score based on product purchase history associated with the customer identifier;
determining, for the customer identifier of each customer of the multiplicity of the customers, a revenue cadence score customer cadence score based on amount of revenue generated from purchases by the customer;
combining, for the customer identifier of each customer of the multiplicity of the customers, the visit cadence score, the purchase cadence score, and the revenue cadence score into an overall cadence score for the customer identifier;
selecting a second set of customers from the multiplicity of the customers based on overall cadence scores associated with the second set of customers; and injecting the second set of customers into the schedule, which includes the first set of customers.
7. The computer-implemented method of Claim 1, further comprising:
selecting a second set of customers from the multiplicity of the customers based on one or more of a visit cadence score, a purchase cadence score, and a revenue cadence score; and injecting the second set of customers into the schedule, which includes the first set of customers.
selecting a second set of customers from the multiplicity of the customers based on one or more of a visit cadence score, a purchase cadence score, and a revenue cadence score; and injecting the second set of customers into the schedule, which includes the first set of customers.
8. The computer-implemented method of Claim 7, wherein the first set of customers have higher priority than the second set of customers and the schedule is sorted based on the higher priority.
9. The computer-implemented method of Claim 1, further comprising:
registering a plurality of stakeholder accounts for a plurality of stakeholders including the stakeholder, each stakeholder of the plurality of stakehoklers being assigned to a group of customer identifiers associated with customers;
selecting for each stakeholder account of the plurality, a first subset of customer identifiers from the group of customer identifiers assigned to that stakeholder account based on 1) a predictive score for each unique combination of each customer identifier, customer tier, and product class using one or more of the predetermined online sales channel rules, the predetermined retail sales channel rules, and the predetermined phone sales channel rules, respectively, and the plurality of variables, and 2) a revenue generated from each unique combination, wherein selecting includes selecting the first set of customers from the multiplicity of the customers based on the predictive score and the revenue generated from the each unique combination; and selecting for each stakeholder account of the plurality, a second subset of customers identifiers from the group of customer identifiers assigned to that stakeholder based on cadence scores associated with the customer identifiers of the second subset;
generating, for each stakeholder account of the plurality, a schedule for contacting certain customers of the group of customers associated with the stakeholder account based on a combination of the first subset of customers and the second subset of customers associated with the stakeholder account; and providing, to a client device of each stakeholder account of the plurality, the schedule generated for that stakeholder account.
registering a plurality of stakeholder accounts for a plurality of stakeholders including the stakeholder, each stakeholder of the plurality of stakehoklers being assigned to a group of customer identifiers associated with customers;
selecting for each stakeholder account of the plurality, a first subset of customer identifiers from the group of customer identifiers assigned to that stakeholder account based on 1) a predictive score for each unique combination of each customer identifier, customer tier, and product class using one or more of the predetermined online sales channel rules, the predetermined retail sales channel rules, and the predetermined phone sales channel rules, respectively, and the plurality of variables, and 2) a revenue generated from each unique combination, wherein selecting includes selecting the first set of customers from the multiplicity of the customers based on the predictive score and the revenue generated from the each unique combination; and selecting for each stakeholder account of the plurality, a second subset of customers identifiers from the group of customer identifiers assigned to that stakeholder based on cadence scores associated with the customer identifiers of the second subset;
generating, for each stakeholder account of the plurality, a schedule for contacting certain customers of the group of customers associated with the stakeholder account based on a combination of the first subset of customers and the second subset of customers associated with the stakeholder account; and providing, to a client device of each stakeholder account of the plurality, the schedule generated for that stakeholder account.
10. The computer-implemented method of Claim 1, further comprising:
aggregating customer data of a plurality of customers from an online data store reflecting the online sales channel, a retail data store reflecting the retail sales channel, and a call center data store reflecting the phone sales channel; and statistically analyzing the aggregated customer data of the plurality of customers to determine the multiplicity of customers from the plurality of customers whose interest in products offered by a business merchant fall within a certain interval.
aggregating customer data of a plurality of customers from an online data store reflecting the online sales channel, a retail data store reflecting the retail sales channel, and a call center data store reflecting the phone sales channel; and statistically analyzing the aggregated customer data of the plurality of customers to determine the multiplicity of customers from the plurality of customers whose interest in products offered by a business merchant fall within a certain interval.
11. The computer-implemented method of Claim 1, further comprising aggregating customer data associated with each customer of the multiplicity of the customers from one or more data stores storing data related to the retail sales channel and the phone sales channel by:
determining a total number of orders associated with the customer;
determining a number of items included in each of the orders;
determining revenue generated by each of the orders;
determining revenue generated by each item included in each of the orders;
determining any discounts applied to each of the orders;
generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the total number of orders associated with the customer, the number of items included in each of the orders, the revenue generated by each of the orders, the revenue generated by each item included in each of the orders, and any discounts applied to each of the orders; and storing the entry in an aggregated data store storing the customer product-class mapping.
determining a total number of orders associated with the customer;
determining a number of items included in each of the orders;
determining revenue generated by each of the orders;
determining revenue generated by each item included in each of the orders;
determining any discounts applied to each of the orders;
generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the total number of orders associated with the customer, the number of items included in each of the orders, the revenue generated by each of the orders, the revenue generated by each item included in each of the orders, and any discounts applied to each of the orders; and storing the entry in an aggregated data store storing the customer product-class mapping.
12. A computer system comprising:
one or more computer processors;
one or more computer memories storing instructions that, when executed by the one or more computer processors, cause the computer system to perform operations including:
retrieving from a data store a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to 1) a customer tier, 2) a product class interacted with by the customer via one or more of an online sales channel, a retail sales channel, and a phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer associated with the customer identifier with the product class via the one or more of the online sales channel, the retail sales channel, and the phone sales channel;
generating a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using one or more of predetermined online sales channel rules, predetermined retail sales channel rules, and predetermined phone sales channel rules, respectively, and the plurality of variables;
selecting a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination;
generating a schedule for contacting the first set of customers; and providing the schedule to a client device of a stakeholder for use by the stakeholder in contacting the first set of customers
one or more computer processors;
one or more computer memories storing instructions that, when executed by the one or more computer processors, cause the computer system to perform operations including:
retrieving from a data store a customer product-class mapping that maps a customer identifier of each of a multiplicity of customers to 1) a customer tier, 2) a product class interacted with by the customer via one or more of an online sales channel, a retail sales channel, and a phone sales channel, and 3) a plurality of variables characterizing an interaction of the customer associated with the customer identifier with the product class via the one or more of the online sales channel, the retail sales channel, and the phone sales channel;
generating a predictive score for each unique combination of the customer identifier, the customer tier, and the product class using one or more of predetermined online sales channel rules, predetermined retail sales channel rules, and predetermined phone sales channel rules, respectively, and the plurality of variables;
selecting a first set of customers from the multiplicity of the customers based on the predictive score and a revenue generated from the each unique combination;
generating a schedule for contacting the first set of customers; and providing the schedule to a client device of a stakeholder for use by the stakeholder in contacting the first set of customers
13. The computer system of Claim 12, wherein the operations further include aggregating customer data associated with each customer of the multiplicity of the customers from one or more data stores storing data related to the online sales channel by:
retrieving, from the one or more data stores, first product identifiers reflecting products purchased by the customer using the online sales channel;
retrieving, from the one or more data stores, second product identifiers reflecting products that were added to a virtual cart that was subsequently abandoned without having purchased the one or more products, the virtual cart being associated with the online sales channel;
retrieving, from one or more data stores, third product identifiers reflecting product pages of products that were viewed by the customer but were not purchased using the online sales channel;
generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the first product identifiers reflecting the products purchased by the customer, the second product identifiers reflecting the products added to the virtual cart, and the third product identifiers reflecting the products that were viewed by the customer but were not purchased; and storing the entry in an aggregated data store storing the customer product-class mapping.
retrieving, from the one or more data stores, first product identifiers reflecting products purchased by the customer using the online sales channel;
retrieving, from the one or more data stores, second product identifiers reflecting products that were added to a virtual cart that was subsequently abandoned without having purchased the one or more products, the virtual cart being associated with the online sales channel;
retrieving, from one or more data stores, third product identifiers reflecting product pages of products that were viewed by the customer but were not purchased using the online sales channel;
generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the first product identifiers reflecting the products purchased by the customer, the second product identifiers reflecting the products added to the virtual cart, and the third product identifiers reflecting the products that were viewed by the customer but were not purchased; and storing the entry in an aggregated data store storing the customer product-class mapping.
14. The computer system of Claim 12, wherein the operations further include:
determining product classes for the products associated with the first product identifiers, the second product identifiers, and the third product identifiers;
retrieving customer tier data describing the customer tier of the customer;
and categorizing the customer by each unique product class and customer tier combination.
determining product classes for the products associated with the first product identifiers, the second product identifiers, and the third product identifiers;
retrieving customer tier data describing the customer tier of the customer;
and categorizing the customer by each unique product class and customer tier combination.
15. The computer system of Claim 12, wherein the plurality of variables characterizing the interaction of the customer regarding a particular product includes one or more of browsing for product price, browsing for product features, browsing for product reviews, comparing the product with other products, and reviewing product details.
16. The computer system of Claim 12, wherein generating the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class using the predetermined online sales channel rules and the plurality of variables comprises:
estimating time spent by the customer on each of the plurality of variables associated with a particular product that the customer has indicated interest in using the online sales channel;
allocating weights to the time spent by the customer on each of the plurality of the variables based on the predetermined online sales channel rules; and generating the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class based on the weights allocated to the time spent by the customer on each of the plurality of variables.
estimating time spent by the customer on each of the plurality of variables associated with a particular product that the customer has indicated interest in using the online sales channel;
allocating weights to the time spent by the customer on each of the plurality of the variables based on the predetermined online sales channel rules; and generating the predictive score for the each unique combination of the customer identifier, the customer tier, and the product class based on the weights allocated to the time spent by the customer on each of the plurality of variables.
17. The computer system of Claim 12, wherein the operations further include:
determining, for the customer identifier of each customer of the multiplicity of the customers, a visit cadence score based on a number of visits by the customer to one or more pages of one or more products;
determining, for the customer identifier of each customer of the multiplicity of the customers, a purchase cadence score based on product purchase history associated with the customer identifier;
determining, for the customer identifier of each customer of the multiplicity of the customers, a revenue cadence score customer cadence score based on amount of revenue generated from purchases by the customer;
combining, for the customer identifier of each customer of the multiplicity of the customers, the visit cadence score, the purchase cadence score, and the revenue cadence score into an overall cadence score for the customer identifier;
selecting a second set of customers from the multiplicity of the customers based on overall cadence scores associated with the second set of customers; and injecting the second set of customers into the schedule, which includes the first set of customers.
determining, for the customer identifier of each customer of the multiplicity of the customers, a visit cadence score based on a number of visits by the customer to one or more pages of one or more products;
determining, for the customer identifier of each customer of the multiplicity of the customers, a purchase cadence score based on product purchase history associated with the customer identifier;
determining, for the customer identifier of each customer of the multiplicity of the customers, a revenue cadence score customer cadence score based on amount of revenue generated from purchases by the customer;
combining, for the customer identifier of each customer of the multiplicity of the customers, the visit cadence score, the purchase cadence score, and the revenue cadence score into an overall cadence score for the customer identifier;
selecting a second set of customers from the multiplicity of the customers based on overall cadence scores associated with the second set of customers; and injecting the second set of customers into the schedule, which includes the first set of customers.
18. The computer system of Claim 12, wherein the operations further include:
selecting a second set of customers from the multiplicity of the customers based on one or more of a visit cadence score, a purchase cadence score, and a revenue cadence score; and injecting the second set of customers into the schedule, which includes the first set of customers.
selecting a second set of customers from the multiplicity of the customers based on one or more of a visit cadence score, a purchase cadence score, and a revenue cadence score; and injecting the second set of customers into the schedule, which includes the first set of customers.
19. The computer system of Claim 18, wherein the first set of customers have higher priority than the second set of customers and the schedule is sorted based on the higher priority.
20. The computer system of Claim 12, wherein the operations further include:
registering a plurality of stakeholder accounts for a plurality of stakeholders including the stakeholder, each stakeholder of the plurality of stakeholders being assigned to a group of customer identifiers associated with customers;
selecting for each stakeholder account of the plurality, a first subset of customer identifiers from the group of customer identifiers assigned to that stakeholder account based on 1) a predictive score for each unique combination of each customer identifier, customer tier, and product class using one or more of the predetermined online sales channel rules, the predetermined retail sales channel rules, and the predetermined phone sales channel rules, respectively, and the plurality of variables, and 2) a revenue generated from each unique combination, wherein selecting includes selecting the first set of customers from the multiplicity of the customers based on the predictive score and the revenue generated from the each unique combination; and selecting for each stakeholder account of the plurality, a second subset of customers identifiers from the group of customer identifiers assigned to that stakeholder based on cadence scores associated with the customer identifiers of the second subset;
generating, for each stakeholder account of the plurality, a schedule for contacting certain customers of the group of customers associated with the stakeholder account based on a combination of the first subset of customers and the second subset of customers associated with the stakeholder account; and providing, to a client device of each stakeholder account of the plurality, the schedule generated for that stakeholder account.
registering a plurality of stakeholder accounts for a plurality of stakeholders including the stakeholder, each stakeholder of the plurality of stakeholders being assigned to a group of customer identifiers associated with customers;
selecting for each stakeholder account of the plurality, a first subset of customer identifiers from the group of customer identifiers assigned to that stakeholder account based on 1) a predictive score for each unique combination of each customer identifier, customer tier, and product class using one or more of the predetermined online sales channel rules, the predetermined retail sales channel rules, and the predetermined phone sales channel rules, respectively, and the plurality of variables, and 2) a revenue generated from each unique combination, wherein selecting includes selecting the first set of customers from the multiplicity of the customers based on the predictive score and the revenue generated from the each unique combination; and selecting for each stakeholder account of the plurality, a second subset of customers identifiers from the group of customer identifiers assigned to that stakeholder based on cadence scores associated with the customer identifiers of the second subset;
generating, for each stakeholder account of the plurality, a schedule for contacting certain customers of the group of customers associated with the stakeholder account based on a combination of the first subset of customers and the second subset of customers associated with the stakeholder account; and providing, to a client device of each stakeholder account of the plurality, the schedule generated for that stakeholder account.
21. The computer system of Claim 12, wherein the operations further include:
aggregating customer data of a plurality of customers from an online data store reflecting the online sales channel, a retail data store reflecting the retail sales channel, and a call center data store reflecting the phone sales channel; and statistically analyzing the aggregated customer data of the plurality of customers to determine the multiplicity of customers from the plurality of customers whose interest in products offered by a business merchant fall within a certain interval.
aggregating customer data of a plurality of customers from an online data store reflecting the online sales channel, a retail data store reflecting the retail sales channel, and a call center data store reflecting the phone sales channel; and statistically analyzing the aggregated customer data of the plurality of customers to determine the multiplicity of customers from the plurality of customers whose interest in products offered by a business merchant fall within a certain interval.
22. The computer system of Claim 12, wherein the operations further include aggregating customer data associated with each customer of the multiplicity of the customers from one or more data stores storing data related to the retail sales channel and the phone sales channel by:
determining a total number of orders associated with the customer;
determining a number of items included in each of the orders;
determining revenue generated by each of the orders;
determining revenue generated by each item included in each of the orders;
determining any discounts applied to each of the orders;
generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the total number of orders associated with the customer, the number of items included in each of the orders, the revenue generated by each of the orders, the revenue generated by each item included in each of the orders, and any discounts applied to each of the orders; and storing the entry in an aggregated data store storing the customer product-class mapping.
determining a total number of orders associated with the customer;
determining a number of items included in each of the orders;
determining revenue generated by each of the orders;
determining revenue generated by each item included in each of the orders;
determining any discounts applied to each of the orders;
generating an entry for the customer product-class mapping for the customer identifier associated with the customer using the total number of orders associated with the customer, the number of items included in each of the orders, the revenue generated by each of the orders, the revenue generated by each item included in each of the orders, and any discounts applied to each of the orders; and storing the entry in an aggregated data store storing the customer product-class mapping.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462067328P | 2014-10-22 | 2014-10-22 | |
US62/067,328 | 2014-10-22 | ||
US14/735,064 US20160117703A1 (en) | 2014-10-22 | 2015-06-09 | Large-Scale Customer-Product Relationship Mapping and Contact Scheduling |
US14/735,064 | 2015-06-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2909957A1 true CA2909957A1 (en) | 2016-04-22 |
Family
ID=55756060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2909957A Abandoned CA2909957A1 (en) | 2014-10-22 | 2015-10-22 | Large-scale customer-product relationship mapping and contact scheduling |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA2909957A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112017062A (en) * | 2020-07-15 | 2020-12-01 | 北京淇瑀信息科技有限公司 | Resource limit distribution method and device based on guest group subdivision and electronic equipment |
CN112348556A (en) * | 2020-09-27 | 2021-02-09 | 北京淇瑀信息科技有限公司 | Channel resource consumption optimization method and device and electronic equipment |
CN112581014A (en) * | 2020-12-25 | 2021-03-30 | 特赞(上海)信息科技有限公司 | Statistical method, device, equipment and storage medium for material preparation degree |
CN114860788A (en) * | 2022-04-22 | 2022-08-05 | 北京猎人纪信息科技有限公司 | Technology promotion information service system and method |
-
2015
- 2015-10-22 CA CA2909957A patent/CA2909957A1/en not_active Abandoned
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112017062A (en) * | 2020-07-15 | 2020-12-01 | 北京淇瑀信息科技有限公司 | Resource limit distribution method and device based on guest group subdivision and electronic equipment |
CN112017062B (en) * | 2020-07-15 | 2024-06-07 | 北京淇瑀信息科技有限公司 | Resource quota distribution method and device based on guest group subdivision and electronic equipment |
CN112348556A (en) * | 2020-09-27 | 2021-02-09 | 北京淇瑀信息科技有限公司 | Channel resource consumption optimization method and device and electronic equipment |
CN112581014A (en) * | 2020-12-25 | 2021-03-30 | 特赞(上海)信息科技有限公司 | Statistical method, device, equipment and storage medium for material preparation degree |
CN112581014B (en) * | 2020-12-25 | 2023-12-08 | 特赞(上海)信息科技有限公司 | Statistical method, device, equipment and storage medium for material readiness |
CN114860788A (en) * | 2022-04-22 | 2022-08-05 | 北京猎人纪信息科技有限公司 | Technology promotion information service system and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11915174B2 (en) | Apparatus and method for resource allocation prediction and modeling, and resource acquisition offer generation, adjustment and approval | |
US11107118B2 (en) | Management of the display of online ad content consistent with one or more performance objectives for a webpage and/or website | |
US9984342B2 (en) | Asset data model for recurring revenue asset management | |
US20160117703A1 (en) | Large-Scale Customer-Product Relationship Mapping and Contact Scheduling | |
US11861536B1 (en) | Community-based data analysis in a software-as-a-service system using a deep learning classifier | |
US10796337B2 (en) | Realtime feedback using affinity-based dynamic user clustering | |
US20190156357A1 (en) | Advanced computational prediction models for heterogeneous data | |
US20160191450A1 (en) | Recommendations Engine in a Layered Social Media Webpage | |
US20160189210A1 (en) | System and method for appying data modeling to improve predictive outcomes | |
US9852477B2 (en) | Method and system for social media sales | |
US20140297363A1 (en) | On-Site and In-Store Content Personalization and Optimization | |
CA2923600A1 (en) | Review sentiment analysis | |
WO2018175544A1 (en) | Method and system for facilitating purchase of vehicles by buyers and/or sale of vehicles by sellers | |
JP7561754B2 (en) | Predictive RFM Segmentation | |
US20230230183A1 (en) | Intelligent Prediction of An Expected Value of User Conversion | |
US20210357977A1 (en) | Method for matching influencers to brands and pairing influencer videos to products for intra-video transactions | |
US10198762B1 (en) | Ordering search results to maximize financial gain | |
US20170039578A1 (en) | Ranking of Search Results Based on Customer Intent | |
CA2909957A1 (en) | Large-scale customer-product relationship mapping and contact scheduling | |
CN115409575A (en) | Commodity recommendation method and device, electronic equipment and storage medium | |
AU2013277314A1 (en) | Service asset management system and method | |
US20210065220A1 (en) | Exchange platform activity prediction | |
KR20230032801A (en) | System for providing tangible and intangible goods recommendation service based on artificial intelligence | |
US20210027317A1 (en) | Inventory and structure finder | |
US10740782B2 (en) | Computerized promotion price scheduling utilizing multiple product demand model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |
Effective date: 20220112 |
|
FZDE | Discontinued |
Effective date: 20220112 |