Adding business days to a date via MagicETL

Options

Hi, I'm currently calculating a deadline using a dynamic formula in MagicETL. It looks like this:

CASE WHEN `issue` = 'bug' THEN (
  CASE
     WHEN `priority` = 1 THEN ADDDATE(`CreationDate`, INTERVAL 4 DAY)
  END
)

The calculation works great, but I was wondering what would be the best way to update it to 4 business days, rather than calendar days (as interval uses)? I was reading the documentation here https://domohelp.domo.com/hc/en-us/articles/360043428153-Date-Difference-for-Business-Days but it only covers calculating business days between two dates, rather than adding business days to a date.

I also looked at the available date operations available in MagicETL and see that there is a "Add To Date" option but unfortunately "Business Days" is not a unit of measurements - which would be really useful.

Any ideas on how the above case statement could be modified to use business days instead? Thanks!

Answers

  • GrantSmith
    Options

    Hi @adamxor

    I just gave a presentation at Domopalooza on beast modes and I discussed this scenario. There's even a write-up here on the Dojo that I did as well: https://dojo.domo.com/discussion/54551/dp22-using-beast-mode-to-build-data-storytelling-adding-business-days

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

    You can find my talk on this and other beast modes on demand here: https://domopalooza2022.brandlive.com/home/en/session/4e03890e-9651-11ec-b383-5b1ed051e2ca

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

    Hey @Grant perfect timing! I applied your formula into my calculation, substituting 4 instead of Estimated Deliver Days and CreationDate instead of Ship Time . I also used DATE(CreationDate) since my raw data is a timestamp.

    This seems to work great i.e. for an input of DATE(2022-02-17T14:03:48Z) I get an output of 2022-02-23T00:00:00Z. Given that 17th February is a Thursday, the output should land Wednesday the 23rd, and it does. Another input is DATE(2021-11-08T16:44:43Z), which is a Monday so the output should be Friday the 12th, and it is - 2021-11-12T00:00:00Z. Thanks a lot!