Hello,
I’m using eazyBI to analyze Jira data and I would like to know if there is a way to identify the number of scope changes in specific events in a Sprint. We currently do this search manually using Jira reporting standards, for example image:

I have already explored several options on eazyBI without success:
Sum(
DescendantsSet([Sprint].CurrentMember, [Sprint].[Sprint]),
IIF([Measures].[Sprint Story Points change] <> 0,
1,
0)
)
Could you guide me or provide some help for this case?
Thank you in advance for your help.
2 Likes
Hi @emersonsoaresdasilva,
You can analyze the changes in issue fields. For numeric fields, eazyBI offers historical measures, like Story Point changes, that show changes in total values. However, independent change events are not imported.
Consider adding a new calculated field in the eazyBI import option to see how many changes were made to the specific field on each date and import it as a new measure. More details on JavaScript calculated custom fields are here: Account specific calculated fields.
The solution to see changes in “Story Points” field might be like this:
-
Add new JavaScript calcuted field “Story Points change count” to count all issue history events when “Story Points” field was updated. And map the change to the date in Time dimension.
- Select data type Integer.
- Chose to import the new field as Measure
- in the “Additional advanced settings” enter parameter:
multiple_dimensions = ["Time"]
- In “Custom JavaScript code” field enter the code that woudl iterate through issue change history and look for changes in the estimate field. The code might look like below; in the line 10, update the customfield_NNNNN with the custom field ID for the estimate field in your Jira.
//check if issue has change history
if (issue.changelog && issue.changelog.histories) {
//initialize an array to store change events
var changedate = null;
var changes = [];
//iterate thoguh change history
issue.changelog.histories.forEach(function(history){
history.items.forEach(function(historyItem){
//look for changes in estimate field where NNNNN is field ID
if (historyItem.fieldId == "customfield_NNNNN") {
//if there is change collect the change date and increase change counter by 1
changedate = history.created;
changes.push(changedate.substr(0,10)+","+1);
}
})
});
//print out results (array)
if (changes) {
//get the array of change dates and change counter
return changes.join("\n");
}
}
The new field configuration might look like in the picture below.
-
Import the new calcauted field “Story Points change count” as measures and property.
By default, the new measure would show changes in Story Point field for the Sprint which is currently associated with issue
-
In the report, define a new calculated measure to address only those changes that happened with issues committed to the sprint and between sprint start and end dates. The expression for “Story Point changes during Sprint” might look like this:
Sum(
--set of issues that were in selected sprint
Filter(
Descendants([Issue].CurrentMember,[Issue].[Issue]),
([Measures].[Sprint issues added]+
[Measures].[Sprint issues committed]) > 0
),
--for each issue get changes made during the selected spritn
Sum(
[Time].[Day].DateMembersBetween(
CASE WHEN --check the hour when sprint started
Cast(
Format([Sprint].CurrentHierarchyMember.GetDate('Activated date'),"hh")
AS INTEGER) < 12
THEN --for sprints that started in the first part of day (during night)
DateWithoutTime([Sprint].CurrentHierarchyMember.get('Activated date'))
ELSE --for sprints that started in the second part of day
[Sprint].CurrentHierarchyMember.Get('Activated date')
END,
--completion date for closed sprints and planned end date for active sprints
CoalesceEmpty([Sprint].CurrentHierarchyMember.Get('Complete date'),
[Sprint].CurrentHierarchyMember.Get('End date'))
),
--sum up changes regardless of issue current sprint
([Measures].[Story Points change count],
[Sprint].CurrentHierarchy.DefaultMember)
)
)
The report might look like this:
Best,
Zane / support@eazyBI.com
2 Likes
Hi @zane.baranovska,
Thank you for your help. Your solution and support were extremely helpful. 

Best regards,
Emerson Soares
1 Like