IP Library Granted Patent US 12,346,921
Granted Patent B2
US 12,346,921 · App. 18/456,111 · Granted Jul 1, 2025

Systems and methods for dynamic demand sensing and forecast adjustment

Inventors: Ali Khanafer (Ottawa, CA); Behrouz Haji Soleimani (Ottawa, CA); Sebastien Ouellet (Ottawa, CA); Christopher Wang (Ottawa, CA); Chantal Bisson-Krol (Ottawa, CA); Zhen Lin (Ottawa, CA)
G06Q30/0205G06F18/211G06F18/217G06F18/22G06F18/251G06F18/285G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,346,921
App. No.
18/456,111
Granted
Jul 1, 2025
Kind
B2
Abstract

Systems and methods for dynamic demand sensing in a supply chain in which constantly-updated data is used to select a machine learning model or retrain a pre-selected machine learning model, for forecasting sales of a product at a specific location. The updated data includes product information and geographic information. Also disclosed are systems and methods relating to demand forecasting and readjusting forecasts based on forecast error.

Claims (99)

1. A computer-implemented method, comprising:

receiving, by a processor, a first forecast request;

training, by the processor, a plurality of machine learning forecast models on a first portion of a data set;

validating, by the processor, a machine learning forecast model on a second portion of the data set; and

retraining, by the processor, the machine learning forecast model on a sum of the first portion and the second portion of the data set, the data set comprising processed historical data;

forecasting, by the processor, a forecast based on the first forecast request;

receiving, by the processor, a subsequent forecast request;

selecting, by the processor, a machine learning forecast model when:

i) the data set has been updated by a new class of relevant signal data since a previous forecast request; or

ii) the data set has been updated by an amount of new relevant signal data beyond a first threshold since the previous forecast request; or

iii) the machine learning forecast model has degraded;

and

retraining, by the processor, a previously-selected machine learning forecast model when a time interval between successive forecast requests is greater than a second threshold;

using one of the machine learning forecast model selected by the processor and the previously-selected machine learning forecast model for providing first forecast data for a first forecast window, the first forecast data for one or more store locations;

transmitting the first forecast data to a user;

receiving first sales data for the one or more store locations for a second time interval, the second time interval subsequent a first time interval;

determining an error in the first forecast data based on the first forecast data and the first sales data;

removing the error from the first forecast data for forming first adjusted forecast data, the first adjusted forecast data for the one or more store locations; and

transmitting the first adjusted forecast data to the user.

2. The method of claim 1 wherein determining the error in the first forecast data based on the first forecast data and the first sales data includes determining the error between the first forecast data for each of the one or more store locations and the first sales data for each of the one or more store locations corresponding thereto.

3. The method of claim 1 wherein determining the error in the first forecast data based on the first forecast data and the first sales data includes determining a percentage error between the first forecast data for each of the one or more store locations and the first sales data for each of the one or more store locations and an average percentage error thereof.

4. The method of claim 3 wherein removing the error from the first forecast data for forming the first adjusted forecast data includes removing the average percentage error from the first forecast data for each of the one or more store locations, the first adjusted forecast data includes first adjusted forecast data for each of the one or more store locations.

5. The method of claim 1 further including,

collecting second data for a third time interval, the second data including at least the historical data and the first sales data;

generating second feature data based on the second data;

processing second feature data by the processor for training a machine learning algorithm for forming a second forecast model;

using the second forecast model for providing second forecast data for a second forecast window, the second forecast data including second forecast data for the one or more store locations; and

transmitting the second forecast data to the user.

6. The method of claim 1 further includes,

receiving second sales data, the second sales data for the one or more store locations during a fourth time interval subsequent the second time interval;

determining an error in the first forecast data based on the first forecast data and the second sales data;

removing an error from the first forecast data for forming third forecast data; and

transmitting the third forecast data to the user.

7. A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:

receive, by a processor, a first forecast request;

train, by the processor, a plurality of machine learning forecast models on a first portion of a data set;

validate, by the processor, a machine learning forecast model on a second portion of the data set; and

retrain, by the processor, the machine learning forecast model on a sum of the first portion and the second portion of the data set, the data set comprising processed historical data;

forecast, by the processor, a forecast based on the first forecast request;

receive, by the processor, a subsequent forecast request;

select, by the processor, a machine learning forecast model when:

i) the data set has been updated by a new class of relevant signal data since a previous forecast request; or

ii) the data set has been updated by an amount of new relevant signal data beyond a first threshold since the previous forecast request; or

iii) the machine learning forecast model has degraded; and

retrain, by the processor, a previously-selected machine learning forecast model when a time interval between successive forecast requests is greater than a second threshold;

using one of the machine learn forecast model selected by the processor and the previously-selected machine learning forecast model for providing first forecast data for a first forecast window, the first forecast data for one or more store locations;

transmit the first forecast data to a user;

receive first sales data for the one or more store locations for a second time interval, the second time interval subsequent a first time interval;

determine an error in the first forecast data based on the first forecast data and the first sales data;

remove the error from the first forecast data for forming first adjusted forecast data, the first adjusted forecast data for the one or more store locations; and

transmit the first adjusted forecast data to the user.

8. The computer-readable storage medium of claim 7 wherein determining the error in the first forecast data based on the first forecast data and the first sales data includes determining the error between the first forecast data for each of the one or more store locations and the first sales data for each of the one or more store locations corresponding thereto.

9. The computer-readable storage medium of claim 7 wherein determining the error in the first forecast data based on the first forecast data and the first sales data includes determining a percentage error between the first forecast data for each of the one or more store locations and the first sales data for each of the one or more store locations and an average percentage error thereof.

10. The computer-readable storage medium of claim 9 wherein removing the error from the first forecast data for forming the first adjusted forecast data includes removing the average percentage error from the first forecast data for each of the one or more store locations, the first adjusted forecast data includes first adjusted forecast data for each of the one or more store locations.

11. The computer-readable storage medium of claim 7 including instructions that when executed by a computer further causes the computer to:

collect second data for a third time interval, the second data including at least the historical data and the first sales data;

generate second feature data based on the second data;

process second feature data by the processor for training a machine learning algorithm for forming a second forecast model;

using the second forecast model for providing second forecast data for a second forecast window, the second forecast data include second forecast data for the one or more store locations; and

transmit the second forecast data to the user.

12. The computer-readable storage medium of claim 7 including instructions that when executed by a computer further causes the computer to:

receive second sales data, the second sales data for the one or more store locations during a fourth time interval subsequent the second time interval;

determine an error in the first forecast data based on the first forecast data and the second sales data;

remove an error from the first forecast data for forming third forecast data; and

transmit the third forecast data to the user.

13. A system comprising:

a processor; and

a memory storing instructions that, when executed by the processor, configure the system to:

receive, by the processor, a first forecast request;

train, by the processor, a plurality of machine learning forecast models on a first portion of a data set;

validate, by the processor, a machine learning forecast model on a second portion of the data set; and

retrain, by the processor, the machine learning forecast model on a sum of the first portion and the second portion of the data set, the data set comprising processed historical data;

forecast, by the processor, a forecast based on the first forecast request;

receive, by the processor, a subsequent forecast request;

select, by the processor, a machine learning forecast model when:

i) the data set has been updated by a new class of relevant signal data since a previous forecast request; or

ii) the data set has been updated by an amount of new relevant signal data beyond a first threshold since the previous forecast request; or

iii) the machine learning forecast model has degraded; and

retrain, by the processor, a previously-selected machine learning forecast model when a time interval between successive forecast requests is greater than a second threshold;

using one of the machine learn forecast model selected by the processor and the previously-selected machine learning forecast model for providing first forecast data for a first forecast window, the first forecast data for one or more store locations;

transmit the first forecast data to a user;

receive first sales data for the one or more store locations for a second time interval, the second time interval subsequent a first time interval;

determine an error in the first forecast data based on the first forecast data and the first sales data;

remove the error from the first forecast data for forming first adjusted forecast data, the first adjusted forecast data for the one or more store locations; and

transmit the first adjusted forecast data to the user.

14. The system of claim 13 wherein determining the error in the first forecast data based on the first forecast data and the first sales data includes determining the error between the first forecast data for each of the one or more store locations and the first sales data for each of the one or more store locations corresponding thereto.

15. The system of claim 13 wherein determining the error in the first forecast data based on the first forecast data and the first sales data includes determining a percentage error between the first forecast data for each of the one or more store locations and the first sales data for each of the one or more store locations and an average percentage error thereof.

16. The system of claim 15 wherein removing the error from the first forecast data for forming the first adjusted forecast data includes removing the average percentage error from the first forecast data for each of the one or more store locations, the first adjusted forecast data includes first adjusted forecast data for each of the one or more store locations.

17. The system of claim 13 further configured to:

collect second data for a third time interval, the second data including at least the historical data and the first sales data;

generate second feature data based on the second data;

process second feature data by the processor for training a machine learning algorithm for forming a second forecast model;

using the second forecast model for providing second forecast data for a second forecast window, the second forecast data include second forecast data for the one or more store locations; and

transmit the second forecast data to the user.

18. The system of claim 13 further configured to:

receive second sales data, the second sales data for the one or more store locations during a fourth time interval subsequent the second time interval;

determine an error in the first forecast data based on the first forecast data and the second sales data;

remove an error from the first forecast data for forming third forecast data; and

transmit the third forecast data to the user.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2025
From: KHANAFER, ALI; HAJI SOLEIMANI, BEHROUZ; OUELLET, SEBASTIEN; WANG, CHRISTOPHER; BISSON-KROL, CHANTAL; LIN, ZHEN
To: KINAXIS INC.
Reel/Frame 070553/0327 →
Continuity (5)
Continuation In Part 18071802 · Nov 30, 2022
Continuation 16837182 · Apr 1, 2020
Continuation In Part 16599143 · Oct 11, 2019
Provisional Application 63518713 · Aug 10, 2023
Related Publication 20230401592A1 · Dec 14, 2023
References Cited (133)
US 7257513B2 · Lilly · 2007 [cited by applicant]
US 7792353B2 · Forman et al. · 2010 [cited by applicant]
US 9218574B2 · Phillipps et al. · 2015 [cited by applicant]
US 9785951B1 · Coleman et al. · 2017 [cited by applicant]
US 10002329B2 · Mehanna et al. · 2018 [cited by applicant]
US 10102476B2 · Caraviello et al. · 2018 [cited by applicant]
US 10192243B1 · Genc-Kaya et al. · 2019 [cited by applicant]
US 10255550B1 · Simkoff et al. · 2019 [cited by applicant]
US 10402788B2 · Morrow et al. · 2019 [cited by applicant]
US 11526899B2 · Ouellet et al. · 2022 [cited by applicant]
US 11537825B2 · Ouellet et al. · 2022 [cited by applicant]
US 11875367B2 · Ouellet · 2024 [cited by examiner]
US 12271920B2 · Ouellet · 2025 [cited by examiner]
US 20100088344A1 · Treat et al. · 2010 [cited by applicant]
US 20100138273A1 · Bateni et al. · 2010 [cited by applicant]
US 20120303411A1 · Chen et al. · 2012 [cited by applicant]
US 20120303412A1 · Etzioni et al. · 2012 [cited by applicant]
US 20120311637A1 · Anthru et al. · 2012 [cited by applicant]
US 20130166350A1 · Willemain et al. · 2013 [cited by applicant]
US 20140122401A1 · Collica · 2014 [cited by applicant]
US 20140137067A1 · Duff · 2014 [cited by applicant]
US 20140156346A1 · Cai · 2014 [cited by applicant]
US 20140236875A1 · Phillipps et al. · 2014 [cited by applicant]
US 20140358828A1 · Phillipps et al. · 2014 [cited by applicant]
US 20150019204A1 · Simard et al. · 2015 [cited by applicant]
US 20150356774A1 · Gal et al. · 2015 [cited by applicant]
US 20150379072A1 · Dirac et al. · 2015 [cited by applicant]
US 20150379429A1 · Lee et al. · 2015 [cited by applicant]
US 20160078022A1 · Lisuk et al. · 2016 [cited by applicant]
US 20160092519A1 · Srivastava et al. · 2016 [cited by applicant]
US 20160171682A1 · Abedini et al. · 2016 [cited by applicant]
US 20160260052A1 · Ray et al. · 2016 [cited by applicant]
US 20160358099A1 · Sturlaugson et al. · 2016 [cited by applicant]
US 20170032279A1 · Miserendino et al. · 2017 [cited by applicant]
US 20170061329A1 · Kobayashi et al. · 2017 [cited by applicant]
US 20170124487A1 · Szeto et al. · 2017 [cited by applicant]
US 20170270484A1 · Cengiz et al. · 2017 [cited by applicant]
US 20170308976A1 · Eidelman et al. · 2017 [cited by applicant]
US 20170315523A1 · Cross et al. · 2017 [cited by applicant]
US 20180047071A1 · Hsu et al. · 2018 [cited by applicant]
US 20180053116A1 · Cai et al. · 2018 [cited by applicant]
US 20180240013A1 · Strope et al. · 2018 [cited by applicant]
US 20180247227A1 · Holtham · 2018 [cited by applicant]
US 20180300576A1 · Dalyac et al. · 2018 [cited by applicant]
US 20180308051A1 · Nemati et al. · 2018 [cited by applicant]
US 20180373208A1 · Wee et al. · 2018 [cited by applicant]
US 20180374109A1 · Scarpati et al. · 2018 [cited by applicant]
US 20190018823A1 · Yabe et al. · 2019 [cited by applicant]
US 20190102693A1 · Yates et al. · 2019 [cited by applicant]
US 20190108417A1 · Talagala et al. · 2019 [cited by applicant]
US 20190130425A1 · Lei et al. · 2019 [cited by applicant]
US 20190147350A1 · Bai et al. · 2019 [cited by applicant]
US 20190156357A1 · Palinginis et al. · 2019 [cited by applicant]
US 20190156485A1 · Pfeiffer · 2019 [cited by applicant]
US 20190228590A1 · Kaifosh et al. · 2019 [cited by applicant]
US 20190250891A1 · Kumar et al. · 2019 [cited by applicant]
US 20190272557A1 · Smith et al. · 2019 [cited by applicant]
US 20200005340A1 · T. · 2020 [cited by applicant]
US 20200042896A1 · Ko et al. · 2020 [cited by applicant]
US 20200065424A1 · Ananthapur Bache et al. · 2020 [cited by applicant]
US 20200074402A1 · Adato et al. · 2020 [cited by applicant]
US 20200090009A1 · Arora et al. · 2020 [cited by applicant]
US 20200097709A1 · Huang et al. · 2020 [cited by applicant]
US 20200098055A1 · O'Hara et al. · 2020 [cited by applicant]
US 20200111109A1 · Lei et al. · 2020 [cited by applicant]
US 20200130425A1 · Sorrentino et al. · 2020 [cited by applicant]
US 20200134641A1 · Morgan et al. · 2020 [cited by applicant]
US 20200134642A1 · Morgan et al. · 2020 [cited by applicant]
US 20200184494A1 · Joseph et al. · 2020 [cited by applicant]
US 20200191594A1 · Watanabe · 2020 [cited by applicant]
US 20200210920A1 · Joseph et al. · 2020 [cited by applicant]
US 20200226504A1 · Keng et al. · 2020 [cited by applicant]
US 20200250556A1 · Nourian et al. · 2020 [cited by applicant]
US 20200380541A1 · Laing et al. · 2020 [cited by applicant]
US 20210110429A1 · Keng et al. · 2021 [cited by applicant]
US 20220292308A1 · Schwiep et al. · 2022 [cited by applicant]
US 20220318711A1 · Recasens et al. · 2022 [cited by applicant]
US 20220382857A1 · Liu et al. · 2022 [cited by applicant]
US 20230091610A1 · Tamazlykar et al. · 2023 [cited by applicant]
US 20230401468A1 · Venkitaraman et al. · 2023 [cited by applicant]
CA 3057521A1 · 2018 [cited by applicant]
JP H11316763A · 1999 [cited by applicant]
JP 2010282483A · 2010 [cited by applicant]
JP 2014067154A · 2014 [cited by applicant]
JP 2018147261A · 2018 [cited by applicant]
JP 2018526732A · 2018 [cited by applicant]
JP 2018537798A · 2018 [cited by applicant]
WO 2017135314A1 · 2017 [cited by applicant]
WO 2019055957A1 · 2019 [cited by applicant]
U.S. Appl. No. 16/697,620, Final office Action dated Feb. 1, 2024. [cited by applicant]
Japanese Patent Application No. 2023-007474, Office action dated Oct. 3, 2024—English Translation available. [cited by applicant]
Tanaka, et al., “Implementation of Information Exploring Support Environment (1) Information Classifying System Based on Self-Organizing Mechanism,” Technical Report of IEICE, 1996, vol. 96 (431), pp. 55-62. [cited by applicant]
U.S. Appl. No. 16/697,620, Notice of Allowance dated Oct. 15, 2024. [cited by applicant]
AWS: “Amazon Machine Learning Developer Guide,” Precodata, 2017, 152 pages [Retrieved on Jul. 12, 2024] Retrieved from [https://www.precodata.com/wp-content/uploads/pdf/AWS-MachineLearning.pdf]. [cited by applicant]
Kilian.,“Feature Engineering: Explanation, Methods and Examples,” 2020, https://datadrivencompany.de/feature-engineering-erklaerung-methods-and-examples/ [researched on Jul. 10, 2024] 28 pages. [cited by applicant]
Rameseder., “Forecasts: Everyone Needs Them, No One Can Scale Them,” Digital Transformation , 2018, https://digitaleweltmagazin.de/forecasts-jeder-bedarf-sie-nichter-kann-sie-skalieren/ [researched on Jul. 11, 2024] 18 … [cited by applicant]
Japanese Patent Application No. 2022-522579, Office Action dated Aug. 14, 2024 (English Translation Available). [cited by applicant]
Badam et al., “Time Fork: Interactive Prediction of Time Series,” CHI '16: Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems May 2016, pp. 5409-5420. [cited by applicant]
Canadian Patent Application No. 3,154,982 Office Action dated Jun. 29, 2023. [cited by applicant]
Du, K.L., “Clustering: A Neural Network Approach,” Neural Networks : The Official Journal of the International Neural Network Society, 2010, vol. 23 (1), pp. 89-107. [cited by applicant]
European Patent Application No. 20877770.6, Extended European Search Report dated Nov. 21, 2023. [cited by applicant]
European U.S. Appl. No. 20/876,015, Extended European Search Report dated Sep. 1, 2023. [cited by applicant]
Hu et al., “Identifying the “Ghost City” of Domain Topics in a Keyword Semantic Space Combining Citations,” Scientometrics, 2018, vol. 114(3), 1141-1157. [cited by applicant]
International Patent Application No. PCT/CA2020/051379, International Preliminary Report on Patentability dated Jan. 5, 2022. [cited by applicant]
International Preliminary Report on Patentability from related PCT International Application No. PCT/CA2020/051378, transmitted on Jan. 25, 2022, pp. 1-5. [cited by applicant]
International Search Report from related PCT International Application No. PCT/CA2020/051347, transmitted on Jan. 8, 2021. [cited by applicant]
International Search Report from related PCT International Application No. PCT/CA2020/051378, transmitted on Dec. 16, 2020. [cited by applicant]
International Search Report from related PCT International Application No. PCT/CA2020/051379, transmitted on Jan. 4, 2021. [cited by applicant]
Japanese Patent Application No. JP2022-521962, Office Action dated Oct. 21, 2022. [cited by applicant]
PC Review Discussion Forum, “On Scatter Chart, How Can data Points be Moved with Curser?”, Posts Dated Feb. 8, 2010, available at https:/ /www .pcreview. co. uklthreads/on-scatter -chart-how-can-data-points-be-moved-wit… [cited by applicant]
Runkler et al., “Generation of Linguistic Membership Functions from Word Vectors,” IEEE International Conference on Fuzzy Systems, Jul. 2016, pp. 993-999. [cited by applicant]
Sherkat et al., “Interactive Document Clustering Revisited: A Visual Analytics Approach,” IUI2018: 23rdInternational Conference on Intelligent User Interfaces, Mar. 2018, pp. 281-292. [cited by applicant]
U.S. Appl. No. 16/697,620, Final office action dated Feb. 9, 2023. [cited by applicant]
U.S. Appl. No. 16/697,620, Non-Final office Action dated Jul. 31, 2023. [cited by applicant]
U.S. Appl. No. 16/697,620, Office Action dated Apr. 29, 2022. [cited by applicant]
U.S. Appl. No. 16/697,620, Office Action dated Jul. 13, 2022. [cited by applicant]
U.S. Appl. No. 16/699,010, Final Office Action dated Apr. 24, 2023. [cited by applicant]
U.S. Appl. No. 16/699,010, Non-Final office Action dated Sep. 18, 2023. [cited by applicant]
U.S. Appl. No. 16/848,266, Final Office Action dated Apr. 14, 2022. [cited by applicant]
U.S. Appl. No. 16/848,266, Non-Final Office Action dated Sep. 29, 2021. [cited by applicant]
U.S. Appl. No. 16/599,143, Final Office Action dated Feb. 3, 2022. [cited by applicant]
U.S. Appl. No. 16/599,143, Non-Final Office Action dated Aug. 18, 2021. [cited by applicant]
U.S. Appl. No. 16/699,010, Office Action dated Nov. 9, 2022. [cited by applicant]
U.S. Appl. No. 16/837,182, Final Office Action dated Apr. 27, 2022. [cited by applicant]
U.S. Appl. No. 16/837,182, Non-Final Office Action dated Sep. 16, 2021. [cited by applicant]
U.S. Appl. No. 16/848,266, Non Final office Action dated Oct. 13, 2022. [cited by applicant]
Yoshizaki et al., “Machine Learning Usage Guide by Practical Learning ,” Mynavi Publishing Corporation, Naoki Takiguchi, Sep. 20, 2019, vol. 1 (1), pp. 156-165. [cited by applicant]
U.S. Appl. No. 16/697,620, Advisory action dated May 3, 2024. [cited by applicant]
U.S. Appl. No. 16/697,620, Notice of allowance dated Apr. 18, 2024. [cited by applicant]
U.S. Appl. No. 17/993,952, Non Final office action dated May 21, 2024. [cited by applicant]
U.S. Appl. No. 18/451,755, Non -Final office Action dated Mar. 14, 2024. [cited by applicant]
U.S. Appl. No. 18/461,608, Non -Final office Action dated Apr. 25, 2024. [cited by applicant]
U.S. Appl. No. 16/697,620, Notice of Allowance dated Aug. 19, 2024. [cited by applicant]