How to calculate time for Status Change to the same Status?

We have some kind of “Micro-Workflow” where status is changed from IMPLEMENTATION to IMPLEMENTATION with a input form where the name of the person that has to do the review must be entered. So state is the same, but an additional attribute is set.

Only after that (additional attribute set) the ticket can be move to DONE (review comment must be entered on this transition)

We need to know either

  1. how long it takes from initial state IMPLEMENTATION to final state done DONE
    or
  2. how long it takes from first time IMPLEMENTATION to second time IMPLEMENTATION and time from second time IMPLEMENTATION to DONE

Currently we only get the time from second time IMPLEMENTATION to DONE, this is the review time, but we also need the implementation time (IMPLEMENTATION → IMPLEMENTATION)

How can this be done?

Thanks for help, Max

Hi @maxweissboeck
I think the simplest solution would be to make 2 different status, maybe Implementation1 and Implementation2. This way, you would actually have a status transition and transition between status would be easier to calculate.

If this isn’t possible, I think you would need to make your name input into a dimension so you can get the transition time between input changes.

Depending on how your input is setup, I don’t know that it would be easily feasable to add it as a dimension. Maybe some Javascript would be needed.
I’ve contacted EazyBi customer service in the past for javascript needs and they were always the most helpful CS I’ve contacted!

I hope this at least gives you some paths to explore.
Have a good day,
Marilou

Hello @maxweissboeck ,
You can use the Transition dimension in your calculation to calculate the days between two specific transitions, you can either reference the first or last transition dates like this:

Sum(
  Filter(
    -- Get all issues from the current selection
    DescendantsSet([Issue].CurrentHierarchyMember, [Issue].[Issue]),
    -- Filter issues where "In Progress => In Progress" transition 
    -- occurred within the current time period
    DateInPeriod(
      ([Measures].[Transition to status first date],
      [Transition].[In Progress => In Progress],
      [Time].CurrentHierarchy.DefaultMember),
      [Time].CurrentHierarchyMember
    )
  ),
  -- For each filtered issue, calculate the difference in days between:
  -- 1. The first date when issue transitioned from "To Do" to "In Progress"
  -- 2. The first date when issue had an "In Progress => In Progress" transition
  DateDiffDays(
    ([Measures].[Transition to status first date],
    [Transition].[To Do => In Progress],
    [Time].CurrentHierarchy.DefaultMember),
    ([Measures].[Transition to status first date],
    [Transition].[In Progress => In Progress],
    [Time].CurrentHierarchy.DefaultMember)
  )
)

Or you can write a JavaScript custom field that would iterate through issues history and check particular transitions.

best,
Gerda // support@eazybi.com