Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

A "Recently Done by Me" JQL Filter That Gives You the Whole Truth

I keep seeing people struggle with one deceptively simple question in Jira when they are working in multiple types of spaces (Company-managed, Team-managed, JPD, etc.):

"Show me what I finished recently, across all my spaces."

The "Worked on" section in For you helps when you are trying to find the work items quickly, but there are other cases where you want to layer on additional criteria to filter in your search, or you are pulling the data elsewhere with integrations/dashboards/customizations.

A short bit of JQL that you can use in filters for dashboards or quick searches can get you there reliably.

The core idea

Most people's first instinct is to filter by a specific status like Done or Closed. The problem is that those status names vary across spaces and work types. What's called "Done" in one space might be "Completed," "Resolved," or "Shipped" in another. And if they already know that piece, they may use resolution is not empty and resolved >= to check when it was resolved.

Instead, use statusCategory and statusCategoryChangedDate. Every status in Jira across all types of spaces (Jira, JPD, JSM, team-managed, company-managed, etc.) maps to one of three categories — To Do, In Progress, or Done — regardless of what it's named. And statusCategoryChangedDate captures when the work item entered that category, not when it was created or last updated or had a resolution set. That combination gives you a consistent, cross-space filter that works everywhere.

The filter: "Work items I moved to Done in the last 7 days"

statusCategory = Done
AND statusCategoryChangedDate >= -7d
AND assignee = currentUser()
ORDER BY statusCategoryChangedDate DESC

Why each line matters:

  • statusCategory = Done catches all done-like statuses across every space, regardless of naming
  • statusCategoryChangedDate >= -7d focuses on when it became done, not when it was last touched
  • assignee = currentUser() keeps it personal — this filter works for whoever runs it

One caveat on assignee: This only catches work items assigned to you at the time you run the query. If you finished something and it was later reassigned (common in support queues or review workflows), it won't appear. For those situations, status was changed BY currentUser() is a more resilient alternative — it checks who actually moved the work item to Done, regardless of current assignment.

Variants you might like

"Recently Done by my team"

statusCategory = Done
AND statusCategoryChangedDate >= -7d
AND assignee in membersOf("id:<teamId>")
ORDER BY statusCategoryChangedDate DESC

"Recently Done, but only in specific spaces"

spaceJira in ("PROJ1", "PROJ2")
AND statusCategory = Done
AND statusCategoryChangedDate >= -7d
AND assignee = currentUser()
ORDER BY statusCategoryChangedDate DESC

(Note: spaceJira is the newer JQL keyword that reflects Jira's rename of projects to spaces. The classic project keyword still works too — use whichever feels natural.)

"Recently Done, excluding statuses that aren't real completions"

statusCategory = Done
AND status NOT IN ("Won't Do", "Duplicate")
AND statusCategoryChangedDate >= -7d
AND assignee = currentUser()
ORDER BY statusCategoryChangedDate DESC

Why this variant matters: statuses like "Won't Do" and "Duplicate" often map to the Done category because they represent closed work items — but they don't represent completed work. Without excluding them, your "recently done" list can inflate with things you actually discarded.

 


I'm sure Atlassian is working on abstracting this away further and they already have made it better in some places, but I thought this would be a good tip for now.

What's your go-to "recent work" JQL pattern? There are other ways to do the above, but I thought this was a good way to get the conversation started. Have anything that handles edge cases effectively — shared ownership, unassigned queue work, or cross-space rollups?

3 comments

Kristin Lyons
Contributor
April 30, 2026

Great write up!  I agree that using the status instead of statuscategory doesn't show the entire picture :) 

Like Greg D likes this
Rick Westbrock
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Champions.
May 4, 2026

Nice article! It's odd that this is the first time I have seen any mention of the new spaceJira keyword as I would have expected an announcement of that by Atlassian.

Bartek Szajkowski _ Orbiscend OU
Atlassian Partner
May 5, 2026

 

@Greg D very good article and great tip — statusCategory + statusCategoryChangedDate is a solid combo for cross-space "recently done" reports.

For the reassignment edge case you mentioned, our Argon JQL app JQL Argon  has a function called transitionedBy that complements this nicely. Instead of relying on the current assignee, it checks who actually moved the work item to Done in the changelog — across all spaces and work types.

Example:

1. Items my teammate moved to Done last month, across multiple spaces:

issue in transitionedBy("project in (PROJ1, PROJ2)", "Done", "2026/04/01", "2026/04/30", "jsmith")

or

2. Items I personally moved to Done in the last 7 days:

issue in transitionedBy("statusCategory = Done", "Done", "2026/04/28", "2026/05/05", "greg")

 

Works even if the item was later reassigned, marked as "Won't Do", or moved between projects — perfect for personal retros, sprint reviews, or audit trails.

Greetings
Bartek - Orbiscend OU

 

Comment

Log in or Sign up to comment