Is there a way to nest beast modes in another beast mode without exposing the full calculation


Looking for any advice suggestions on the following.

First, I wanted to ask, if I make a change to a saved beast mode, and another calculation is using that beast mode will that calculation automatically update?


I would like to nest multiple beast modes in a calculation and use a case statement to select which beast mode I want to use for a specific set of data. I have about 20 of these beast modes, so my calculation is getting VERY VERY long. In Tableau and other tools, the beast mode would simply show as a field name and would not expand out. Is there any way to do this. I cannot do the beast mode in the data flow as I need the calculations to be dynamic and to adjust to whatever filters the user uses.


Beast Mode 1 - CTR:

case when (sum(`Clicks`) / sum(`Impressions`)) < x then 0

 when (sum(`Clicks`) / sum(`Impressions`)) < y then 1

 when (sum(`Clicks`) / sum(`Impressions`)) < z then 2

 else 3 end

Beast mode 2 - Video View Rate:

case when (sum(`Video Views`) / sum(`Impressions`)) < x then 0

 when (sum(`Video Views`) / sum(`Impressions`)) < y then 1

 when (sum(`Video Views`) / sum(`Impressions`)) < z then 2

 else 3 end

I would love to just be able to use a beast mode that has just the field names:

case when objective = clicks then 'Beast Mode 1' else 'Beast Mode 2' end

But instead i see all of the calculations.


  • MarkSnodgrass

    Unfortunately, the beast modes will expand out when you include them in another beast mode. I agree that it would be really helpful if they did not do this, as it would make the code a lot cleaner and more efficient.

    I'm not sure if it has been submitted in the Ideas Exchange section of the Dojo, but I will definitely vote it up if you posted it there.

    **Check out my Domo Tips & Tricks Videos

    **Make sure to <3 any users posts that helped you.
    **Please mark as accepted the ones who solved your issue.
  • GrantSmith

    Hi @JustinB

    You could abstract the core calculations in a dataset view and then use that as a field in your beast mode. It's not ideal and abstracts the logic to multiple places. I've been requesting beast modes behave like actual variables for a while now instead of inserting the entire formula.

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • JustinB

    @GrantSmith Not sure that will work as the calculation will be at the level set in the view rather than dynamic and changing based on the chart/filter selections

  • jaeW_at_Onyx

    @MarkSnodgrass is correct there is no referential way to refer to pre-defined beast modes.

    @JustinB you generally should not nest aggregations inside a CASE statement.

    case when (sum(`Clicks`) / sum(`Impressions`)) < x then 0
     when (sum(`Clicks`) / sum(`Impressions`)) < y then 1
     when (sum(`Clicks`) / sum(`Impressions`)) < z then 2
     else 3 end

    Unless people think this through really carefully, it usually yields unexpected results. For that reason, Grant's recommendation to embed the math inside a DSV is a strong recommendation; however as you point out, then the data stops responding to filters b/c the DSV is rigid and doesn't give access to the underlying data to filter.

    It's kind of a rock and a hard place. And arguably the weakest feature of Domo's Analyzer engine.

    Jae Wilson
    Check out my 🎥 Domo Training YouTube Channel 👨‍💻

    **Say "Thanks" by clicking the ❤️ in the post that helped you.
    **Please mark the post that solves your problem by clicking on "Accept as Solution"
  • Ramon_Romero

    I used to work with another application, and in this application it was possible to nest calculations, the problem is that depending on the levels that you will nest, the tool had to recalculate all the information, which had a negative impact on performance, I think this is the reason of which it is not possible in DOME to nest calculations.

    I dont think this will became an option