Skip to content
claused
docs navigation — How rollups are computed

How rollups are computed

updated 2026-08-26

The one principle

Every subtree collects the list of values of all estimated issues inside it — the row’s own value (if set) plus every descendant’s, at any depth. Issues without a value are simply absent from that list: they are not zeros, and they never drag an average down. The operation is then applied to the list:

Operation Meaning
sum Total of the list
avg Sum ÷ number of estimated issues
median Middle of the sorted list (even count → mean of the two middles)
min / max Smallest / largest estimate in the subtree
count Number of issues in the subtree — estimation ignored

A leaf with value v therefore shows v under every operation except count; a leaf without a value shows (a dash, never a fake zero).

Unestimated

N unest. counts leaf issues without a value. Parent containers without their own estimate are the Jira norm, not a data-quality problem, so they are not counted — the badge highlights actual work nobody sized.

Dirty hierarchies, honestly

Real Jira data is messy, and the app surfaces it instead of guessing:

  • Cross-project children whose parents are outside your selected projects are grouped under “No parent in view” in their project — with correct aggregates, one click away.
  • Issues without values, when they are flat rows with no children, are grouped under “No value set” — nothing is ever silently hidden.
  • Cycles (from botched imports) are broken deterministically and reported in the footer, so no subtree is ever double-counted.

Per-project rows

With multiple projects, each project row is computed like any other subtree — meaning its median and average come from the full distribution of that project’s values, not from combining epic-level results (which would be mathematically wrong). Its count is the number of issues in the project.