Blog ·

Jira hygiene: the checks, the filters, and a routine that sticks

Jira hygiene is the routine work of keeping a Jira space trustworthy: every open work item has an owner, a status that matches reality, the fields your reports depend on, and a reason to still exist. A clean space is one where a filter, a board or a dashboard tells the truth the first time you look. Good hygiene comes from a small set of checks run on a fixed rhythm, plus a way to make sure that rhythm survives a busy month. One heroic cleanup a year does not get you there.

This guide lists the checks worth running, gives a JQL filter for each, and then covers the part most teams skip: making the cleanup come back on its own.

A note on words. Jira Cloud has been renaming things, and much of the interface now says spaces for projects and work items for issues. This article uses both.

Why Jira hygiene decays #

Nobody decides to let a space rot. It happens one reasonable shortcut at a time:

Each one is small. Together they make the board lie, and a board that lies gets ignored, which is when people start tracking real work in spreadsheets and chat threads instead.

The Jira hygiene checklist #

These are the checks that catch most of the decay. Each one comes with a filter you can save once and reuse. Replace ABC with your space key.

Check What it catches How often
Stale open items Work nobody has touched in months Monthly
Unassigned in progress Work with a status but no owner Weekly
Assigned to people who left Items owned by inactive accounts Monthly
Missing key fields Items your reports cannot count Weekly
Stuck in one status Items parked in a middle status Weekly
Finished epics left open Epics with every child done Monthly
Label and component sprawl Duplicate or unused labels Quarterly
Orphaned saved filters and dashboards Filters owned by people who left Quarterly

Weekly checks are about the work in flight. Monthly and quarterly checks are about the clutter around it. Splitting them that way keeps the weekly pass short enough that people actually do it.

Stale open items #

project = ABC AND statusCategory != Done AND updated <= -90d
ORDER BY updated ASC

Anything that has not changed in 90 days is a candidate. For each one, decide: close it with a resolution that says why ("Won't do", "Duplicate", "Obsolete"), or move it back to the backlog with a comment saying it is still wanted. Pick a cutoff that suits your pace; 60 days for a fast team, 180 for a slow one.

Unassigned work in progress #

project = ABC AND statusCategory = "In Progress" AND assignee is EMPTY

A work item in progress with no assignee means either someone is working on it without saying so, or nobody is. Both need fixing, and this filter should come back empty every week.

Items assigned to people who left #

project = ABC AND statusCategory != Done AND assignee in inactiveUsers()

inactiveUsers() returns accounts that have been deactivated. These items will never move on their own. Reassign them, or return them to the backlog unassigned so the team sees them at the next planning.

Missing key fields #

project = ABC AND statusCategory != Done
AND (duedate is EMPTY OR priority is EMPTY OR description is EMPTY)
ORDER BY created DESC

Adjust the list to the fields your reports actually use. If your weekly report groups by component, then component is EMPTY belongs here. If nothing reads a field, stop asking for it: an empty field nobody needs is clutter in the form.

Stuck in one status #

project = ABC AND status = "In Review" AND status changed BEFORE -14d

Change the status name and the window to match your workflow. The point is to find the middle statuses where work goes to wait. If the same status catches items every week, the fix is usually in the process (who reviews, and when) rather than in the items.

Finished epics left open #

Jira has no single JQL clause for "every child is done", so this one is a short manual pass. Open the space's epic list or the timeline view, filter to epics that are not done, and look for any whose progress bar is full. Close those, and re-rank the rest against the current roadmap.

Label, component, filter and dashboard sprawl #

These are the quarterly jobs. Merge labels that mean the same thing, remove components with no open items, and ask the owners of saved filters and dashboards whether they still use them. A Jira admin can change the owner of filters and dashboards left behind by people who have gone.

Who owns Jira hygiene #

Hygiene that belongs to everyone belongs to no one. The pattern that tends to hold:

Put a name on each pass. A pass with a named owner gets done; a pass that "the team" will do gets done once.

How to make the cleanup come back every week #

The checks above are easy. Remembering to run them is the hard part. A calendar reminder tells someone the cleanup exists, but it does not put the work on the board, and a skipped reminder leaves no trace. The cleanups that keep happening are the ones that exist as a work item, with an owner, a due date and a checklist, because a work item that sits undone is visible to everyone.

A weekly hygiene ticket might look like this:

A monthly one adds the stale-items filter, the inactive-users filter and the epic pass, assigned to the space admin. A quarterly one adds labels, components, filters and dashboards.

There are three practical ways to get those tickets created on schedule.

Approach Setup Keeps going when the owner is away Subtasks Cost
Someone creates it by hand None No If they remember Staff time
Jira Automation scheduled rule A rule with a schedule and a create action Yes With extra actions Included with Jira as of October 2026, counted against the site's automation usage
A scheduling app such as Recurring Work Items One rule per cadence Yes Built into the rule Free up to 10 users

By hand #

Fine for a small team where one person owns the ritual and rarely takes leave. Add "create next week's hygiene ticket" as the last subtask of this week's one, so the chain carries itself as long as nobody breaks it.

Jira Automation #

As of October 2026, Atlassian's documentation describes the Scheduled trigger this way:

You can run the flow at a fixed rate (for example, every 7 days), or use a Cron expression for more complex schedules.

That makes two different hygiene rules possible. One creates the weekly ticket for a person to work through. The other skips the person entirely: the same trigger accepts a JQL query, and Atlassian's page says that "actions in this flow will execute on the work items included in the query." So a scheduled rule could comment on every stale item, or transition it to a "Needs review" status, every week.

Be careful with the second kind. An automatic close is the one hygiene step a machine should not take on its own, because the item it closes might be the one somebody still needed, and nobody reads a bulk closure. Commenting and flagging are safe; closing is a decision. The same documentation also notes that "Scheduled flows that reach a Failure status for 10 consecutive executions will disable automatically," which is worth knowing before you rely on one for months. The trigger options are compared in Jira automation examples, how rules are counted is in Jira Automation pricing, and a fortnightly or "first Monday" schedule usually needs a cron expression.

A scheduling app #

Recurring Work Items for Jira is built for the first kind of rule: the ticket that a person works through. A space admin writes the rule once, with the work item type, summary, description, assignee, due date, labels and an ordered list of subtasks, which for hygiene is the checklist above. The item appears in that space on the day it is due.

A few details that matter for a hygiene routine:

It runs entirely on the app's own schedule, so it uses none of the site's Jira Automation allowance. It is scoped to the one space you enable it in, so one team's hygiene tickets never land on another team's board. It is free for up to 10 users and costs from $82.50 a year for 11 to 15 users.

A sample hygiene routine #

Put the three cadences together and the routine looks like this:

Cadence Owner Filters and passes Ticket due
Weekly Team lead Unassigned in progress, missing fields, stuck in status Monday
Monthly Space admin Stale items, inactive assignees, finished epics First working day
Quarterly Space admin Labels, components, saved filters, dashboards First week of the quarter

Start with the weekly one only. Once it has come back four weeks in a row and the filters are mostly empty, add the monthly pass. The quarterly pass can wait until the first two feel routine.

Backlog refinement overlaps with hygiene but is a different job: it is about getting the top of the backlog ready for the next sprint, rather than keeping the whole space honest. Groomed backlog covers that one, and Jira recurring tasks compares the ways to schedule other routine work.

When the manual way is enough #

You do not need any automation for good Jira hygiene. A saved filter and a habit are enough when:

What a scheduled ticket fixes is the specific case where the cleanup keeps being skipped, because nothing on the board said it was due.

Common questions #

What is Jira hygiene? The routine of keeping a Jira space accurate: open items have owners, statuses match reality, key fields are filled, and work that is no longer wanted is closed with a reason.

How often should we clean up Jira? A short weekly pass on work in flight, a monthly pass on stale items and finished epics, and a quarterly pass on labels, components, filters and dashboards suits most teams.

Should old work items be deleted or closed? Closed, with a resolution that says why. Deleting removes the history, and a closed item can be found again if the work comes back.

Can Jira close stale items automatically? A scheduled Jira Automation rule with a JQL query can act on every matching item. Flagging or commenting is safe to automate; closing is better left to a person who reads the list.