Time in Status

A Jira dashboard gadget that finds the work nobody is moving — how long items have been in progress, how long they waited to start, or how long since anyone touched them, with a threshold you set — plus a panel on every issue showing how long it spent in each status.

Jira reports ageing only as an average — its native Average Age Chart draws a line, never a list. The one thing a standup actually needs, which items are stuck, has to be reconstructed by hand. This gadget puts the list on the dashboard instead, sorted oldest first, coloured against a threshold that's either fixed or drawn from your own team's history.

Overview

The gadget answers one of three questions about a project, board, or slice of JQL — chosen in its settings, one at a time:

Time in progress

How long has active work been active.

Time waiting to start

How long has it sat in the backlog, untouched.

Time since last update

What has nobody touched, whatever its status.

Whichever you pick, the answer is a small dashboard rather than a single number buried in an average: four headline figures with their change since last week, every item drawn as a bar against your late and overdue lines, a 90-day trend, and the list of items itself, oldest first — see What you see.

Add to a dashboard

  1. Open a Jira dashboard and choose Add gadget (or create a new dashboard first, from Dashboards → Create dashboard).
  2. Search for Time in Status in the gadget catalogue (the gadget is called Time in Status & Aging) and select Add.
  3. The gadget opens straight into its settings. Pick a measure, narrow the scope if you want to, and choose how it should display — see below for what each setting does.
  4. Select Save. The gadget loads immediately; no further setup is needed.

Add it more than once to watch more than one thing at a time — one instance per board, or one per measure side by side. Each keeps its own settings and its own trend history.

The three measuresSettings → What to measure → Measure

Time in progress

The default. Scoped to statusCategory = "In Progress", dated from the field that records the last move between To Do, In Progress and Done. Answers how long active work has been active — classic ageing WIP.

Time waiting to start

Scoped to statusCategory = "To Do", dated the same way. This is the measure every ageing chart scoped to "in progress" categories cannot show you: an item filed sixty days ago and still sitting in the backlog is not in progress, so it's invisible to them. Here, it's the headline.

Time since last update

The widest net. Scoped to statusCategory != Done, dated from the ordinary "last updated" field. Answers what nobody has touched, whatever column it's sitting in.

The three disagree often, and the disagreement is the point. An item started forty days ago but commented on yesterday is ageing, not stale. One started on Tuesday and left alone since is stale, not ageing. One that never started is neither — and is often the worst of the three.

None of the three ever reads an issue's changelog — every date used is an ordinary field on the issue, so a load stays a single, bounded search. The full status-by-status history of one issue is in the issue panel instead.

Waiting vs. working

For Time in progress only, the gadget also reports how long an item sat before anyone picked it up — the gap between when it was created and when it actually entered progress. You'll see it per row and as a median across the list.

It doesn't apply to the other two measures: for staleness, that same gap isn't a "wait" in the same sense, and for work that never started there was nothing to wait for yet.

Health zonesSettings → What to measure → Health zones

Fixed

A plain threshold in days that you set. An item past it is flagged; twice past, it's flagged more urgently.

From the team's finished work

Instead of a round number, the threshold is drawn from your own team's history: the 85th and 95th percentile of how long recently finished work actually took, over the last 180 days, in the same scope as the gadget. "Late" then means late relative to how this specific team works, not a guess.

This needs at least ten finished items in that window to mean anything statistically. Below that, the gadget falls back to a fixed threshold automatically and says so in the gadget itself, rather than pretending a distribution exists where there isn't one yet.

Working daysSettings → What to measure → Count weekends

Ages are counted in working days by default. Counting calendar days instead means anything picked up on a Friday reads as three days old by Monday — every threshold quietly drifts two days a week, and work that was never actually late gets flagged anyway. Tick Count weekends if you'd rather use calendar days; the gadget always states which one it's using.

ScopeSettings → What to include

Narrow what the gadget looks at using any combination of the following — they compose, rather than replace each other:

SettingWhat it does
BoardScopes to a specific board's own filter. Leave on All boards to look everywhere you have access.
Project keyNarrows to one project. Combines with a board rather than overriding it.
Epic or parentOnly work filed under a specific parent issue.
ReleaseOnly work in one fix version, entered by name — for example 2.4.0. If several projects use the same release name, add a project key as well to keep to one of them.
Active sprint onlyOnly issues in the sprint currently running. Shows nothing where the scope has no sprint at all — a Kanban board, for instance.
Extra JQL filterAny additional JQL, ANDed onto everything above — for anything the other fields don't cover.

The health-zone baseline is scoped the same way as the gadget itself, with one deliberate exception: it ignores Active sprint only, because a single sprint's worth of finished work is a handful of items, not a distribution worth drawing percentiles from.

What you see

Headline figures

Four tiles across the top: how many items match, how many are past the late threshold (and what share of the total that is), the median age, and the oldest item. Each shows its change since the same day last week — ▲ +3 means three more than a week ago, which for stuck work is the wrong direction — and a bar underneath that puts the figure in context: the split between fresh, late and overdue, or how far the median and the oldest item sit from the overdue line.

The weekly change needs a week of history first; until then the tile says no history yet.

Every item, by age

Each item is one bar, oldest on the left, coloured by its zone. Two dashed lines mark where late and overdue start, so you can see at a glance how far past the line the worst items are. Hover a bar for its key, summary, status and assignee; click it to open the issue.

Stuck items

The items themselves, oldest first: key, summary, assignee, status, age, and a zone badge — Fresh Late Overdue. Statuses are coloured by what they mean (in progress, in review, blocked, waiting, to do) so a column of them scans quickly. Sort by key or age from the column headers, click a row to open the issue, or use Open in Jira for the same query in the issue navigator. CSV downloads the list as a spreadsheet — see Export to CSV.

The layout follows the space it has: in a narrow dashboard column the tiles stack and the less important columns step aside, so nothing overlaps. Light and dark both follow Jira's own theme.

Rows and wallboardSettings → How to show it

Row limit

Up to 100 rows. Past the limit, the figures the gadget reports stay true — the total, for instance, is never just the row count — only the list and chart show the oldest items rather than all of them. See Partial pages below for exactly what stays exact and what doesn't.

Wallboard layout

A different layout entirely, meant for a dashboard cycling on a television across a room: large figures, the five worst items, no table, no chart, no pagination.

Trend

Alongside the current snapshot ("Now"), a second tab plots the last 90 days: the total count and how many were past the zone, day by day, plus whether that number is rising or falling recently.

History is written once a day, the first time the gadget loads. An ordinary load reads back a single point — the one from a week earlier, for the "vs. last week" figures — and the full 90 days are read only when you open the Trend tab. Changing the measure, board, project, release, or filter starts a fresh series: the old points would otherwise silently become answers to a different question, drawn on the same line.

Export to CSVStuck items → CSV

The CSV button above the list downloads every loaded item — all rows up to the row limit, not only the ten on screen — in the order the table is sorted. Each row has the key, summary, status, assignee, priority, issue type, age and zone; for Time in progress it also has how long the item waited before work started. The age column says whether it is counted in working or calendar days.

The file opens directly in Excel, Numbers or Google Sheets, with names in any language intact. The file is built in your browser; nothing is sent anywhere.

Reading it without colour

Every zone is written as well as coloured: each item carries a Fresh, Late or Overdue badge with an icon, and the threshold lines on the chart are labelled with their day counts. Colour follows the same zone, so the two can never disagree — and the gadget stays legible in greyscale, to a screen reader, or on a black-and-white printout.

What a partial page can honestly claim

When there are more items than the row limit, the gadget still orders by the exact field it measures — so the rows it shows are genuinely the oldest ones, not an arbitrary sample. That makes it possible to say, precisely, what each headline figure can and can't claim:

FigureOn a truncated page
OldestExact — it's always the first row.
TotalExact — fetched separately whenever the page is a slice.
Past the zoneExact only if the page's youngest row is already under the threshold; shown as e.g. 5+ otherwise.
MedianNot knowable from a slice — the tile shows a dash instead of guessing.
Chart & listCover only the rows shown, and say so.

Time in each statusIssue view → Time in Status

Every issue gets a Time in Status panel in the right-hand column of the issue view, next to Details. Expand it to see:

  • how long the issue has been in its current status, and how long since it was created;
  • one row per status it has been in, with the time spent there and its share of the issue's life — the current status is outlined;
  • ×2, ×3 next to a status the issue entered more than once — the time is added up across visits;
  • how many times the status changed, and how many of those went back to an earlier status, such as review sent back to development.

Times are in calendar time, down to hours and minutes for short stays. A status renamed since keeps all its time under its current name.

Unlike the gadget, the panel reads the issue's change history — only for the one issue you are looking at, only when you open the panel, and as you, so it never shows anything you couldn't already see in the issue's History tab. On an issue with a very long history — over 2,000 changes — the panel reads the most recent 2,000, counts time from the first of them, and says from which date.

FAQ

Does it change anything in Jira?
No. The app only reads — it has no permission to create, edit, transition, or comment on an issue.
What data does it store?
One anonymous daily count per gadget, used for the Trend tab and the "vs. last week" figures. No names, no issue keys, no account IDs. Full detail in the privacy policy.
Why does it say my health zones fell back to a fixed threshold?
Percentile zones need at least ten finished items in the last 180 days in the same scope. Below that, there's no distribution to draw a percentile from, so the gadget uses your fixed threshold instead and says so on screen.
Why is "Time waiting to start" showing items I don't expect?
It includes everything in the To Do category, including work bounced back out of progress — not only freshly filed issues.
What does "vs. last week" compare against?
The gadget's own snapshot from seven days earlier (or the nearest day either side). A gadget that is new, or was not opened a week ago, shows no history yet until it has one.
Can I export the list?
Yes — the CSV button above the list downloads every loaded row. See Export to CSV.
Where do I see how long one issue spent in each status?
In the Time in Status panel on the issue itself. See Time in each status.
Can I add it more than once?
Yes — each instance keeps its own settings and its own trend history, so you can watch several boards, projects, or measures side by side.

Support

Questions, bug reports, or feature requests: info@vudia.site.

Time in Status is built on Atlassian Forge and runs entirely on Atlassian's infrastructure. See the privacy policy for exactly what it reads, writes, and stores.