Kanban Features (bi-weekly hierarchy)

Bi-weekly hierarchy
Easy deviation calculated members
Easier way to total running sums for easier reporting along side scrum and other teams

1 Like

Thank you for the ideas!

  1. Bi-weekly hierarchy
    I agree this could be a really cool improvement for those who have 2-week iterations. I added this feature request to our development backlog.
    Meanwhile, check the workaround in eazyBI demo account how to build bi-weekly report:

  2. Easy deviation calculated members
    In eazyBI you can use standard deviation function Stdev() for calculations already. The syntax is similar to other aggregate functions:
    Stdev(<set>,<numeric expression>)

  3. An easier way to total running sums alongside scrum and other teams
    I hear you on this! Making the most common functions more accessible to users would improve report creation experience and save some trouble. I added this use case to our development backlog.
    Meanwhile, check a workaround in eazyBI demo account how to calculate running sum using aggregate and Tail() functions:

Zane / support@eazyBI.com

Thanks! showing bi-weekly only using [Time.Weekly].CurrentMember.Key -
Fix([Time.Weekly].CurrentMember.Key / 2) * 2 worked!

Can you explain what the MDX is doing here though so I can understand the solution? what are you dividing by 2 then multiplying?

Starting eazyBI 5.0 version there is an option to add standard calculations to the measures, see https://docs.eazybi.com/eazybi/analyze-and-visualize/create-reports#Createreports-Addstandardcalculationsbasedonaselectedmeasure.

Hi @zane.baranovska,

can You help me to understand syntax of Standard deviation cycle days from your examples on that page

Descendants([Issue].CurrentMember, [Issue].[Issue]),
[Measures].[Issue resolution date],
CASE WHEN [Measures].[Issues resolved] > 0
NonZero(([Measures].[Days in transition status],
[Transition Status.Category].[In Progress],

So by using Filter() and Descendants() I am shrinking range of set of issues ( what means CurrentMember?) which is resolved in specific Time ( CurrentHierarchyMember means for example Weeks), correct?

Could you explain how works this tuple? because it is tuple, right? :slight_smile:

NonZero(([Measures].[Days in transition status],
[Transition Status.Category].[In Progress],

I have made something similar I guess

DateDiffWorkdays(([Measures].[Transition to status first date],
  [Transition Status].[WIP statuses],

([Measures].[Transition to status last date],
  [Transition Status].[Done],

where WIP statuses includes all InProgrss statuses from project.
But the results of this functions are different. ( for first one it is 1,410 and for a second 165)

Maybe my undestanding of stdev is wrong. Could you explain it little more?
In documentation I have found only short enigmatic sentence
Stddev - Alias for Stdev


Hi @rasiak!

Stddev() is indeed described as an alias for Stdev() in eazyBI documentation, but it is followed by definition for Stdev() https://docs.eazybi.com/display/EAZYBI/MDX+Function+Reference#MDXFunctionReference-NumericFunctions :

Returns the sample standard deviation of a numeric expression evaluated over a set, using the unbiased population formula.

The web has many sources where you can read more about the Standard deviation number, e.g., Wikipedia.

Now, I’ll add comments to understand what the function from demo account does (you are correct, these comments should be added in eazyBI demo account example formulas!):

[Measures].[Rolling Average cycle time] + -- Standard deviation will be added to rolling average cycle time
  Filter( -- filter a set to get resolved issues
    Descendants([Issue].CurrentMember, [Issue].[Issue]), -- set of all issues
    DateInPeriod( -- where resolution date is in currently selected time
      [Measures].[Issue resolution date],
      [Time].CurrentHierarchyMember -- CurrentMember returns what the currently selected time member on rows or in pages is. The 'Hierarchy' part helps to avoid specifying which Time dimension hierarchy is used - either default or weekly hierarchy can be used, and this will always find the currently selected member 
    CASE WHEN [Measures].[Issues resolved] > 0 -- besides resolution date being in selected time, we also add a measure greater than zero to make sure all other report contexts are taken into account, e.g., issue type, priority, etc
    THEN -- when the set is filtered we use a tuple to get the number of which we wish to calculate the standard deviation over the filtered set of issues
   NonZero(([Measures].[Days in transition status], -- days spent in transition status; or spent in status in past
    [Transition Status.Category].[In Progress], -- days spent in progress statuses
    [Status.Category].[Done], -- current status is Done, we only wish to see days spent in progress for those that are now done
    [Time].CurrentHierarchy.DefaultMember)) -- to get total days in progress (not only days in progress for issues that transitioned from in progress in the selected period) we use time default member to ignore what is the currently selected time
  ) -- in the end, the standard deviation of days in progress for resolved issues is calculated

The results will be different from your formula and the one above as you are calculating the difference in workdays between first entered in WIP statuses and last exit from Done, which is different than days spent in progress. In progress stops when entering in Done happens not transition from Done. Additionally, the above formula uses Days in transition status while you are looking for Workdays.

Please let me know if you have further questions regarding this!
Lauma / support@eazybi.com

Starting eazyBI 5.3 version, there is an option to add custom weekly hierarchy. You can add custom 2,3, or 4-week cycle hierarchy. Select a date to indicate how to group days per those weeks. This date will set weekday and the first week of a period. The cycle setup will be applied to any periods in the past and the future.

Daina / support@eazybi.com