The check against Jira
Every time a sprint closes, Sprint Truth checks itself against Jira.
What is compared
Sprint Truth builds its own list of work items that were in the sprint when it closed. It then reads the sprint's work items from Jira's sprint records, through Jira's public Agile API, and compares the two lists item by item.
Jira's Sprint Report has no public API, so Sprint Truth doesn't read the report itself. It compares with the same sprint records Jira keeps for every sprint.
Where you see it
- Sprint review page: in the header, and a "Where we differ from Jira's sprint records" box when there are differences.
- Sprint scope gadget: per sprint.
- PMO view: the number of differences per board.
- Admin page → Self-check: the 50 most recent checks, plus Check a sprint now for any closed sprint.
The weekly check also re-runs it on the 10 most recently closed sprints.
Differences, in plain words
Each difference comes with the likely reason:
- "Jira lists PAY-215 in this sprint, but we have no history for it yet. It may still be rebuilding."
- "PAY-218 was put in the sprint after it closed, so we don't count it as part of the sprint."
- "We count PAY-219 as in the sprint when it closed; Jira no longer lists it there. It may have been moved after the close."
- "Jira lists PAY-220 in the sprint; we count it as removed before the close."
A difference doesn't always mean something is wrong. It often means work moved after the close. If you see a difference you can't explain, email hello@goldstandardweb.com with the board and sprint name.
When we don't claim a result
Sprint Truth would rather say it couldn't check than record a result it didn't earn. It shows Couldn't check, and tries again on the weekly check if it is one of the 10 most recently closed sprints (or when an admin presses Check now), in three cases:
- Jira's sprint records couldn't be read at all.
- Our own side wasn't complete, because the sync that fed the check left work items behind. Comparing then would write up our own gap as a difference from Jira.
- Jira answered with an empty sprint while we still count work items in it. A search returning nothing means the index returned nothing, which isn't the same as the sprint being empty, so we don't treat it as a disagreement.
And when a sprint genuinely held no work items on either side, it says No work items to compare rather than reporting a match — a result over nothing isn't a pass. A real match names how many work items it matched over.