Different formula for different selected version


Hi, I have 5 different versions in my model, Actual, High, Low, Mid, Budget Q and Budget FY.

I need to apply a lag a figure one month to the first 4 versions and for version Budget FY, I need to take the months value not the lag.

I have configured a custom versions module as well as attempted a boolean approach but am yet to get the desired result. Is there a way of selecting the following:

"If this version then this else do something else"




  • luke_e
    edited January 2023

    What are the dimensions of your versions module and your calculation module?

    I'm assuming you're using native versions and your custom versions module is just by native version and a single line for the boolean?

    We apply a similar concept in one of our models.

  • I have a version control module that I use in the if statement. I then applied the applies to version formula in the blueprint mode, but when I change that to applies to all version but actual then the formula breaks.

    Is there a work around for this?

  • @DavidFisher101

    Try creating a CALC module that has all of the versions as line items. Then you can set these as a Line Item Subset (LISS). In the same module, create a subsidiary view (line item name will be Collect Data) with the same dimensions as the calc module, but also add the LISS, the formula should be Collect() and make sure you turn the summaries off.

    In your control module, which I assume is a SYS Module for your versions, create a line item for the mapping to the LISS. Now, in your reporting module, you can do a sum on the mappinng: Calc Module.Collect[SUM:SYS Versions.Mapping]

    Hope this helps.


  • Depending on how many different calculation scenarios you have, the LISS solution from Rob might be easier.

    It sounds like you have (2) scenarios, so either method should still work. Also, it's hard to tell from your explanation, but I would not be using 'Add Version Formula' function which appears under the 'Edit' menu in blueprint mode.

    Assuming you stick with your current approach, your formula scope should still be set to 'All Versions'. I would expect your logic should look something like,

    IF Settings Module.Use Custom Rule

    THEN <Custom Rule>

    ELSE <Default Rule>

    There really shouldn't be much else to it beyond maybe optimising the calculation for the most frequent loop (e.g. is the custom rule applicable to more or less versions).

    If you're sourcing actuals as well, it's just another loop to say 'IF Time Calculations Module.Actuals Period THEN ... ELSE ...