Issue cycle time and Story & task cycle time

Last updated: November 9, 2026

Issue cycle time shows how many hours a completed issue spent in In Progress statuses. Story & task cycle time is the same measure for Jira Stories and Tasks only. Both help you see how long active work takes once someone starts it.

Why it matters

  • For engineering managers: see how long work takes once it starts, and whether that changes after a process change.

  • For engineering leaders: compare teams on the time issues spend in progress, separate from time waiting in the backlog.

  • For anyone checking the numbers: know exactly which issues count, so you can reconcile Span with Jira.

How it works

Issue cycle time = hours an issue spent in In Progress statuses, summed across every visit
  1. Span reads each issue's status history from Jira, Linear, Azure Boards, or GitHub Issues.

  2. It maps every status to To Do, In Progress, or Done. In Jira, every status in the blue In Progress category counts as In Progress, including review and QA statuses.

  3. Each time the issue enters an In Progress status, a clock starts. It stops when the issue moves to a To Do or Done status. Moving between two In Progress statuses, such as In Development to In Review, keeps the clock running.

  4. Span adds up every In Progress stretch, so an issue that goes back and forth counts every stretch.

  5. Only issues whose current status is Done get a value. Each issue counts on its completion date.

Story & task cycle time keeps only Jira issues whose type is named exactly "Story" or "Task". It needs a Jira integration.

Which issues count

Issue

Issue cycle time and Story & task cycle time

Went through In Progress, then Done

Its total time in In Progress

Went straight from To Do to Done without entering In Progress

0 hours

Created directly in Done

0 hours

Canceled

0 hours, if it never entered In Progress. Canceled issues count as Done (in Jira, when your Canceled status sits in the Done category)

Still open

No value until it's Done

Issues with 0 hours stay in the calculation, so they pull the average down.

Aggregations

  • Average caps each issue at 30 days (720 hours) before averaging. There's no uncapped average.

  • P50, P75, P90, and Max use each issue's real value, with no cap. Each one is the value of an actual issue.

Span doesn't remove outliers. The cap only applies to the average.

Where to find it: the Issue cycle time row in Sprint Tracking, and by name in custom reports and Targets.

Setup

No setup is needed beyond your issue tracker integration. Two settings change the numbers:

  1. Weekends: if your organization excludes weekends (Settings → Metrics), Span removes Saturday and Sunday time in your organization's time zone. Weekdays count as full 24-hour days.

  2. Jira status categories: to change whether a status counts as In Progress, change its category in your Jira workflow.

Things to know

  • This isn't Time in In Progress. The Issue Lifecycle report uses a separate metric, Time in In Progress, which leaves out issues that never entered In Progress, including issues created in Done and canceled issues. Issue cycle time counts them as 0 hours, so it can read lower.

  • Every issue type counts in Issue cycle time, including epics, sub-tasks, and bugs. An epic that sits in progress for weeks adds one long value. Use Story & task cycle time, or filter by issue type, for story-level flow.

  • Renamed issue types don't match. If your Jira site calls stories "User Story", Story & task cycle time won't include them. Use Issue cycle time with the issue type filter instead.

  • No per-issue export yet. The Catalog → Issues CSV includes each issue's title, URL, ID, platform, creation and completion dates, type, story points, and linked pull requests, but not its cycle time.

  • Compared with Jira's control chart: Jira measures between the board columns you pick, from first entry to final exit. Span counts only time in In Progress category statuses and adds repeat visits, so the two numbers rarely match.

Worked example

A team completes four Stories in a week:

  • Story A spent 10 hours in In Progress.

  • Story B spent 20 hours in In Progress.

  • Story C moved straight from To Do to Done.

  • Story D was canceled from the backlog without ever being started.

Story & task cycle time counts C and D as 0 hours, so the average is (10 + 20 + 0 + 0) ÷ 4 = 7.5 hours. Time in In Progress on the Issue Lifecycle report leaves C and D out, so it shows (10 + 20) ÷ 2 = 15 hours.

Related articles

Issue Lifecycle Report

Sprint Tracking Report

How to set up weekend exclusion for metrics

Custom Reports Guide

Need help?

Contact your Span account team or reach out to support@span.app.