User based calculations


Hello - 

I have a question which ultimately is related to using the users list in module design.  Was hoping someone could confirm my theory, or even better, provide a more efficient way to set this up.  Here are the details on what I'm dealing with:


We have a module setup for budget vs. actual analysis, in which the module is dimensionalized using a list which has 3 items:

1) version 1

2) version 2

3) variance


Our model does not use native versions, but rather we have a "versions list" list that we use to house the versions.  So, the logic is such that the user can select which of the items in "versions list" is represented in #1 and #2 above, and #3 will show the resulting difference between those 2 versions.  This generally works, except that we're seeing that users are often overriding each others selections of which version is represented in #1 and #2.  This can cause some frustration.  So, we were considering using user-specific version selectors.  Is there any way to do this other than dimensionalizing the entire module to also include the users list?  I understand that the selection itself of which version is shown in #1 must be dimensionalized by user, however I just want to make sure that we need to add significant size to our calculation module to accommodate this.  


Please let me know your thoughts.


Thank you,



  • @jbrass 


    Unfortunately you are not able to to build such calculation module without increasing the size, but you can workaround applying users as a dimension to this calculation module. 


    The first question I would ask is: do you have more users than combination of inputs they can have? (ex: actuals vs budget, being one unique combination) - you may have 10 different users with this selection, you don't want Anaplan to calculate same thing for every single one of them, but you want to have one calculation being done to: Actuals vs budget. 


    1. Create a list with all possible combinations (if you do not have many versions, you will be keeping this one short). 

    2. Use this list as the new selector for the users.

    3. Pre-calculate all variations in your calculation module. Do you want to also see version 1 and version 2? or just variance? variance only would keep your module size under control. 

    4. create a filter module that will help you filter the dashboard based on user selection. So users will only see their comparison version. 

  • jbrass

    Makes sense.  Thank you.  As often is the case, this becomes a trade-off between model size and complexity.  The method you mentioned would increase complexity, especially given the way that our formulas are already a bit long given the structure of the module.  It is a viable method in the event that the output module just becomes too large once opening it up with the users dimension as well.


    Appreciate the response; definitely got me thinking.




  • @jbrass 


    I believe @Alexandru.Rosca is absolutely correct with the user list piece, but a couple of things to think about:

    • how many users will be using this functionality?  If all, then Users...If not, consider a "Custom" Users list which is essentially a copy of the Users list, but now you can subset it to only the users needing this.
    • Not sure I would use the versions as a page selector, but more of a line item where the users can choose.  This "input" module would need to be dimensionalized by users or the subset.  But essentially, it would be Version 1 and Version 2.
    • In the reporting module, figure out the dimensionality
      • How many metrics?  Is it a list or a LISS (line item subset)?  Do you have a Calc module where the version data is coming from?
      • Sadly, this module (the reporting module) will have to be dimensionalized by Users or the users subset.
      • Version1 and Version 2 would be line items along with the Variance.
      • Basically, your formulas for Version 1 and Version 2 would be getting the data for the "row axis" by doing a lookup to the calc module based on line items Version 1 and Version 2 in the selection or input module.  Variance is just simple math.

    Also, there is a document on how to do this with Native Versions, but you can skip the first couple of sections....




    Let me know if this helps...