Skip to main content

Extract cycle time analytics data from JIRA

Project description

This utility helps extract data from JIRA for processing with the ActionableAgile™ Analytics tool (, as well as ad-hoc analysis using Excel.

It will produce a CSV file with one row for each JIRA issue matching a set of filter criteria, containing basic information about the issue as well as the date the issue entered each step in the main cycle workflow.

This data can be used to produce a Cumulative Flow Diagram, a cycle time scatterplot, a cycle time histogram, and other analytics based on cycle time.


Install Python 2.7 and pip. See

Install using pip:

$ pip install actionable-agile-extract

If you get errors, try to install numpy and pandas separately first:

$ pip install numpy pandas
$ pip install actionable-agile-extract


Write a YAML configuration file like so, calling it e.g. config.yaml:

# How to connect to JIRA?
    Username: myusername # If missing, you will be prompted at runtime
    Password: secret     # If missing, you will be prompted at runtime

# What to search for?
    Project: ABC # JIRA project key to search
    Issue types: # Which issue types to include
        - Story
        - Defect
    Valid resolutions: # Which resolution statuses to include (unresolved is always included)
        - Done
        - Closed
    JQL: labels != "Spike" # Additional filter as raw JQL, optional

# Describe the workflow. Each step can be mapped to either a single JIRA
# status, or a list of statuses that will be treated as equivalent
    Open: Open
    Analysis IP: Analysis in Progress
    Analysis Done: Analysis Done
    Development IP: Development in Progress
    Development Done: Development Done
    Test IP: Test in Progress
    Test Done: Test Done
        - Closed
        - Done

# Map field names to additional attributes to extract
    Components: Component/s
    Priority: Priority
    Release: Fix version/s

The sections for Connection, Criteria and Workflow are required.

Under Conection, only Domain is required. If not specified, the script will prompt for both or either of username and password when run.

Under Criteria, all fields are technically optional, but you should specify at least some of them to avoid an unbounded query.

Under Workflow, at least two steps are required. Specify the steps in order. You may either specify a single workflow value or a list (as shown for Done above), in which case multiple JIRA statuses will be collapsed into a single state for analytics purposes.

The file, and values for things like workflow statuses and attributes, are case insensitive.

When specifying attributes, use the name of the field (as rendered on screen in JIRA), not its id (as you might do in JQL), so e.g. use Component/s not components.

The attributes Type (issue type), Status and Resolution are always included.

When specifying fields like Component/s or Fix version/s that may have lists of values, only the first value set will be used.


Run the binary with:

$ jira-cycle-extract config.yaml data.csv

This will extract a CSV file called data.csv with cycle data based on the configuration in config.yaml.

Use the -v option to print more information during the extract process.

Project details

Release history Release notifications | RSS feed

This version


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page