Aging Work Items

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.

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 sorted list of the oldest items, four headline figures (how many, how many past the zone, the median, the oldest), a distribution chart, and a breakdown — not a single number buried in an average.

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 Aging Work Items in the gadget catalogue 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.

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.
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.

How to show itSettings → How to show it

Break down by

Group the breakdown panel by Status (where work is piling up) or by Assignee (who's holding the oldest of it) — including an Unassigned group, since work nobody owns is usually the point.

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, and only read when you open the Trend tab — an ordinary load never touches it. Changing the measure, board, project, or filter starts a fresh series: the old points would otherwise silently become answers to a different question, drawn on the same line.

Reading it without colour

Every age is marked as well as coloured: nothing for fine, ! for past the warn zone, !! for past the danger zone, with a legend stating exactly where those boundaries fall. Colour is derived from the same mark, 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 becomes "5 of 18 shown" instead of guessing.
Chart & breakdownCover only the rows shown, and say so.

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 only for the Trend tab. 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.
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.

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