IP Library Granted Patent US 12,462,205
Granted Patent B2
US 12,462,205 · App. 18/119,660 · Granted Nov 4, 2025

Dynamic memoryless demand-supply pegging

Inventors: Narasimha Kamath (Bangalore, IN); Kshitiz Uttam (Bangalore, IN)
Assignee: o9 Solutions, Inc.
G06Q10/06315G06Q10/087
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,462,205
App. No.
18/119,660
Granted
Nov 4, 2025
Kind
B2
Abstract

Systems and techniques for dynamic memoryless demand-supply pegging are described herein. An identification may be received of a demand to be pegged. An inventory may be determined for a material node at a time bucket. A set of other demands may be identified for the material node at the time bucket. A quantity to be pegged may be calculated. A quantity to skip may be calculated based on a sum of demand units corresponding to members of the set of other demands having a lower priority than the demand. A supply set of units may be identified. A pegged subset of the supply set of units may be generated by skipping members of the supply units equal to the quantity to skip. A graphical representation of the supply set of units for the time bucket may be output including identification of members of the pegged subset.

Claims (74)

1 . A system for dynamic resource demand pegging within a network graph data structure comprising:

at least one processor; and

memory comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:

generate a node graph within the network graph data structure that includes a set of material nodes, a set of activity nodes, and a set of capacity nodes, wherein the node graph is generated based on edges between members of the set of material nodes, members of the set of activity nodes, and members of the set of capacity nodes along the network graph data structure, wherein at least one of the edges represent an outflow of a particular material node in the set of material nodes to an inflow of a corresponding particular activity node in the set of activity nodes, wherein the set of material nodes are buffer nodes that include attributes for a supply of a resource, and wherein the set of activity nodes are no-carry nodes between respective members of the set of material nodes and members of the set of capacity nodes through which supply attributes flow;

receive an identification of a first demand to be pegged, the identification including attributes that include identification of a material node of the set of material nodes, a unit quantity attribute, and a time bucket attribute for the first demand, wherein the unit quantity attribute is based in part on output of a downstream activity node of the set of activity nodes that shares a downstream edge with the material node, and wherein the time bucket attribute represents a period of consumption of units of the resource by the material node;

in real-time in parallel with a set of other demand pegging processes, independently process the first demand to be pegged by:

in real-time using parallel processing threads that independently execute demand pegging calculations simultaneously without dependency on sequential processing of other demands, wherein the independently processing includes dynamically managing memory allocation by:

calculating a first demand pegging without storing output of the demand pegging calculations in memory simultaneously, and selectively flushing completed peggings to disk storage based on available memory allocation;

identifying a set of other demands for the material node during a time period defined by the time bucket attribute;

determining a priority level attribute for the first demand based on a priority level attribute for at least one activity node corresponding to the first demand and at least one particular demand in the set of other demands based one a priority level attribute for at least one activity node corresponding to the at least one particular demand;

determining a resource available inventory attribute for the material node for the time period, the resource available inventory attribute determined in part based on output of an upstream activity node of the set of activity nodes that shares an upstream edge with the material node and an upstream capacity node of the set of capacity nodes that shares an upstream edge with the material node and in part based on the set of other demands having a higher priority attribute value than the first demand;

calculating a quantity to be pegged attribute based on the unit quantity attribute;

calculating a quantity to skip attribute based on a sum of demand units corresponding to members of the set of other demands having a lower priority attribute value than the first demand pegged to a quantity of the resource corresponding to the resource available inventory attribute;

identifying a supply set of units of the resource for the time period;

generating a pegged subset of the supply set of units of the resource by skipping members of the supply set of units equal to the quantity to skip attribute, wherein a number of members in the pegged subset is equal to the quantity to be pegged attribute; and

storing a respective quantity to be pegged attribute at each material node associated with the pegged subset;

automatically calculating an alternative inventory path for the supply based on the supply set of units, wherein the alternative inventory path defines a secondary supply of the units to be directed to the material node; and

displaying an interactive pegging visualization graphical user interface including a graphical representation of the supply set of units and the secondary supply of the units, wherein the graphical representation is dynamically updated.

2 . The system of claim 1 , the memory further comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:

output, for display in a supply chain management application graphical user interface, a graphical representation of the supply set of units for the time period including identification of members of the pegged subset; and

automatically transmit an electronic order to a supplier computing system for an additional quantity of the units for delivery to the material node based on the supply set of units.

3 . The system of claim 1 , the memory further comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to assign a priority to each member of the set of other demands.

4 . The system of claim 3 , wherein members of the set of other demands corresponding to actual demands are assigned a higher priority than members of the set of other demands corresponding to flow plan demands.

5 . The system of claim 4 , wherein the members of the set of other demands corresponding to actual demands are assigned a priority based on an actual demand priority corresponding to respective of the actual demands.

6 . The system of claim 4 , wherein the members of the set of other demands corresponding to flow plan demands are assigned a priority based on an activity priority corresponding to an activity node corresponding with respective of the flow plan demands.

7 . The system of claim 1 , wherein the instructions to generate the pegged subset further comprises instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:

order the supply set of units based on an inventory status identifier of each member of the supply set of units.

8 . The system of claim 7 , wherein members of the supply set of units having an inventory status identifier of beginning on hand are ordered first, members of the supply set of units having an inventory status identifier of expected receipts are ordered next, and remaining members are ordered based on an activity priority corresponding to respective of the remaining members.

9 . At least one non-transitory machine-readable medium including comprising instructions for resource demand pegging within a network graph data structure that, when executed by at least one processor, cause the at least one processor to perform operations to:

generate a node graph within the network graph data structure that includes a set of material nodes, a set of activity nodes, and a set of capacity nodes, wherein the node graph is generated based on edges between members of the set of material nodes, members of the set of activity nodes, and members of the set of capacity nodes along the network graph data structure, wherein at least one of the edges represent an outflow of a particular material node in the set of material nodes to an inflow of a corresponding particular activity node in the set of activity nodes, wherein the set of material nodes are buffer nodes that include attributes for a supply of a resource, and wherein the set of activity nodes are no-carry nodes between respective members of the set of material nodes and members of the set of capacity nodes through which supply attributes flow;

receive an identification of a first demand to be pegged, the identification including attributes that include identification of a material node of the set of material nodes, a unit quantity attribute, and a time bucket attribute for the first demand, wherein the unit quantity attribute is based in part on output of a downstream activity node of the set of activity nodes that shares a downstream edge with the material node, and wherein the time bucket attribute represents a period of consumption of units of the resource by the material node;

in real-time in parallel with a set of other demand pegging processes, independently process the first demand to be pegged by:

in real-time using parallel processing threads that independently execute demand pegging calculations simultaneously without dependency on sequential processing of other demands, wherein the independently processing includes dynamically managing memory allocation by:

calculating a first demand pegging without storing output of the demand pegging calculations in memory simultaneously, and selectively flushing completed peggings to disk storage based on available memory allocation;

identifying a set of other demands for the material node during a time period defined by the time bucket attribute;

determining a priority level attribute for the first demand based on a priority level attribute for at least one activity node corresponding to the first demand and at least one particular demand in the set of other demands based one a priority level attribute for at least one activity node corresponding to the at least one particular demand;

determining a resource available inventory attribute for the material node for the time period, the resource available inventory attribute determined in part based on output of an upstream activity node of the set of activity nodes that shares an upstream edge with the material node and an upstream capacity node of the set of capacity nodes that shares an upstream edge with the material node and in part based on the set of other demands having a higher priority attribute value than the first demand;

calculating a quantity to be pegged attribute based on the unit quantity attribute;

calculating a quantity to skip attribute based on a sum of demand units corresponding to members of the set of other demands having a lower priority attribute value than the first demand pegged to a quantity of the resource corresponding to the resource available inventory attribute;

identifying a supply set of units of the resource for the time period;

generating a pegged subset of the supply set of units of the resource by skipping members of the supply set of units equal to the quantity to skip attribute, wherein a number of members in the pegged subset is equal to the quantity to be pegged attribute; and

storing a respective quantity to be pegged attribute at each material node associated with the pegged subset;

automatically calculating an alternative inventory path for the supply based on the supply set of units, wherein the alternative inventory path defines a secondary supply of the units to be directed to the material node; and

displaying an interactive pegging visualization graphical user interface including a graphical representation of the supply set of units and the secondary supply of the units, wherein the graphical representation is dynamically updated.

10 . The at least one non-transitory machine-readable medium of claim 9 , further comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:

output, for display in a supply chain management application graphical user interface, a graphical representation of the supply set of units for the time period including identification of members of the pegged subset; and

automatically transmit an electronic order to a supplier computing at least one non-transitory machine-readable medium for an additional quantity of the units for delivery to the material node based on the supply set of units.

11 . The at least one non-transitory machine-readable medium of claim 9 , further comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to assign a priority to each member of the set of other demands.

12 . The at least one non-transitory machine-readable medium of claim 11 , wherein members of the set of other demands corresponding to actual demands are assigned a higher priority than members of the set of other demands corresponding to flow plan demands.

13 . The at least one non-transitory machine-readable medium of claim 12 , wherein the members of the set of other demands corresponding to actual demands are assigned a priority based on an actual demand priority corresponding to respective of the actual demands.

14 . The at least one non-transitory machine-readable medium of claim 12 , wherein the members of the set of other demands corresponding to flow plan demands are assigned a priority based on an activity priority corresponding to an activity node corresponding with respective of the flow plan demands.

15 . A method for resource demand pegging within a network graph data structure, the method comprising:

generating a node graph within the network graph data structure that includes a set of material nodes, a set of activity nodes, and a set of capacity nodes, wherein the node graph is generated based on edges between members of the set of material nodes, members of the set of activity nodes, and members of the set of capacity nodes along the network graph data structure, wherein at least one of the edges represent an outflow of a particular material node in the set of material nodes to an inflow of a corresponding particular activity node in the set of activity nodes, wherein the set of material nodes are buffer nodes that include attributes for a supply of a resource, and wherein the set of activity nodes are no-carry nodes between respective members of the set of material nodes and members of the set of capacity nodes through which supply attributes flow;

receiving an identification of a first demand to be pegged, the identification including attributes that include identification of a material node of the set of material nodes, a unit quantity attribute, and a time bucket attribute for the first demand, wherein the unit quantity attribute is based in part on output of a downstream activity node of the set of activity nodes that shares a downstream edge with the material node, and wherein the time bucket attribute represents a period of consumption of units of the resource by the material node;

in real-time in parallel with a set of other demand pegging processes, independently process the first demand to be pegged by:

in real-time using parallel processing threads that independently execute demand pegging calculations simultaneously without dependency on sequential processing of other demands, wherein the independently processing includes dynamically managing memory allocation by:

calculating a first demand pegging without storing output of the demand pegging calculations in memory simultaneously, and selectively flushing completed peggings to disk storage based on available memory allocation;

identifying a set of other demands for the material node during a time period defined by the time bucket attribute;

determining a priority level attribute for the first demand based on a priority level attribute for at least one activity node corresponding to the first demand and at least one particular demand in the set of other demands based one a priority level attribute for at least one activity node corresponding to the at least one particular demand;

determining a resource available inventory attribute for the material node for the time period, the resource available inventory attribute determined in part based on output of an upstream activity node of the set of activity nodes that shares an upstream edge with the material node and an upstream capacity node of the set of capacity nodes that shares an upstream edge with the material node and in part based on the set of other demands having a higher priority attribute value than the first demand;

calculating a quantity to be pegged attribute based on the unit quantity attribute;

calculating a quantity to skip attribute based on a sum of demand units corresponding to members of the set of other demands having a lower priority attribute value than the first demand pegged to a quantity of the resource corresponding to the resource available inventory attribute;

identifying a supply set of units of the resource for the time period;

generating a pegged subset of the supply set of units of the resource by skipping members of the supply set of units equal to the quantity to skip attribute, wherein a number of members in the pegged subset is equal to the quantity to be pegged attribute; and

storing a respective quantity to be pegged attribute at each material node associated with the pegged subset;

automatically calculating an alternative inventory path for the supply based on the supply set of units, wherein the alternative inventory path defines a secondary supply of the units to be directed to the material node;

displaying an interactive pegging visualization graphical user interface including a graphical representation of the supply set of units and the secondary supply of the units, wherein the graphical representation is dynamically updated.

16 . The method of claim 15 , further comprising:

outputting, for display in a supply chain management application graphical user interface, a graphical representation of the supply set of units for the time period including identification of members of the pegged subset; and

automatically transmitting an electronic order to a supplier computing system for an additional quantity of the units for delivery to the material node based on the supply set of units.

17 . The method of claim 15 , further comprising assigning a priority to each member of the set of other demands.

18 . The method of claim 17 , wherein members of the set of other demands corresponding to actual demands are assigned a higher priority than members of the set of other demands corresponding to flow plan demands.

19 . The method of claim 18 , wherein the members of the set of other demands corresponding to actual demands are assigned a priority based on an actual demand priority corresponding to respective of the actual demands.

20 . The method of claim 18 , wherein the members of the set of other demands corresponding to flow plan demands are assigned a priority based on an activity priority corresponding to an activity node corresponding with respective of the flow plan demands.

Assignments (4)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 28, 2025
From: JPMORGAN CHASE BANK, N.A.
To: O9 SOLUTIONS, INC.
Reel/Frame 070365/0148 →
SECURITY INTEREST Recorded Feb 7, 2025
From: O9 SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070149/0274 →
SUPPLEMENT NO. 1 TO INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 12, 2024
From: O9 SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 066291/0591 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2023
From: KAMATH, NARASIMHA; UTTAM, KSHITIZ
To: O9 SOLUTIONS, INC.
Reel/Frame 062937/0160 →
Continuity (2)
Continuation 15783660 · Oct 13, 2017
Related Publication 20230325741A1 · Oct 12, 2023
References Cited (29)
US 7248937B1 · Brown et al. · 2007 [cited by applicant]
US 8170899B2 · Chorley et al. · 2012 [cited by applicant]
US 8311905B1 · Campbell · 2012 [cited by examiner]
US 8326670B2 · Wittrock · 2012 [cited by applicant]
US 8958899B2 · Han · 2015 [cited by applicant]
US 20020188499A1 · Jenkins et al. · 2002 [cited by applicant]
US 20030065415A1 · Hegde et al. · 2003 [cited by applicant]
US 20060250248A1 · Tu et al. · 2006 [cited by applicant]
US 20070073886A1 · Fornichev · 2007 [cited by applicant]
US 20090240544A1 · Cheng et al. · 2009 [cited by applicant]
US 20090307026A1 · Ervolina · 2009 [cited by examiner]
US 20110270646A1 · Prasanna et al. · 2011 [cited by applicant]
US 20120054076A1 · Wu et al. · 2012 [cited by applicant]
US 20130103456A1 · Bannister et al. · 2013 [cited by applicant]
US 20170323241A1 · Gauba et al. · 2017 [cited by applicant]
US 20190114567A1 · Kamath et al. · 2019 [cited by applicant]
“U.S. Appl. No. 15/783,660, Final Office Action mailed May 20, 2020”, 26 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Final Office Action mailed Aug. 17, 2022”, 30 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Final Office Action mailed Dec. 7, 2021”, 30 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Non Final Office Action mailed Apr. 28, 2021”, 25 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Non Final Office Action mailed Apr. 28, 2022”, 27 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Non Final Office Action mailed Sep. 16, 2019”, 17 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Notice of Allowance mailed Dec. 1, 2022”, 5 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Response filed Feb. 18, 2020 to Non Final Office Action mailed Sep. 16, 2019”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Response filed Apr. 7, 2022 to Final Office Action mailed Dec. 7, 2021”, 17 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Response filed Jul. 28, 2022 to Non Final Office Action mailed Apr. 28, 2022”, 17 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Response filed Aug. 30, 2021 to Non Final Office Action mailed Apr. 28, 2021”, 17 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Response filed Sep. 21, 2020 to Final Office Action mailed May 20, 2020”, 12 pgs. [cited by applicant]
“U.S. Appl. No. 15/783,660, Response filed Nov. 17, 2022 to Final Office Action mailed Aug. 17, 202”, 15 pgs. [cited by applicant]