Sprint Scope Search for Jira
Jira can't search sprint history: sprint = X only finds what is in the sprint now, and WAS doesn't work on the Sprint field. Sprint Scope Search adds JQL functions for sprint history and a Sprint scope page in each project.
Made by WorkAlong. Support: support portal. Privacy policy · Terms
Get started
- Install the app from the Atlassian Marketplace (a Jira admin does this once).
- The app reads your existing sprint history once (the "first sync"). On our 20,000-issue test site this took under 5 minutes. Larger sites take longer. The Sprint scope page shows progress.
- Use the functions anywhere JQL works: issue search, filters, boards, dashboards and automation.
JQL functions
Each function takes a sprint name or id. If two boards have a sprint with the same name, add the project key (or board id) as a second argument: addedAfterSprintStart("Sprint 5", "ABC").
| Function | Finds issues that… |
|---|---|
issue in committedAtSprintStart("Sprint 12") |
were in the sprint when it started |
issue in addedAfterSprintStart("Sprint 12") |
weren't committed, and entered the sprint after it started and before it was completed, including issues created straight into the running sprint |
issue in removedAfterSprintStart("Sprint 12") |
left the sprint after it started and weren't in it at the end (a net removal, like Jira's sprint report) |
issue in everInSprint("Sprint 12") |
were ever in the sprint, even if they've been moved out since |
issue in removedFromSprint("Sprint 12") |
were removed from the sprint at any time, including before it started |
issue in inSprintsStartedBetween("2026-01-01", "2026-03-31") |
are in a sprint that started in the date range |
issue in inSprintsEndedBetween("2026-01-01", "2026-03-31") |
are in a sprint that was completed in the date range |
issue not in …works for every function. It also includes issues that were never in any sprint.- Results have no size limit. They update within seconds of a sprint change (typically about 6 seconds in our tests).
- Results always respect Jira permissions: you only see issues you can already see.
- The date functions accept dates as
YYYY-MM-DDand match at most 1,000 sprints. Narrow the range if you hit that.
Example: scope creep in the current sprint
sprint in openSprints() AND issue in addedAfterSprintStart("Sprint 12")
What "sprint start" means
- Sprints started after you install the app: the app records the moment the sprint was started, when Jira notifies it (within seconds).
- Sprints started before you installed the app: Jira Cloud doesn't keep the moment a sprint was started. So the app uses the sprint's start date, which is the date entered in the Start sprint dialog.
- Teams can backdate or postdate that date.
- If they did, work added between the typed date and the real start counts differently.
- The Sprint scope page always shows which start time it used.
- "End" means the sprint's completion time, or now for an active sprint.
- Moving unfinished issues to the next sprint at completion isn't a removal.
- Removals in the 2 minutes before completion are treated as part of completing the sprint.
Correct on tricky cases
- Reopened sprints: reopening a sprint doesn't change the results.
- Carry-over: issues carried to the next sprint count as committed in both sprints.
- Removed then re-added: the change nets out of
removedAfterSprintStart. It still shows inremovedFromSprintand in the report's timeline. - Planned then unplanned before start: not counted as sprint scope.
The Sprint scope page
Open a project, then Sprint scope in the sidebar, and pick a sprint.
- Tiles: committed, added, removed, and at completion (or "in sprint now"), as issue counts and story points.
- Scope change: estimate changes during the sprint, plus the net scope change as a % of committed points.
- Timeline: every scope change, with who made it and when.
- Export CSV: copy the CSV into a spreadsheet.
- Cells are quoted.
- Cells that start with =, +, - or @ are prefixed, so a spreadsheet can't run them as formulas.
- Large sprints load in parts: the totals update as each part arrives. There's no size limit.
- Story points: the page uses Jira's standard "Story point estimate" or "Story Points" field, whichever the sprint's issues use.
Supported
- Jira Cloud (Jira Software), Scrum boards. Kanban boards have no sprints, so they're skipped.
- Tested on company-managed Scrum projects.
Not included yet
- Dashboard gadget.
- "Completed in sprint" / "incomplete in sprint" functions.
How it works, and your data
- Runs on Atlassian: the app runs entirely on Atlassian's Forge platform. It has no servers of its own and sends no data outside Atlassian.
- The search index: for every issue that has been in a sprint, the app writes one Jira issue property,
wlSprintScope, that lists sprint ids only, e.g.{"ever":[12,13],"committed":[13],…}.- The index holds no issue content, names or personal data.
- Jira indexes the property so the functions can search it.
- App storage: a catalog of sprint and board metadata (ids, names, states, dates), the recorded start times, and sync progress, in Atlassian-hosted Forge storage.
- Data residency: stored data follows your Jira site's data residency.
- The report is computed when you open it, as you, from Jira's own data. Nothing from it is stored.
- Permissions the app asks for:
| Access | Why |
|---|---|
| Read Jira work items and their history | To see when issues entered or left sprints |
| Read sprints, boards and projects | Sprint names, states, start and completion dates; the project's boards |
| Write issue properties | The wlSprintScope index. The app can't edit fields, comments or anything else. |
| Read/write its own JQL function data | To keep its search results up to date after sprint renames |
| App storage | The sprint catalog and sync progress |
Uninstalling
- Atlassian deletes the app's storage within about 30 days of an uninstall.
- The
wlSprintScopeissue properties stay on your issues. They hold only sprint ids, and they stop being searchable once the app is gone. A reinstall reuses them. - To have them removed, open a ticket at the support portal and we'll send a cleanup script (an in-app cleanup action is planned).
Troubleshooting
| Symptom | What to do |
|---|---|
No sprint named "…" found |
Use the sprint id, or wait for the first sync to finish (see the Sprint scope page). |
"Sprint 5" matches 2 sprints |
Add the project key: ("Sprint 5", "ABC"), or use the sprint id. |
| No results right after install | The first sync is still running. The Sprint scope page shows progress. |
| "no active license" | A Jira admin can start a trial or renew under Apps → Manage apps. |
Support
Open a ticket at the support portal (no sign-up needed). Support hours (Monday to Friday, US Pacific time) and response targets by severity are on the Support and service levels page. Replies may be drafted with AI assistance; a human reply is available on request.