Intermediates are raw materials which have a corresponding formulation that is stored under an identical code.

When a formulation is being costed , whenever a raw material code is detected which has a corresponding entry in the formulation file, that formulation is immediately costed in the background and the cost of that raw material replaced with the resulting formulation cost. This process is done recusively. If the intermediate formulation which has been costed also contains an intermediate then this internal intermediate formulation will be costed out first before returning to the higher level intermediate.

As a result of this recursive method no formulation can contain an intermediate hidden at any level of depth which refer back to the same code at a higher level. If this situation occurs then the error message 'this formulation contained self referencing intermediate' is displayed and the recursion method is halted to prevent infinite looping.

If you see this message at any time you must examine the original formulation in detail and resolve any self referencing intermediates.