Epic rolled up data


We use Agile in our organisation. And one of the metrics that our PMs are interested in is to track the epic progress in units of time spent, time remaining and original estimate of all the stories underneath the epic.

filter results obtained by adding the metric Sigma(Time spent) and Sigma(Remaining time) is what I need but this only rolls up data for sub-tasks. Not for issue underneath the Epic.

In short, say I have two stories in my epic (story-1, 2 hrs remaining, and story-2, 4 hours remainaing) , i want to see 6 hours under the Sigma( remaining time) when I query my epic name)

Any idea how i can achieve this.


3 answers

This widget could not be displayed.
Steven Behnke Community Champion Jun 05, 2015

I've been looking into this for a while and I just found an add-on that does it as well, and looks customizable to boot.


Or a simpler free one.


Thanks a lot. It helped me.

This widget could not be displayed.

Hi Rahul,

We have a similar requirement, but I wanted to clarify if you meant you need this information exposed within searches or just for viewing. Currently we use both approaches but they require independant solutions.

For just viewing the relevant data on an Epic when you view it, we ended up creating a custom add-in that displays extra information with the information you ask on the Epic screen. For actually searching, we created some custom Groovy (Script Runner) fields that roll-up the same information and expose it so that it's available in the JIRA Queries.

I can ping you back with more details, but let me know if either of the two scenarios we have match yours. (The Costs are just blanked out for the screenshot)



Hello Saleem

I have the exact same question as Rahul, and I guess what we want here is the ability to see the aggregation on the Epic screen but also on any search. So I guess you have this Subtasks Estimate column in each search result. Could you share with us your customizations? I am using JIRA ON DEMAND.

Thanks in advance;

Hi Paul,

Yes, sure, I can send you some more info early next week. I am not super familiar with JIRA On Demand, but I think it has the ability to run the Groovy Script Runner plugin. If you can confirm that, then it's just a matter of setting up the field definitions.

Chat next week!


Hello Saleem,

You reference sub tasks in the example provided. Does this aslo include issues in an epic?

Hi Roger, sorry about the delay in getting back to you. Yes, this can include sub-tasks within the Epic itself. We don't allow sub-tasks on Epics as part of our setup, so the screenshot above does not show any, but the code snippet still will work.

HI Saleem

Sorry in replying late to you, yes both these scenarios apply to us and I will be very much interested in the solutions that you have adopted. Can you please send me more information either on this post or directly s rahul.aich@nagra.com

Hi Saleem, We also need to be able to aggregate estimated time and spent time at epic level (in views and in searches, particularly in searches). Unless a new and easier solution has been made since March (pls. let me know if that is the case), we are ready to install the Groovy Script Runner, if you are willing to post your field definitions here. Thanks /Lasse

Hi Saleem, I need the epic level time spent just for viewing. Can you please elaborate on the custom add-in? I can add a custom field to epic level. But, not sure how to make issue level estimates/time-spent to Epic level. Thanks Ram

This widget could not be displayed.

Hi guys, apologies on the really late answer. Please find the Groovy Field definition for the bits required to enable a custom field that will display the total estimate time for an epic's sub-issues/sub tasks. They have to be linked to the Epic via the Epic-Story link field.

Change the .originalEstimate appropriately to reflect either remaining time or actual time.

Hit me back if you have any further questions. The add-on method uses basically the same query but packaged up nicely in a panel etc with the breakdown.



import com.atlassian.jira.ComponentManager

def componentManager = ComponentManager.getInstance()
def issueLinkManager = componentManager.getIssueLinkManager()

def totalTimeForSubtasksEstimated = 0
outLink ->
def firstLevelChildIssue = outLink.destinationObject

   if (outLink.getIssueLinkType().getName().equals("Epic-Story Link"))
// Process normal Epics-Story/Bug-Subtask structure
outLinkSubtask ->
def secondLevelChildIssue = outLinkSubtask.destinationObject
    if (secondLevelChildIssue.isSubTask())
totalTimeForSubtasksEstimated += secondLevelChildIssue.originalEstimate ?: 0
return (totalTimeForSubtasksEstimated ? componentManager.getJiraDurationUtils().getFormattedDuration(totalTimeForSubtasksEstimated) : null)

Suggest an answer

Log in or Sign up to answer
Community showcase
Published Apr 22, 2018 in Jira Software

How-to setup a secured Jira Software 7.9.0 on Ubuntu 16.04.4 in less than 30 minutes

...PermissionsStartOnly=true User=www-data Group=www-data ExecStart=/opt/jira/bin/startup.sh ExecStop=/opt/jira/bin/shutdown.sh TimeoutStartSec=120 TimeoutStopSec=600 PrivateTmp=true [Install] WantedBy...

1,488 views 10 12
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you