Allowing circular references

I have a case where I want to allow Anaplan to make circular references, what do I want to do?


Basically to make a coffee I need:


1 Cup

1 cookie

         50 grams of flour

         5 grams of butter


150 ml of coffee

         160 ml of water

          3 grams of coffee powder



So when I needs 2 cups of coffee I can go down the "hierarchy" and calculate how much I need of everything. Ending up in my base components (cup, flour, butter, water and coffee powder)


But I can't find an elegant way to do this... Any ideas/opinions?




Best Answer

  • Hi @MaartenGijbels 


    In short, Circular references are not supported by Anaplan, since the whole model gets recalculated as soon as a value changes.The only way to run multiple iterations of a calculation is using the Optimiser Enginge or creating some sort of workaround using Processes (data laods between modules) (so you can manually trigger each new iteration manually).


    That bein said, your example looks like a standard Bill Of Materials to me: You know how much of each component (Coffee + cookie) and how much of each raw materials (flour,butter...) takes to produce a finished good (1 cup) and you do not need to rely on any iterative process for that.


    The key to create a BOM in Anaplan is to make sure that the dimensions are independent among them (so raw materials are not children of components, and components are not children of finished goods, these 3 lists must be independent. If you must have them hierarchically related you can always duplicate these lists keeping the same codes for the items and connect them using FINDITEM). Once you have the independent lists, you can create a module that relates how much of each ingredients is needed for each finished good. Here you are a quick example on how to explode your BOM from finished goods level down to components and materials:


    The module on the left has Finished Goods in rows and ingredients across columns. In the cells you can enter how much of each component is needed to produce each of the finished goods. So when an amount of units is entered (upper left module), Anaplan can calculate automatically how much of each ingredient is needed.




    This example is taken from the default Supply Planning Model by Anaplan, which can be found and downloaded from the AppHub, so you can try your hand and learn from it:


    Let me know if it helped.




  • @MaartenGijbels 

    Eliminate the circular reference by using the base data in all your calculations and avoid daisy chaining!


    Therefore, each time you need to reference a cup of coffee create a formula which takes the core ingredients rather than the outcome of the cup of coffee calculation. 

  • The problem is that in that case I would hardcode a fixed number of allowed iterations... Which could, in theory, expand in the future.

    So I might provide for 4 iterations, but would need 5 in one month...