DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Notice to Applicant
The following is a Non-Final, first Office Action responsive to Applicant’s communication of 8/6/25, in which applicant filed the application. Claims 1-20 are pending in the instant application and have been rejected below.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 8/6/25 is being considered by the examiner.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e. an abstract idea) without reciting significantly more.
Step One - First, pursuant to step 1 in MPEP 2106.03, the claim 1 is directed to an apparatus which is a statutory category.
Step 2A, Prong One - MPEP 2106.04 - The claim 1 recites–
A demand forecasting system comprising:
…
access historical sales data for an item;
determine that the historical sales data for the item includes a stockout event during a time period;
in response to determining that the historical sales data includes the stockout event, generate synthetic sales data for the item during the time period (Applicant’s [0094] as published states “, the synthetic data generator 210 may generate synthetic sales data that represents the predicted sales data if the stockout had not occurred”);
replace data of the historical sales data corresponding to the stockout event with the synthetic sales data;
… an item-specific demand forecasting model using the historical sales data, wherein training the item-specific demand forecasting model using the historical sales data comprises training the item-specific demand forecasting model with the synthetic sales data and with other data of the historical sales data that is not synthetically generated; and
forecast demand for the item using the trained item-specific demand forecasting model.
As drafted, this is, under its broadest reasonable interpretation, within the Abstract idea grouping of “certain methods of organizing human activity” (Commercial or legal interactions - marketing or sales activities or behaviors) and mathematical relationships, as here we have historical sales data for an item, determine that the historical sales includes a stockout event during a time period, generate synthetic sales data (i.e. for the period where there was insufficient stock), release the sales data for the stockout with the synthetic sales data (see e.g. claim 6 – time periods when there was no stockout; or claim 7 – sales from a different location that had no stockout; claim 9, 10, 14, 16, 18-19– sales of similar items at different locations), train a “forecasting model” using historical sales, item-specific demand, and synthetic sales to generate a forecasted demand (mathematical relationship – include synthetic sales from other times/locations or similar items/sales to get more accurate forecast for the future). Accordingly, claim 1 is directed to an abstract idea for marketing and forecasting demand from past sales and attempting to correct the forecast based on using mathematical adjustment of synthetic sales for stockout events that occurred.
Step 2A, Prong Two - MPEP 2106.04 - This judicial exception is not integrated into a practical application. In particular, the claim 1 recites additional elements that are:
A demand forecasting system comprising:
a processor; and
a memory communicatively connected to the processor and storing instructions which, when executed by the processor, cause the demand forecasting system to:
access historical sales data for an item;
…
train an item-specific demand forecasting model using the historical sales data, wherein training the item-specific demand forecasting model using the historical sales data comprises training the item-specific demand forecasting model with the synthetic sales data and with other data of the historical sales data that is not synthetically generated; and
forecast demand for the item using the trained item-specific demand forecasting model.
The element of processor, memory storing instructions executed by the processor for implementing the abstract idea of forecasting sales, and stating the forecasted demand model uses “train” and training/trained data, amounts to no more than mere instructions to apply the exception using a generic computer component (See MPEP 2106.05(f)) and individually or in combination is consideration “field of use” (MPEP 2106.05h). Examiner notes “machine learning” is not required at this time, based on [0066] as published stating “one or more of the forecasting models 222 may be a machine learning model.” Even if “training” of a forecast is considered some form of “artificial intelligence,” at the high level given, it is just considered “apply it [abstract idea] on a computer MPEP 2106.05(f)) and individually or in combination is consideration “field of use” (MPEP 2106.05h). Accordingly, the additional elements do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim also fails to recite any improvements to another technology or technical field, improvements to the functioning of the computer itself, use of a particular machine, effecting a transformation or reduction of a particular article to a different state or thing, and/or an additional element applies or uses the judicial exception in some other meaningful way beyond generally linking the use of the judicial exception to a particular technological environment, such that the claim as a whole is more than a drafting effort designed to monopolize the exception. See 84 Fed. Reg. 55.
Step 2B in MPEP 2106.05 - The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements of a computer system, units, and application, are MPEP 2106.05(f) (Mere Instructions to Apply an Exception – “Thus, for example, claims that amount to nothing more than an instruction to apply the abstract idea using a generic computer do not render an abstract idea eligible.” Alice Corp., 134 S. Ct. at 235) and MPEP 2106.05h (field of use). Mere instructions to apply an exception using a generic computer component cannot provide an inventive concept.
The claim fails to recite any improvements to another technology or technical field, improvements to the functioning of the computer itself, use of a particular machine, effecting a transformation or reduction of a particular article to a different state or thing, adding unconventional steps that confine the claim to a particular useful application, and/or meaningful limitations beyond generally linking the use of an abstract idea to a particular environment. See 84 Fed. Reg. 55. The claim is not patent eligible. Viewed individually or as a whole, these additional claim element(s) do not provide meaningful limitation(s) to transform the abstract idea into a patent eligible application of the abstract idea such that the claim(s) amounts to significantly more than the abstract idea itself.
Claim 10 at step one is an apparatus, which is a statutory category. Claim 10 is rejected for similar reasons as claim 1 above. Claim 10 is rejected for similar reasons at step 2a, prong one; step 2a, prong 2 and step 2b, and in combination/individually at step 2a, prong two and step 2b - is considered MPEP 2106.05f – apply it [abstract idea] on a computer and field of use (MPEP 2106.05h) for the same reasons as above. Claim 10 further narrows the abstract idea by stating that synthetic sales is based on similar items, as discussed above with regards to some dependent claims.
Independent Claim 19 is directed to a method at step 1, which is a statutory category. Claim 19 is rejected for the same reasons as claim 1 and 10.
Claim 2 further narrows the abstract idea by including further mathematical relationships of a comparison of sales from different periods to see which time periods have less sales than a threshold amount, for further narrowing the abstract idea of marketing forecasts of identifying periods affected by inventory stockouts.
Claim 3 further narrows the abstract idea by determining a likelihood of sales based on a location and a season and determining a likelihood (a mathematical relationship) during a time period is below a threshold value.
Claim 4 further narrows the abstract idea by having further business analysis of initial inventory level, looking at restock and purchase events to help identify a stockout event.
Claim 5 further narrows the abstract idea by only replacing sales with weeks associated with the stockout event.
Claims 6-7, 12, and 18 further narrow the abstract idea by using sales data for a second time period (no stockout) (claim 6, 12, 18) or from a time period at a second location (claim 7) as basis for “synthetic data” for when sales data missing from a stockout.
Claim 8 further narrows the abstract idea by stating the synthetic data represents unconstrained demand, for if the stockout event had not occurred.
Claim 9 further narrows the abstract idea by looking at price, location and season, and determining sales of similar items that are more likely based on the similar sales.
Claim 11 narrows the abstract idea by phasing out synthetic data with actual updated sales. Claim 11 also has “retrain”/training, which is considered an additional element as in claim 1 of a computer executing stored instructions of “training”, and is considered, at step 2a, prong 2 and step 2B, MPEP 2106.05f (apply it [abstract idea] on a computer) and “field of use” (MPEP 2106.05h) for similar reasons as above. The “retrain” here is just for “more data” as it is updated.
Claim 13 narrows the abstract idea by including further parameters for the forecast based on historical sales. Claim 13 recites “in response to determining that the parameters for the item-specific demand forecasting model failed to converge within the training time, determining that the historical sales data for the item lacks sales data for the item” but the “failed to converge” language is explained in [0104] as published as referring to the forecast results itself. The training is considered, at step 2a, prong 2 and step 2B, MPEP 2106.05f (apply it [abstract idea] on a computer) and “field of use” (MPEP 2106.05h) for similar reasons as above.
Claim 14 narrows the abstract idea by identifying similar items based on weights or aggregation, which is also a mathematical relationship.
Claim 15 narrows the abstract idea by using test description, text title of item, image of item, and embeddings that represent the item to identify similar items. The “searching” is considered, at step 2a, prong 2 and step 2B, MPEP 2106.05f (apply it [abstract idea] on a computer) and “field of use” (MPEP 2106.05h) for retrieval of information from a computer. At step 2B, this is also considered a conventional computer function – See MPEP 2106.05d – “Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec, 838 F.3d at 1321; “Storing and retrieving information in memory, Versata Dev. Group, Inc. v. SAP Am., Inc.”.
Claim 16 narrows the abstract idea by having time series data that includes locations, quantities sold for weeks/days.
Claim 17, 20 narrows the abstract idea by having a request for a forecast demand, selecting the forecast model, and in claim 20 stating the different forecast models are location-specific, item-specific, or multi-location specific. The “data store” (claim 17) and training (claim 17, 20) is considered, at step 2a, prong 2 and step 2B, MPEP 2106.05f (apply it [abstract idea] on a computer) and “field of use” (MPEP 2106.05h) for storage and retrieval of information from a computer. At step 2B, this is also considered a conventional computer function – See MPEP 2106.05d – “Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec, 838 F.3d at 1321; “Storing and retrieving information in memory, Versata Dev. Group, Inc. v. SAP Am., Inc.”
Therefore, the claim(s) are rejected under 35 U.S.C. 101 as being directed to non-statutory subject matter.
For more information on 101 rejections, see MPEP 2106.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-2, 4-8, 10-12, 16, and 18-20 are rejected under 35 U.S.C. 103 as being unpatentable over Shukla (US 2024/0281831) and Yeung (US 2025/0225475).
Concerning claim 1, Shukla describes:
A demand forecasting system (Shukla see par 42 - promotional forecasting computing system 104 may train a plurality of promotional forecasting ML-AI models to forecast the demand of the product during the promotional period.) comprising:
a processor (Shukla – see par 46 - promotional forecasting computing system 104 may further include a forecasting system (e.g., a forecasting processor) that is configured to use the trained promotional forecasting ML-AI models 108 to forecast demand of promotional products (e.g., products identified in new marketing promotions).); and
a memory communicatively connected to the processor and storing instructions which, when executed by the processor, cause the demand forecasting system (Shukla -see par 46 - functionalities of the promotional forecasting computing system 104 may be implemented as software instructions stored in storage (e.g., memory) and executed by one or more processors.) to:
access historical sales data for an item (Shukla – see par 37, FIG. 1 - each of the data sources 102 is and/or includes one or more computing devices, platforms, and/or systems that are configured to receive, obtain, generate, store, ingest, and/or otherwise process data such as historical data. see par 38 - For example, the data sources 102 may be a source that provides historical data to the promotional forecasting computing system 104. For instance, the data sources 102 may obtain (e.g., receive, track, and/or generate) the historical data such as the sales data for a plurality of products at a plurality of different storefronts and/or promotional data for the products.);
PNG
media_image1.png
568
826
media_image1.png
Greyscale
see also Yeung – see par 60 – demand forecast computing device 102 receives store related data 302 from store 109
determine that the historical sales data for the item includes a stockout event during a time period (Shukla – see par 81 - At block 504, the promotional forecasting computing system 104 uses a lost sale layer processor (e.g., engine) to update lost sales indicated by the historical data (e.g., based on supply shortages). For example, certain products may be out of stock for a period of time (e.g., either due to demand or due to supply chain issues).
see also Yeung – see par 28 - detecting at least one out-of-stock (OOS) time period within the past time period based on the raw sales data; see FIG. 3, par 63 - The database 116 may also store machine learning model data 390 identifying and characterizing one or more machine learning models and related data. For example, the machine learning model data 390 may include an inventory based OOS (out-of-stock) detection model 392, an anomaly based OOS detection model 394, a lost sales estimation model 396, and a demand forecast model 398. For example, the inventory based OOS detection model 392 may detect the OOS time periods by determining when (1) there is no on-hand inventory left for the item, or (2) there is less than one day of supply (DOS) on-hand and there is no sale for the item);
in response to determining that the historical sales data includes the stockout event, generate synthetic sales data for the item during the time period (Applicant’s [0094] as published states “, the synthetic data generator 210 may generate synthetic sales data that represents the predicted sales data if the stockout had not occurred”) (Shukla – see par 81 - promotional forecasting computing system 104 uses a lost sale layer processor (e.g., engine) to update lost sales indicated by the historical data (e.g., based on supply shortages). For example, certain products may be out of stock for a period of time (e.g., either due to demand or due to supply chain issues). Therefore, the sales information for the product might not be accurate as the true demand for the product might not be known solely from the historical data. At block 504, the promotional forecasting computing system 104 may determine whether the sales data for the product for certain weeks is inaccurate (e.g., due to too much demand or due to supply chain issues), and modify the sales data to account for the product being out of stock; see par 85 - the entries may indicate lost sales data associated with a promotional period (e.g., a promotion was offered during that week, which caused the product to be out of stock). The promotional forecasting computing system 104 may use sales data from other week(s) that also had a promotional period for the product to determine new sales data.
see also Yeung – see par 65-66 - The lost sales estimation model 396 may be used to compute estimated lost sales data of an item in a store. For example, based on the lost sales estimation model 396, in-stock only sales data for the item is first generated by excluding OOS time periods from the raw sales data of the item. Then, a model fitting or training may be performed using covariates related to sale of the item as an input, and using imputed daily sale as a target response variable. The estimated lost sales of the item can be determined by subtracting actual sale data from the imputed sale data in each OOS time period);
replace data of the historical sales data corresponding to the stockout event with the synthetic sales data (Shukla – see par 82 - the promotional forecasting computing system 104 may determine the new sales data based on sales from a product or group of products (e.g., a cluster of products) that are similar to the product with the lost sales. For example, the promotional forecasting computing system 104 may determine a product or groups of products (e.g., a cluster of products) that have similar characteristics to the product with the lost sales (e.g., both are toiletry items). Then, the promotional forecasting computing system 104 may calculate new sales data based on the sales data associated with the similar product or cluster of products; see par 86 - the promotional forecasting computing system 104 may use clusters of products or SKUs that are similar to the product to determine the new sales data. For instance, the promotional forecasting computing system 104 may determine a similar product/SKU within the cluster of products that had the same promotion or had a similar promotion running. For example, week 6 of the product had a promotion for buy one get one free, which caused the product to be out of stock. The promotional forecasting computing system 104 may determine a similar SKU to the product that also had a buy one get one free promotion and that was in stock throughout the entire week. For instance, week 8 for a different SKU of the product may have had the same promotion and was in stock throughout. The promotional forecasting computing system 104 may use the sales data for week 8 as the new sales data);
train an item-specific demand forecasting model using the historical sales data, wherein training the item-specific demand forecasting model using the historical sales data comprises training the item-specific demand forecasting model with the synthetic sales data (Shukla – see par 44-45 - , the promotional forecasting computing system 104 may place products together in a cluster or a segment. For example, certain products having similar characteristics may be grouped together; the promotional forecasting computing system 104 may train a separate promotional forecasting ML-AI model for each of the different segments. see par 82 - The promotional forecasting computing system 104 may determine the new sales data based on sales from a product or group of products (e.g., a cluster of products) that are similar to the product with the lost sales. For example, the promotional forecasting computing system 104 may determine a product or groups of products (e.g., a cluster of products) that have similar characteristics to the product with the lost sales (e.g., both are toiletry items). Then, the promotional forecasting computing system 104 may calculate new sales data based on the sales data associated with the similar product or cluster of products. The promotional forecasting computing system 104 may then update the array (e.g., array 600) such as by replacing the previous sales data for the product/SKU of the product with the new sales data. In some instances, the new sales data may be based on times or weeks when the product (e.g., the SKU of the product and/or the SKU-store combination for the product) was not out of stock. see par 91- 93 - returning to FIG. 4, at block 406, the promotional forecasting computing system 104 trains the plurality of promotional forecasting ML-AI models using the standardized historical data. As mentioned above in FIG. 5, the standardized historical data may be based on the historical data, the lost sales data, the different product segments, and/or the new product and/or new storefront data) and with other data of the historical sales data that is not synthetically generated (Applicant’s [0127] as published gives examples of “other data” as “ other data instead of or in addition to sales data, such as data related to pricing, events, macroeconomic conditions, or other conditions that could have affected sales of the example item; [0247] as published “other data that may affect demand” Shukla – see par 70 – historical data may include… price point of the product, median average and/or number of people that live nearby to the storefront; see par 78 - features may include moving average of sales, exponential moving average of sales, minimum and maximum sales, lags from the minimum, maximum, and moving average of sales, direct lag from target variables, and/or exogenous features (e.g., seasonal features, promotion features, unit price, and so on). see par 91 - In some examples, the promotional forecasting computing system 104 may generate data (e.g., the data for the different features) and populate the arrays such as array 600; As the enterprise organization does not have previous sales data or other historical data for this new product or new SKU, the promotional forecasting computing system 104 computes a forecast for the new storefront/SKU combinations by clustering similar products and stores together based on static attributes such as product type and form, store demography, and geography, etc. Then, the promotional forecasting computing system 104 may populate the forecast for a new product with the median forecast generated by a cluster of products most similar to the new product.).
To any extent it is unclear if Shukla is using “other data” and use of its “model”, Yeung discloses:
train an item-specific demand forecasting “model” using the historical sales data, wherein training the item-specific demand forecasting model using the historical sales data comprises training the item-specific demand forecasting model with the synthetic sales data and with “other data of the historical sales data that is not synthetically generated” (Applicant gives example that forecasting models “may be a general additive mixed model (GAMM)” or “general additive model (GAM) or a different model” Yeung – see par 21 - Estimating unfulfilled demand potential, or lost sales, is a difficult problem because it involves estimating sales that would otherwise have occurred if the item had been available on the shelf. par 24 - a disclosed system uses a machine-learning based method to estimate lost sales by leveraging data from an extensive store network of a retailer. A generalized additive model (GAM) is disclosed to capture consumer behavior across diverse geolocations of the store network and infer any lost sales incurred at each store using data available at the other stores; see par 101 - the non-linear model is a machine learning model trained based on sale data from all stores. In some embodiments, the non-linear model is a generalized additive model (GAM).The GAM may be used to model the nonlinear relationships between the covariates and the response variable and to impute the missing item-store sales data (after excluding the OOS weeks). The output of GAM signifies the degree to which both local and global characteristics have on local consumer demand, which may be reflected by the mean daily item-store sales for each calendar week. This result will be used to impute the complete demand potential of the OOS weeks that were excluded earlier; see par 117 - can estimate lost sales to transform any forecasting algorithm into one that produces unconstrained forecasts. In some embodiments, the item price or item discount percentage can be added as a feature for the GAM model, and random effects in the GAM model can be included to account for store-specific effects.).
Shukla and Yeung disclose:
forecast demand for the item using the trained item-specific demand forecasting model (Shukla – see par 91 - At block 508, the promotional forecasting computing system 104 uses a new product and new storefront layer processor (e.g., engine) to generate new product or new storefront data for demand forecasting. As the enterprise organization does not have previous sales data or other historical data for this new storefront, the promotional forecasting computing system 104 may generate new storefront data by computing demand forecast by taking the median forecast generated over a cluster of stores most similar to the new store;
see also Yeung par 75 - At operation 470, an unconstrained consumer demand is predicted for the item in the store for the future time period, based on the unconstrained sale datal; see par 109 - after the preprocessing step, the GAM model is fit using the time series for the same item from all stores to generate a demand profile for each store in calendar weeks. ).
Both Shukla and Yeung are analogous art as they are directed to forecasting demand (Shukla Abstract; Yeung Abstract). Shukla discloses forecasting to update lost sales based on supply shortages or being out of stock (See par 81) and historical sales data has different features to compute a forecast from similar products (See par 70, 91)). Yeung improves upon Shukla by disclosing using a generalized additive model (GAM) for capturing lost sales from not having an item available using local and global characteristics, price/discount, and random effects (See par 21, 24, 101, 117). One of ordinary skill in the art would be motivated to further include local and global characteristics, price/discount, and random effects to efficiently improve upon the features used for demand prediction as disclosed in Shukla.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the prediction of lost sales from being out of stock for demand forecasts in Shukla to further use a generalized additive model (GAM) for capturing lost sales from not having an item available using local and global characteristics, price/discount, and random effects as disclosed in Yeung, since the claimed invention is merely a combination of old elements, and in combination each element merely would have performed the same function as it did separately, and one of ordinary skill in the art would have recognized that the results of the combination were predictable and there is a reasonable expectation of success.
Concerning independent claim 10, Shukla and Yeung disclose:
A system for forecasting item demand (Shukla see par 42 - promotional forecasting computing system 104 may train a plurality of promotional forecasting ML-AI models to forecast the demand of the product during the promotional period), the system comprising:
a processor (Shukla – see par 46 - promotional forecasting computing system 104 may further include a forecasting system (e.g., a forecasting processor) that is configured to use the trained promotional forecasting ML-AI models 108 to forecast demand of promotional products (e.g., products identified in new marketing promotions); and
a memory communicatively connected to the processor and storing instructions which, when executed by the processor, cause the demand forecasting system to (Shukla -see par 46 - functionalities of the promotional forecasting computing system 104 may be implemented as software instructions stored in storage (e.g., memory) and executed by one or more processors):
access historical sales data for an item (Shukla – see par 37, FIG. 1 - each of the data sources 102 is and/or includes one or more computing devices, platforms, and/or systems that are configured to receive, obtain, generate, store, ingest, and/or otherwise process data such as historical data. see par 38 - For example, the data sources 102 may be a source that provides historical data to the promotional forecasting computing system 104. For instance, the data sources 102 may obtain (e.g., receive, track, and/or generate) the historical data such as the sales data for a plurality of products at a plurality of different storefronts and/or promotional data for the products
see also Yeung – see par 60 – demand forecast computing device 102 receives store related data 302 from store 109);
determine that the historical sales data for the item lacks sales data for the item during a time period (Shukla – see par 81 - At block 504, the promotional forecasting computing system 104 uses a lost sale layer processor (e.g., engine) to update lost sales indicated by the historical data (e.g., based on supply shortages). For example, certain products may be out of stock for a period of time (e.g., either due to demand or due to supply chain issues
[as in claim 1] - see also Yeung – see par 28 - detecting at least one out-of-stock (OOS) time period within the past time period based on the raw sales data; see FIG. 3, par 63 - The database 116 may also store machine learning model data 390 identifying and characterizing one or more machine learning models and related data);
in response to determining that the historical sales data lacks sales data for the item, generate synthetic sales data for the item during the time period using historical sales data of one or more similar items, wherein the historical sales data of the one or more similar items is not synthetically generated (Applicant’s [0094] as published states “, the synthetic data generator 210 may generate synthetic sales data that represents the predicted sales data if the stockout had not occurred”) (Shukla – see par 81 - promotional forecasting computing system 104 uses a lost sale layer processor (e.g., engine) to update lost sales indicated by the historical data (e.g., based on supply shortages). For example, certain products may be out of stock for a period of time (e.g., either due to demand or due to supply chain issues). Therefore, the sales information for the product might not be accurate as the true demand for the product might not be known solely from the historical data. At block 504, the promotional forecasting computing system 104 may determine whether the sales data for the product for certain weeks is inaccurate (e.g., due to too much demand or due to supply chain issues), and modify the sales data to account for the product being out of stock; see par 82 - the promotional forecasting computing system 104 may determine the new sales data based on sales from a product or group of products (e.g., a cluster of products) that are similar to the product with the lost sales. For example, the promotional forecasting computing system 104 may determine a product or groups of products (e.g., a cluster of products) that have similar characteristics to the product with the lost sales (e.g., both are toiletry items). see par 85 - the entries may indicate lost sales data associated with a promotional period (e.g., a promotion was offered during that week, which caused the product to be out of stock). The promotional forecasting computing system 104 may use sales data from other week(s) that also had a promotional period for the product to determine new sales data; see par 86 - week 6 of the product had a promotion for buy one get one free, which caused the product to be out of stock. promotional forecasting computing system 104 may determine a similar SKU to the product that also had a buy one get one free promotion and that was in stock throughout the entire week. For instance, week 8 for a different SKU of the product may have had the same promotion and was in stock throughout. The promotional forecasting computing system 104 may use the sales data for week 8 as the new sales data.
see also Yeung – see par 65-66 - The lost sales estimation model 396 may be used to compute estimated lost sales data of an item in a store. For example, based on the lost sales estimation model 396, in-stock only sales data for the item is first generated by excluding OOS time periods from the raw sales data of the item. Then, a model fitting or training may be performed using covariates related to sale of the item as an input, and using imputed daily sale as a target response variable. The estimated lost sales of the item can be determined by subtracting actual sale data from the imputed sale data in each OOS time period; see par 106 - the disclosed method does not rely on data points that are known to correspond to a lack of on-hand inventory when OOS occurs. Instead, it imputes these data points by using each sales time series' own history, along with other sales time series that are similar in consumer behavior and from comparable store geolocations in latitude and longitude. Consumer calendars, time to and after national holidays, and local events are also used as covariates in the estimation);
modify the historical sales data for the item to include the synthetic sales data (Shukla – see par 82 - he promotional forecasting computing system 104 may determine the new sales data based on sales from a product or group of products (e.g., a cluster of products) that are similar to the product with the lost sales. For example, the promotional forecasting computing system 104 may determine a product or groups of products (e.g., a cluster of products) that have similar characteristics to the product with the lost sales (e.g., both are toiletry items). Then, the promotional forecasting computing system 104 may calculate new sales data based on the sales data associated with the similar product or cluster of products; see par 86 - the promotional forecasting computing system 104 may use clusters of products or SKUs that are similar to the product to determine the new sales data. For instance, the promotional forecasting computing system 104 may determine a similar product/SKU within the cluster of products that had the same promotion or had a similar promotion running. For example, week 6 of the product had a promotion for buy one get one free, which caused the product to be out of stock. The promotional forecasting computing system 104 may determine a similar SKU to the product that also had a buy one get one free promotion and that was in stock throughout the entire week. For instance, week 8 for a different SKU of the product may have had the same promotion and was in stock throughout. The promotional forecasting computing system 104 may use the sales data for week 8 as the new sales data);
train an item-specific demand forecasting model using the modified historical sales data for the item (Shukla – see par 44-45 - , the promotional forecasting computing system 104 may place products together in a cluster or a segment. For example, certain products having similar characteristics may be grouped together; the promotional forecasting computing system 104 may train a separate promotional forecasting ML-AI model for each of the different segments. see par 82 - The promotional forecasting computing system 104 may determine the new sales data based on sales from a product or group of products (e.g., a cluster of products) that are similar to the product with the lost sales. For example, the promotional forecasting computing system 104 may determine a product or groups of products (e.g., a cluster of products) that have similar characteristics to the product with the lost sales (e.g., both are toiletry items). Then, the promotional forecasting computing system 104 may calculate new sales data based on the sales data associated with the similar product or cluster of products. The promotional forecasting computing system 104 may then update the array (e.g., array 600) such as by replacing the previous sales data for the product/SKU of the product with the new sales data. In some instances, the new sales data may be based on times or weeks when the product (e.g., the SKU of the product and/or the SKU-store combination for the product) was not out of stock. see par 91- 93 - returning to FIG. 4, at block 406, the promotional forecasting computing system 104 trains the plurality of promotional forecasting ML-AI models using the standardized historical data. As mentioned above in FIG. 5, the standardized historical data may be based on the historical data, the lost sales data, the different product segments, and/or the new product and/or new storefront data.); and
forecast demand for the item using the trained item-specific demand forecasting model (Shukla – see par 91 - At block 508, the promotional forecasting computing system 104 uses a new product and new storefront layer processor (e.g., engine) to generate new product or new storefront data for demand forecasting. As the enterprise organization does not have previous sales data or other historical data for this new storefront, the promotional forecasting computing system 104 may generate new storefront data by computing demand forecast by taking the median forecast generated over a cluster of stores most similar to the new store;
see also Yeung par 75 - At operation 470, an unconstrained consumer demand is predicted for the item in the store for the future time period, based on the unconstrained sale datal; see par 109 - after the preprocessing step, the GAM model is fit using the time series for the same item from all stores to generate a demand profile for each store in calendar weeks.).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above.
Concerning independent claim 19, Shukla and Yeung disclose:
A method for forecasting item demand (Shukla see par 35 - Systems, methods, and computer program products are herein disclosed that use promotional forecasting ML-AI models to forecast promotional products; see par 42 - promotional forecasting computing system 104 may train a plurality of promotional forecasting ML-AI models to forecast the demand of the product during the promotional period), the method comprising:
accessing, by a processor (Shukla -see par 46 - functionalities of the promotional forecasting computing system 104 may be implemented as software instructions stored in storage (e.g., memory) and executed by one or more processors), historical sales data for an item (Shukla [same as cl. 1, 10} – see par 37, FIG. 1, see par 38
see also Yeung – see par 60);
determining, by the processor, that the historical sales data for the item is insufficient by determining that the historical sales data is lacking sales data for the item during a time period or includes a stockout event during the time period (Shukla – see par 81 - At block 504, the promotional forecasting computing system 104 uses a lost sale layer processor (e.g., engine) to update lost sales indicated by the historical data (e.g., based on supply shortages). For example, certain products may be out of stock for a period of time (e.g., either due to demand or due to supply chain issues
[as in claim 1] - see also Yeung – see par 28 - detecting at least one out-of-stock (OOS) time period within the past time period based on the raw sales data; see FIG. 3, par 63 - The database 116 may also store machine learning model data 390 identifying and characterizing one or more machine learning models and related data);
in response to determining that the historical sales data is insufficient, generating, by the processor, synthetic sales data for the item during the time period (Shukla [same as cl. 1, 10]– see par 81- Therefore, the sales information for the product might not be accurate as the true demand for the product might not be known solely from the historical data. At block 504, the promotional forecasting computing system 104 may determine whether the sales data for the product for certain weeks is inaccurate (e.g., due to too much demand or due to supply chain issues), and modify the sales data to account for the product being out of stock; see par 85 - The promotional forecasting computing system 104 may use sales data from other week(s) that also had a promotional period for the product to determine new sales data.
see also Yeung – see par 65-66 - The lost sales estimation model 396 may be used to compute estimated lost sales data of an item in a store…);
modifying, by the processor, the historical sales data to include the synthetic sales data (Shukla [same as cl. 1, 10]– see par 82 - the promotional forecasting computing system 104 may determine the new sales data based on sales from a product or group of products (e.g., a cluster of products) that are similar to the product with the lost sales. Then, the promotional forecasting computing system 104 may calculate new sales data based on the sales data associated with the similar product or cluster of products; see par 86 - the promotional forecasting computing system 104 may determine a similar product/SKU within the cluster of products that had the same promotion or had a similar promotion running. For example, week 6 of the product had a promotion for buy one get one free, which caused the product to be out of stock. For instance, week 8 for a different SKU of the product may have had the same promotion and was in stock throughout. The promotional forecasting computing system 104 may use the sales data for week 8 as the new sales data);
training, by the processor, a demand forecasting model using the modified historical sales data (Shukla [same as cl. 1] – see par 44-45, 70, 78, see par 82 - The promotional forecasting computing system 104 may determine the new sales data based on sales from a product or group of products (e.g., a cluster of products) that are similar to the product with the lost sales. The promotional forecasting computing system 104 may then update the array (e.g., array 600) such as by replacing the previous sales data for the product/SKU of the product with the new sales data. In some instances, the new sales data may be based on times or weeks when the product (e.g., the SKU of the product and/or the SKU-store combination for the product) was not out of stock. see par 91- 93 - returning to FIG. 4, at block 406, the promotional forecasting computing system 104 trains the plurality of promotional forecasting ML-AI models using the standardized historical data. As mentioned above in FIG. 5, the standardized historical data may be based on the historical data, the lost sales data, the different product segments, and/or the new product and/or new storefront data; see also Yeung – see par 21 - A generalized additive model (GAM) is disclosed to capture consumer behavior across diverse geolocations of the store network and infer any lost sales incurred at each store using data available at the other stores; see par 101 - the non-linear model is a machine learning model trained based on sale data from all stores. The output of GAM signifies the degree to which both local and global characteristics have on local consumer demand, which may be reflected by the mean daily item-store sales for each calendar week. This result will be used to impute the complete demand potential of the OOS weeks that were excluded earlier; see par 117 - can estimate lost sales to transform any forecasting algorithm into one that produces unconstrained forecasts. In some embodiments, the item price or item discount percentage can be added as a feature for the GAM model, and random effects in the GAM model can be included to account for store-specific effects). and
generating a demand forecast for the item using the demand forecasting model (Shukla [same as cl. 1, 10] – see par 91 - At block 508, the promotional forecasting computing system 104 uses a new product and new storefront layer processor (e.g., engine) to generate new product or new storefront data for demand forecasting;
see also Yeung par 75 - At operation 470, an unconstrained consumer demand is predicted for the item in the store for the future time period, based on the unconstrained sale datal; see par 109 - after the preprocessing step, the GAM model is fit using the time series for the same item from all stores to generate a demand profile for each store in calendar weeks).
The remaining limitations are similar to claim 1 above. Claim 19 is rejected for the same reasons.
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above.
Concerning claim 2, Shukla and Yeung disclose:
The demand forecasting system of claim 1, wherein determining that the historical sales data for the item includes the stockout event during the time period comprises detecting an anomaly in the historical sales data (Shukla – see par 81 - At block 504, the promotional forecasting computing system 104 may determine whether the sales data for the product for certain weeks is inaccurate (e.g., due to too much demand or due to supply chain issues), and modify the sales data to account for the product being out of stock
see also Yeung – see par 83 - This method works by finding anomalies from the sales data that are outliers with respect to a baseline established by weeks that appear to be in-stock. see par 88 - In some embodiments, the anomaly score indicates a difference between the actual sales quantity of the item and the in-stock moving average of the item for the week. In some embodiments, the anomaly score is a negative score, where a more negative value indicates a more anomalous sales quantity, i.e. a spike down compared to baseline.), wherein detecting the anomaly comprises:
comparing sales data for the item during the time period to sales data for the item during a second time period different from the time period (Shukla – see par 105 - In other words, at block 408, the promotional forecasting computing system 104 may determine the product sales forecast associated with the scoring data (e.g., sales for a particular SKU over a period of time such as the next eight weeks). The promotional forecasting computing system 104 may use the trained promotional forecasting ML-AI models to score the promotional forecasting ML-AI models. Based on the forecast computed from the scoring data, the promotional forecasting computing system 104 may determine a confidence factor by analyzing if the forecasted output is within the lower and upper confidence bounds of mean historical sales over the period of training data (e.g., two years).
see also Yeung par 89 - it is determined whether the anomaly score is below a predetermined threshold. If so, the process 600 goes to operation 650 to identify the week as an OOS week for the item in the store. If not, the process 600 goes to operation 660 to identify the week as an IS week for the item in the store. In some embodiments, the threshold is determined based on historical lost sales estimation results); and
determining that the sales data for the item during the time period is less than the sale data for the item during the second time period by at least a threshold amount (Shukla – see par 120 - At block 930, the scoring layer processor 708 computes z-score for 95th percentile confidence and upper and lower bounds. At block 932, the scoring layer processor 708 determines whether forecasted value is within lower and upper bounds. If yes, at block 934, the scoring layer processor 708 assigns a confidence score of 1. If no, at block 936, the scoring layer processor 708 assigns a confidence score of 0.
Yeung – see par 88 - In some embodiments, the anomaly score indicates a difference between the actual sales quantity of the item and the in-stock moving average of the item for the week. In some embodiments, the anomaly score is a negative score, where a more negative value indicates a more anomalous sales quantity, i.e. a spike down compared to baseline. see par 89 - it is determined whether the anomaly score is below a predetermined threshold. If so, the process 600 goes to operation 650 to identify the week as an OOS week for the item in the store. If not, the process 600 goes to operation 660 to identify the week as an IS week for the item in the store. In some embodiments, the threshold is determined based on historical lost sales estimation results.).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above. In addition, Shukla discloses determining when certain weeks are inaccurate for being out of stock (See par 81). Yeung improves upon Shukla by disclosing that “anomaly” scores refer to being in-stock or out of stock.
Concerning claim 4, Shukla and Yeung disclose:
The demand forecasting system of claim 1, wherein determining that the historical sales data for the item includes the stockout event comprises:
determining an initial inventory level for the item (Shukla see par 47 - logistically, the enterprise organization may seek to ensure that the products are in stock at each of their storefronts; see par 67 - the historical data may include, but is not limited to, sales history, storefront-level attributes, SKU-level attributes, previous promotional offers, and/or other information; see also Yeung – store data 330 includes inventory data 336 identifying and characterizing inventory status for each item);
receiving restock events and purchase events for the item (Shukla see par 48 - Based on the information from the promotional forecasting computing system 104, the facility computing system 112 may purchase products so that they arrive at the distribution center and/or storefronts with sufficient time to ensure that the storefronts are stocked during the promotional period.);
Shukla discloses analyzing lost sales when products were out of stock (See par 81).
Yeung discloses:
deriving an inventory level based on the initial inventory level, the restock events, and the purchase events (Yeung – see par 40 - the demand forecast computing device 102 generates and/or updates different models for estimating consumer demand based on estimated lost sales data. The models, when executed by the demand forecast computing device 102, allow the demand forecast computing device 102 to determine consumer demands and generate recommended inventory data for each store to refresh inventory for a future time period.); and
based on the inventory level, identifying the stockout event (Yeung – see par 63 - the machine learning model data 390 may include an inventory based OOS detection model 392, an anomaly based OOS detection model 394, a lost sales estimation model 396, and a demand forecast model 398. The inventory based OOS detection model 392 may be used to detect OOS time periods for an item in a store based on an inventory status of the item. For example, the inventory based OOS detection model 392 may detect the OOS time periods by determining when (1) there is no on-hand inventory left for the item, or (2) there is less than one day of supply (DOS) on-hand and there is no sale for the item.).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above. In addition, Shukla discloses analyzing lost sales when products were out of stock (See par 81). Yeung improves upon Shukla by disclosing having inventory data and recommending inventory level, and detecting stockout times.
Concerning claim 5, Shukla and Yeung disclose:
he demand forecasting system of claim 1, wherein replacing the data of the historical sales data corresponding to the stockout event with the synthetic sales data comprises:
identifying one or more weeks in the historical data associated with the stockout event (Shukla – see par 115 - the feature layer processor 704 may impute out of stock (OOS) weeks with historical exponentially weighted moving averages from the weeks leading to the out-of-stock week when there were sales;
Yeung – see par 64 - the inventory based OOS detection model 392 may detect the OOS time periods by determining when there is a sale anomaly, e.g. a sudden sale number drop, with respect to a baseline established by weeks that appear to be in-stock. ); and
replacing only sales data associated with the one or more weeks in the historical data with the synthetic sales data (Shukla – see par 83 - the new sales data may be the average weekly sales data or the sales data for another week that had promotion (e.g., the sales data for week 4 may be inaccurate due to lost sales and the promotional forecasting computing system 104 may use the sales data for week 3 or week 6 instead). see par 86 - or example, week 6 of the product had a promotion for buy one get one free, which caused the product to be out of stock. The promotional forecasting computing system 104 may determine a similar SKU to the product that also had a buy one get one free promotion and that was in stock throughout the entire week. For instance, week 8 for a different SKU of the product may have had the same promotion and was in stock throughout. The promotional forecasting computing system 104 may use the sales data for week 8 as the new sales data.
see also Yeung – see par 67 - In some embodiments, a week is determined to be an OOS week so long as one of the inventory based OOS detection model 392 and the anomaly based OOS detection model 394 detects OOS status for the item. In some embodiments, the demand forecast computing device 102 excludes the OOS weeks from the raw sales data, and compute lost sales data of the item in the store 109 for each OOS week based on a non-linear model).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above.
Concerning claim 6, Shukla and Yeung disclose:
The demand forecasting system of claim 1,
wherein determining that the historical sales data for the item includes the stockout event during the time period comprises determining that the stockout event occurred during the time period but not during a second time period (Shukla – see par 83 - based on the historical data, the promotional forecasting computing system 104 may determine the new sales data. For instance, the new sales data may be the average weekly sales data or the sales data for another week that had promotion (e.g., the sales data for week 4 may be inaccurate due to lost sales and the promotional forecasting computing system 104 may use the sales data for week 3 or week 6 instead).); and
wherein generating the synthetic sales data comprises using sales data for the second time period to infer sales data for the first time period (Shukla – see par 85 - the entries may indicate lost sales data associated with a promotional period (e.g., a promotion was offered during that week, which caused the product to be out of stock). The promotional forecasting computing system 104 may use sales data from other week(s) that also had a promotional period for the product to determine new sales data. see par 86 - the promotional forecasting computing system 104 may use clusters of products or SKUs that are similar to the product to determine the new sales data. For example, week 6 of the product had a promotion for buy one get one free, which caused the product to be out of stock. For instance, week 8 for a different SKU of the product may have had the same promotion and was in stock throughout.
see also Yeung – see par 76 - the process 400 enables a constrained forecasting system to forecast unconstrained demand by automatically augmenting the observed sales with the estimated lost sales. see par 92 - The true demand potential will be estimated through imputation by leveraging observed sales from all stores in-stock during those weeks (i.e., the collective consumer behavior observed on the exact weeks, not lagged weeks).).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above.
Concerning claim 7, Shukla and Yeung disclose:
The demand forecasting system of claim 1,
wherein determining that the historical sales data for the item includes the stockout event during the time period comprises determining that the stockout event occurred during the time period at a first location but not at a second location (Shukla – see par 47 - For example, logistically, the enterprise organization may seek to ensure that the products are in stock at each of their storefronts, but the demand of the products may vary based on geographical location;
Yeung – see par 24 - A generalized additive model (GAM) is disclosed to capture consumer behavior across diverse geolocations of the store network and infer any lost sales incurred at each store using data available at the other stores; see par 77 - lost sales can only happen when the item is not available for purchase. As such, the first concern for lost sales estimation is to determine the weeks that were OOS; the process 500 is implemented to perform the operation 422 in FIG. 4, to determine whether a given week is an OOS week or an IS week for an item in a store.); and
wherein generating the synthetic sales data comprises using sales data during the time period at the second location to infer sales data for the item during the time period at the first location (Applicant’s [0102] as published states “ The unconstrained demand may represent hypothetical sales for an item during the time period if the item had been fully available during that time period. For example, this unconstrained demand may represent what the sales of the item would have been in the absence of an identified stockout event, or if the item had been sold by a given location during the time period.”
Yeung see par 23 - the present teaching discloses a scalable data-driven method to estimate the lost sales using relevant stores, if available, in a retailer's geographically diverse store network, and automatically complete the partially observed sales data before being consumed by the forecasting algorithms. In other words, the disclosed method attempts to make whole the incomplete sales data such that the true consumer demand is reflected in the input data for any downstream forecasting algorithm. This will turn any constrained forecasting system into an unconstrained forecasting system. see par 76 - the process 400 provides a scalable data-driven lost sales estimation method (as performed in the operation 450) that leverages the collective consumer pattern from a retailer's geographically diverse store network. Further, the process 400 enables a constrained forecasting system to forecast unconstrained demand by automatically augmenting the observed sales with the estimated lost sales. see par 99 - In some embodiments, the covariates are related to sale of the item in the store and the at least one other store for the non-linear model. In some embodiments, the covariates are generated based on the combined sale data, i.e. the IS-only sales data of all stores that sell the item. In some embodiments, the covariates include data related to: week of month, month of year, year, assistance program payout proportion for each local state, latitude and longitude of each store, local consumer patterns of each store; see par 112 – geolocation of store).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above.
Concerning claim 8, Shukla and Yeung disclose:
The demand forecasting system of claim 1, wherein the synthetic sales data corresponds to an unconstrained demand for the item during the time period, the unconstrained demand representing a demand for the item during the time period if the stockout event had not occurred (Applicant’s [0102] as published states “ The unconstrained demand may represent hypothetical sales for an item during the time period if the item had been fully available during that time period. For example, this unconstrained demand may represent what the sales of the item would have been in the absence of an identified stockout event, or if the item had been sold by a given location during the time period)
Shukla – see par 83 - the new sales data may be the average weekly sales data or the sales data for another week that had promotion (e.g., the sales data for week 4 may be inaccurate due to lost sales and the promotional forecasting computing system 104 may use the sales data for week 3 or week 6 instead).
see also Yeung – see par 21 - Once lost sales are estimated, it can then be added to the partially observed demand to reflect the consumer intention at large, thereby providing a more accurate unconstrained input to any downstream forecasting system, e.g. inventory planning; see par 23 - the present teaching discloses a scalable data-driven method to estimate the lost sales using relevant stores, if available, in a retailer's geographically diverse store network, and automatically complete the partially observed sales data before being consumed by the forecasting algorithms. In other words, the disclosed method attempts to make whole the incomplete sales data such that the true consumer demand is reflected in the input data for any downstream forecasting algorithm. This will turn any constrained forecasting system into an unconstrained forecasting system; see par 76 - the process 400 provides a scalable data-driven lost sales estimation method (as performed in the operation 450) that leverages the collective consumer pattern from a retailer's geographically diverse store network. Further, the process 400 enables a constrained forecasting system to forecast unconstrained demand by automatically augmenting the observed sales with the estimated lost sales.).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above.
Concerning claim 11, Shukla and Yeung disclose:
The system of claim 10, wherein the instructions, when executed by the processor, further cause the system to:
receive actual sales data for the item; and
retrain the item-specific demand forecasting model while phasing out the synthetic sales data with the actual sales data, wherein retraining the item-specific demand forecasting model while phasing out the synthetic sales data with the actual sales data comprises (Shukla – see par 101 - the promotional forecasting computing system 104 may re-perform block 506 and/or retrain the plurality of promotional forecasting ML-AI models based on receiving new historical data.):
at a first time:
modify the historical sales data to include the actual sales data;
retrain the demand forecasting model using the actual sales data and the synthetic sales data (Shukla – see par 97 - the promotional forecasting computing system 104 may further use an exponential weighted moving average (EWMA) on the standardized historical data that has been grouped based on product segments. Therefore, the promotional forecasting computing system 104 may use EWMA on the standardized historical data to generate EWMA standardized historical data. Afterwards, the promotional forecasting computing system 104 may train the plurality of promotional forecasting ML-AI models using the EWMA standardized historical data. In some examples, for EWMA, the promotional forecasting computing system 104 may weigh recent weeks (e.g., sales data from the most recent weeks) more heavily than past weeks.);
at a second time:
modify the historical sales data to include updated actual sales data; and
retrain the demand forecasting model using the updated actual sales data without using the synthetic sales data (Shukla – see par 102 - the promotional forecasting computing system 104 may determine to retrain the plurality of promotional forecasting ML-AI models based one or more triggers (e.g., a confidence factor, tracking the performance of the ML-AI models, and/or receiving new historical data).
Concerning claim 12, Shukla and Yeung disclose:
The system of claim 10, wherein the instructions, when executed by the processor, further cause the system to:
receive actual sales data for the item during a second time period, the second time period occurring after the time period (Shukla see par 83 - the promotional forecasting computing system 104 may use a moving average and/or an exponentially weighted moving average to determine the lost sales data for the particular week based on the previous sales data for the product when the product was in stock;);
update the synthetic sales data for the item during the time period given the actual sales data for the item during the second time period (Shukla – see par 86 - For example, week 6 of the product had a promotion for buy one get one free, which caused the product to be out of stock. The promotional forecasting computing system 104 may determine a similar SKU to the product that also had a buy one get one free promotion and that was in stock throughout the entire week. For instance, week 8 for a different SKU of the product may have had the same promotion and was in stock throughout..); and
modify the historical sales data to include the updated synthetic sales data (Shukla - The promotional forecasting computing system 104 may use the sales data for week 8 as the new sales data;
see also Yeung – see par 92 - the process 700 starts from operation 710, where the sale data of the item in the store in each OOS time period, e.g. each OOS week, is excluded from sales data from all stores that stock the item. This is to exclude the OOS weeks (e.g. as determined based on the process 500 and/or 600) from the item-store sales record. This removes all partially observed sales data that will be backfilled later with the desired complete sales estimated. The true demand potential will be estimated through imputation by leveraging observed sales from all stores in-stock during those weeks (i.e., the collective consumer behavior observed on the exact weeks, not lagged weeks). see par 93 - , each OOS week is excluded at the operation 710 from sales data from all stores that stock the item (including raw sales data of the item in the store) to generate IS-only sale data of the item in the stores for the past time period. All IS-only sale data from all stores can be combined as combined sale data.).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above.
Concerning claim 16, Shukla and Yeung disclose:
The system of claim 10, wherein the synthetic sales data is time series data that includes, for a location or a plurality of locations, a quantity of items sold for each week of a plurality of weeks or for each day of a plurality of days (Shukla see par 98 - the promotional forecasting computing system 104 may use the lagged data to train the promotional forecasting ML-AI models. Initially, the historical data may include data in a time series (e.g., sales data over a period of time). The promotional forecasting computing system 104 may obtain the lagged data, and use the lagged data to convert the time series data into a training dataset that is capable of training a supervised machine learning model;
see also Yeung – see par 106 - the disclosed method does not rely on data points that are known to correspond to a lack of on-hand inventory when OOS occurs. Instead, it imputes these data points by using each sales time series' own history, along with other sales time series that are similar in consumer behavior and from comparable store geolocations in latitude and longitude. ).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above.
Concerning claim 18, Shukla and Yeung disclose:
The system of claim 10,
wherein the item is not sold at a first location during the time period (Shukla see par 81 - For example, certain products may be out of stock for a period of time (e.g., either due to demand or due to supply chain issues).
Yeung – see par 67 - The demand forecast computing device 102 may detect one or more OOS time periods, e.g. OOS (out of stock) weeks, during the past time period. );
wherein the item is sold at a second location during the time period (Shukla – see par 47 - For example, logistically, the enterprise organization may seek to ensure that the products are in stock at each of their storefronts, but the demand of the products may vary based on geographical location;
Yeung – see par 24 - A generalized additive model (GAM) is disclosed to capture consumer behavior across diverse geolocations of the store network and infer any lost sales incurred at each store using data available at the other stores; see par 77 - lost sales can only happen when the item is not available for purchase. As such, the first concern for lost sales estimation is to determine the weeks that were OOS; the process 500 is implemented to perform the operation 422 in FIG. 4, to determine whether a given week is an OOS week or an IS week for an item in a store.); and
wherein generating the synthetic sales data comprises using sales data for the item during the time period at the second location to infer sales data for the item during the time period at the first location (Yeung see par 99 - In some embodiments, the covariates are related to sale of the item in the store and the at least one other store for the non-linear model. In some embodiments, the covariates are generated based on the combined sale data, i.e. the IS-only sales data of all stores that sell the item. In some embodiments, the covariates include data related to: week of month, month of year, year, assistance program payout proportion for each local state, latitude and longitude of each store, local consumer patterns of each store; see par 112 – geolocation of store).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above.
Concerning claim 20, Shukla and Yeung disclose:
The method of claim 19, wherein training, by the processor, the demand forecasting model using the modified historical sales data comprises training a plurality of demand forecasting models using the modified historical sales data, wherein the plurality of demand forecasting models include a location-specific (Shukla – see par 69 - the historical data may indicate and/or include store attributes for the plurality of storefronts associated with the enterprise organization. For instance, the store attributes may indicate a location of the store), item-specific demand forecasting model (Shukla – see par 76 - the promotional forecasting computing system 104 uses a feature creation layer processor (e.g., engine) to determine a plurality of features for the historical data. The features are used to train the promotional forecasting ML-AI models. For instance, the features may be associated with the different promotions, product data associated with the different products, store attributes, and/or other information. In some instances, the promotional forecasting computing system 104 may generate a table or array for the features; see par 82 - the promotional forecasting computing system 104 may determine the new sales data based on sales from a product or group of products (e.g., a cluster of products) that are similar to the product with the lost sales. For example, the promotional forecasting computing system 104 may determine a product or groups of products (e.g., a cluster of products) that have similar characteristics to the product with the lost sales (e.g., both are toiletry items).) and a multi-location, item-specific demand forecasting model (Shukla – see par 47 - For example, logistically, the enterprise organization may seek to ensure that the products are in stock at each of their storefronts, but the demand of the products may vary based on geographical location, seasonality of the products (e.g., consumers may seek to purchase more of certain products during the holiday season), and/or other reasons. Therefore, a facility computing system 112 at a storefront may obtain data associated with the products themselves for the particular storefront. For example, the facility computing system 112 may automatically track the amount of a particular product being sold during a time period, including products sold during one or more promotional periods.
see also Yeung – par 40 - the demand forecast computing device 102 generates and/or updates different models for estimating consumer demand based on estimated lost sales data. The models, when executed by the demand forecast computing device 102, allow the demand forecast computing device 102 to determine consumer demands and generate recommended inventory data for each store to refresh inventory for a future time period; see par 91, FIG. 7 – process for estimating lost sales data; see par 99 - the covariates are related to sale of the item in the store and the at least one other store for the non-linear model. In some embodiments, the covariates are generated based on the combined sale data, i.e. the IS-only sales data of all stores that sell the item. In some embodiments, the covariates include data related to: week of month, month of year, year, assistance program payout proportion for each local state, latitude and longitude of each store).
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1 above.
Claims 3, 9, and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Shukla (US 2024/0281831) and Yeung (US 2025/0225475), as applied to claims 1-2, 4-8, 10-12, 16, and 18-20 above, and further in view of Derhami et al., “Estimation of potential lost sales in retail networks of high-value substitutable products," 2022, IISE Transactions, Vol. 54, No. 6, pages 563-577.
Concerning claim 3, Shukla and Yeung disclose:
The demand forecasting system of claim 1, wherein determining that the historical sales data for the item includes the stockout event during the time period comprises detecting an anomaly in the historical sales data (Shukla – see par 81 - At block 504, the promotional forecasting computing system 104 may determine whether the sales data for the product for certain weeks is inaccurate (e.g., due to too much demand or due to supply chain issues), and modify the sales data to account for the product being out of stock
see also Yeung - see par 88 - In some embodiments, the anomaly score indicates a difference between the actual sales quantity of the item and the in-stock moving average of the item for the week. In some embodiments, the anomaly score is a negative score, where a more negative value indicates a more anomalous sales quantity, i.e. a spike down compared to baseline), wherein detecting the anomaly comprises:
determining a … sales data during the time period given conditions during the time period, the conditions comprising a location and a season (Shukla – see par 47 - For example, logistically, the enterprise organization may seek to ensure that the products are in stock at each of their storefronts, but the demand of the products may vary based on geographical location, seasonality of the products (e.g., consumers may seek to purchase more of certain products during the holiday season), and/or other reasons;
see also Yeung par 108 - The mean daily sales is computed for each calendar week, which is the target response variable for the model fitting. In some embodiments, weeks with at least one day where the on-hand inventory reaches zero at the end of the day are considered OOS weeks and are marked for imputation. par 112 – the response variable is the mean daily sales quantity, where the covariates are … geolocation of the store (latitude and longitude), week of month (WoM), month of year (MoY) and year. The WOM may take into consideration holidays like Thanksgiving which do not have a fixed date but will trigger corresponding sale spikes. The MoY may take into consideration seasonal events which are related to sale spikes).
Shukla and Yeung do not disclose “likelihood” related to other limitations.
Derhami discloses:
determining a “likelihood” of sales data during the time period given conditions during the time period, the conditions comprising a location and a season (Derhami – see page 568, col. 1, section 3.1, 2nd paragraph – estimate substitution fitness (probability)… of product p’ to p with respect to a feature; See page 569, col. 2, section 3.3 – Estimating potential lost sales – capture regional demand and sales trends; average customer arrival rate for product p over period T is obtained; see page 570, col. 1 – monthly demand seasonality; therefore set T to 1 month for estimated demand and potential lost sales on a monthly basis).
Shukla, Yeung, and Derhami disclose:
determining that the likelihood of the sales data during the time period is below a threshold value (Shukla – see par 97 - For instance, for holidays or based on the seasonality, certain sales data for products may be skewed.
Yeung – see par 64 - The anomaly based OOS detection model 394 may be used to detect OOS time periods for an item in a store based on sale anomaly of the item. For example, the inventory based OOS detection model 392 may detect the OOS time periods by determining when there is a sale anomaly, e.g. a sudden sale number drop, with respect to a baseline established by weeks that appear to be in-stock. see par 88 - In some embodiments, the anomaly score indicates a difference between the actual sales quantity of the item and the in-stock moving average of the item for the week. In some embodiments, the anomaly score is a negative score, where a more negative value indicates a more anomalous sales quantity, i.e. a spike down compared to baseline.
see also Derhami – page 568, col. 2, 1st-2nd paragraph – probability of substituting product… at time t; page 569, col. 1, 2nd paragraph – probability for demand product p on day t and substitution fitness; see page 569, col. 2, 2nd paragraph - If it meets her immediate-purchase threshold, then the success probability is one; otherwise, if it meets her considering-purchase threshold, the success probability is the substitution fitness of the best match to her desired product, zero otherwise.)
It would have been obvious to combine Shukla and Yeung for the same reasons as claim 1-2 above. In addition, Shukla, Yeung, and Derhami are analogous art as they are directed to forecasting demand even when lost sales occur (Shukla Abstract, par 81; Yeung Abstract; Derhami Abstract). Shukla discloses demand varies based on location and seasonality (See par 47) and whether demand is inaccurate (See par 81). Yeung discloses anomaly scores for actual sales (See par 88) and considering demand based on location and seasonal events (See par 108, 112). Derhami improves upon Shukla and Yeung by disclosing having explicit fitness/probability for substitution sales while including “regional” and monthly effects (See page 568-570). One of ordinary skill in the art would be motivated to further include fitness/probability to efficiently improve upon the lost sales used for demand prediction as disclosed in Shukla and Yeung.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the prediction of lost sales from being out of stock for demand forecasts in Shukla to further use a generalized additive model (GAM) for capturing lost sales from not having an item available using local and global characteristics, price/discount, and random effects as disclosed in Yeung, to further consider probability/fitness for substitution sales in Derhami, since the claimed invention is merely a combination of old elements, and in combination each element merely would have performed the same function as it did separately, and one of ordinary skill in the art would have recognized that the results of the combination were predictable and there is a reasonable expectation of success.
Concerning claim 9, Shukla and Yeung and Derhami disclose:
The demand forecasting system of claim 1, wherein generating the synthetic sales data comprises:
determining conditions during the time period, wherein the conditions comprise a price of the item, a location, and a season (Shukla – see par 47 - logistically, the enterprise organization may seek to ensure that the products are in stock at each of their storefronts, but the demand of the products may vary based on geographical location, seasonality of the products (e.g., consumers may seek to purchase more of certain products during the holiday season), and/or other reasons. see par 76 – features used to train promotional forecasting ML-AI models; the features may be associated with the different promotions, product data associated with the different products, store attributes, and/or other information… time information; par 78 - the historical data may include and/or indicate start and end dates of the promotional event; price for product as a feature);
determining sales of similar items or sales of the item at different locations during the time period (Yeung see par 99 - In some embodiments, the covariates are related to sale of the item in the store and the at least one other store for the non-linear model. In some embodiments, the covariates are generated based on the combined sale data, i.e. the IS-only sales data of all stores that sell the item. In some embodiments, the covariates include data related to: week of month, month of year, year, assistance program payout proportion for each local state, latitude and longitude of each store, local consumer patterns of each store); and
determining a quantity of sales of the item during the time period that is most likely during the time period given the price, the location, the season, and one or more of the sales of similar items or the sales of the item at different locations (Yeung – see par 117 - the disclosed method can estimate lost sales to transform any forecasting algorithm into one that produces unconstrained forecasts. This unique approach benefits from analyzing the collective consumer behavior across extensive store network of a retailer. Lacking on-shelf availability often leads to loss in customer faith and loyalty erosion. The effectiveness of the disclosed lost sales estimation has been validated in reducing OOS rate, improving forecast accuracy and on-shelf availability. In addition, the disclosed method renders any forecast manual lifting unnecessary during an extended OOS period. In some embodiments, the item price or item discount percentage can be added as a feature for the GAM model, and random effects in the GAM model can be included to account for store-specific effects.
Derhami – see page 569, Section 3.2 – p be the probability that retailer r makes successful sales to hypothetical customer who demands product p on day t; substitution fitness of best match available for product p; see page 574, Section 4.5 – page 575, col. 1 – We observed monthly seasonality trends in the sales data, therefore we set T to 1 month and ran the algorithm on a monthly basis to account for the monthly seasonality).
It would have been obvious to combine Shukla and Yeung and Derhami for the same reasons as claim 1 and 3 above.
Concerning claim 14, Shukla and Yeung disclose:
The system of claim 10, wherein generating the synthetic sales data comprises: identifying, from a catalog of items, the one or more similar items (Shukla – see par 44-45 - , the promotional forecasting computing system 104 may place products together in a cluster or a segment. For example, certain products having similar characteristics may be grouped together; the promotional forecasting computing system 104 may train a separate promotional forecasting ML-AI model for each of the different segments; see par 82 - the promotional forecasting computing system 104 may determine the new sales data based on sales from a product or group of products (e.g., a cluster of products) that are similar to the product with the lost sales. For example, the promotional forecasting computing system 104 may determine a product or groups of products (e.g., a cluster of products) that have similar characteristics to the product with the lost sales (e.g., both are toiletry items);
see also Yeung par 106 - the disclosed method does not rely on data points that are known to correspond to a lack of on-hand inventory when OOS occurs. Instead, it imputes these data points by using each sales time series' own history, along with other sales time series that are similar in consumer behavior and from comparable store geolocations in latitude and longitude. Consumer calendars, time to and after national holidays, and local events are also used as covariates in the estimation).
Shukla discloses having multiple weights for a customized loss function for margin contribution and velocity contribution (See par 100). Derhami discloses:
determining a weighted aggregation of historical sales for the one or more similar items to generate the synthetic sales data for the item (Derhami see page 568, col. 1, last paragraph – weight of feature f in assessing substitution desirability of products, such as model year, color, platform).
It would have been obvious to combine Shukla and Yeung and Derhami for the same reasons as claim 1 and 3 above.
Claims 13 and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Shukla (US 2024/0281831) and Yeung (US 2025/0225475), as applied to claims 1-2, 4-8, 10-12, 16, and 18-20 above, and further in view of Dutta (US 2023/0281531).
Concerning claim 13, Shukla and Yeung disclose:
The system of claim 10, wherein determining that the historical sales data for the item lacks sales data for the item during the time period comprises:
training the item-specific demand forecasting model for the item using the historical sales data (Shukla – see par 43 - promotional forecasting computing system 104 may use historical data from the data sources 102 to train the plurality of promotional forecasting ML-AI models. see par 44 - during the standardization process, the promotional forecasting computing system 104 may place products together in a cluster or a segment. Additionally, and/or alternatively, each product may be associated with one or more stock keeping units (SKU). For instance, toothpaste may come by itself, in a pack of two, or in a pack of four. Each of these may be a different SKU of toothpaste. Also, different brands of toothpaste may have different SKUs. The promotional forecasting computing system 104 may group the SKUs of the product together in a cluster or segment by themselves or with other products (e.g., SKUs for other products)).
Shukla discloses using ML-AI models with training for forecasting to ensure they are “sufficiently accurate” by using “loss functions” to determine a confidence to determine whether the forecasting is “sufficiently trained” (See par 99).
Yeung discloses:
determining whether parameters for the item-specific demand forecasting model … during training within a training time (Shukla see par 76 - the promotional forecasting computing system 104 may determine a plurality of features (e.g., automatically and/or based on user input indicating the features to be used to train the ML-AI models). Afterwards, based on the historical data, the promotional forecasting computing system 104 may populate the table. The finalized table may be the standardized historical data that is used to train the promotional forecasting ML-AI models. see par 99 - to ensure the plurality of promotional forecasting ML-AI models are sufficiently accurate enough, the promotional forecasting computing system 104 may use one or more loss functions to compare the output from the promotional forecasting ML-AI models with the test data.
see also Yeung see par 102 - the model fitting at the operation 730 is performed based on all sales data from all stores having the item in stock, e.g. by trying different parameters to minimize error and find optimal parameters. After the model fitting, the fitted model will be applied to each individual store. see par 105 - GAM is a type of nonparametric regression that does not require strong distributional assumption of the data. Estimation of the model parameters and the nonparametric curve in the model is generally solved by maximizing a penalized likelihood. One main advantage of GAM is its ability to model highly complex nonlinear relationships when the number of potential covariates is large
Dutta discloses:
determining whether parameters for the item-specific demand forecasting model “converged” during training within a training time (Dutta – see par 62 - Forecasting computing device 102 may determine that the machine learning process is sufficiently trained (e.g., the machine learning process has converged) when at least one metric meets a predetermined threshold. For example, forecasting computing device 102 may determine that the machine learning process sufficiently maps the plurality of features to predicted sales changes from a first sales channel to a second sales channel when at least one metric value is beyond a threshold. See par 64 - Once a machine learning model is sufficiently trained and/or validated, forecasting computing device 102 stores corresponding machine learning model parameters (e.g., hyperparameters, configuration settings, weights, etc.) in database 116.)
Shukla, Yeung, and Dutta disclose:
in response to determining that the parameters for the item-specific demand forecasting model failed to converge within the training time, determining that the historical sales data for the item lacks sales data for the item (Applicant’s [0104] as published states “In some embodiments, parameters for the forecasting model may not converge during training (e.g., may not be sufficiently stable or constant between training rounds) within an allocated training time or after using all available training instances, which may indicate that there is insufficient sales history to train the model”)
Dutta –see par 62 - For example, forecasting computing device 102 may determine that the machine learning process sufficiently maps the plurality of features to predicted sales changes from a first sales channel to a second sales channel when at least one metric value is beyond a threshold. The computed metrics may include, for example, computed precision values, computed recall values, and computed area under curve (AUC) for receiver operating characteristic (ROC) curves or precision-recall (PR) curves. see par 88 - for example, forecasting computing device 102 may determine that any of the Random Forrest Regression models have converged when at least one computed metric satisfies a predetermined threshold. In some examples, as described herein, the Random Forrest Regression model is further validated. see par 89 - Once a Random Forrest Regression model converges, forecasting computing device 102 may store corresponding machine learning model parameters (e.g., hyperparameters, configuration settings, weights, etc.) as machine learning model data 380 within database 116. For example, machine learning model data 380 may characterize one or more trained Random Forrest Regression model (e.g., one model for each item category, first sales channel, second sales channel combination).).
Shukla, Yeung, and Dutta are analogous art as they are directed to forecasting demand (Shukla Abstract; Yeung Abstract; Jha Abstract). Shukla discloses using ML-AI models with training for forecasting to ensure they are “sufficiently accurate” by using “loss functions” to determine a confidence to determine whether the forecasting is “sufficiently trained” (See par 99, 101). Yeung discloses features trying different parameters to minimize error and find optimal parameters (See par 102, 105). Dutta improves upon Shukla and Yeung by disclosing convergence for forecasting so long as it satisfies a threshold related to recall on the amount of data retrieved. One of ordinary skill in the art would be motivated to further include convergence to efficiently improve upon the training for forecasting that are sufficiently accurate in Shukla and the different parameters to minimize errors in Yeung.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the prediction of lost sales from being out of stock for demand forecasts in Shukla to further use a generalized additive model (GAM) for capturing lost sales from not having an item available using local and global characteristics, price/discount, and random effects as disclosed in Yeung, to further consider convergence with respect to forecasting in Dutta, since the claimed invention is merely a combination of old elements, and in combination each element merely would have performed the same function as it did separately, and one of ordinary skill in the art would have recognized that the results of the combination were predictable and there is a reasonable expectation of success.
Concerning claim 17, Shukla and Yeung disclose:
The system of claim 10, wherein forecasting demand for the item using the trained item-specific demand forecasting model comprises:
receiving a request to forecast demand for the item (Shukla – see par 81 - At block 504, the promotional forecasting computing system 104 uses a lost sale layer processor (e.g., engine) to update lost sales indicated by the historical data (e.g., based on supply shortages). For example, certain products may be out of stock for a period of time (e.g., either due to demand or due to supply chain issues)..);
selecting the item-specific forecasting model from a datastore including a plurality of item-specific forecasting models trained to forecast demand for items across a catalog of items (Shukla – see par 56 - the promotional forecasting computing system 104 may store indicators of the segments within memory and/or a database. Then, at block 304, the promotional forecasting computing system 104 may compare the indicators with the particular product associated with the new marketing promotion to determine which product segment the particular product belongs to. The promotional forecasting computing system 104 may select this product segment (e.g., the first product segment).see par 81 - The promotional forecasting computing system 104 may correct the sales data (e.g., one or more weeks of the sales data impacted by the out of stock product) by calculating new sales data for the impacted period. Then, the promotional forecasting computing system 104 may then update the array (e.g., array 600) such as by replacing the previous sales data for the product/SKU of the product with the new sales data; see par 82 - In some variations, the promotional forecasting computing system 104 may determine the new sales data based on sales from a product or group of products (e.g., a cluster of products) that are similar to the product with the lost sales.
See also Yeung – see par 39 - The demand forecast computing device 102 may receive store related data from different stores 109 and store them as store data in the database 116. The demand forecast computing device 102 may also receive from the server 104 user session data identifying events associated with browsing sessions, and may store the user session data in the database 116. see par 63 - The database 116 may also store machine learning model data 390 identifying and characterizing one or more machine learning models and related data. For example, the machine learning model data 390 may include an inventory based OOS detection model 392, an anomaly based OOS detection model 394, a lost sales estimation model 396, and a demand forecast model 398.); and
based at least in part on parameters updated while training the item-specific forecasting model using the modified historical sales data, predicting, using the item-specific demand forecasting model, demand for the item (Shukla see par 76 - the promotional forecasting computing system 104 may determine a plurality of features (e.g., automatically and/or based on user input indicating the features to be used to train the ML-AI models). Afterwards, based on the historical data, the promotional forecasting computing system 104 may populate the table. The finalized table may be the standardized historical data that is used to train the promotional forecasting ML-AI models.
see also Yeung – see par 102 - In some embodiments, the model fitting at the operation 730 is performed based on all sales data from all stores having the item in stock, e.g. by trying different parameters to minimize error and find optimal parameters. After the model fitting, the fitted model will be applied to each individual store.).
To any extent not disclosed, Dutta discloses:
based at least in part on parameters updated while training the item-specific forecasting model using the modified historical sales data, predicting, using the item-specific demand forecasting model, demand for the item (Dutta – see par 62 - Forecasting computing device 102 may determine that the machine learning process is sufficiently trained (e.g., the machine learning process has converged) when at least one metric meets a predetermined threshold. For example, forecasting computing device 102 may determine that the machine learning process sufficiently maps the plurality of features to predicted sales changes from a first sales channel to a second sales channel when at least one metric value is beyond a threshold. See par 64 - Once a machine learning model is sufficiently trained and/or validated, forecasting computing device 102 stores corresponding machine learning model parameters (e.g., hyperparameters, configuration settings, weights, etc.) in database 116).
It would have been obvious to combine Shukla, Yeung, and Dutta for the same reasons as claim 1 above.
Claim 15 is rejected under 35 U.S.C. 103 as being unpatentable over Shukla (US 2024/0281831) and Yeung (US 2025/0225475), as applied to claims 1-2, 4-8, 10-12, 16, and 18-20 above, and further in view of Pande (US 2021/0166179).
Concerning claim 15, Shukla discloses looking at similar items by characteristics (toothpaste and toothbrush) (See par 44, 63) or by using natural language processing for features (See par 74). Yeung discloses looking at sales that are similar on consumer behavior from comparable store geolocations (See par 106).
Pande discloses:
The system of claim 10, wherein determining the one or more similar items to the item comprises:
generating, using a text description of the item, a text title of the item, and an image of the item, embeddings that represent the item (Pande – see par 47 - The method 200 further includes training a substitutability model using the item data, and optionally also the item selection data (step 204). For example, a locality sensitive hashing (LSH) approach may be used two hash similar items into a common bucket with high probability of interchangeability. Word embeddings based on titles and descriptions of items may be used to establish similarity, such as may be provided by a word2vec model trained on item information. see par 62 - the substitutability service 112 performs a process including sampling, weighting, and aggregation of graph-based data, generated from a combination of image data 330, item data 332 (e.g., text descriptions of items), and user selection data 334 (e.g., page or item views, item selections, purchases, etc.); see par 70, 83 - - the method 400 includes setup for modeling useable to generate item substitutability scores (step 402). Setup can include, for example, generating a weighted graph of items in an item collection; For example, a graph can be generated from item images and item descriptions, with weights between items being generated based on item selection information (e.g., the likelihood that a user selecting one item would be willing to select another item from within the item collection); and
searching a collection of embeddings corresponding to a catalog of items to identify similar embeddings to the embeddings that represent the item (Pande –see par 83 - FIG. 5 illustrates a flowchart of a method 500 for initializing a model useable to generate substitutable item pairs from within an item collection, such as items within a retail website. The method 500 can be used, for example, to set up the weighted graph used in the methods and systems described above in connection with FIGS. 3-4. 86 - the method includes generating node embeddings (step 506). This includes, for example, generating embeddings based on image data associated with the item, as well as embeddings based on text data associated with the item. see par 117 - Item substitution pairs 1234: When an item is absent from the inventory, guests may purchase alternate items instead of this particular item, and hence the demand is transferred to substitutes. see par 119 - The item assortment optimization engine 114 is generally configured to apply an optimization model such that there are N unique items that a given store shelf can carry and x.sub.i denotes whether the item i is selected in the assortment. w.sub.ij is the edge weight between items i and j in a substitution item network for a particular category. Further, p.sub.ij represents the proportion of customers who could substitute item i with item j if item i is out of stock, and s.sub.i represents forecasted sales volume for item i in the projected timeframe for which assortment planning is executed.).
Shukla, Yeung, and Pande are analogous art as they are directed to forecasting demand (Shukla Abstract; Yeung Abstract; Pande Abstract, par 38-39). Shukla discloses looking at similar items by characteristics (toothpaste and toothbrush) (See par 44, 63) or by using natural language processing for features (See par 74). Yeung discloses looking at sales that are similar on consumer behavior from comparable store geolocations (See par 106). Pande improves upon Shukla and Yeung by disclosing analyzing similarity by including text, embeddings, and images. One of ordinary skill in the art would be motivated to further include similarity in products, that can be used for demand, by including text, embeddings, and images to efficiently improve upon the consideration of similar items by characteristics in Shukla and the use of similar products in other geolocations in Yeung.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the prediction of lost sales from being out of stock for demand forecasts in Shukla to further use similarity in products, that can be used for demand, by including text, embeddings, and images in Dutta, since the claimed invention is merely a combination of old elements, and in combination each element merely would have performed the same function as it did separately, and one of ordinary skill in the art would have recognized that the results of the combination were predictable and there is a reasonable expectation of success.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Ettl (US 2015/0317653) – directed to demand model calibrated and includes lost sales (See par 37)
Any inquiry concerning this communication or earlier communications from the examiner should be directed to IVAN R GOLDBERG whose telephone number is (571)270-7949. The examiner can normally be reached 830AM - 430PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Anita Coupe can be reached at 571-270-3614. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/IVAN R GOLDBERG/Primary Examiner, Art Unit 3619