Avoiding Circular Reference


I have a list of Manufacturing Plants. The output material of one plant becomes the input for the next plant. The cost at which a material is transferred from one plant to the other is the weighted average of opening stock cost, production cost and cost of materials transferred from other plants.

Since the cost of one plant becomes the cost of next plant, there is circular reference. The end users decide from the Ux pages the plant from which material has to be transferred, the plant to which material has to be transferred and its quantity. Hence the solution needed is dynamic.

I need help in knowing how does Anaplan handle such situations where values from one list member goes to another list member. Calculations are performed at the destination list member's dimension and then again the value is transferred to another list member and so on.



  • Its not super clear to me but based on my understanding I can say you can use lookup to achieve this.
    Create a SYSTEM Module for the Plants with the Base Plant where it should pick up inputs from

    And in your calculation Module you can use this mapping to in Lookup to pick-up the values from the base plant

    Hope this helps!



  • saket22

    @Vamshidhar Reddy Thanks for taking the time to answer. The situation is not as simple.

    Below is the excel mock up of the desired functionality:

    In the above module, 'Transfer Out' from one plant becomes the 'Transfer In' of another plant. The formula for 'Transfer In' would be derived from 'Transfer Out' of another plant. The Weighted Average formula is dependent upon 'Transfer In' line item which is in turn dependent upon 'Transfer Out' line item. It appears to be a loop, but actually is not. Because the calculations are happening on different list members. Anaplan returns a circular reference error because line items used are the same, it does not check that the list members are different.

    The end user decides the quantity to be transferred and the material to be transferred in a module which looks like the following:

    The From Plant and To Plant are list formatted line items with Plant list. Material is also a list formatted line item with Material list.

  • CommunityMember131103
    edited July 2023

    Thanks for the explanation @saket22 ,
    Based on your explanation I have built the modules
    Module 1

    Module 2

    Module 3

    two things I need clarification on,

    1. What is the input for th QTY in Module 3?
    2. So the value in Module 3 that is 1283 for the plant 1 should feed the value in Module 1?


  • Hi,

    Do you need time as dimension in your calculations? If you don't need time you could map Transfer 1 to week 1 of calendar Transfer 2 to Week 2 of calendar on so on. Then when you have everything on time dimension you can use previous in your formula. Then when you have done calculations with time dimension you can lookup numbers back to the real dimension you are using.

  • saket22

    @Vamshidhar Reddy Thanks for the mock up of the modules.

    1. The input for Qty in Module 3 will be entered manually for now
    2. The Qty and Rate of Transfer Out from Module 3 would feed the Qty and Rate in Module 1. Lets say 100 units of Material 1 goes from Plant 1 to Plant 2 at the rate of 128.3

    @pyrypeura Thanks for replying.

    Yes, time dimension of Months is also being used.