Great Gadgets for Azure DevOps
Breadcrumbs

Control Chart

Overview

The Control Chart widget helps you monitor how quickly your team delivers work and identify items that took longer than expected.

Based on your configuration, it calculates key Kanban metrics—such as Cycle Time, Lead Time, or the time between two workflow states—for work items returned by a specified shared query within a selected time interval. The results are displayed as a scatter plot, where each point represents an individual work item and its cycle time.

Optionally, the chart can display an average line, a custom threshold line to quickly highlight unusually long cycle times, and a rolling average line to help track delivery trends over time.

When you hover over a data point in the chart, a tooltip appears with detailed information about the item, such as its key, assignee and cycle time.

Control-chart-in-Azure-DevOps-dashboard.png

How does it work?

The data is calculated for a specified time interval or an interval relative to the current day. The widget identifies items from the selected query that had a completed cycle in the specified interval, determines the cycle(s) duration and displays them in the chart along with the date when their cycle ended.

Optionally, the widget can display a Data tab with detailed information for each work item shown in the chart, including the cycle time details and the average calculation. The table can be easily exported as a CSV file.

Control-chart--data-table.png

Tips & Tricks
To calculate "Cycle Time", set the following:

  • Cycle starts = When the item entered a state that has category "In Progress"

  • Cycle ends = When the item entered a state that has category "Completed"

To calculate "Lead Time", set the following:

  • Cycle starts = When the item was created or when the item entered a state that has category "Proposed"

  • Cycle ends = When the item entered a state that has category "Completed"

Configuration

The settings of this widget are divided in multiple tabs:

  • Data tab - contains the required settings of the widget, such as title or data source

  • More Settings tab - contains the optional settings

  • Colors tab - lets you customize the color of the lines displayed in the chart

Data tab

On this tab you can configure the required settings of the widget.

Control-chart-configuration---data-tab.png

Setting

Description

Widget title

Choose what to display in the title bar of the widget.

Data source

Select the type of Data Source used by the widget:

  • The Board of your team.

  • A Shared query containing the items for which you want the metrics to be calculated. Make sure that the specified query is shared with the users who will also visualize this widget.

Cycle starts

Indicates what to consider as the start event of a cycle.

You can choose between:

  • When the work item was created

  • When the work item entered a state that has category "Proposed" - the cycle starts when the work item was transitioned to any workflow state of category New, Proposed or Approved.

  • When the work item entered a state that has category "In Progress" - the cycle starts when the work item was transitioned to any workflow state of category "In Progress". This includes states like Active, or In Progress.

  • When the work item entered this state - cycle started when the item was transitioned to the specified workflow state.

    Choose also how to handle the case when there are multiple transitions to the start state or to the state category by setting If multiple entries in the start state, consider the ? entry to first or last. See the example below.

Example
You configured the widget to start the cycle When the work item entered a state that has category "In Progress" and to end the cycle When the work item entered a state that has category "Completed" and there was a work item that had multiple entries in the "In Progress" state before being moved to "Completed". How should the cycle time be calculated, from the first or from the last transition in the "In Progress" state?

image-20260121-124943.png

If you set If multiple entries in the start state, consider the first entry, the cycle will start when the item was transitioned in the "In Progress" state for the first time.

image-20260121-125037.png

If you set If multiple entries in the start state, consider the last entry, the cycle will start when the item was transitioned in the "In Progress" state for the last time.

image-20260121-125111.png

Cycle ends

Indicates what to consider as the end event of a cycle.

You can choose between:

  • When the work item entered a state that has category "Completed" - the cycle ends when the work item was transitioned to any workflow state of category "Completed", “Resolved”, or “Removed”. These include states like Done, Resolved or Closed.

  • When the work item entered a state that has category "In Progress" - the cycle ends when the work item was transitioned to any workflow state of category "In Progress". This includes states like Active, or In Progress.

  • When the work item entered this state - the cycle ends when the work item was transitioned to the specified workflow state.

You can also choose how to handle the case when there are multiple transitions to the end state by setting If multiple entries in the end state, consider the ? entry to first or last. See the example below.

Example
You configured the widget to start the cycle When the work item entered a state that has category "Proposed" and to end the cycle When the work item entered a state that has category "Completed" and there was a work item that had multiple entries in the "Completed". How should the cycle time be calculated, till the first or till the last transition in the "Completed" state?

image-20260121-125249.png

If you set If multiple entries in the end state, consider the first entry, the cycle will end when the work item was transitioned in the "Completed" state for the first time.

image-20260121-125318.png

If you set If multiple entries in the end state, consider the last entry, the cycle will end when the work item was transitioned in the "Completed" state for the last time.

image-20260121-125356.png

Multiple cycles

Decide how the widget should handle those work items that have multiple cycles. This situation occurs if the work item was transitioned multiple times through the start and finish states of the cycle.

Example
You configured the widget to start the cycle When the work item entered a state that has category "In Progress" and to end the cycle When the work item entered a state that has category "Completed" and there was a work item that was moved from "In Progress" to "Completed" multiple times, so it had multiple cycles. What cycle do you want to be displayed?

image-20260121-125602.png

You can choose between:

  • Display all cycles - all the cycles will be displayed with their own dot in the chart and their own entry in the data table.

  • Display only the first cycle - only the first cycle of the item will be displayed, with all the others being ignored

  • Display only the last cycle - only the last cycle of the item will be displayed, with all the others being ignored

  • Display as one cycle - a single cycle will be displayed, having as the start time the moment when the first cycle started and as the finish time the moment when the last cycle ended. See the picture below.

image-20260121-125717.png
  • Display as sum of all cycles - a single cycle will be displayed, with the start time being the moment the first cycle started and the end time being the moment the last cycle ended, and its duration calculated as the sum of all cycles.

Time interval

Represents the time interval displayed by the widget.

You can choose from multiple options:

Custom dates - choose this option if you want to manually enter a Start date and an End date.

A number of days back - By choosing this option, the widget will use a rolling time interval with a number of days back to the current day.

Dates of a sprint - Choose this option if you want the widget to use the start and end dates of an existing sprint. Only the dates are considered (not also the hours). The start of the interval will be the start date of the sprint with time at the start of day, while the end of the interval will be the end date of the sprint with the time at the end of day. When enabled, you’ll need to select the project and team the sprint belongs to. If you choose the Latest sprint (auto), the date range will automatically match the most recent sprint. If you manually select a specific sprint, any changes made to its dates on the board will be automatically reflected in the widget, without the need to reconfigure it.

More Settings tab

On this tab you can configure the optional settings of the widget.

Control-chart-configuration---more settings tab.png


Setting

Description

Calculate in

Choose the time unit in which the results will be displayed.

Display rolling average line and standard deviation

Check this option if you want the chart to display the rolling average line, which allows visualizing the trend, along with the standard deviation that allows identifying the outliers. You must also specify the odd number of X items representing the window used for calculating the rolling average and the standard deviation. The rolling average and standard deviation are item-based, not time-based. For every item shown on the chart, the rolling average and the standard deviation (at that point in time) are calculated by taking the item itself, X/2 items before the item and X/2 items after the item, then averaging their cycle times.

For example, if you choose to calculate based on a 15-items window, the calculation will be based on the item itself, with 7 items to the left and 7 items to the right.

Display average line

Check this option if you want the chart to display a line with the average cycle time for the specified time interval.

Don't count weekends

Check this option if you want to exclude the weekends (Saturdays and Sundays) from the cycle time calculation.

Display threshold line

Check this option if you want the chart to display a line representing a threshold. The items that have a cycle time higher than the specified Threshold value will be colored in red.

Exclude breaches from average calculation

Check this option if you want the average calculation to exclude items that exceeded the set threshold (breaches). This option has no effect if no threshold is set.

Display percentile lines

Select this option and enter the values (percentages) for the percentiles you want to display. A percentile is a value that divides the data set into two parts: the lower part contains the specified percentage of the data, and the upper part contains the remainder. For example, the 75th percentile will appear as a horizontal line with 75% of the items below it and 25% above it.

Use logarithmic scale for the vertical axis

Check this option if you want the chart to display a logarithmic scale instead of a linear scale for the Y axis.

Show legend

Check this option if you want the chart legend to be displayed.

Show data table

Check this option if you want a data table to be displayed along with the chart. The Data tab displays the items along with their cycle time details and the average calculation.

Open data tab first

Check this option if you want the widget to open on the Data tab first (instead of Chart tab as default). Note that the tab order will remain unchanged (Chart, then Data); only the initial view will switch to the Data tab.

Colors tab

On this tab you can customize the color of the lines displayed in the chart.

Control-chart-configuration---colors tab.png

Setting

Description

Automatically assign colors

Check this if you want the chart to automatically assign colors for the series.

Custom colors

Select any custom color you want the series to be displayed on by either entering the color's hexadecimal code or picking a color.

You can also use the Copy and Import buttons to copy and import the color configuration to widgets of the same type.