How to Sum Story Points Across an Epic Hierarchy in Jira
Jira Standard has no built-in way to total story points across an epic's stories and
their subtasks — the epic panel doesn't add them up, and there's no field you can put
in a JQL query, a board filter or a dashboard gadget. Premium's epic panel shows a
progress bar, but that's a display too: you still can't write something like
"Story Points" > 40 AND "Epic Link" = PROJ-1 against a hierarchy total, because the
total doesn't live in a field.
Two ways to get there: build it with a free Automation rule (works, has real limits), or use an app that writes a rollup field for you.
The free way: one Automation rule per relationship
Jira Automation can sum a field across a set of issues at the moment a rule runs, but it can't walk an arbitrary depth of hierarchy by itself — you build one rule per parent-child relationship and let them cascade. Atlassian's own template for this does it like this:
- Trigger: value changed for Story Points.
- Condition: issue type is Sub-task or Story.
- For a sub-task: branch to its parent, run Lookup issues with JQL
parent = {{issue.key}}, then Edit issue field on the parent's Story Points with{{lookupIssues.Story Points.sum}}. - For a story: branch to its epic, run Lookup issues with JQL
"Epic Link" = {{issue.key}}(company-managed projects) orparent = {{issue.key}}(team-managed projects — see the smart values reference), then edit the epic's Story Points the same way.
Worth knowing before you build this: writing the sum into the story's own Story Points field overwrites whatever the story's own estimate was. If stories on your board carry their own points and you want a rollup, use a separate custom number field for the rollup instead of overwriting Story Points — otherwise the two meanings collide in one field.
Where the DIY rule runs out of road
- Lookup issues returns at most 100 issues per run by default. Fine for a story with a handful of subtasks, risky for an epic with hundreds of stories — see Atlassian's performance guidelines for how that limit is configured.
- Every rule run counts against your monthly automation quota: 100 runs on Free, 1,700 on Standard, 1,000 per paid user on Premium (Atlassian's usage docs). Two chained rules on an active hierarchy add up fast.
- Nothing backfills on its own. Numbers only appear after the next edit to each issue, so an existing backlog starts blank until someone touches every item in it.
- A fourth hierarchy level (sub-subtasks, or a second epic-like level) means a third rule, and someone has to keep the JQL and field names in sync as the workflow changes.
When a rollup field is worth it
If your hierarchy is small and stable, the rules above are genuinely free and enough — keep them. If you're maintaining three-plus chained rules, bumping into the monthly run cap, or need every issue (not just epics) to carry its own live total without manual upkeep, that's where a purpose-built rollup app like TreeTotals earns its keep: it writes the sum into a field automatically, gives childless issues their own value instead of a blank, and needs no rule maintenance.