Count status transitions

This is the documentation for Dataplane Reports 3.3. - 4.0.x.
If you are using an earlier version of the app, you can access the documentation from the version index page.

Count status transitions

Overview

Reporting on the number of times a Jira issue transitioned to a particular status can be extraordinarily helpful for tracking metrics like:

  • Jira issue reopen counts

  • The number of revisions a story or specification requires before moving into development

  • management approval passes

  • efficiency in triaging tasks, stories, or bugs

  • QA, testing, or other approval failure counts

  • The number of exchanges required with customers to qualify reported issues

Using Dataplane Reports and the Jira Misc Custom Fields (JMCF) or ScriptRunner for Jira app, tracking these metrics in Jira is simple.

In this example, we'll report on the number of times a Jira issue was reopened. You can easily adapt this example to report on any particular Jira status or statuses relevant to your workflows or processes.

For details on using Jira Misc Custom Fields (JMCF) with Dataplane Reports, see Reporting on Calculated Values with JMCF. Review Writing scripts in JMCF using the Groovy language for additional information on JMCF app and script use.

For details on using ScriptRunner for Jira with Dataplane Reports, see Reporting on Calculated Values with ScriptRunner. Review the ScriptRunner Scripted Fields documentation for additional information.

Configure your Jira instance

  1. In Jira, install the Jira Misc Custom Fields (JMCF) or ScriptRunner for Jira app.

  2. Create a new JMCF custom field of type Calculated (scripted) Number Field, or a ScriptRunner custom field of type Scripted Field. Name the field "Reopen Count" (or whatever status you'll be tracking). Select Number Searcher for the "Search Template" option for this field, since the field will be returning numeric values.

  3. For a JMCF or ScriptRunner custom field, use the following script (replacing 'Reopened' with your status of interest):

    import com.atlassian.jira.component.ComponentAccessor def theStatus = 'Reopened' def changeItems = ComponentAccessor.changeHistoryManager.getAllChangeItems(issue) def transitionsCount = changeItems?.findAll{it.field == 'status' && it.getTos().values().contains(theStatus)}.size() return transitionsCount as Double

    If using a ScriptRunner custom field, select Number Field for the Template field setting.

  4. Reindex Jira. This is necessary whenever adding a new custom field in Jira.

  5. Once Jira is reindexed, click Dataplane Reports → Administration → Configuration. On the Indexer tab, click the Sync Index button to have Dataplane register the newly added custom field.

We're now ready to create the Dataplane report.

Create the report

For this example, we'll use a Dataplane historical report to display the number of issue re-openings plotted against the issue resolution date.

In the Dataplane report directory, under New Report, select the Advanced category of reports. 

Select the /wiki/spaces/dataplaneDraft/pages/442728497.

For report configuration options, set up your report as follows:

Option

Selection

Comments

Option

Selection

Comments

Time Period

any

Select your dates of interest using relative dates ("Last 3 Months", "This Year") or a custom Start Date and End Date.

Search

any

Select your Jira projects, project categories, and filters of interest. Or click the JQL tab in that field to enter a command using Jira Query Language (JQL).

Value Of

Reopen Count

Select the newly added JMCF or Scri’s reopen count will be plotted. You might alternatively choose "Created Date" or a custom date field.

Chart Type

Select the Column Chart

Click the Run Report button to create your report.  

We see a clear report of issue reopen counts across the selected time period.

Reopen Count report

To better understand which issues in this project were most frequently reopened, let's go back to the report configuration page and add Issue Type (Historical) to the Segment By field to break down the results.

Here's what the report configuration now looks like:

new configuration for creating the report

Running the report again, we now get the same results segmented by issue type:

report example segmented by issue type







 

Need support? Create a request with our support team.

Copyright © 2005 - 2026 Appfire | All rights reserved.