Beast mode calculation for aggregating data



I have a numeric field called "days until due" which contains negative numbers for outstanding items from -1 to -100. I am trying to group these using a beast mode calc. but keep getting syntax errors. For example, when "days until due" is from -1 to -9 days I want it to be grouped as "1-9 days", -10 to -19 days would be "10 to 19 days". The idea is to group these and sum the value for the range and chart it.

Can anyone please suggest a beast mode calc. that works?



Best Answer


  • GrantSmith
    GrantSmith Coach
    edited October 2021

    Hi @Lashes

    You can use some simple math to convert your negative number to a positive one and some trickery with the FLOOR and CEILING functions to get bands of 10.

    CASE WHEN `days until due` * -1 > 60 THEN
      '60+ days'
    CASE WHEN `days until due` >= 60 THEN
      '-60+ days'
      CONCAT(FLOOR(`days until due` / -10) * 10, '-', (FLOOR(`days until due` / -10) * 10 + 9), ' days')

    To explain a bit further:

    `days until due` / -10

    Calculates a 10s bucket and inverses your negative number to a positive number

    FLOOR(`days until due` / -10)

    FLOOR returns a decimal without the decimal places (1.9 -> 1)

    We then multiply it by 10 to convert back to 10s, this will give us the lower end of the bucket.

    We do the same thing for the higher end of the bucket but also add 9 to it so it'll end up being 19 instead of 10 for example.

    I just chose a lower threshold of -60. If you have positives you'll need to put another condition right after the first one to bucket those - just don't multiply by -1.

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