Certain types of derived attributes, like Calculated Value attributes and Episode attributes, are defined using expressions that may contain other attributes. See for example:
Defining one
Calculated
Value in terms of another
As a very simple example, you can define a Calculated Value attribute ‘Ratio’ in terms of two primary attributes as shown below:
Ratio = Sucrose / Glucose
Now support you define another Calculated Value attribute called ‘Sum’ in terms of Ratio, for example,
Sum = Ratio + 1
As ‘Sum’ depends on ‘Ratio’, you can’t now edit the definition of ‘Ratio’ so that it refers to ‘Sum’, otherwise we would have a circular reference.
Hence to prevent circular dependencies, the system automatically assigns a dependency level to each newly-created derived attribute. It is calculated as one more than the maximum level of any attribute in its definition. When you edit a derived attribute with level say n, you cannot redefine it to refer to another derived attribute of level n or greater.
In the above example, ‘Ratio’ has a level of 1 as it only refers to primary attributes. ‘Sum’ has a dependency level of 2 as it depends on ‘Ratio’.
Note: The dependency level of all derived attributes can be seen in the spreadsheet generated when you export attributes using the Attribute Editor.