Patent Publication Number: US-10311212-B2

Title: Nutrient value loss tracking system and method

Description:
RELATED APPLICATION 
     This application claims priority to U.S. Provisional Application Ser. No. 61/864,773 (entitled Nutrient Value Loss Tracking System and Method, filed Aug. 12, 2013) which is incorporated herein by reference. 
    
    
     BACKGROUND 
     During a manufacturing process of a product, nutrients are destroyed due to process steps like heating. This destruction of nutrients is called process loss, as less nutrient value is available in the end product than the sum of the nutrient values of the product&#39;s input specifications. Nutrients can also be destroyed due to storage of a product. This destruction is called storage loss. Prior loss calculations are only taken into account after nutrient values have been calculated for the end product. However, these calculations may not take into account losses that occur during storage of semi-finished products. 
     SUMMARY 
     A method includes exploding a recipe via a computer system for a process to make an end food product into a set of hierarchical process steps, obtaining nutrient values for each input material to be used in making the end food product, obtaining loss profiles for input materials, the nutrient loss profiles including a process loss profile for steps in the process to make the end food product and a storage loss profile for storing intermediate food product resulting during the process, and performing a hierarchical based nutrient loss calculation using the nutrient values and loss profiles to quantify nutrients remaining in the end food product. 
     A computer readable storage device has instructions for causing a computer to perform a method. The method includes exploding a recipe via a computer system for a process to make an end food product into a set of hierarchical process steps, obtaining nutrient values for each input material to be used in making the end food product, obtaining loss profiles for input materials, the nutrient loss profiles including a process loss profile for steps in the process to make the end food product and a storage loss profile for storing intermediate food product resulting during the process, and performing a hierarchical based nutrient loss calculation using the nutrient values and loss profiles to quantify nutrients remaining in the end food product. 
     A system includes a processor and a storage device coupled to the processor. The storage device has a program to perform a method when executed by the processor. The method includes exploding a recipe via a computer system for a process to make an end food product into a set of hierarchical process steps, obtaining nutrient values for each input material to be used in making the end food product, obtaining loss profiles for input materials, the nutrient loss profiles including a process loss profile for steps in the process to make the end food product and a storage loss profile for storing intermediate food product resulting during the process, and performing a hierarchical based nutrient loss calculation using the nutrient values and loss profiles to quantify nutrients remaining in the end food product. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block flow diagram of components that perform a nutrient loss calculation according to an example embodiment. 
         FIG. 2  is a block diagram of a system to perform a nutrient loss calculation according to an example embodiment. 
         FIG. 3  is a table illustrating recipes illustrating ingredients, process loss profiles, and storage loss profiles according to an example embodiment. 
         FIG. 4  is a table illustrating materials used along with nutrient values according to an example embodiment. 
         FIG. 5  is a table illustrating nutrient loss profiles according to an example embodiment. 
         FIG. 6  is a graph illustrating input and output flows according to an example embodiment. 
         FIG. 7  is a graphical representation of an explosion of a recipe according to an example embodiment. 
         FIG. 8  is a graphical representation of an explosion of a recipe according to an example embodiment. 
         FIG. 9  is a system internal representation of a result of an explosion of a recipe according to an example embodiment. 
         FIG. 10  is a table illustrating a sample nutrient calculation for vitamin C according to an example embodiment. 
         FIG. 11  is a table illustrating a storage loss calculation for vitamin C according to an example embodiment. 
         FIG. 12  is a block diagram of a computer system for performing methods and calculating losses according to an example embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments which may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that structural, logical and electrical changes may be made without departing from the scope of the present invention. The following description of example embodiments is, therefore, not to be taken in a limited sense, and the scope of the present invention is defined by the appended claims. 
     The functions or algorithms described herein may be implemented in software or a combination of software and human implemented procedures in one embodiment. The software may consist of computer executable instructions stored on computer readable media such as memory or other type of storage devices. Further, such functions correspond to modules, which are software, hardware, firmware or any combination thereof. Multiple functions may be performed in one or more modules as desired, and the embodiments described are merely examples. The software may be executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a computer system, such as a personal computer, server or other computer system. 
     During a manufacturing process of a food product, nutrients are destroyed due to process steps like heating. This destruction of nutrients is called process loss as less nutrient value is available in the end product than the sum of the nutrient values of the product&#39;s input specifications. Nutrients can also be destroyed due to storage of a product. This destruction is called storage loss. 
     Prior nutrient losses are only taken into account after the nutrient values are already calculated for the end product. But process and storage loss happen in between at different process steps or stages of manufacture and also at semi-finished product levels. The process/storage loss calculation is a hierarchical loss calculation utilizing a specification description containing information about the nutrient values of each input material used in making the product. Each process step used to make the product has an associated loss profile that contains information regarding how much nutrient value is lost in the step. With the loss profile information and the specification information of each input material, a loss calculation may be done. 
     In one embodiment, a computer executable application  100  is illustrated in block form in  FIG. 1 , and performs a loss calculation that contains four functional blocks. A recipe explosion block  110  explodes a recipe down to raw specifications like sugar. That means that if an input specification is a semi-finished product then the explosion searches for the corresponding recipe of the product and drills into their input materials. 
     A specification determination block is shown at  120 . For each raw specification the nutrient values are determined by specification block  120 . An existing application may be used to obtain correct nutrient values. 
     A loss profile determination block is shown at  130 . For each recipe output or stage output the assigned loss profile is determined by loss profile determination block  130 . An environmental health and safety application may be used to get the profile values, e.g. that 10% vitamin C gets lost during a process step. Other sources of information may also be utilized to determine profile values, such as studies conducted by universities and other research institutions in further embodiments. 
     A hierarchical loss calculation block is shown at  140 . Out of the explosion result, the nutrient values of each specification and the loss profile information the nutrient value for the primary output is calculated in a hierarchical manner using block  140 . Some parts of an existing application program nutrient calculation method may be reused or enhanced for the new hierarchical loss calculation block  140 . 
       FIG. 2  illustrates a system that includes a nutrient calculator system  210 , enterprise resource planning system  220 , specification input  230 , and label printer  240 . The nutrient calculator system  210  receives a recipe from the enterprise resource planning system  220  and uses it, along with a specification input  230  to perform the hierarchical nutrient loss calculation. The specification input  230  may include a data entry device to enter specifications for various ingredients used in the recipe as obtained from different sources, such as vendors. The input  230  may be from a vendor system coupled by network in some embodiments. The label printer  240  receives a label with final calculated nutrient content for printing food labels required by various regulations. 
     The following example illustrated in table  300  in  FIG. 3  is helpful to explain the loss calculation. Table  300  includes several columns indicating a recipe number  310 , stage number  315 , item type  320 , specification identifier  325 , quantity  330 , UOM (unit of measure)  335 , process loss profile identifier  340 , and storage loss identifier  345 . Table  300  includes various item types  320  such as PO—primary output, IN—input item, IS—input stream, and OS—output stream. Table  300  columns provide information utilized for the loss calculation. 
     Separate tables are provided for the specification of materials at  400  in  FIG. 4  showing a specification identifier  410 , nutrient  415  and quantity  420 , and a loss profiles table at  500  in  FIG. 5  showing a profile identifier  510 , nutrient  515  and associated loss  520 . 
     There are three recipes. Two of them do not contain a process step. One contains two process steps with an output stream on a second stage which is consumed in the first stage. There is no fork and join or rework in this example, however, forks and joins may be accommodated in further embodiments. The maintenance of process and storage loss profiles on stage level may be done via databases, and accessed via processes executing on a computer system in some embodiments. 
     The recipe explosion in one embodiment may be based on a graph and matrix calculation. The graph illustrated at  600  in  FIG. 6  shows an algorithm having input and output flows between recipes indicated at (A)  610 , (B)  615 , and (C)  620 . Recipe B at  615  outputs B OUT  at  625 , which is split into two inputs. A first input, B IN A at  630  is received by recipe A at  610 . The remainder of B OUT  is provided as B IN C to recipe C at  620 , which produces C OUT  at  640  which is provided as C IN A to recipe A at  610 . 
     If the recipe explosion determines a recipe that contains streams then this recipe is exploded itself as shown in  FIG. 7  at  700 . According to this algorithm the example described above contains two graphs, a first graph  710  and a second graph  715 . The first graph  710  for the explosion of recipe 2 is used to bring all quantities of recipe 2 to the quantity of the primary output M2. The result of that explosion is than represented in the second graph  715  for the whole explosion as the primary output of recipe 3 at  720  only brings 15 G into recipe 2 instead of 30 G. 
       FIG. 8  is a graph illustrating an explosion of a recipe at  800  resulting in an output, y. In order to get the aggregated component list for each component, factors for the outputs have to be calculated. A factor of an output reflects the sum of the weighted quantities where this output serves as an input. According to this rule an equation system with n equations and n factors is built up. The effort of this calculation is the calculation on real quantities, because with the calculated factor also components with unit of measurement “piece” can be multiplied. The only restriction for building the equation system is the same unit of measurement. 
     The algorithm is the following
 
 B   out   A=ΣB   in   X×f   X  
 
     B out A corresponds to the primary output of recipe B. Since B is used by both A and C, the summation corresponds to both of such recipes times a factor f X  to account for measurement conversions. According to that the equation system is the following:
 
 B   out   ×F   B   =B   in   A×f   A   +B   in   C×F   C   I)
 
 C   out   ×F   C   =C   in   A×f   A   II)
 
 A   out   ×F   A   =y   III)
 
With the equations a matrix can be built:
 
     
       
         
           
             
               
                 ( 
                 
                   
                     
                       
                         - 
                         
                           B 
                           out 
                         
                       
                     
                     
                       
                         
                           B 
                           in 
                         
                         ⁢ 
                         A 
                       
                     
                     
                       
                         
                           B 
                           in 
                         
                         ⁢ 
                         C 
                       
                     
                   
                   
                     
                       0 
                     
                     
                       
                         
                           C 
                           in 
                         
                         ⁢ 
                         A 
                       
                     
                     
                       
                         - 
                         
                           C 
                           out 
                         
                       
                     
                   
                   
                     
                       0 
                     
                     
                       0 
                     
                     
                       
                         A 
                         out 
                       
                     
                   
                 
                 ) 
               
               × 
               
                 ( 
                 
                   
                     
                       
                         f 
                         B 
                       
                     
                   
                   
                     
                       
                         f 
                         C 
                       
                     
                   
                   
                     
                       
                         f 
                         A 
                       
                     
                   
                 
                 ) 
               
             
             = 
             
               ( 
               
                 
                   
                     0 
                   
                 
                 
                   
                     0 
                   
                 
                 
                   
                     y 
                   
                 
               
               ) 
             
           
         
       
     
     The Matrix may be transformed into reduced row echelon form. Afterwards the factors can be calculated through back substitution. In the end the formulas have to be calculated with their factor. 
     For the example this means: 
     
       
         
           
             
               
                 
                   
                     100 
                     × 
                     
                       f 
                       
                         R 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         3 
                       
                     
                   
                   = 
                   
                     15 
                     × 
                     
                       f 
                       
                         R 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         2 
                       
                     
                   
                 
               
               
                 
                   I 
                   ) 
                 
               
             
             
               
                 
                   
                     100 
                     × 
                     
                       f 
                       
                         R 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         2 
                       
                     
                   
                   = 
                   
                     90 
                     × 
                     
                       f 
                       
                         R 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         1 
                       
                     
                   
                 
               
               
                 
                   II 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       100 
                       × 
                       
                         f 
                         
                           R 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                     
                     = 
                     100 
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         ( 
                         
                           
                             
                               
                                 - 
                                 100 
                               
                             
                             
                               15 
                             
                             
                               0 
                             
                           
                           
                             
                               0 
                             
                             
                               
                                 - 
                                 100 
                               
                             
                             
                               90 
                             
                           
                           
                             
                               0 
                             
                             
                               0 
                             
                             
                               100 
                             
                           
                         
                         ) 
                       
                       × 
                       
                         ( 
                         
                           
                             
                               
                                 f 
                                 
                                   R 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   3 
                                 
                               
                             
                           
                           
                             
                               
                                 f 
                                 
                                   R 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   2 
                                 
                               
                             
                           
                           
                             
                               
                                 f 
                                 
                                   R 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   1 
                                 
                               
                             
                           
                         
                         ) 
                       
                     
                     = 
                     
                       ( 
                       
                         
                           
                             0 
                           
                         
                         
                           
                             0 
                           
                         
                         
                           
                             100 
                           
                         
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       f 
                       
                         R 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         1 
                       
                     
                     = 
                     1 
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       f 
                       
                         R 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         2 
                       
                     
                     = 
                     0.9 
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         f 
                         
                           R 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           3 
                         
                       
                       = 
                       0 
                     
                     , 
                     135 
                   
                 
               
               
                 
                   III 
                   ) 
                 
               
             
           
         
       
     
     Therefore the result of the explosion in a system internal representation of similar information from Table  300  is shown in a Table  900  in  FIG. 9 . 
     RFO_GUID  910  is the recipe id, ST_ID  915  is the stage id, SUBID  920  is the specification ID, FLG_PO  925  is a flag for the primary output, STREAM_PO  930  is a flag for the stream output, UOM  935  is unit of measure and QUANT_AGGR  940  is a quantity aggregation amount. In the current explosion the lines for the input and output stream S1 at  725  would not be there but the lines are very important for the new calculation. Therefore a new type of explosion with a new class implementation behind has to be created which brings out all intermediate streams. 
     The specification determination is reused as only the nutrient values per specification is retrieved in one embodiment, which is similar to prior calculations around nutrients. 
     For the loss profile determination, the profile settings determination can be reused. As a profile is a specification the specification determination may be used. A new loss profile assignment determination may be used. With the result of the explosion, each involved primary output and stream output can be identified. Afterwards a recipe application programming interface can be asked for the assigned loss profile. 
     With all the information about the explosion, the nutrient values per specification, the assigned loss profiles and the loss profile settings, the calculation can be done item by item with summation on each stage and recipe output. 
     In mathematical theory this means:
 
NutrientValueInclProcessLoss Primary Output =Σ(NutrientValue InputItem ×ProcessLoss)
 
     In case the input item is not produced in an underlying recipe then the term NutrientValue InputItem  is the following: 
     
       
         
           
             
               NutrientValue 
               InputItem 
             
             = 
             
               
                 
                   Quantity 
                   InputItem 
                 
                 
                   ReferenceQuantity 
                   Nutrient 
                 
               
               × 
               
                 NutrientValue 
                 InputItem 
               
             
           
         
       
     
     In case the input item is a product of an underlying recipe then the term NutrientValue InputItem  is the following:
 
NutrientValue InputItem =NutrientValue PrimaryOutputofUnderlyingRecipe  
 
     Considering the example a Table  1000  in  FIG. 10  shows an example calculation for Vitamin C. Table  1000  includes several columns having labels that are the same as table  900  and are numbered accordingly. Additional columns include a FLG_OUT column  1010 , calculation nutrient value column  1015  and Vitamin C [MG] column  1020 . The storage loss is calculated on top of the process loss. That means the storage loss is calculated as: NutrientVaqlueInclStorageLoss=NutrientValueInclProcessLoss×StorageLoss. A table  1100  in  FIG. 11  illustrates example calculations for Vitamin C, and includes several columns with reference numbers consistent with tables  900  and  1000 . In addition, a calculation storage loss column  1110  and a vitamin C after storage loss in MG column  1115  are provided. 
     Note that the storage loss can be calculated for storage of materials prior to use in the recipe, between stages of a recipe, and following completion of the recipe based on an estimated shipping time prior to being made available in a retail store. 
       FIG. 12  is a block schematic diagram of a computer system  1200  to implement one or more algorithms according to an example embodiment. In one embodiment, multiple such computer systems are utilized in a distributed network to implement multiple components in a transaction based environment. An object-oriented, service-oriented, or other architecture may be used to implement such functions and communicate between the multiple systems and components. 
     One example computing device in the form of a computer  1200 , may include a processing unit  1202 , memory  1203 , removable storage  1210 , and non-removable storage  1212 . Memory  1203  may include volatile memory  1214  and non-volatile memory  1208 . Computer  1200  may include—or have access to a computing environment that includes—a variety of computer-readable media, such as volatile memory  1214  and non-volatile memory  1208 , removable storage  1210  and non-removable storage  1212 . Computer storage includes random access memory (RAM), read only memory (ROM), erasable programmable read-only memory (EPROM) &amp; electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD ROM), Digital Versatile Disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium capable of storing computer-readable instructions. Computer  1200  may include or have access to a computing environment that includes input  1206 , output  1204 , and a communication connection  1216 . The computer may operate in a networked environment using a communication connection to connect to one or more remote computers, such as database servers. The remote computer may include a personal computer (PC), server, router, network PC, a peer device or other common network node, or the like. The communication connection may include a Local Area Network (LAN), a Wide Area Network (WAN) or other networks. 
     Computer-readable instructions stored on a computer-readable medium are executable by the processing unit  1202  of the computer  1200 . A hard drive, CD-ROM, and RAM are some examples of articles including a non-transitory computer-readable medium. For example, a computer program  1218  capable of providing a generic technique to perform access control check for data access and/or for doing an operation on one of the servers in a component object model (COM) based system may be included on a CD-ROM and loaded from the CD-ROM to a hard drive. The computer-readable instructions allow computer  1200  to provide generic access controls in a COM based computer network system having multiple users and servers. 
     EXAMPLES 
     1. A method comprising: 
     exploding a recipe, via a computer system for a process to make an end food product, into a set of hierarchical process steps; 
     obtaining nutrient values for each input material to be used in making the end food product; 
     obtaining nutrient loss profiles for input materials, the nutrient loss profiles including a process loss profile for steps in the process to make the end food product and a storage loss profile for storing intermediate food product resulting during the process; and 
     performing a hierarchical based nutrient loss calculation using the nutrient values and loss profiles to quantify nutrients remaining in the end food product. 
     2. The method of example 1 wherein storage losses are calculated on top of process losses. 
     3. The method of any of examples 1-2 wherein the process loss profile is a percentage of a nutrient value lost during a process step. 
     4. The method of any of examples 1-3 wherein a storage loss profile is a percentage of nutrient value lost during storage of a material. 
     5. The method of any of examples 1-4 wherein performing a hierarchical nutrient loss calculation comprises building an equation system for each process output. 
     6. The method of example 5 wherein exploding the recipe results in a graph showing the input and output flows between stages of the recipe. 
     7. The method of example 6 wherein the equation systems are built into a matrix based on the graph. 
     8. The method of example 7 wherein the matrix is transformed into reduced row echelon form. 
     9. A computer readable storage device having instructions for causing a computer to execute a method, the method comprising: 
     exploding a recipe for a process to make an end food product, into a set of hierarchical process steps; 
     obtaining nutrient values for each input material to be used in making the end food product; 
     obtaining nutrient loss profiles for input materials, the nutrient loss profiles including a process loss profile for steps in the process to make the end food product and a storage loss profile for storing intermediate food product resulting during the process; and 
     performing a hierarchical based nutrient loss calculation using the nutrient values and loss profiles to quantify nutrients remaining in the end food product. 
     10. The computer readable storage device of example 9 wherein storage losses are calculated on top of process losses. 
     11. The computer readable storage device of any of examples 9-10 wherein the process loss profile is a percentage of a nutrient value lost during a process step. 
     12. The computer readable storage device of any of examples 9-11 wherein a storage loss profile is a percentage of nutrient value lost during storage of a material. 
     13. The computer readable storage device of any of examples 9-12 wherein performing a hierarchical nutrient loss calculation comprises building an equation system for each process output. 
     14. The computer readable storage device of example 13 wherein exploding the recipe results in a graph showing the input and output flows between stages of the recipe. 
     15. The computer readable storage device of example 14 wherein the equation systems are built into a matrix based on the graph. 
     16. The computer readable storage device of example 15 wherein the matrix is transformed into reduced row echelon form. 
     17. A system comprising: 
     a processor; 
     a storage device coupled to the processor, the storage device having a program to perform a method when executed by the processor, the method comprising;
         exploding a recipe for a process to make an end food product, into a set of hierarchical process steps;   obtaining nutrient values for each input material to be used in making the end food product;   obtaining loss profiles for input materials, the nutrient loss profiles including a process loss profile for steps in the process to make the end food product and a storage loss profile for storing intermediate food product resulting during the process; and   performing a hierarchical based nutrient loss calculation using the nutrient values and loss profiles to quantify nutrients remaining in the end food product.       

     18. The system of example 17 wherein storage losses are calculated on top of process losses, wherein the process loss profile is a percentage of a nutrient value lost during a process step, and wherein a storage loss profile is a percentage of nutrient value lost during storage of a material. 
     19. The system of example 18 wherein performing a hierarchical nutrient loss calculation comprises building an equation system for each process output, and wherein exploding the recipe results in a graph showing the input and output flows between stages of the recipe. 
     20. The system of example 19 wherein the equation systems are built into a matrix based on the graph, and wherein the matrix is transformed into reduced row echelon form. 
     Although a few embodiments have been described in detail above, other modifications are possible. For example, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. Other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Other embodiments may be within the scope of the following claims.