# How to make my BeastMode dynamic

Options
Member

Hello DOMO Dojo -

I have a beast mode that deals with dates, I am wondering if there is a way to make the date dynamic

Here's my formula>>>>

(case

when (`TC: Created Date` >= '10/1/2025'and`TC: Created Date` < '1/1/2026') and (`TC: End Date`>= '7/1/2025'and`TC: End Date`<= '9/30/2025') then 'Q4 2025'

when (`TC: Created Date` >= '7/1/2025'and`TC: Created Date` < '10/1/2025') and (`TC: End Date`>= '4/1/2025'and`TC: End Date`<= '6/30/2025') then 'Q3 2025'

when (`TC: Created Date` >= '4/1/2025'and`TC: Created Date` < '7/1/2025') and (`TC: End Date`>= '1/1/2025'and`TC: End Date`<= '3/31/2025') then 'Q2 2025'

when (`TC: Created Date` >= '1/1/2025'and`TC: Created Date` < '4/1/2025') and (`TC: End Date`>= '10/1/2024'and`TC: End Date`<= '12/31/2024') then 'Q1 2025'

when (`TC: Created Date` >= '10/1/2024'and`TC: Created Date` < '1/1/2025') and (`TC: End Date`>= '7/1/2024'and`TC: End Date`<= '9/30/2024') then 'Q4 2024'

when (`TC: Created Date` >= '7/1/2024'and`TC: Created Date` < '10/1/2024') and (`TC: End Date`>= '4/1/2024'and`TC: End Date`<= '6/30/2024') then 'Q3 2024'

when (`TC: Created Date` >= '4/1/2024'and`TC: Created Date` < '7/1/2024') and (`TC: End Date`>= '1/1/2024'and`TC: End Date`<= '3/31/2024') then 'Q2 2024'

when (`TC: Created Date` >= '1/1/2024'and`TC: Created Date` < '4/1/2024') and (`TC: End Date`>= '10/1/2023'and`TC: End Date`<= '12/31/2023') then 'Q1 2024'

when (`TC: Created Date` >= '10/1/2023'and`TC: Created Date` < '1/1/2024') and (`TC: End Date`>= '7/1/2023'and`TC: End Date`<= '9/30/2023') then 'Q4 2023'

when (`TC: Created Date` >= '7/1/2023'and`TC: Created Date` < '10/1/2023') and (`TC: End Date`>= '4/1/2023'and`TC: End Date`<= '6/30/2023') then 'Q3 2023'

when (`TC: Created Date` >= '4/1/2023'and`TC: Created Date` < '7/1/2023') and (`TC: End Date`>= '1/1/2023'and`TC: End Date`<= '3/31/2023') then 'Q2 2023'

when (`TC: Created Date` >= '1/1/2023'and`TC: Created Date` < '4/1/2023') and (`TC: End Date`>= '10/1/2022'and`TC: End Date`<= '12/31/2022') then 'Q1 2023'

when (`TC: Created Date` >= '10/1/2022'and`TC: Created Date` < '1/1/2023') and (`TC: End Date`>= '7/1/2022'and`TC: End Date`<= '9/30/2022') then 'Q4 2022'

when (`TC: Created Date` >= '7/1/2022'and`TC: Created Date` < '10/1/2022') and (`TC: End Date`>= '4/1/2022'and`TC: End Date`<= '6/30/2022') then 'Q3 2022'

when (`TC: Created Date` >= '4/1/2022'and`TC: Created Date` < '7/1/2022') and (`TC: End Date`>= '1/1/2022'and`TC: End Date`<= '3/31/2022') then 'Q2 2022'

when (`TC: Created Date` >= '1/1/2022'and`TC: Created Date` < '4/1/2022') and (`TC: End Date`>= '10/1/2021'and`TC: End Date`<= '12/31/2021') then 'Q1 2022'

when (`TC: Created Date` >= '10/1/2021'and`TC: Created Date` < '1/1/2022') and (`TC: End Date`>= '7/1/2021'and`TC: End Date`<= '9/30/2021') then 'Q4 2021'

when (`TC: Created Date` >= '7/1/2021'and`TC: Created Date` < '10/1/2021') and (`TC: End Date`>= '4/1/2021'and`TC: End Date`<= '6/30/2021') then 'Q3 2021'

when (`TC: Created Date` >= '4/1/2021'and`TC: Created Date` < '7/1/2021') and (`TC: End Date`>= '1/1/2021'and`TC: End Date`<= '3/31/2021') then 'Q2 2021'

when (`TC: Created Date` >= '1/1/2021'and`TC: Created Date` < '4/1/2021') and (`TC: End Date`>= '10/1/2020'and`TC: End Date`<= '12/31/2020') then 'Q1 2021'

when (`TC: Created Date` >= '10/1/2020'and`TC: Created Date` < '1/1/2021') and (`TC: End Date`>= '7/1/2020'and`TC: End Date`<= '9/30/2020') then 'Q4 2020'

when (`TC: Created Date` >= '7/1/2020'and`TC: Created Date` < '10/1/2020') and (`TC: End Date`>= '4/1/2020'and`TC: End Date`<= '6/30/2020') then 'Q3 2020'

when (`TC: Created Date` >= '4/1/2020'and`TC: Created Date` < '7/1/2020') and (`TC: End Date`>= '1/1/2020'and`TC: End Date`<= '3/31/2020') then 'Q2 2020'

when (`TC: Created Date` >= '1/1/2020'and`TC: Created Date` < '4/1/2020') and (`TC: End Date`>= '10/1/2019'and`TC: End Date`<= '12/31/2019') then 'Q1 2020'

when (`TC: Created Date` >= '10/1/2019'and`TC: Created Date` < '1/1/2020') and (`TC: End Date`>= '7/1/2019'and`TC: End Date`<= '9/30/2019') then 'Q4 2019'

when (`TC: Created Date` >= '7/1/2019'and`TC: Created Date` < '10/1/2019') and (`TC: End Date`>= '4/1/2019'and`TC: End Date`<= '6/30/2019') then 'Q3 2019'

else 0

end)

Thank you to anyone who can help!

Tagged:

• Coach
Options

You can use the QUARTER function and the YEAR function eliminate all of your case statement. You could do this:

```CONCAT('Q',QUARTER(`dt`),' ',YEAR(`dt`))
```

**Check out my Domo Tips & Tricks Videos

**Make sure to any users posts that helped you.
• Member
Options

Thank you for this.

but I dont know how it can capture what needs to be captured before it can determine that it is for that quarter.

for example to be determined as "Q3 2019"

it needs to be between `TC: Created Date` >= '7/1/2019' and `TC: Created Date` < '10/1/2019'

and between `TC: End Date`>= '4/1/2019' and `TC: End Date`<= '6/30/2019'

• Coach
Options

Replace my dt field (which was my sample field from my dataset with your actual field name, which looks like it is TC Created Date. Your dates for your quarters follow the built-in logic for the quarter function, which is how it will correctly determine Q1, Q2, Q3, Q4. The Year function will extract the year from your TC Created Date field and the CONCAT function will piece it all together.

Try replacing the dt field with your field and give it a try.

**Check out my Domo Tips & Tricks Videos

**Make sure to any users posts that helped you.
• Member
Options

so, I tried the beastmode you gave and this is the result>>>

I think it is just labeling it.

where as with the beastmode I am currently using, I use it to filter and this is what I only get

so for Q4 2022, those 8 were counted for that because

the `TC: Created Date` is greater than equal to '10/1/2022' and less than '1/1/2023'

and the `TC: End Date` greater than or equal to '7/1/2022' and `TC: End Date` less than or qual to '9/30/2022'

• Domo Product Manager
Options

@WorldWarHulk have you thought about creating a separate dataset with your date logic and then joining that back to the main table in a view. That is usually how I might approach it. I can provide an example if helpful.

• Domo Product Manager
Options

@WorldWarHulk it would depend on your data. but I bet you can link back to the original data.

• Coach
Options

My bad. I missed that you are looking at 2 different dates to determine the quarter. It will involve a case statement, it can still be dynamic. This should work for you:

```CASE
/*check to see if the end date is in the previous quarter of the same year */
WHEN QUARTER(`TC: Created Date`) - QUARTER(`TC: End Date`) = 1 AND YEAR(`TC: Created Date`) = YEAR(`TC: End Date`)
﻿THEN CONCAT('Q',QUARTER(`TC: Created Date`),' ',YEAR(`TC: Created Date`))
/* 1st quater to 4th quarter check */
WHEN QUARTER(`TC: Created Date`) - QUARTER(`TC: End Date`) = -3 AND YEAR(`TC: Created Date`)-1 = YEAR(`TC: End Date`)
﻿THEN CONCAT('Q',QUARTER(`TC: Created Date`),' ',YEAR(`TC: Created Date`))
ELSE 0
END
```

The first when handles when the created date is in quarters 2, 3, and 4. The 2nd when statement handles when the created date is in 1st quarter and the end date will be in the 4th quarter of the previous year.

If it doesn't match on either of those then it returns 0.

**Check out my Domo Tips & Tricks Videos

**Make sure to any users posts that helped you.