A Jira pivot table of story points by assignee and sprint
People down the side, sprints across the top, points in the cells, totals that are actually correct.
Building it
- Create report. Source = the saved filter behind your board (Board settings names it), or JQL such as
project = PRG. Every sprint the work items were in becomes a column, past sprints included. - Add a Pivot tab.
- Rows: Assignee. Columns: Sprint.
- Values: Sum of Story Points. Add a Count as a second value if you want both.
- Save.
Or start from the Sprint pivot by assignee template, which is exactly this.
Totals you can trust
Row and column totals are worked out from the work items, not by adding up the cells on screen. For count and sum the two agree, unless a work item sits in several rows (labels, sprints), because a total counts it once. For average, minimum, maximum and median they do not — the average of several averages is not the average — so adding cells would quietly produce a wrong number.
Unassigned and no-sprint
Work with no assignee gets its own row and work in no sprint gets its own column, labeled as such. They are not dropped. Dropping them is how a pivot's total stops matching the Jira filter it came from, and it is very hard to notice.
Work in more than one sprint
Sprint is a multi-value field: an item carried over appears under each sprint it belonged to. That is usually what you want for "what was in this sprint", and it does mean the column totals can add up to more than the grand total. The grand total counts each work item once.
Checking a number
Click any cell to list the work items behind it, each linking into Jira. When somebody disputes a figure in a planning meeting, this ends the conversation in about ten seconds.
Two fields down the side
Add a second row field to nest — team, then person within team — with subtotals at each level. Useful when one board carries several squads.