
Jira JQL 2026: Advanced Filters, Boards & Queries That Stay Fast
Jira Query Language (JQL) is how you find work items in Jira Cloud when basic search is not enough. You type field-operator-value clauses in advanced search, save them as filters, and point boards, queues, dashboards, and automation at those filters. Done well, JQL is the difference between a board that shows the sprint and a board that shows noise.
I implement Atlassian and Smartsheet stacks for delivery teams. The JQL mistakes I clean up are rarely exotic syntax – they are unbounded OR trees, text searches on huge projects, and filters nobody owns after the author leaves. This guide is the practical subset: structure, operators that matter, board filters, and performance habits. Syntax details follow Atlassian’s advanced search / JQL docs, checked October 14, 2026.
Seat prices moved on October 13, 2026. For the 1-100 user monthly band, list pricing is about $9.70 (Standard) and $19.60 (Premium) per user/month – confirm on Jira pricing and our Jira pricing guide. Free still covers up to 10 users.
The shape of a JQL clause
Every clause is field + operator + value (sometimes a function):
text
project = PROD AND status != Done AND assignee = currentUser()
ORDER BY priority DESC, updated DESC
- AND / OR / NOT combine clauses. Use parentheses when you mix AND and OR.
- List operators:
IN,NOT IN. - Empty checks:
IS EMPTY,IS NOT EMPTY. - Text:
~(contains) and!~– powerful and easy to make slow. - Functions:
currentUser(),now(),startOfDay(),membersOf("jira-developers"),openSprints(),closedSprints().
Save anything you reuse as a filter. Boards and dashboards should reference the saved filter, not a one-off query pasted into five places.

Operators and fields you will actually use
| Need | Pattern | Notes |
|---|---|---|
| One project | project = KEY | Prefer project-scoped filters for boards |
| Several projects | project IN (A, B, C) | Better than long OR chains |
| Active sprint work | sprint IN openSprints() | Scrum boards |
| My open work | assignee = currentUser() AND resolution IS EMPTY | Personal queues |
| Recently updated | updated >= -7d | Relative dates |
| Empty assignee | assignee IS EMPTY | Triage |
| Linked epics | parent = KEY-1 or Epic Link field (classic) | Depends on team vs company-managed |
| Text summary | summary ~ "checkout" | Index-backed; still costlier than IDs |
Atlassian’s field reference in the JQL docs lists every field your site exposes, including custom fields (often as cf[12345]). Prefer the human-readable name when Jira offers it in the picker.
Board filters and quick filters
Company-managed boards use a board filter (saved JQL) plus optional quick filters (extra clauses ANDed when selected). Keep the board filter stable – usually project = KEY ORDER BY Rank ASC – and put temporary views in quick filters (assignee = currentUser(), priority = Highest).
Bad pattern: stuffing every reporting nuance into the board filter so the board loads slowly and nobody dares edit it. Good pattern: thin board filter, named quick filters, separate dashboard filters for leadership reports.
For Git-linked development work, pair board JQL with the Jira-GitHub integration so commits show on the work item while JQL still keys off status and sprint.
Performance habits that keep Cloud responsive
- Constrain by project first.
project = X AND …beats scanning the whole site. - Prefer IDs and dropdowns over
~text when you can. - Avoid huge OR trees.
status IN (A,B,C)beats three ORs. - Watch
ORDER BYon heavy fields for dashboard gadgets that refresh often. - Do not point automation at a filter that returns thousands of hits every few minutes – step usage adds up under the new metering (see Jira automation rules and Atlassian automation licensing).

Examples worth saving
Sprint board backlog hygiene
text
project = PROD AND sprint IN openSprints() AND type IN (Story, Bug, Task)
ORDER BY Rank ASC
Unassigned high priority this week
text
project = PROD AND priority IN (Highest, High) AND assignee IS EMPTY
AND created >= -7d AND resolution IS EMPTY
Released this version
text
project = PROD AND fixVersion = "2026.10" AND status = Done
ORDER BY resolved DESC
Only my blocking issues
text
assignee = currentUser() AND priority = Highest AND resolution IS EMPTY
ORDER BY updated ASC
Test in Filters → Advanced issue search, then Save filter with a clear name (PROD · Open sprint, not Filter 18). Share with the project role that needs it; orphaned private filters break boards when people leave.
JQL vs basic search
Basic search is fine for “find KEY-123” or a single field. Use JQL when you need reproducible queues, board scopes, shared reports, or automation conditions. If your team lives in spreadsheets instead, you may want a lighter tool – but for software delivery, JQL plus boards is still the native path. Broader tool context: best project management software 2026.
Common questions
What is JQL in Jira?
Jira Query Language is the advanced search syntax for filtering work items by fields, operators, and functions. You use it in advanced search, saved filters, boards, and some automation conditions.
How do I open JQL search in Jira Cloud?
Go to Filters → Advanced issue search (wording can vary slightly by UI layout). Switch to JQL if you land in basic search, then type your query.
Can JQL query custom fields?
Yes. Use the field name the picker suggests, or the cf[id] form from Atlassian’s field reference when names collide.
Why is my JQL so slow?
Usually an unbounded query (no project), heavy text search (~), or a huge result set feeding a board or gadget. Narrow by project, replace text search with exact fields, and save a thinner filter.
JQL behavior checked against Atlassian Support advanced-search docs on October 14, 2026. Cloud list prices changed October 13, 2026 – confirm on Atlassian’s pricing calculator.



