Can Jira roll up a field from its subtasks?
Short answer: no. A parent's Story Points and the sum of its subtasks' Story Points are two separate fields. Break a story into subtasks, estimate each one, and Jira still won't add them up onto the parent — and native JQL can't either.
The usual workaround is an Automation rule with lookupIssues and a smart value like {{lookupIssues.Story Points.sum}}. It works until it doesn't: it fires on some events and not others, has to be cloned per project and per field, and when it silently stops the stale number it last wrote looks exactly like a live one. And the result usually isn't a plain, searchable field.
The fix: Argon's Calculated Field
Argon ships a Calculated Field custom field type whose value is a mathematical expression over the numeric fields on an issue, its subtasks, or both:
sum(children:customfield_10072)That's a live rollup of every subtask's Story Points onto the parent — recursive through nested subtasks, recalculated automatically, with no Automation rule to babysit. Expressions support:
- Operators:
+ - * /and brackets for grouping. - Functions:
sum,avg,min,max, andp50(the median). - Scopes:
issue:(this issue's own field),children:(its subtasks, recursively), andissueandchildren:(both).
One thing the editor makes plain: expressions use field IDs, not names — here customfield_10072 is the Story Points field, and the right-hand panel lists every ID you can reference.
Set it up once
- Install Argon from the Atlassian Marketplace to add the Calculated Field type.
- Create the field in Jira Settings → Custom fields → Create custom field, and pick Calculated Field (by Argon). Name it, e.g. Story Points Rollup.
- Enter the expression in the field's context configuration. It validates as you type and only saves when valid.
- Add it to a screen so it displays and computes — then search it.
The part that makes it useful: it's JQL-searchable
Because the result is a real number field, native JQL can search it. That turns a display convenience into a data-quality tool.
Find parents whose subtasks carry no estimate at all:
"Story Points Rollup" = 0 AND issuetype in standardIssueTypes() AND statusCategory != DoneCatch estimate drift. Add a second calculated field — Estimate Drift — that subtracts the subtask rollup from the parent's own estimate:
issue:customfield_10072 - sum(children:customfield_10072)Story Points Rollup), leaving an Estimate Drift of 3 — a number you never had to compute by hand.Now one query finds every parent whose breakdown no longer matches its headline estimate:
"Story Points Rollup" > 0 AND "Estimate Drift" != 0What you can calculate
- Rollups:
sum(children:customfield_10072)— total subtask story points on the parent. - Averages and extremes:
avg(children:customfield_10072),max(issueandchildren:customfield_10072)— the mean subtask size, or the single biggest estimate anywhere beneath a parent. - Medians:
p50(children:customfield_10072)— a statistic Jira has never offered out of the box. A parent whose median subtask is 13 points isn't a task with big subtasks; it's a task that should have been a story. - Drift and blended math:
issue:customfield_10072 - sum(children:customfield_10072). Note the math operators apply toissue:fields and function results, not to achildren:scope directly — so thisissue:a - sum(children:b)shape is exactly right.
If it's a number on an issue or its subtasks, you can aggregate it — and then search on the aggregate.
Forge-native, so your data stays put
Argon is built entirely on Atlassian Forge. The calculation runs inside Atlassian's own infrastructure; no external server ever sees your field values. Why that matters.
For the full story on catching estimate drift with these fields, see Your Story Says 13 Points. Its Subtasks Say 10. Need a different kind of query? See how to measure time in status, how to use regex in JQL, or grab the full JQL Cheat Sheet.
FAQ
Can Jira roll up story points from subtasks to the parent?
Not natively. Jira keeps a parent's estimate and its subtasks' estimates as separate, unrelated fields and never sums them. Argon's Calculated Field does the rollup with an expression like sum(children:customfield_10072), and because the result is a real number field you can also search it with JQL.
Can you search a calculated field with JQL?
Yes. An Argon Calculated Field stores a real numeric value, so native JQL operators work on it directly — for example "Story Points Rollup" = 0 to find parents whose subtasks are unestimated, or "Estimate Drift" != 0 to find parents whose breakdown no longer matches the estimate.
What can an Argon calculated field compute?
A mathematical expression (+ - * / and brackets) over the numeric fields on an issue (issue:), its subtasks recursively (children:), or both (issueandchildren:), using the functions sum, avg, min, max, and p50.
Does a calculated field send my data outside Jira?
No. Argon is built natively on Atlassian Forge — the calculation runs inside Atlassian and your field values never leave your Jira instance. Read why that matters.
