It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

How to track amount of time spent in status


My company is running Jira Cloud and we are trying to improve our reporting and metrics.

We are trying to determine:

1. How long each ticket has spent in each particular status 

2. Amount of times a ticket was sent to a particular status. (Not just the tickets currently in a particular status, but if a ticket has ever been in a certain status)

Essentially, we are hoping to understand how long a ticket is spending in Pull Request and also (separately) how many times a ticket has been reopened (per epic, per assignee, etc).

Is there a plugin or a report/query I haven't tried that can help with this?

Any help would be greatly appreciated. Thanks!

16 answers

I think it is ridiculous that such a simple item isn't available out of the box

It really is. Developers ask me for this all the time, and every time, I can't believe how difficult it is to accomplish something that should be so simple.

Like # people like this

Hi Dana,

There is an add-on by OBSS called Time in Status that may be of assistance and you can create reports based on issue creation date. In addition you may also want to try the Jira Suite Utilities in conjunction with the Average Time in Status gadget

In addition there is another communities post that provides some hints other users have found when using the Average Time in Status gadget.

Let me know if that helps.



Hi Branden,

Link to "JIRA Suites Utilities" is broken.


Hello @Dana Gould

I am happy to inform you that the original Time in Status app by OBSS now has cloud support:

  • Our app creates reports on how much time each issue spent on each status, assignee or user group.
  • Number of time each status or transition was used.
  • View durations in days, hours, minutes, etc.
  • Include issue fields in your report.
  • Export data as CSV, XLS or XLSX.
  • Calculate time or count averages, grouped by multi level issue fields that you select.
  • Define your own business calendars.

We now have Server, Data Center and Cloud options.

Like # people like this


Thanks for your reply! While helpful in a way, the information I really gleamed from this is that there is currently no solution for Jira Cloud.

Both Time in Status and Jira Suites Utilities appear to be Jira Server only solutions. While Jira Charting plugin does come free and pre-installed on Jira Cloud, the documentation points out in step three that "(Optional) Install JIRA Suite Utilities Plugin, so that you can monitor each issue time in a status." I will continue to play with the Average Time in Status plugin, however I fear that it won't satisfy the particular needs of my organization and asks from leadership. 

Hope you have a great weekend,



@Dana GouldHi Dana, Hope you are doing great, I was looking for this same need and couldn't find any other solution.  Wanted to check with you if you were able to capture Time Spent in each Status in some way for Cloud Version.




I am looking for the same solution @Dana Gould. It would be great to hear about your progress with this.

Kind Regards


Hello @Dana Gould 

Time in Status for Jira Cloud by SaaSJet can improve your reporting and metric.

This plugin automatically brings information that you need:

1. The time in status for each phase in a workflow

2. A number of times an issue has been in each status and went from status to status.

Also, this app generates other reports: average time in status, assignee time to each issue, time in status per date and status entrance date.

Moreover, there are features that allow you to export data and view all reports as charts.

You can get more information and download the add-on at the Atlassian Marketplace.

Like Rohini Prasad likes this

This plugin ultimately did the trick for me.  This should be built-in to JIRA.

Like # people like this

I'd like to try it but will never pay 2.50€ per User for that. The pricing for Add ons is ridiculous, especially for a BASIC function like this.

Like # people like this

can you view the data in graphs on the dashboard from Time in Status?

I'd also like to know the answer to this... if JQL can be pulled from Time in Status to make filters to feed dashboard gadgets like Resolution Time. 

So the data that I was dealing with was on a kanban board, so my partner and I just ended up making an iframe and sticking the control chart for that board on a dashboard. It's probably not the best solution, but it gave the reporter a way to break down cycle time from status to status, see the outliers, pull in filters, etc. Not sure if that's helpful. Good luck!

Like Jamie McCarogher likes this

Hi@David Loszewski

The add-on Time in Status for Jira Cloud by SaaSJet has been updated recently. Now you can also view all reports as charts (Pie, Bar and Area Charts)

In addition, there are new reports:

- Assignee Time

- Average Time

- Status Entrance Date

- Time in Status per Date

You can check the full information about the new features at Atlassian Marketplace.

Hi @Dana Gould! I'm in desperate need of exactly this. Did you finally find a solution? If yes - please share!    

@Dana Gould and @Jones Please let me know as well. Thanks.

Hello! I actually moved companies which is why I unintentionally forsaken this thread. At my new company, we are still looking at ways to measure this information. We looked at the Time in Status plugin by OBSS, but so far find that it runs on a 24 hour clock and hasn't been that useful or helpful. 

What we have been moving more and more towards is Jira Service Desk and using the Cycle and Lead Times along with the SLA other other reporting functionality that comes with this. Another additional pro is that the customer vs "agent" functionality has added a nice facelift to our intake process. Some cons have been the customer vs agent functionality in terms of additional training, start up time, and trouble shooting. Also the additional cost of another Atlassian program that charges per user (customers are free, but you pay per agent and any JSD plugin charges you based on how many Jira users you have).

The time in status mentioned in the sub-thread above is JSD-specific and looks like it could add even more granularity.

Hello @Dana Gould ,

I wish you success in your new company. I also want to correct a misunderstanding.

Time in Status by OBSS does not only work on a 24 hour calendar. You can define multiple custom calendars, each with its own working days, working hours and time zone.


@Emre Toptancı -OBSS- 

Thanks Emre. That's great news! Can you explain how to set that up?

We have actually installed your plugin a month ago and have been playing with it a bit, but hit a bit of a wall since we are unable to get your documentation to load for us. 

(" took too long to respond. ... ERR_TIMED_OUT")

This may be a firewall issue on my company's end, but it does make configuration difficult. 

Hello @Dana Gould ,

As you said, your firewall might be preventing access. We sometimes see similar issues with other customers as well.

When you install Time in Status by OBSS there are two default calendars. One is the 24/7 calendar and the other is the Default Business Calendar (with working hours as Monday-Friday from 08:00 to 17:00). 

You will see a settings menu on the top right corner of Time in Status screen in the shape of a cog. Using this menu you can directly go to Calendar settings. The same screen can be found under Jira Settings >> Apps >> Time in Status >> Calendar Settings. Please note that to access Calendar Settings, you will need to have admin priviliges on Jira.


Using the Calendar Settings screen you can change the Default Business Calendar or create as many different calendars as you need.


All those calendars will be available for selection in Time in Status screen, under the Calendar button on the right side of the toolbar. (Screenshot below)


The documentation for the cloud version of Time in Status by OBSS can be found here:

If you have more questions, please do not hesitate to contact our support team directly by sending an email to or by visiting



Like Dana Gould likes this

This is exactly the information we are after as well.


Key reason is that it would help to identify bottlenecks, and also the impact of improvements that we make to address these resource issues.


We achieved a similar report before by creating an app that would download this information from the Jira API and to a Mongo DB, and then another app would parse the DB to get the results as @Dana Gould has raised.

It would be nicie if there was a default way in Jira to get this information.

You can find the time spent on status by going to Report -> Control Chart -> select the status you want to see -> then identify the story number you want the time for ; It will show you the time spent on each status per story.

Time/Days in Status is a very common request so I spent a little time ironing out a reasonably simple solution.  This will provide a dedicated "Days in Status" field.  It does require an add-on, but it's the free version of Automation for Jira.  This best suits Jira Server, but does work on Cloud as well.  Just be aware that the free of version of the cloud add-on has a monthly limit on rule executions.  

Quick, easy, and FREE way to create a "Days in Status" field for Jira Server or Cloud 

Did you try "Time Reports" from "Prime Timesheet"?

There is a Cloud version and it seems to fit your needs.



I believe the Control chart would be able to tell you the time its spent on each status.  Is that what you are looking for in #1?

Like Guillaume DELEPLACE likes this

Need this feature in JSD server too please. Basic functionality again. 

We have time stamps for each transition but no report? Seems weird

I developed a tool in Google Sheets that allows you to do exactly that.  I made the tool freely available.  Here is my blog post that provides the details.

Is there a request raised with JIRA for a solution on this?

This may work for the first question

Reports > Time Reports > Report Drop Down Menu > Time in Status

I created a filter, modified the date range, and added additional status categories to get all the status time information I needed.

Where were you able to find this menu? I do not see "Time Reports" within the project reports dashboard

I am using Jira Software, not Service desk unfortunately

Article is applicable for Jira Software too / relevant to Next-Gen projects.

Is it possible to create an advanced JQL using keyords like WAS and DURING?

Something like:

status was "Waiting for customer" DURING (-1w , -1w) and status = "Waiting for customer" and updated<-1w



There's a standard jira plugin available by atlassian - Jira Charting - 

It provides chart widgets for time in status.

This code is very rough, but this is solution I came up with for my company. I capture the date the issue was created, the day it moved into acceptance status, and then calculate whether or not it met the SLA based on (acceptance status - open status). It also calculates based around weekends. You can plug in essentially any status and find out the status to status time, but it's a huge pain and building metrics off this script is essentially impossible.

import com.atlassian.jira.component.ComponentAccessor
import java.sql.Timestamp
import java.time.DayOfWeek
import java.text.SimpleDateFormat
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.Issue;

def myIssue = issue.getKey()
Issue issue = ComponentAccessor.getIssueManager().getIssueObject("$myIssue")

def workingDays = 0

String date = new Date().format( 'yyyy-MM-dd' ).toString()
SimpleDateFormat sdf_cDate = new SimpleDateFormat("yyyy-MM-dd")
Date cDate = sdf_cDate.parse(date)
Timestamp timestamp = new Timestamp(cDate.getTime())

def acceptance = ComponentAccessor.getChangeHistoryManager().getChangeItemsForField(issue, "status").find {
it.toString == "Acceptance"

def startDate = (issue.getCreated() as Timestamp).toLocalDateTime().toLocalDate()
def currentDate = (timestamp as Timestamp).toLocalDateTime().toLocalDate()

def weekend = EnumSet.of(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY)

if (acceptance) {
def acceptanceDate = (acceptance as Timestamp).toLocalDateTime().toLocalDate()

if (acceptanceDate.isBefore(startDate)) {
return null

while (startDate.isBefore(acceptanceDate) || acceptanceDate.equals(startDate)) {
if (!(startDate.dayOfWeek in weekend)) {
workingDays += 1

startDate = startDate.plusDays(1)

if (!acceptance) {
if (currentDate.isBefore(startDate)) {
return null

while (startDate.isBefore(currentDate) || currentDate.equals(startDate)) {
if (!(startDate.dayOfWeek in weekend)) {
workingDays += 1

startDate = startDate.plusDays(1)

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted in Jira

Demo Den Ep. 7: New Jira Cloud Reports

Learn how to use two new reports for next-gen projects in Jira Cloud:  Cumulative flow diagram and Sprint burndown chart. Ivan Teong, Product Manager, Jira Software, demos the Cumulative ...

365 views 1 3
Join discussion

Community Events

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

Find an event

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

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you