Perdiction based on story point consumption

I’m trying to get a prediction lines based on estimated story point (or actually using a custom field calcuated story points) consumption over time. And the consumption is also different for different components. I have tried this:

CASE WHEN
DateCompare(Now(), [Time].CurrentHierarchyMember.StartDate) <= 0
THEN
IIF(
([Measures].[Calculated story points remaining], [Time].CurrentHierarchy.Level.CurrentDateMember) -
CASE
WHEN [Component].CurrentMember.Name = “Billing” THEN 2.86
WHEN [Component].CurrentMember.Name = “Policy” THEN 3.14
WHEN [Component].CurrentMember.Name = “Claim” THEN 7.14
WHEN [Component].CurrentMember.Name = “Integration Core” THEN 3.57
ELSE 6
END < 0,
NULL,
([Measures].[Calculated story points remaining], [Time].CurrentHierarchy.Level.CurrentDateMember) -
CASE
WHEN [Component].CurrentMember.Name = “Billing” THEN 2.86
WHEN [Component].CurrentMember.Name = “Policy” THEN 3.14
WHEN [Component].CurrentMember.Name = “Claim” THEN 7.14
WHEN [Component].CurrentMember.Name = “Integration Core” THEN 3.57
ELSE 6
END
)
WHEN
DateInPeriod(‘Today’, [Time].CurrentHierarchyMember)
THEN
NonZero([Measures].[Calculated story points history])
END

But what this seem to do is just to do one iteration deducting the value 6 from all components once and then having the same value for the rest of the time dimension.


How to make this work so that it iterates over the time and actually takes the different values for different components into account?

And just to add that we are not looking for resolved / Done issues here but this is actually counting the sum of calculated story points of issues that are in specific statuses. So the predition is not a prediction of done, but a prediction of when the isuses have reached a certain point in their lifecycle.

Managed to get this working. For others benefit as well, here is how:

I created another measure to use as a “variable” as it was a bit complex:

Burn down from today:

([Measures].[Calculated story points remaining],[Time].CurrentHierarchy.Level.CurrentDateMember) -
DateDiffDays(
Now(),
[Time].CurrentHierarchyMember.StartDate
) *
CASE
WHEN[Component].CurrentHierarchyMember.Name = “Billing” THEN 2.9
WHEN[Component].CurrentHierarchyMember.Name = “Policy” THEN 3.1
WHEN[Component].CurrentHierarchyMember.Name = “Claim” THEN 7.1
WHEN[Component].CurrentHierarchyMember.Name = “Integration Core” THEN 3.6
ELSE
3 – Default daily burn down rate
END

And then the Burn down line itself:

CASE WHEN – check if in timeline we are in the future
DateCompare(now(), [Time].CurrentHierarchyMember.StartDate) <= 0
THEN – if we are in the future, then we check if there still is some story points left
IIF([Measures].[Burn down from today] > 0, --if there are story points left, then we use them
[Measures].[Burn down from today],
IIF([Measures].[Burn down from today] < -196, NULL,0) – if we are below zero then we compare how far below zero we are and if we are far enough (report is on two week’s custom hierarchy), we give null so that the timeline does not continue forever. We hare hiding empty rows in the report.
)

WHEN – if we are on the same day as today, then we show the current amount of calculated story points remaining, this is needed to ensure that the actual and prediciton lines meet
DateInPeriod(‘Today’, [Time].CurrentHierarchyMember)
THEN
NonZero([Measures].[Calculated story points history])
END

1 Like