Product demand forecasting using cluster-based product cross-elasticity estimates.

JP2026529129APending Publication Date: 2026-08-27ORACLE INT CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2026511930
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-08-23
Filing Date
2024-08-15
Publication Date
2026-08-27

Smart Images

  • Figure 2026529129000001_ABST
    Figure 2026529129000001_ABST
Patent Text Reader

Abstract

A technique is disclosed for generating a retail forecasting model from product cluster-based estimated price elasticity values ​​and predicting the impact of price changes on demand for a set of products. The system generates cluster-based price elasticity values ​​for a set of products by applying a set of regression elasticity estimation algorithms to a set of product data and clustering the products based on product descriptions and estimated price elasticity values. This system generates a retail forecasting model using the cluster-based price elasticity values ​​of the products.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to product demand prediction. Specifically, the present disclosure relates to applying cluster-based cross-elasticity estimates to a product demand model to generate product-level demand predictions.

Background Art

[0002] Background When a retailer changes the price of a product, the retailer tends to sell more or fewer products depending on whether the change is a price decrease or a price increase. For example, a discount in the selling price tends to lead to more products being sold. The higher the price, the more likely it is that fewer products will be sold. In addition, the sales of similar products tend to be affected. For example, an increase in the price of one brand of butter is likely to lead to an increase in the sales of another brand of butter. Retail prediction systems typically provide an estimate of the impact of a price change on the sales of the product itself. This price reaction is called the price elasticity or own-price elasticity of the product itself. This means, for example, that a retailer planning to lower the price of a product for sales promotion has an estimate of the magnitude of the increase in the sales of this product during the sales promotion. However, many retail prediction systems do not provide an estimate of the impact of a change in the price of a product on the sales of other products. The estimate of the impact of a change in the price of a product on the sales of similar products is known as the cross-elasticity estimate. Without a cross-elasticity estimate, a retailer promoting a product has no idea how much the sales of similar products will change. As a result, the retailer cannot determine the total costs and benefits of a price change, such as whether the price change will increase net revenue or profit margin.

[0003] Retail forecasting systems typically do not estimate cross-elasticity because it is difficult to do so. Even systems that generate estimates struggle to produce accurate estimates across a large number of products. Estimating cross-elasticity involves problems that do not exist when estimating self-price elasticity. Firstly, retailer and product demand models struggle to identify the group of products for which cross-elasticity should be estimated. Retail categories often include hundreds or thousands of products, each associated with a unique minimum stock-keeping unit (SKU). Attempting to estimate cross-elasticity values ​​for hundreds of SKUs has historically been computationally impossible, as there are thousands of potential cross-elasticity values ​​to estimate. Data limitations (such as lack of sales information and incomplete product descriptions) often lead to models lacking the information to estimate cross-elasticity values ​​for many product pairs. Even when there is sufficient information to estimate many cross-elasticity values, estimating a large number of cross-elasticity values ​​leads to many instances of incorrectly identifying non-significant cross-elasticity estimates as significant.

[0004] Another problem that arises when attempting to calculate cross-price elasticity is that the magnitude of the cross-price effect tends to be smaller than the magnitude of the self-price effect. A smaller cross-price effect occurs because demand shifting to other SKUs can be distributed across multiple SKUs, and some demand may be lost. Since most pairs of SKUs are not complete substitutes, a price change in one SKU will only lead to a limited amount of substitution to the other SKU. If multiple SKUs are substitutes, only a limited amount of demand is available to shift to each of the similar SKUs. A change in price can also cause consumers to make larger or smaller purchases across the category. Typically, a price increase in one SKU has three effects: First, the price increase reduces the number of units sold from the SKU by a certain amount; second, some demand from the SKU shifts to other SKUs; and third, some demand for this category is lost because consumers abstain from some purchases entirely. This lost demand for this category appears in the self-price elasticity estimate but not in the cross-price elasticity estimate. Assuming a smaller cross-price effect, conventional models have difficulty generating accurate cross-elasticity estimates.

[0005] Another problem that arises when attempting to calculate cross-elasticity is called collinearity. Collinearity occurs because retailers often change the prices of similar products simultaneously. Retailers may run regular promotional campaigns for all products under a given brand. In addition, retailers may run promotional campaigns for groups of similar products during certain holidays. When price changes occur for multiple products simultaneously, there may be no way to determine which of the price changes caused the changes in sales of other products. Standard regression methods may yield unreliable results, or may not produce any results at all, when there is high collinearity between price series.

[0006] Another problem that arises when attempting to estimate cross-elasticity is adjusting the elasticity estimates across multiple economically constrained commodities. This arises due to "noise" in the initial estimates and limitations on the types of economically feasible outcomes. The three problems mentioned above make estimation more difficult and increase the amount of noise in the initial cross-elasticity estimates.

[0007] The methods described in this section are methods that can be pursued, but not necessarily methods that have been previously devised or pursued. Therefore, unless otherwise indicated, no method described in this section should be assumed to be qualified as prior art simply by being included in this section.

[0008] Embodiments are shown in the accompanying drawings for illustrative purposes only, not as limitations. Note that whereever the “one” or “single” embodiment is referred to in this disclosure, it means at least one embodiment, and not necessarily the same embodiment. [Brief explanation of the drawing]

[0009] [Figure 1] This figure shows a system according to one or more embodiments. [Figure 2A] This figure illustrates an exemplary set of actions for forecasting product demand using cluster-based product price elasticity estimates, according to one or more embodiments. [Figure 2B] This figure illustrates an exemplary set of actions for forecasting product demand using cluster-based product price elasticity estimates, according to one or more embodiments. [Figure 2C] This figure illustrates an exemplary set of actions for forecasting product demand using cluster-based product price elasticity estimates, according to one or more embodiments. [Figure 3A] This figure illustrates an exemplary set of actions for forecasting product demand using cluster-based product price elasticity estimates, according to one or more embodiments. [Figure 3B] This figure illustrates an exemplary set of actions for forecasting product demand using cluster-based product price elasticity estimates, according to one or more embodiments. [Figure 3C] This figure illustrates an exemplary set of actions for forecasting product demand using cluster-based product price elasticity estimates, according to one or more embodiments. [Figure 4] This is a block diagram showing a computer system in one or more embodiments. [Modes for carrying out the invention]

[0010] Detailed explanation The following description provides numerous specific details for illustrative purposes to ensure a complete understanding. One or more embodiments may be implemented without these specific details. Features described in one embodiment may be combined with features described in a different embodiment. In some examples, known structures and devices are described with reference to block diagrams to avoid unnecessarily obscuring the invention. 1.Overview 2. System Architecture 3. Modeling product demand using cluster-based price elasticity estimates 4. Exemplary Embodiments 5. Computer networks and cloud networks 6. Miscellaneous rules, extensions 7. Hardware Overview 1.Overview One or more embodiments generate a retail forecasting model from product cluster-based estimated elasticity values ​​to predict the impact of price changes on demand for a set of products. The system generates cluster-based price elasticity values ​​for a set of products. This system generates a retail forecasting model using the cluster-based price elasticity values ​​for products. This system generates cluster-based price elasticity values ​​by performing an operation to cluster products based on product descriptions and preliminary elasticity values, and then determining estimated elasticity values ​​based on the clustered products.

[0011] One or more embodiments first cluster products according to product description attributes. For example, a retailer typically uses a stock keeping unit (SKU) to provide a text-based description of a product. The SKU description includes words, abbreviations, and codes to describe the product. This system applies a natural language processing (NLP) model and a cosine similarity algorithm to create NLP-based product clusters. The NLP model can apply a term-frequency, inverse document frequency (TF-IDF) algorithm to generate a numerical frequency matrix containing TF-IDF values ​​for terms in the SKU product description. The NLP model applies a cosine similarity algorithm to generate a text similarity score for each pair of products among multiple products, based on the TF-IDF value. This system clusters products into NLP-based product clusters based on the text similarity score.

[0012] One or more embodiments generate elasticity-based subclusters within an NLP-based product cluster. This system generates elasticity-based subclusters by applying product-level regression or other elasticity estimation regression algorithms to the NLP-based cluster to generate an initial set of product-level elasticity estimates for key product / target product pairs. This system then compares the values ​​of the product-level elasticity estimates for key product / target product pairs within the NLP-based cluster and clusters sets of target products with product-level elasticity estimates that satisfy a specific clustering threshold together into a subcluster. This system generates cluster-based elasticity estimates by applying a cluster-level elasticity estimation regression algorithm to the subcluster. This system then passes the cluster-based elasticity values ​​to individual members of the subcluster, modifying the cluster-based values ​​according to the demand attributes of the individual member products. For example, if a subcluster contains two products and the total demand for the products within a given time interval is 1000 units, with one product associated with 300 units and the other with 700 units, the system may pass cluster-level elasticity estimates to the cluster members by multiplying the cluster-level elasticity of one product by 0.7 and the cluster-level elasticity of the other product by 0.3. The result is a product-level elasticity value for the cluster members that takes into account collinearity or the effects of changing the prices of both cluster members simultaneously.

[0013] One or more embodiments further improve the cluster-based elasticity values ​​of subcluster members based on the attributes of the cluster members. For example, the system modifies the cross-elasticity of a particular product according to the magnitude of the product's self-price elasticity. The system reduces the improved cross-elasticity value for products that have a relatively low estimated self-price elasticity. The system also reduces the improved cross-elasticity value of a product based on determining that the magnitude of demand for the product is relatively low. For example, a product with a demand of 100 units sold within a particular time interval has a lower cross-elasticity than a product with a demand of 10,000 units sold over the same time interval (e.g., a change in the price of the product has little impact on the demand for other products). The system also reduces the improved cross-elasticity value of a product based on the existence of a relatively large number of substitute products. For example, a change in the price of a product related to three substitute products has less impact on the demand for three substitute products than a change in the price of a product related to only one substitute product.

[0014] One or more embodiments apply a product demand model, generated based on improved product-level price elasticity values, to pricing data of a set of products to predict demand for one or more products in the set. For example, a retailer may store the prices of all products sold by the retailer in a product management platform. The retailer may provide the product demand model with pricing data, including proposed changes to the prices of the set of products. The product demand model predicts demand for both the priced products and the substitute products corresponding to the priced products. In one example, the model identifies substitute products for the retailer based on improved product-level price elasticity values. In another example, the model may recommend prices for products that meet defined criteria. For example, the model may recommend prices to maximize the retailer's profits or to move inventory within a specified time frame.

[0015] One or more embodiments described herein and / or claimed in the claims may not be included in this summary section. 2. System Architecture A system according to one or more embodiments includes a product management platform 110 and a data repository 120. In one or more embodiments, system 100 may have more or fewer components than those shown in Figure 1. The components shown in Figure 1 may be local or remote to each other. The components shown in Figure 1 can be implemented in software and / or hardware. Each component may be distributed across multiple applications and / or machines. Multiple components may be combined into a single application and / or machine. The operation described for one component may instead be performed by another component.

[0016] In one or more embodiments, the product management platform 110 refers to hardware and / or software configured to perform the operations described herein in order to forecast product demand based on cluster-based product price elasticity estimates. Examples of operations for forecasting product demand based on cluster-based product price elasticity estimates are described below with reference to Figures 2A-2C.

[0017] In an embodiment, the product management platform 110 is implemented on one or more digital devices. The term "digital device" generally refers to any hardware device that includes a processor. A digital device may refer to a physical device or a virtual machine that executes an application. Examples of digital devices include computers, tablets, laptops, desktops, netbooks, servers, web servers, network policy servers, proxy servers, general-purpose machines, hardware devices with specific functions, hardware routers, hardware switches, hardware firewalls, hardware network address translators (NATs), hardware load balancers, mainframes, televisions, content receivers, set-top boxes, printers, mobile handsets, smartphones, personal digital assistants (PDAs), wireless receivers and / or transmitters, base stations, communication management devices, routers, switches, controllers, access points, and / or client devices.

[0018] The product management platform 110 includes a product data collection engine 111 for obtaining data from one or more of the following: manufacturer 131, inventory 134 (or other product storage location), or retailer 135. Manufacturer 131 manufactures product 132, which includes products 133a to 133n. Product 132 is stored in inventory storage location 134 or sent directly to retailer 135. Consumer 136 purchases product 132 from retailer 135. Retailer 135 tracks products by assigning a unique minimum stock unit (SKU) to each product. Retailer 135 stores the SKU as product data 121. Product data 121 may include a text description, serial number, and model number for each product, which may include one or more of the following: a unique tracking number, word, abbreviation, and code. Inventory storage location 134 and retailer 135 generate inventory data 122 and sales data 123. Inventory data 122 and sales data 123 include time-series data. For example, retailer 135 may track daily or weekly sales data, including the price and quantity of products sold.

[0019] The product data conversion engine 112 applies a natural language processing (NLP) model 113 to a set of sales data corresponding to a particular set of products 132. For example, a user interacts with the user interface 118 to select one or more products, and the user inputs price changes for those products to initiate a demand forecast for the products and any alternative products. In one or more embodiments, interface 118 refers to hardware and / or software configured to facilitate communication between the user and the product management platform 110. The interface 118 renders user interface elements and receives input via the user interface elements. Examples of interfaces include a graphical user interface (GUI), a command line interface (CLI), a tactile interface, and a voice command interface. Examples of user interface elements include checkboxes, radio buttons, dropdown lists, list boxes, buttons, toggles, text fields, date and time selectors, command lines, sliders, pages, and forms.

[0020] In embodiments, different components of the interface 118 are specified in different languages. The behavior of user interface elements can be specified in a dynamic programming language such as Java (registered trademark) Script. The content of user interface elements is specified in a markup language such as hypertext markup language (HTML) or XML user interface language (XUL). The layout of user interface elements is specified in a style sheet language such as Cascading Style Sheets (CSS). Alternatively, the interface 118 is specified in one or more other languages such as Java, C, or C++.

[0021] The system retrieves a product description for each product. For example, if the sales data includes SKUs, the system retrieves the product description associated with the SKU from product data 121.

[0022] In one embodiment, an NLP model applies a Term Frequency, Inverse Document Frequency (TF-IDF) algorithm to assign weight values ​​to words, abbreviations, and codes within a SKU. The TF-IDF algorithm is a numerical statistics algorithm used to assess the importance of words, abbreviations, or codes in distinguishing one SKU from another. For example, two SKUs might cover two different dairy products. One SKU contains the term "MILK-CHOC." The other SKU contains the term "MILK-STRW." The TF-IDF algorithm assigns higher weights to the codes (i.e., "CHOC" and "STRW") than to the word "milk" because "MILK" is present in both SKUs, and the abbreviations "CHOC" and "STRW" are present in only one of the SKUs, respectively. In other words, unique codes within an SKU are more helpful in distinguishing products than the word "MILK."

[0023] According to one embodiment, the formula for calculating the TF-IDF of a term in a SKU within a set of SKUs is TF (term frequency) × IDF (reverse document frequency). Term frequency measures how often a term appears within a particular SKU. Term frequency is calculated as the number of times a term occurs within a SKU divided by the total number of terms in that SKU. The term frequency component generates a value indicating the importance of the term within the SKU. Reverse document frequency measures how rare or unique a term is across the entire set of SKUs. According to one embodiment, the IDF value is calculated as the logarithm of the value obtained by dividing the total number of SKUs by the number of documents containing the term, and then the reciprocal of this result is taken.

[0024] By calculating a TF-IDF score for each term within an SKU, the system generates a value representing the importance of each term across the entire set of SKUs. According to one embodiment, the SKUs are transformed into a numerical feature matrix by calculating the TF-IDF values ​​of the terms within the set of SKUs. Each row of the numerical feature matrix represents an SKU, and each column represents a term within an SKU, along with its corresponding TF-IDF score. This matrix can then be used as input to a clustered machine learning model.

[0025] According to one or more embodiments, the system applies a cosine similarity algorithm to the TF-IDF value for each SKU to generate a similarity score for each SKU. For example, the system may represent an SKU as a set of terms and corresponding weights. The system may compare two SKUs based on (a) a set of matching terms and (b) the weights assigned to the terms. The system may select a particular SKU and generate cosine similarity values ​​for an additional set of SKUs. The additional set of SKUs may be selected based on the presence of identical or related terms in the product description of the SKU. According to one embodiment, the cosine similarity score of a particular SKU B compared to a primary SKU A is calculated by applying the following formula:

[0026]

number

[0027] The product clustering engine 114 generates NLP-based product clusters 126 by applying a set of rules to a dataset containing SKUs, sales data, and similarity scores. The system clusters together SKUs that (a) have revenue values ​​exceeding a revenue threshold during a specific period, and (b) have cosine similarity scores closer than a threshold percentage of the SKUs. For example, the system may identify a set of 300 SKUs in the "yogurt" category. The system may cluster 10 SKUs together based on the determination that (a) the SKUs generated at least $5,000 in revenue during a defined period, and (b) the SKUs have cosine similarity scores within 0.05 of each other corresponding to the 95th percentile among the 300 SKUs.

[0028] According to an alternative embodiment, the NLP model 113 includes a machine learning model. The NLP machine learning model takes descriptive terms for SKUs as input data and generates embeddings for the SKUs. Training the NLP-type machine learning model includes preprocessing of the dataset. The system collects a large dataset of SKUs. The system tokenizes the SKUs by splitting them into different words, abbreviations, and codes. The system converts the numerical representation of the SKUs into high-density vectors or embeddings. The embeddings capture the semantic relationships between the words, abbreviations, and codes. The embeddings represent the words, abbreviations, and codes of the SKUs in a continuous vector space. The system generates SKU embeddings by training the NLP-type machine learning model such that embeddings of more closely related SKUs are closer to each other in the continuous vector space than embeddings of less closely related SKUs.

[0029] The system generates product clusters by applying a clustering machine learning model to a set of data generated by an NLP model, such as a numerical matrix generated by a TF-IDF model or embeddings generated by an NLP machine learning model. For example, the system may apply a trained clustering algorithm such as K-means, hierarchical clustering, DBSCAN (Density-Based Spatial Clustering of Applications with Noise), and Gaussian Mixture Models (GMMs). The clustering machine learning model assigns each data point, or each embedding representing an SKU, to the nearest cluster center based on a distance metric such as the Euclidean distance from the data point to the cluster center. According to one or more embodiments, if a data point is not within a threshold distance from a cluster center, the model designates this data point as the new cluster center. For example, in a K-means machine learning model, the system assigns each data point to the nearest centroid. The system then calculates a new centroid based on the average of the points assigned to the centroid. This process is repeated until the center of gravity stops changing beyond a threshold level, or until the specified maximum number of iterations is reached.

[0030] The product clustering engine 114 applies a price elasticity estimation regression algorithm 124 to an NLP-based product cluster to generate initial self-price elasticity and cross-price elasticity values ​​for each product in the set of products. The price elasticity estimation regression algorithm includes the sales and demand values ​​and coefficients for the main product and the sales and demand values ​​and coefficients for the target product. In detail, the price elasticity estimation regression algorithm includes (a) a key sales value representing the total number of key products sold at a specific retail store location ("store") during a time interval, (b) an offset value, (c) a self-price coefficient for the key product, (d) a key product price value representing the average price of the key product at the store over the time interval, (e) a basic demand coefficient, (f) an average sales value representing the average sales of the key product at the store over a period including multiple time intervals (for example, if the time interval is one week, this value is calculated over one year or 52 weeks), (g) a seasonality coefficient, (h) a total sales value representing the total sales of all products at a specific store within a time interval, (i) a target product sales coefficient, (j) a target product sales value representing the sales of the target product at the store over the time interval, (k) a cross-price coefficient, and (l) a price value representing the average price of the target product at the store over the time interval. The system performs regression on an input dataset containing sales data for SKUs of a specific product cluster to determine the values ​​of coefficients, including the self-price coefficient for the key product and the cross-price coefficient for the target product. In one or more embodiments, the self-pricing factor corresponds to the self-pricing elasticity value, which represents the relationship between the change in product price and the change in product demand, and the cross-pricing factor corresponds to the cross-elasticity value, which represents the relationship between the change in price of the main product and the change in demand for the target product.

[0031] The product clustering engine 114 generates subclusters based on the elasticity of target products based on the following: (a) the main product has a negative self-pricing coefficient value, (b) the self-pricing coefficient value of the main product exceeds a threshold, (c) the target product has a positive cross-pricing coefficient value, and (d) the cross-pricing coefficient value of the target product exceeds a threshold. For example, in embodiments where the self-pricing coefficient value and the cross-pricing coefficient value are between 0 and 1, the threshold for both coefficient values ​​may be 0.4 (e.g., -0.4 for the self-pricing coefficient and +0.4 for the cross-pricing coefficient). Alternatively, the thresholds for the self-pricing coefficient and the cross-pricing coefficient may be different. For example, the threshold for the self-pricing coefficient may be 0.3 (i.e., "-0.3") and the threshold for the cross-pricing coefficient may be 0.5.

[0032] The product data transformation engine 112 applies the cluster elasticity estimation regression algorithm 125 to generate a set of cluster-based self-price elasticity estimates and cross-elasticity estimates for each of the elasticity-based subclusters 127. For each product in each elasticity-based product cluster, the product data transformation engine 112 applies the modified cluster-based elasticity values ​​to the product to generate a customized cluster-based elasticity value for the product. The product data transformation engine 112 modifies the cluster-based elasticity value for each product based on the ratio of the product's sales to other products in the elasticity-based product cluster.

[0033] The price elasticity improvement engine 115 performs a series of improvement actions on customized cluster-based elasticity values. The price elasticity improvement engine 115 may apply restrictions to cross-elasticity values ​​based on the self-price elasticity values ​​of the main product. For example, the price elasticity improvement engine 115 may reduce the cross-elasticity values ​​associated with products that have low self-price elasticity values. In other words, for a product where a change in price results in little or no change in demand for the product, this product should not have a high cross-elasticity value with other products. A change in demand for the first product is unlikely to result in little or no change in demand for a substitute product.

[0034] In addition, the price elasticity improvement engine 115 may limit the cross-elasticity of a product based on the demand for that product. For example, if the demand for a product during a certain time interval is 100 units, a price change corresponding to the product should not cause the product to be replaced by more than 100 units.

[0035] In addition, the price elasticity improvement engine 115 may apply cross-elasticity bounds based on the characteristics of other products or substitute products within the product cluster based on the elasticity of the main product. For example, if there are three other products within the elasticity-based product cluster, the combined change in demand for these three other products should not exceed the total demand for the main product. Furthermore, because a change in the price of a product can result in some loss of demand, or consumers not purchasing the product and not the substitute, the system may further restrict the total change in demand for substitute products to a value smaller than the total demand for the main product. For example, if the demand for the main product during a particular time interval is 100 units, a change in the price of the product may result in a total demand of 80 units or less for the three substitute products, distributed among the three substitute products (10 units corresponding to customers expected to purchase the main product at a higher price, and 10 units corresponding to a loss of demand).

[0036] The product management platform 110 includes a demand forecasting engine 116 for forecasting product demand based on product price elasticity estimates generated by the product data transformation engine 112. The demand forecasting engine 116 uses improved product-level price elasticity values ​​for the set of products to create a demand forecasting model 128 that forecasts product demand for the set of products. For example, a user may access a GUI via a user interface 118 and provide the product management platform 110 with a set of price change data. The demand forecasting engine 116 applies the demand forecasting model 128, trained with improved price elasticity values ​​for the set of products including the products associated with the price change, to the price data including the price change data and the price data for other products for which price changes may not be indicated. The model 128 generates demand forecasts for both (a) products for which price changes are indicated, and (b) other products, such as substitute products, for which the product data transformation engine 112 has generated improved product-level cross-elasticity values. In one example, the user provides a proposed price change, and Model 128 performs both (a) identifying alternative products and (b) predicting changes in demand for those alternative products.

[0037] The product management engine 117 generates instructions for manufacturers 131, inventory sites 134, and / or retailers 135 to manage production, product transitions, and / or product pricing, based on forecasts generated by the demand forecasting engine 116.

[0038] Additional embodiments and / or examples related to computer networks are described in Section 5, “Computer Networks and Cloud Networks,” below.

[0039] In one or more embodiments, the data repository 120 is any type of storage unit and / or device for storing data (e.g., a file system, a database, a collection of tables, or any other storage mechanism). Furthermore, the data repository 120 may include multiple different storage units and / or devices. These multiple different storage units and / or devices may or may not be of the same type, and may or may not be located in the same physical location. Furthermore, the data repository 120 may be implemented or run on the same computing system as the product management platform 110. Alternatively or additionally, the data repository 120 may be implemented or run on a different computing system than the product management platform 110. The data repository 120 may be communicably coupled to the product management platform 110 by direct connection or over a network.

[0040] Information describing product data 121, inventory data 122, sales data 123, elasticity algorithms 124 and 125, clusters 126 and 127, and demand forecasting model 128 may be implemented across any of the components within system 100. However, for clarity and explanation, this information is presented within the data repository 120. 3. Modeling product demand using cluster-based price elasticity estimates Figures 2A–2C illustrate an exemplary set of operations for modeling product demand using cluster-based price elasticity estimates in one or more embodiments. One or more operations shown in Figures 2A–2C may be modified, rearranged, or omitted entirely. Therefore, the specific set of operations shown in Figure 1 should not be construed as limiting the scope of one or more embodiments.

[0041] The system detects a trigger to initiate the process of generating price elasticity estimates (action 202). The trigger may be generated automatically or by the user. For example, the user may interact with a graphical user interface (GUI) to select one or more products for analysis. The user may request demand forecasts for the products. In one example, the user may interact with the GUI to generate proposed price changes for one or more products. In one example, the user interacts with a GUI of a product management platform that allows the user to set prices for products at one or more retail locations. The trigger may be detecting when the user enters proposed price changes for one or more products. When the system detects proposed price changes, it may automatically initiate actions without further user instruction to (a) estimate elasticity values ​​for the set of products containing the products for which the price change was proposed, and (b) generate demand forecasts for one or more products in the set of products. Alternatively, the system may periodically initiate actions to determine cluster-based improved elasticity estimates for the set of products. When a user inputs a proposed price change for one or more products, the system may apply a previously generated demand forecasting model, which has been trained to predict the demand changes associated with the user's proposed price change, using previously determined cluster-based improved elasticity values.

[0042] In another example, a trigger may involve detecting one or both of price changes and / or demand changes for one or more products within a set of product data. For example, a marketing platform may track the number of products sold and the prices of those products over time. The system may set thresholds for one or both of the units sold and / or price changes and initiate (a) estimating elasticity values ​​for the set of products that include the product for which the price change and / or demand change was detected, and (b) generating demand forecasts for one or more products. For example, the system may detect a 10% price change for a competitor's product. The system may generate and / or update self-price elasticity estimates and cross-elasticity estimates for the user's product relative to the competitor's product. The system may further apply a demand forecasting model to the product data, including the elasticity estimates, to predict changes in demand for the user's product based on the price changes relative to the competitor's product.

[0043] In another example, a manufacturing management platform may detect changes in the price and / or demand for one or more goods. The manufacturing management platform may initiate an estimate of the elasticity value and demand forecast for the products manufactured by the manufacturer, enabling the manufacturer to modify product production based on the demand forecast.

[0044] The system retrieves sales data for products (operation 204). The system may retrieve product IDs, such as the SKU and price of products sold by retailers. Sales data includes product prices and the number of items sold over a period of time. In one example, the set of sales data may include sales data for thousands of products sold by a retailer from a specific retail store location. In another example, the sales data may include data for tens of thousands of products sold by retailers from multiple different locations. In yet another example, the sales data may include data for tens of thousands of products sold by multiple different retailers from multiple different locations.

[0045] The system applies a natural language processing (NLP) model to a set of sales data to generate a first set of product clusters (operation 206). The system retrieves a product description for each product. For example, if the sales data includes SKUs, the system retrieves a product description associated with the SKU. The product description may include text content that includes both words and abbreviations. For example, the product description for a particular strawberry milk product might include the text "DANNON OIKOS TZ STRWBRY". This description includes both human-readable text (e.g., "DANNON OIKOS"), human-identifiable abbreviations that are neither words nor known abbreviations but are easily recognizable by humans (e.g., "STRWBRY"), and encoded abbreviations that have meaning that is not obvious to humans (e.g., "TZ"). Another SKU might include only abbreviations. For example, a retailer might generate a product SKU that includes (a) an abbreviation of the company or brand name, (b) an alphanumeric code representing the product model and / or color, (c) a code representing the product size, and (d) a code representing a particular variation of the model. SKUs may omit words and abbreviations that are understandable to any human being.

[0046] According to one embodiment, an NLP model applies a Term Frequency, Inverse Document Frequency (TF-IDF) algorithm to assign weight values ​​to words, abbreviations, and codes within a SKU. The TF-IDF algorithm is a numerical statistics algorithm used to assess the importance of words, abbreviations, or codes in distinguishing one SKU from another. For example, two SKUs might cover two different dairy products. One SKU contains the term "MILK-C35Q". The other SKU contains the term "MILK-A456". The TF-IDF algorithm assigns higher weights to the codes (i.e., "C35Q" and "A456") than to the word "milk" because "MILK" is present in both SKUs, and each code is present in only one of the SKUs. In other words, the codes are more helpful than the word "MILK" in distinguishing the products.

[0047] According to one embodiment, the formula for calculating the TF-IDF of a term in a SKU within a set of SKUs is TF (term frequency) × IDF (reverse document frequency).

[0048] Term frequency measures how often a term appears within a particular SKU. Term frequency is calculated by dividing the number of times a term occurs within a SKU by the total number of terms in that SKU. The term frequency component generates a value indicating the importance of a term within a SKU. Inverse document frequency measures how rare or unique a term is across the entire set of SKUs. According to one embodiment, the IDF value is calculated as the logarithm of the value obtained by dividing the total number of SKUs by the number of documents containing the term, and then the reciprocal of this result is taken.

[0049] By calculating a TF-IDF score for each term within an SKU, the system generates a value representing the importance of each term across the entire set of SKUs. According to one embodiment, the SKUs are transformed into a numerical feature matrix by calculating the TF-IDF values ​​of the terms within the set of SKUs. Each row of the numerical feature matrix represents an SKU, and each column represents a term within an SKU, along with its corresponding TF-IDF score. This matrix can then be used as input to a clustered machine learning model.

[0050] According to one or more embodiments, the system applies a cosine similarity algorithm to the TF-IDF value for each SKU to generate a similarity score for each SKU. For example, the system may represent an SKU as a set of terms and corresponding weights. The system may compare two SKUs based on (a) a set of matching terms and (b) the weights assigned to the terms. The system may select a particular SKU and generate cosine similarity values ​​for an additional set of SKUs. The additional set of SKUs may be selected based on the presence of identical or related terms in the product description of the SKU. According to one embodiment, the cosine similarity score of a particular SKU B compared to a primary SKU A is calculated by applying the following formula:

[0051]

number

[0052] The system further generates clusters by applying a set of rules to a dataset that includes SKUs, sales data, and similarity scores. The system clusters together SKUs that (a) have revenue values ​​exceeding a revenue threshold during a specific period, and (b) have a cosine similarity score closer than the threshold percentage of the SKU. For example, the system may identify a set of 300 SKUs in the "yogurt" category. The system may cluster 10 SKUs together based on the determination that (a) the SKUs generated at least $5,000 in revenue during a defined period, and (b) the SKUs have a cosine similarity score of 0.05 or less from each other, corresponding to the 95th percentile among the 300 SKUs. The system excludes products that did not generate the revenue threshold within a defined time interval from the product cluster.

[0053] According to an alternative embodiment, the system generates SKU embeddings by training an NLP-type machine learning model. Training the NLP-type machine learning model includes preprocessing of the dataset. The system collects a large dataset of SKUs. The system tokenizes the SKUs by splitting them into different words, abbreviations, and codes. The system converts the numerical representation of the SKUs into high-density vectors or embeddings. The embeddings capture the semantic relationships between the words, abbreviations, and codes. The embeddings represent the words, abbreviations, and codes of the SKUs in a continuous vector space. The system generates SKU embeddings by training an NLP-type machine learning model such that embeddings of more closely related SKUs are closer to each other in the continuous vector space than embeddings of less closely related SKUs.

[0054] According to one embodiment, the system generates product clusters by applying a clustering machine learning model to a set of data generated by an NLP-type model, such as a numerical matrix generated by a TF-IDF-type model or an embedding generated by an NLP-type machine learning model. For example, the system may apply a trained clustering algorithm such as K-means, hierarchical clustering, DBSCAN (density-based spatial clustering of noisy applications), and Gaussian mixture models (GMMs).

[0055] According to one or more embodiments, a clustering machine learning model assigns each data point, or each embedding representing an SKU, to the nearest cluster center based on a distance metric such as the Euclidean distance from the data point to the cluster center. According to one or more embodiments, if a data point is not within a threshold distance from a cluster center, the model designates this data point as the new cluster center. For example, in a K-means machine learning model, the system assigns each data point to the nearest centroid. The system then calculates a new centroid based on the average of the points assigned to the centroid. This process is repeated until the centroid no longer changes beyond a threshold level of change, or until a specified maximum number of iterations is reached.

[0056] The system selects a cluster from a first set of product clusters (operation 208). The system determines preliminary estimates of the self-price elasticity of each product in the cluster and the cross-elasticity of each product in the cluster with respect to other products in the cluster (operation 210). Figure 2B shows a series of operation calculations for determining preliminary estimates of the self-price elasticity of each product in the cluster and the cross-elasticity of each product in the cluster with respect to other products in the cluster, based on the application of an elasticity estimation regression algorithm.

[0057] The system selects a primary product from among the products in the product cluster (Action 224). For example, if the cluster contains 10 product SKUs (products 1-10), the system selects product 1 as the primary product. The system selects target products to combine with the primary product in order to determine the self-pricing coefficient and cross-pricing coefficient values ​​for the primary and target products (Action 226). In the example where the product cluster contains product SKUs 1-10 and the system selects product 1 as the primary product, the system selects product 2 as the initial target product.

[0058] The system applies an elasticity estimation regression algorithm to product data for key and target products to determine preliminary self-price elasticity and preliminary cross-elasticity for key / target product pairs (Action 228). The elasticity estimation regression algorithm includes the following elements: (a) key sales value representing the total number of key products sold at a specific retail store location ("store") during a time interval; (b) offset value; (c) key product self-price coefficient; (d) key product price value representing the average price of the key product at the store over the time interval; (e) basic demand coefficient; (f) average sales value representing the average sales of the key product at the store over a period including multiple time intervals (for example, if the time interval is one week, this value is calculated over one year or 52 weeks); (g) seasonality coefficient; (h) total sales value representing the total sales of all products at a specific store within a time interval; (i) target product sales coefficient; (j) target product sales value representing the sales of the target product at the store over the time interval; (k) cross-price coefficient; and (l) price value representing the average price of the target product at the store over the time interval. The system applies an elasticity estimation regression algorithm to an input dataset containing sales data for SKUs of a specific product cluster to determine the values ​​of coefficients, including a self-pricing coefficient for the main product and a cross-pricing coefficient for the target product. In one or more embodiments, the self-pricing coefficient corresponds to a self-pricing elasticity value representing the relationship between the change in product price and the change in product demand, and the cross-pricing coefficient corresponds to a cross-elasticity value representing the relationship between the change in price for the main product and the change in demand for the target product.

[0059] The system determines whether other potential target products exist in the cluster (action 230). In an example where the product cluster contains SKUs 1 through 10, the system has selected product 1 as the primary product, and the system has performed regressions based on product 1 (primary product) and product 2 (target product), the system determines that additional products (e.g., products 3 through 10) exist in the cluster.

[0060] Based on determining that there are other products in the cluster that have not yet been combined with the main product, in order to estimate the self-pricing elasticity and cross-pricing elasticity, the system selects the next product candidate (action 232). In an example where the product cluster contains SKUs 1 through 10, the system has selected product 1 as the main product, and the system has performed regressions based on product 1 (main product) and product 2 (target product), the system selects product 3 as the next target product.

[0061] The system applies the elasticity estimation regression algorithm to the primary product and the next target product (operation 228). The system repeats operations 228, 230, and 232 until each product in the cluster is paired with the primary product. In other words, the system applies the elasticity estimation regression algorithm to primary product 1 and target products 2, 3, 4, 5, ... 10.

[0062] Based on determining whether each product in the cluster is paired with a main product, the system determines whether there are other main product candidates in the cluster (operation 234). In an exemplary embodiment where the system applies the elasticity estimation regression algorithm to main product 1 and target products 2-10, respectively, the system determines that products 2-10 have not yet been selected as main products.

[0063] Based on the determination that another primary product candidate exists in the cluster, the system selects the next candidate as the primary product (operation 236). In an exemplary embodiment where the system applies the elasticity estimation regression algorithm to primary product 1 and target products 2-10 respectively, the system then selects product 2 as the primary product. The system repeats operations 228, 230, and 232 with the selected primary product until the selected primary product is combined with each other product in the cluster as a target product. The system repeats operations 234 and 236 until each product in the product cluster is selected as a primary product and the system estimates the self-price elasticity and cross-elasticity values ​​for each primary product / target product pair in the cluster. In an example where the product cluster includes products 1-10, the system applies the elasticity estimation regression algorithm to each primary product / target product pair, including primary product 1 and target products 2-10 respectively, primary product 2 and target products 1 and 3-10 respectively, primary product 3 and target products 1, 2, and 4-10 respectively, and so on.

[0064] The system applies a set of clustering criteria to the self-pricing elasticity estimates and cross-pricing elasticity estimates for each primary product / target product pair, and clusters the products into elasticity-based subclusters (operation 238). In detail, for each primary / product pair's estimated elasticity value, the system determines whether (a) the primary product has a negative self-pricing coefficient value, (b) the primary product's self-pricing coefficient value exceeds a threshold, (c) the target product has a positive cross-pricing coefficient value, and (d) the target product's cross-pricing coefficient value exceeds a threshold. For example, in an embodiment where the self-pricing coefficient and cross-pricing coefficient values ​​for a primary product / target product pair are between 0 and 1, the threshold for both coefficient values ​​may be 0.4 (e.g., -0.4 for the self-pricing coefficient and +0.4 for the cross-pricing coefficient). Alternatively, the thresholds for the self-pricing coefficient and cross-pricing coefficient may be different. For example, the threshold for the self-pricing coefficient may be 0.3 (i.e., "-0.3") and the threshold for the cross-pricing coefficient may be 0.5.

[0065] The system determines whether there are additional clusters to which the elasticity estimation regression algorithm should be applied (operation 212). In an example where the system clusters a set of products into 50 NLP-based clusters, the system determines whether the elasticity estimation regression algorithm is applied to the products in each of the 50 clusters.

[0066] If additional clusters exist, the system selects the next cluster (action 214). The system may apply the elasticity estimation regression algorithm to any set of products, such as all products in a product category, all products sold at a specific retail location, or all products across multiple retail locations.

[0067] The system fine-tunes the cross-elasticity estimates (operation 218). Figure 2C illustrates the sequence of operations for fine-tuning the cross-elasticity estimates. The system applies a cluster-based elasticity estimation regression algorithm to product cluster data associated with each major product to generate cluster-based values ​​of self-price elasticity and cross-elasticity for major product / cluster pairs (operation 240). According to one or more embodiments, the cluster-based elasticity estimation regression algorithm includes (a) values ​​corresponding to sales and demand for the major product, and (b) values ​​corresponding to sales and demand for elasticity-based subclusters associated with the major product. The system applies the cluster-based elasticity estimation regression algorithm to determine the cluster-based self-price elasticity estimates and cross-elasticity estimates for major product / cluster pairs. For example, if one product selected as a major product is a member of three elasticity-based subclusters, the system applies the cluster-based elasticity estimation regression algorithm to a pair of (a) the major product and (b) the set of three elasticity-based subclusters associated with the major product. In detail, the system applies a cluster-based elasticity estimation regression algorithm to a single main product and one or more clusters, each containing one or more target products. Thus, the cluster-based elasticity estimation regression algorithm includes a single self-pricing coefficient and multiple cluster-based cross-pricing coefficients, each of which corresponds to a product cluster based on a separate elasticity determined in operation 238.

[0068] According to one example, the algorithm may include (a) a key selling value representing the total number of key products sold at a particular retail store location ("store") during a time interval, (b) an offset value, (c) a self-pricing coefficient for the key product, (d) a key product price value representing the average price of the key product at the store over the time interval, (e) a basic demand coefficient, (f) an average selling value representing the average sales of the key product at the store over a period including multiple time intervals (for example, if the time interval is one week, this value is calculated over one year or 52 weeks), (g) a seasonality coefficient, (h) a total selling value representing the total sales of all products at a particular store within a time interval, and for each elasticity-based subcluster, (i) a target subcluster selling coefficient, (j) a target subcluster selling value representing the sales of all products within the target subcluster at the store over the time interval, (k) a cross-pricing coefficient for the target subcluster, and (l) a target subcluster price value representing the average price of all target products in the target subcluster at the store over the time interval.

[0069] When the system generates cluster-based self-price elasticity estimates and cross-elasticity estimates for major product / cluster pairs, it initiates a process to generate product-level fine-tuned self-price elasticity estimates and cross-elasticity estimates.

[0070] For each product within an elasticity-based subcluster, the system generates a customized product-level elasticity value based on the cluster-level elasticity value (Action 242). The system determines the customized product-level elasticity value based on (a) the cluster-based self-price elasticity and cross-elasticity values ​​determined in Action 240 for all products in the same elasticity-based product cluster, and (b) the proportion of total sales of the cluster's products attributable to that product. For example, an elasticity-based cluster consists of three products, with sales attributable to Product 1: 50%, Product 2: 30%, and Product 3: 20%. Therefore, the system may determine the customized elasticity value for Product 1 based on determining [cluster-based self-price elasticity and cross-elasticity value] × 0.5. Similarly, the system may determine the customized elasticity value for Product 2 based on determining [cluster-based self-price elasticity and cross-elasticity value] × 0.3. Similarly, the system may determine the customized elasticity values ​​for product 3 based on determining [cluster-based self-price elasticity and cross-price elasticity] × 0.2. For example, if the cluster-based self-price elasticity and cross-price elasticity of a subcluster based on a particular elasticity are calculated to be -0.5 and +0.8, respectively, the system may determine the customized self-price elasticity and cross-price elasticity of product 1 to be -0.5 × 0.5 = -0.25 and +0.8 × 0.5 = +0.4, respectively. Similarly, the system may determine the customized self-price elasticity and cross-price elasticity of product 2 to be -0.15 and +0.24, respectively. Similarly, the system may determine the customized self-price elasticity and cross-price elasticity of product 3 to be -0.1 and +0.16, respectively.

[0071] The system further refines the customized elasticity values ​​of products by applying boundaries to the cross-elasticity values ​​to generate cluster-based, finely tuned cross-elasticity values ​​for each product (Action 242). The system may apply restrictions to the cross-elasticity values ​​based on the self-price elasticity values ​​of the main product. For example, the system may reduce the cross-elasticity values ​​associated with products that have low self-price elasticity values. In other words, a product should not have a high cross-elasticity value with other products if a change in price results in little or no change in demand for the product. A change in demand for the first product is unlikely to result in little or no change in demand for the substitute product.

[0072] In addition, the system may limit the cross-elasticity of a product based on product demand. For example, if the demand for a product during a given time interval is 100 units, a price change corresponding to the product should not cause it to substitute more than 100 units.

[0073] In addition, the system may apply cross-elasticity boundaries based on the characteristics of other products or substitute products within a product cluster based on the elasticity of the main product. For example, if there are three other products in an elasticity-based product cluster, the change in the combined demand for these three other products should not exceed the total demand for the main product. Furthermore, because changes in the price of a product can result in some loss of demand or consumers not purchasing the product and not the substitute, the system may further restrict the total change in the demand for a substitute product to a value smaller than the total demand for the main product. For example, if the demand for the main product during a particular time interval is 100 units, a change in the price of the product may result in a total demand of 80 units or less for the three substitute products, distributed among the three substitute products (10 units corresponding to customers expected to purchase the main product at a higher price, and 10 units corresponding to the loss of demand).

[0074] The system determines whether there is another candidate for the main product among the set of products for which elasticity values ​​have been determined (operation 244). If there is another candidate for the main product, the system selects the next candidate as the main product (operation 246). The system repeats operations 240, 242, and 244 with the new main product until each product has been selected as a main product and cluster-based self-price elasticity and cross-elasticity values ​​have been calculated for each main product. For example, in an exemplary embodiment where the elasticity-based product subcluster generated in operation 238 includes products 1, 2, 6, and 7, the system sequentially selects each product (e.g., 1, 2, 6, and 7) as a main product and applies a cluster-based elasticity estimation regression algorithm to each main product to determine cluster-based self-price elasticity and cross-elasticity values ​​for each main product.

[0075] The system generates a demand forecasting model to predict the demand for one or more products using finely tuned elasticity estimates (operation 220). According to one embodiment, the system trains a demand forecasting model using finely tuned elasticity estimates. The model takes price data for a set of products as input data. The price data includes at least a set of initial price data and a set of modified price data. The modified data includes price changes for one or more products. Based on receiving the input data, the model predicts the change in demand for the price changed product, based at least on finely tuned self-price elasticity values. The model also predicts the demand for one or more substitute products, as indicated by finely tuned cross-elasticity values. According to one exemplary embodiment, the system takes price data as input data and generates output data the following: (a) a set of products that are substitutes for the price changed product, and (b) demand forecasts for both the price changed product and the substitute product.

[0076] For example, a retailer may include product-specific sales data within a particular product category, such as “shirts” or “dairy products,” as input data for a demand forecasting model. The retailer may indicate a sales event in which the prices of 10 items within the “shirts” category are reduced by 10%. The demand forecasting model generates forecasts of the change in sales of the 10 items based on a determined self-pricing elasticity value, and forecasts of the change in sales of other products within the “shirts” category based on a fine-tuned cross-pricing elasticity value. According to one exemplary embodiment, the demand forecasting model generates one or more recommendations to maximize a given sales metric. For example, the model may apply a set of rules to predict the price of a set of products such that a given quantity of products is sold within four weeks. Alternatively, the model may predict the price by applying a set of rules that maximize profit.

[0077] According to one embodiment, a product management platform (such as an inventory management platform, a sales management platform, or a platform combining inventory and sales management) monitors sales data to detect changes in demand. The platform may compare sales to thresholds. Based on determining whether sales of a particular product are above an upper threshold or below a lower threshold, the system may trigger actions to (a) determine cluster-based self-price elasticity and cross-price elasticity values ​​for products related to the target product (such as those determined by applying a natural language processing model to the product's SKU description), and (b) model the demand and / or predicted target price of the related products based on the monitored sales data. For example, the system may detect a decline in sales of a particular brand of shoes. The system may model the demand for candidate alternative shoes based on cluster-based fine-tuned self-price elasticity and cross-price elasticity estimates to determine a target price for the alternative shoes.

[0078] The system adjusts product inventory and / or sales attributes based on the forecast (operation 222). For example, based on the forecast generated by the demand forecasting model, a retailer may instruct the system to schedule sales and lower the price of a set of products. Alternatively, the retailer may instruct the system to raise the price of a set of products. 4. Exemplary Embodiments Figures 3A to 3C show exemplary embodiments.

[0079] Retailer 302 generates time-series product sales data by tracking the prices and sales of products corresponding to sales-keeping units (SKUs). Retailer 302 wants to determine the impact of a series of price changes proposed at the start of a new season, including a price increase for at least one set of products and sales of another set of products.

[0080] Retailers provide natural language processing model 306 with sales data, including SKU descriptions, for products sold in specific stores. A retailer's SKUs include a specific format: (a) an abbreviation of the company or brand name, (b) an alphanumeric code representing the product model and / or color, (c) a code representing the product size, and (d) a code representing a specific variation of the model. SKUs include combinations of human-readable words (such as "milk," "yogurt," and "bread"), abbreviations (such as "strewbry," "pln," and "yel"), and codes (such as C2349 and P4455).

[0081] The NLP model applies the Term Frequency, Inverse Document Frequency (TF-IDF) algorithm to assign weight values ​​to words, abbreviations, and codes within SKUs. The TF-IDF algorithm is a numerical statistics algorithm used to assess the importance of words, abbreviations, or codes in distinguishing one SKU from another. The NLP model transforms the SKUs into a numerical feature matrix. Each row of the numerical feature matrix represents an SKU, and each column represents a term within the SKU, along with its corresponding TF-IDF score. The system applies the cosine similarity algorithm to the TF-IDF values ​​for each SKU to generate a similarity score for each SKU. The system generates NLP-based SKU clusters by applying a set of rules to a dataset containing SKUs, sales data, and similarity scores. The system clusters together SKUs that (a) have revenue values ​​exceeding a revenue threshold during a specific period, and (b) have a cosine similarity score indicating a similarity of 95 percent or more to all SKUs within a specific product category.

[0082] Figure 3A shows an NLP-based product cluster 308, which includes a first cluster 309a containing products 1-6, a second cluster 309b containing products 7-20, and up to the nth cluster 309n.

[0083] The system applies the elasticity estimation regression algorithm 310 to clusters 309a to 309n to generate elasticity-based subclusters 311a to 311n. Specifically, the system applies the elasticity estimation regression algorithm to each pair of products in cluster 1 (309a) to generate elasticity-based clusters 311a and 311b. Similarly, the system applies the elasticity estimation regression algorithm to each pair of products in cluster 2 (309b) to generate clusters 311c to 311f. The system applies the elasticity estimation regression algorithm 310 to each pair of products in each cluster. Specifically, for cluster 309a, the system applies the algorithm to the following pairs of products:

[0084] [Table 1]

[0085] For each primary product / target product pair, the system applies an elasticity estimation regression algorithm to determine (a) the initial self-price elasticity value of the primary product / target product pair, and (b) the initial cross-price elasticity value of the primary product / target product pair. The system generates elasticity-based clusters 311a to 311n by clustering together target products associated with the same primary product that satisfy the following criteria: (a) the primary product has a negative self-price coefficient value, (b) the primary product's self-price coefficient value is above a threshold, (c) the target product has a positive cross-price coefficient value, and (d) the target product's cross-price coefficient value is above a threshold. In other words, each elasticity-based cluster 311a to 311n contains (a) a single primary product that satisfies criteria (a) and (b), as well as one or more target products that satisfy criteria (c) and (d).

[0086] The system applies a cluster-based elasticity estimation regression algorithm 312 to elasticity-based clusters 311a to 311n to generate cluster-based elasticity values ​​313a to 313n. Applying the cluster-based elasticity estimation regression algorithm involves applying the algorithm to pairs containing a single major product and one or more product cluster sets 311a to 312n to generate cluster-level self-price elasticity values ​​and cross-elasticity values ​​313a to 313n.

[0087] The system generates product-level elasticity values ​​314a to 314n by passing cluster-level self-price elasticity values ​​and cross-elasticity values ​​313a to 313n to specific products by modifying the cluster-based elasticity value using values ​​based on sales for each specific product within the cluster. For example, cluster 311a includes product 1, product 3, and product 5. The sales ratios of products 1, 3, and 5 are 60%, 30%, and 10%, respectively. The system generates product-level elasticity values ​​from the cluster-based elasticity value by multiplying the cluster-based elasticity value by the relative sales ratio attributable to each product.

[0088] The system applies one or more improvement algorithms 315 to product-level elasticity values ​​314a to 314n to generate improved estimated elasticity values ​​316a to 316n. Based on one improvement algorithm 315, the system applies a limit to the cross-elasticity values ​​based on the product's self-price elasticity. For example, the system may reduce the cross-elasticity values ​​associated with products that have low self-price elasticity. In other words, for a product where a change in price results in little or no change in demand for the product, this product should not have a high cross-elasticity with other products. A change in demand for the first product is unlikely to result in little or no change in demand for a substitute product.

[0089] Based on another improvement algorithm 315, the system limits the cross-elasticity of a product based on the demand for that product. For example, if the demand for a product during a given time interval is 100 units, a price change corresponding to the product should not cause it to substitute more than 100 units.

[0090] Based on further refinement algorithms, the system applies cross-elasticity boundaries based on the characteristics of other or substitute products within a product cluster based on the elasticity of the main product. For example, if there are three other products within an elasticity-based product cluster, the combined change in demand for these three other products should not exceed the total demand for the main product. In addition, to prevent changes in product prices from resulting in some loss of demand or consumers not purchasing the product and instead buying substitutes, the system may further restrict the total change in demand for substitute products to a value smaller than the total demand for the main product. For example, if the demand for the main product during a particular time interval is 100 units, a change in product price may result in a total distributed demand of 80 units or less for the three substitute products (10 units corresponding to customers expected to purchase the main product at a higher price, and 10 units corresponding to a loss of demand).

[0091] The system generates a product demand forecasting model 320 based on improved estimated elasticity values ​​316a to 316n. The product demand forecasting model 320 takes product price data as an input feature and is trained to generate product demand data for both the product and additional products, including substitute products, based on the improved elasticity estimates. The retailer interacts with a graphical user interface (GUI) and selects a set of products for demand analysis (action 317). For example, the set of products may include a subset of products sold by the retailer, including products associated with proposed price changes, including price increases for some products and price decreases for others. The set of products may also include all products sold by the retailer. The product demand forecasting model 320 takes price data for the selected set of products and generates product demand forecasting data 322 for one or more products. According to one exemplary embodiment, the retailer provides the product demand forecasting model 320 with (a) current or historical price data for the set of products, and (b) price change data for one or more products from the set of products. Based on the improved estimated elasticity values ​​316a–316n on which Model 320 is trained, Model 320 generates output data that (a) identify a set of products other than the product identified by the retailer as having a price change, which are substitutes for the price-changed product, and (b) forecast the change in demand for both the price-changed product and the substitute products. Thus, Model 320 provides retailers with forecasts regarding the demand for goods sold by retailers, taking into account factors such as collinearity, low product demand, low product self-price elasticity, and the number of available substitute products affected by the price change for the product. 5. Computer networks and cloud networks In one or more embodiments, a computer network provides connectivity between sets of nodes. These nodes may be local and / or remote to one another. The nodes are connected by a set of links. Examples of links include coaxial cables, uninsulated twisted cables, copper cables, optical fibers, and virtual links.

[0092] A subset of nodes implements computer networks. Examples of such nodes include switches, routers, firewalls, and network address translators (NATs). Another subset of nodes utilizes computer networks. Such nodes (also called "hosts") can run client processes and / or server processes. Client processes make requests for computing services (such as running a specific application and / or storing a specific amount of data). Server processes respond by performing the requested services and / or returning the corresponding data.

[0093] A computer network may be a physical network that includes physical nodes connected by physical links. A physical node is any digital device. A physical node may also be a function-specific hardware device such as a hardware switch, hardware router, hardware firewall, and hardware NAT. In addition or alternatively, a physical node may be a general-purpose machine configured to run various virtual machines and / or applications that perform their respective functions. A physical link is a physical medium that connects two or more physical nodes. Examples of links include coaxial cables, uninsulated twisted cables, copper cables, and optical fibers.

[0094] A computer network may be an overlay network. An overlay network is a logical network implemented on top of another network (such as a physical network). Each node in the overlay network corresponds to each node in the underlying network. Therefore, each node in the overlay network is associated with both an overlay address (for addressing the overlay node) and an underlay address (for addressing the underlay node that implements the overlay node). Overlay nodes may be digital devices and / or software processes (such as virtual machines, application instances, or threads). Links connecting overlay nodes are implemented as tunnels through the underlying network. The overlay nodes at both ends of the tunnel treat the underlying multi-hop path between these overlay nodes as a single logical link. Tunneling is performed through encapsulation and deencapsulation.

[0095] In the embodiment, the client may be local and / or remote to the computer network. The client may access the computer network via a private network or other computer network such as the Internet. The client may communicate requests to the computer network using a communication protocol such as the Hypertext Transfer Protocol (HTTP). Requests are communicated through an interface such as a client interface (such as a web browser), a program interface, or an application programming interface (API).

[0096] In embodiments, a computer network provides connectivity between clients and network resources. Network resources include hardware and / or software configured to run server processes. Examples of network resources include processors, data storage devices, virtual machines, containers, and / or software applications. Network resources are shared among multiple clients. Clients request computing services from the computer network independently of each other. Network resources are dynamically allocated to requests and / or clients on an on-demand basis. Network resources allocated to each request and / or client may be scaled up or down based, for example, (a) computing services requested by a particular client, (b) aggregated computing services requested by a particular tenant, and / or (c) aggregated computing services requested to the computer network. Such a computer network may also be referred to as a “cloud network”.

[0097] In an embodiment, a service provider provides a cloud network to one or more end users. The cloud network can implement various service models, including, but not limited to, Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a-Service (IaaS). In SaaS, the service provider provides end users with the ability to use the service provider's applications running on network resources. In PaaS, the service provider provides end users with the ability to deploy custom applications on network resources. Custom applications can be created using programming languages, libraries, services, and tools supported by the service provider. In IaaS, the service provider provides end users with the ability to provision processing, storage, networking, and other basic computing resources provided by the network resources. Any application, including an operating system, can be deployed on the network resources.

[0098] In embodiments, but not limited to, various deployment models can be implemented by the computer network, including private clouds, public clouds, and hybrid clouds. In a private cloud, network resources are provisioned for exclusive use by a specific group of one or more entities (wherein used herein, the term “entity” refers to a company, organization, person, or other entity). Network resources may be local and / or remote to the premises of a particular group of entities. In a public cloud, cloud resources are provisioned for multiple entities that are independent of each other (also referred to as “tenants” or “customers”). The computer network and its network resources are accessed by clients corresponding to different tenants. Such a computer network may be referred to as a “multitenant computer network”. Several tenants may use the same particular network resources at different times and / or at the same time. Network resources may be local and / or remote to the tenant’s premises. In a hybrid cloud, the computer network comprises a private cloud and a public cloud. Interfaces between the private cloud and the public cloud enable data and application portability. Data stored in the private cloud and data stored in the public cloud may be exchanged through these interfaces. Applications running on a private cloud and applications running on a public cloud may have dependencies on each other. Calls from an application in the private cloud to an application in the public cloud (and vice versa) may be made through an interface.

[0099] In embodiments, tenants in a multi-tenant computer network are independent of each other. For example, the business or operations of one tenant may be separate from the business or operations of another tenant. Different tenants may have different network requirements for the computer network. Examples of network requirements include processing speed, data storage capacity, security requirements, performance requirements, throughput requirements, latency requirements, resilience requirements, quality of service (QoS) requirements, tenant isolation, and / or consistency. The same computer network may need to implement the different network requirements demanded by different tenants.

[0100] In one or more embodiments, tenant isolation is implemented in a multi-tenant computer network to ensure that applications and / or data of different tenants are not shared with one another. Various tenant isolation approaches may be used.

[0101] In this embodiment, each tenant is associated with a tenant ID. Each network resource in a multi-tenant computer network is tagged with the tenant ID. A tenant is only permitted to access a particular network resource if the tenant and the specific network resource are associated with the same tenant ID.

[0102] In this embodiment, each tenant is associated with a tenant ID. Each application implemented by the computer network is tagged with the tenant ID. In addition, or alternatively, each data structure and / or dataset stored by the computer network is tagged with the tenant ID. A tenant is granted access to a particular application, data structure, and / or dataset only if the tenant and the particular application, data structure, and / or dataset are associated with the same tenant ID.

[0103] For example, each database implemented by a multi-tenant computer network may be tagged with a tenant ID. Only tenants associated with the corresponding tenant ID may access the data in a particular database. As another example, each entry in a database implemented by a multi-tenant computer network may be tagged with a tenant ID. Only tenants associated with the corresponding tenant ID may access the data in a particular entry. However, the database may be shared by multiple tenants.

[0104] In this embodiment, the subscription list indicates which tenants have authentication to access which applications. For each application, a list of tenant IDs of tenants authenticated to access the application is stored. A tenant is permitted to access a particular application only if their tenant ID is included in the subscription list corresponding to that application.

[0105] In this embodiment, network resources (such as digital devices, virtual machines, application instances, and threads) corresponding to different tenants are isolated in tenant-specific overlay networks maintained by a multi-tenant computer network. For example, packets from any source device in a tenant overlay network can only be sent to other devices within the same tenant overlay network. Encapsulation tunnels are used to prevent transmission from any source device on one tenant overlay network to devices in other tenant overlay networks. Specifically, packets received from a source device are encapsulated within an external packet. The external packet is sent from a first encapsulation tunnel endpoint (communicating with the source device in the tenant overlay network) to a second encapsulation tunnel endpoint (communicating with the destination device in the tenant overlay network). The second encapsulation tunnel endpoint decapsulates the external packet to retrieve the original packet sent by the source device. The original packet is then sent from the second encapsulation tunnel endpoint to the destination device in the same specific overlay network. 6. Miscellaneous rules, extensions The embodiments relate to a system comprising one or more devices, each including a hardware processor and configured to perform any of the operations described herein and / or any of the operations enumerated in any of the appended claims.

[0106] In embodiments, a non-temporary computer-readable storage medium includes instructions that, when executed by one or more hardware processors, cause to perform any of the operations described herein and / or any of the operations enumerated in any of the claims.

[0107] Any combination of the features and functions described herein may be used according to one or more embodiments. In the foregoing specification, embodiments have been described with reference to many specific details that may differ from embodiment to embodiment. Therefore, this specification and the drawings should be considered illustrative and not limiting. The sole and exclusive indication of the scope of the present invention, and what the applicants intend to be the scope of the present invention, is the literal and equivalent scope in any specific form derived from such claims, including any subsequent modifications, of the set of claims derived from this application. 7. Hardware Overview According to one embodiment, the technologies described herein are implemented by one or more dedicated computing devices. These dedicated computing devices may be wired together to perform these technologies, or may include one or more application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or network processing units (NPUs) digital electronic devices that are permanently programmed to perform these technologies, or may include one or more general-purpose hardware processors programmed to perform these technologies according to program instructions in firmware, memory, other storage, or a combination thereof. Such dedicated computing devices may also combine custom hardwired logic, ASICs, FPGAs, or NPUs with custom programming to perform these technologies. Dedicated computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices, or any other devices that incorporate hardwired logic and / or programmable logic to implement these technologies.

[0108] For example, Figure 4 is a block diagram showing a computer system 400 that can carry out an embodiment of the present invention. The computer system 400 comprises a bus 402 or other communication mechanism for communicating information and a hardware processor 404 coupled to the bus 402 for processing information. The hardware processor 404 may be, for example, a general-purpose microprocessor.

[0109] The computer system 400 also includes main memory 406, such as random access memory (RAM) or other dynamic storage device, coupled to bus 402 for storing information and instructions executed by processor 404. Main memory 406 may also be used to store temporary variables or other intermediate information during the execution of instructions by processor 404. Once such instructions are stored in a non-temporary storage medium accessible to processor 404, the computer system 400 becomes a dedicated machine customized to perform the operations specified by the instructions.

[0110] The computer system 400 further includes a read-only memory (ROM) 408 or other static storage device coupled to the bus 402 for storing static information and instructions for the processor 404. A storage device 410, such as a magnetic disk or optical disk, is provided and coupled to the bus 402 for storing information and instructions.

[0111] The computer system 400 can be coupled via a bus 402 to a display 412, such as a cathode ray tube (CRT), for displaying information to the computer user. An input device 414, including alphanumeric keys and other keys, is coupled to the bus 402 to communicate information and command selections to the processor 404. Another type of user input device is a cursor control unit 416, such as a mouse, trackball, or cursor directional keys, for communicating directional information and command selections to the processor 404, and for controlling cursor movement on the display 412. This input device typically has two degrees of freedom along two axes, a first axis (e.g., x) and a second axis (e.g., y), which allows the device to specify a position in a plane.

[0112] The computer system 400 can implement the techniques described herein using customized hardwired logic, one or more ASICs or FPGAs, firmware, and / or programmable logic that, when combined with the computer system, make the computer system 400 a dedicated machine or programmable to make it a dedicated machine. According to one embodiment, the techniques described herein are executed by the computer system 400 in response to the processor 404 executing one or more sequences of one or more instructions contained in the main memory 406. Such instructions may be read into the main memory 406 from another storage medium, such as a storage device 410. The execution of the sequence of instructions contained in the main memory 406 causes the processor 404 to carry out the process steps described herein. In alternative embodiments, hardwired circuits may be used instead of or in combination with software instructions.

[0113] When used herein, the term “storage medium” refers to any non-temporary medium that stores data and / or instructions that cause a machine to operate in a particular manner. Such storage mediums may include non-volatile and / or volatile media. Non-volatile media include, for example, optical or magnetic disks such as storage device 410. Volatile media include dynamic memory such as main memory 406. Common forms of storage mediums include, for example, floppy disks, flexible disks, hard disks, solid-state drives, magnetic tapes, or any other magnetic data storage media, CD-ROMs, any other optical data storage media, any physical media having a perforation pattern, RAM, PROMs, EPROMs, FLASH-EPROMs, NVRAMs, any other memory chips or cartridges, associative memory (CAM: content-addressable memory), and ternary associative memory (TCAM: ternary content-addressable memory).

[0114] A storage medium is different from a transmission medium, but may be used together with a transmission medium. The transmission medium is involved in the transfer of information between storage mediums. For example, the transmission medium includes coaxial cables, copper wires, and optical fibers, including wires with a bus 402. The transmission medium may also take the form of sound waves or light waves, such as those generated during radio and infrared data communications.

[0115] Various forms of media may be involved in transporting one or more sequences of one or more instructions to the processor 404 for execution. For example, the instructions may initially be transported on a magnetic disk or solid-state drive of a remote computer. The remote computer may load the instructions into its dynamic memory and transmit them over a telephone line using a modem. A modem local to the computer system 400 may receive the data over the telephone line and convert the data into an infrared signal using an infrared transmitter. An infrared detector may receive the data transported by the infrared signal, and appropriate circuitry may place the data on the bus 402. The bus 402 transports the data to the main memory 406, from which the processor 404 retrieves and executes the instructions. The instructions received by the main memory 406 may optionally be stored on the storage device 410 before or after execution by the processor 404.

[0116] The computer system 400 also includes a communication interface 418 coupled to bus 402. The communication interface 418 provides bidirectional data communication coupling to a network link 420 connected to a local network 422. For example, the communication interface 418 may be an integrated services digital network (ISDN) card, a cable modem, a satellite modem, or a modem for providing data communication connectivity to a corresponding type of telephone line. As another example, the communication interface 418 may be a local area network (LAN) card for providing data communication connectivity to a compatible LAN. A wireless link may also be implemented. In any such embodiment, the communication interface 418 transmits and receives electrical, electromagnetic, or optical signals carrying digital data streams representing various types of information.

[0117] A network link 420 typically provides data communication to other data devices through one or more networks. For example, a network link 420 can provide connectivity to a host computer 424 or to data devices operated by an Internet Service Provider (ISP) 426 via a local network 422. The ISP 426 then provides data communication services through a global packet data communication network now commonly referred to as the "Internet" 428. Both the local network 422 and the Internet 428 use electrical, electromagnetic, or optical signals to carry digital data streams. Signals traversing various networks, and signals on the network link 420 through the communication interface 418, carry digital data to and from the computer system 400 and are exemplary forms of transmission media.

[0118] The computer system 400 can send messages and receive data, including program code, through the network, network link 420, and communication interface 418. In the example of the internet, server 430 may send requested code for an application program through the internet 428, ISP 426, local network 422, and communication interface 418.

[0119] The received code may be executed by processor 404 upon receipt, and / or stored in memory device 410 or other non-volatile memory for later execution.

[0120] In this specification, embodiments of the present invention have been described with respect to numerous specific details that may vary from embodiment to embodiment. Therefore, this specification and the drawings should be considered illustrative and not limiting. The sole and exclusive indication of the scope of the present invention, and what the applicants intend to be the scope of the present invention, is the literal and equivalent scope of any set of claims derived in this application, including any subsequent modifications thereof, in any specific form derived from such claims.

Claims

1. A computer-readable medium having instructions, wherein, when executed by one or more hardware processors, the instructions cause an operation to be performed, and the operation is, This includes generating a retail forecasting model for predicting the impact of price changes and demand changes across multiple products, and such generation is at least: To obtain a set of product data including sales data for the aforementioned multiple products and product descriptions for the aforementioned multiple products, The plurality of products are clustered into multiple product clusters according to the text similarity between the product descriptions of the plurality of products. Applying a cluster-level price elasticity estimation regression algorithm to the multiple product clusters to generate a set of cluster-level estimated price elasticity values, This involves modifying the set of estimated price elasticity values ​​at the cluster level based on the demand attributes of the aforementioned multiple products, and generating price elasticity values ​​at multiple product levels for the aforementioned multiple products, wherein the generation includes at least, This is achieved by using a first demand value representing the demand level of a first product within the first product cluster to modify the estimated price elasticity value of the first cluster level of the first product cluster, thereby generating a price elasticity value of the first product level corresponding to the first product. A computer-readable medium further comprising generating a retail forecast model for the plurality of products based on the price elasticity values ​​of the plurality of product levels.

2. Clustering the aforementioned multiple products into the aforementioned multiple product clusters according to the text similarity between the product descriptions of the aforementioned multiple products is: Applying a natural language processing (NLP) model to the product descriptions of the multiple products to identify the text similarity between the product descriptions, The computer-readable medium according to claim 1, comprising clustering the plurality of products into a set of NLP-based product clusters based on the text similarity.

3. The computer-readable medium according to claim 2, wherein the NLP model includes (a) a term frequency, inverse document frequency (TF-IDF) algorithm for generating a numerical frequency matrix including TF-IDF values ​​of terms in the product description, and (b) a cosine similarity algorithm for generating a text similarity score for each pair of products among the plurality of products based on the TF-IDF values.

4. The NLP model generates multiple embeddings corresponding to each of the multiple products based on the product descriptions of the multiple products, Clustering the aforementioned multiple products into the aforementioned multiple product clusters is, The computer-readable medium according to claim 2, comprising applying a clustered machine learning model to the plurality of embeddings to generate the plurality of product clusters.

5. The aforementioned operation is, The method further includes applying a product-level price elasticity estimation regression algorithm to each pair of products in the set of NLP-based product clusters to generate a first set of estimated price elasticity values ​​for the plurality of products, wherein the generation includes at least: The product-level price elasticity estimation regression algorithm is applied to the first and second products in the first NLP-based product cluster to determine the first estimated elasticity value of the first product. The product-level price elasticity estimation regression algorithm is applied to the second product and the first product within the first NLP-based product cluster to determine the second estimated elasticity value of the second product. This involves, for each of the multiple product clusters, comparing a first set of estimated price elasticity values ​​for the products within each of the multiple product clusters with a clustering criterion to generate the multiple product clusters, which are product subclusters based on the elasticity of the NLP-based product clusters, and the generation of these clusters includes, at a minimum, Determining that a first subset of products within the first product cluster satisfies the clustering criteria, Based on the determination that a first subset of the product satisfies the clustering criteria, the first subset of the product is clustered into a product subcluster based on a first elasticity. Determining that a second subset of products within the first product cluster satisfies the clustering criteria, The computer-readable medium according to claim 2, wherein the second subset of the product is clustered into a second elasticity-based product subcluster based on the determination that the second subset of the product satisfies the clustering criteria.

6. Applying the aforementioned product-level price elasticity estimation regression algorithm to each pair of products in the set of NLP-based product clusters means that (a) Including generating pairs of multiple products, the generation of which (i) Select the first product in the first NLP-based product cluster as the main product. (ii) by selecting a second product within the first NLP-based product cluster as the target product, (b) Applying the product-level price elasticity estimation regression algorithm to the main product and the target product to determine the self-price elasticity of the main product related to the target product and the cross-price elasticity of the main product related to the target product, The computer-readable medium according to claim 5, further comprising repeating operations (a) and (b) until each of the products among the plurality of products is selected as the main product and combined with each of the other products among the plurality of products selected as the target product.

7. The aforementioned operation is, To obtain price change data for at least one of the aforementioned multiple products, Applying the retail forecasting model to a set of modified price data for the plurality of products, including the price change data for at least one product, The computer-readable medium according to claim 1, further comprising generating a demand forecast for the at least one product based on the price change data using the retail forecasting model.

8. The aforementioned set of product data is Time-series data representing the sales of the aforementioned multiple products, A unique product identifier (ID) for each of the aforementioned products, and The computer-readable medium according to claim 1, comprising one or more text-based product descriptions for each of the aforementioned products.

9. Applying the cluster-level price elasticity estimation regression algorithm to the multiple product clusters and generating a set of cluster-level estimated price elasticity values ​​is: (a) including generating a number of main product / cluster pairs, wherein the generation is at least (i) Select the first product as the main product, (ii) Selecting at least one elasticity-based subcluster from among the multiple product clusters as the target set of the elasticity-based subcluster, (b) Applying the cluster-level price elasticity estimation regression algorithm to the target set of the main product and the elasticity-based subcluster to determine the cluster-level self-price elasticity value of the main product related to the target set of the elasticity-based subcluster and the cluster-level cross-elasticity value of the main product related to the target set of the elasticity-based subcluster, The computer-readable medium according to claim 1, further comprising repeating operations (a) and (b) until each elasticity-based subcluster is selected as the main product and combined with each product as an elasticity-based target subcluster within the set of elasticity-based subclusters.

10. The aforementioned operation is, The method further includes generating a plurality of improved product-level price elasticity values ​​from the plurality of product-level price elasticity values, wherein the generation is Based on the determination that the corresponding product-level self-pricing elasticity value does not meet the self-pricing elasticity threshold, the cross-elasticity values ​​of one or more product levels are reduced, Based on the demand levels of one or more corresponding product sets, reduce the cross-elasticity values ​​of the one or more product levels, This involves performing at least one of the following: reducing the cross-elasticity value of one or more product levels based on the number of alternative products corresponding to a particular product. The computer-readable medium according to claim 1, wherein the retail forecasting model is generated based on the multiple improved product-level price elasticity values.

11. A method comprising the operation described in any one of claims 1 to 10.

12. One or more processors, A system comprising a memory storing instructions, wherein when an instruction is executed by one or more processors, the system causes the system to perform the operation described in any one of claims 1 to 10.