How to see what a Jira epic costs from worklogs
By Kayabyte · Updated 1 November 2026
Short answer: Jira can list the work items in an epic and add up the time logged on them, but it has no hourly rates, so it can’t tell you what the epic cost. To get a cost, collect every worklog on the epic, its child work items and their sub-tasks once, price each with the rate that applied to its author on its date, and add them up. You can do that in a spreadsheet fed by the REST API, or let an app such as Burnrate: Project Cost Tracking & Budgets for Jira keep it current and compare it with an epic budget.
“How much has this epic cost so far?” is the question behind most project reviews. Jira holds the hours, not the money. This guide covers what to add up, the mistakes that double count, and where a spreadsheet stops. It builds on how to track project cost and budgets in Jira from worklogs, which covers rates and budgets in general.
Step 1: find everything that belongs to the epic
- Child work items. In current Jira Cloud sites,
parent = EPIC-1returns the work items in an epic. Older queries use the Epic Link field; Atlassian has been replacing it with the parent field (Atlassian developer community). If one form returns nothing on your site, try the other. - Sub-tasks. Sub-tasks belong to a work item, not to the epic, so the query above doesn’t return them. They have their own worklogs and have to be included.
- The epic itself. Some teams log time directly on the epic. Include it.
- Work items that move. When a work item moves to another epic, its time moves with it. An epic’s cost changes when its contents change.
Step 2: avoid double counting
A parent work item’s Time spent is the time logged on that work item. Jira also shows an aggregate that includes sub-tasks (the Σ time fields). If you add the aggregate of a parent and the time of its sub-tasks, the sub-tasks are counted twice. Pick one: either the individual worklogs of every work item, or the aggregate of each top-level work item, never both. On an epic, the Σ time fields don’t reliably include the time of its child work items (in company-managed projects the epic’s aggregate doesn’t sum its children, JSWCLOUD-18871), so don’t use an epic’s own Σ value as the epic total.
Step 3: get the worklogs, not just the totals
A CSV export of work items gives time spent per work item, not per person or per day, and cost needs both: different people have different rates, and rates change over time. Use the REST API for the individual worklogs: author, date and time spent (/rest/api/3/issue/{key}/worklog for each work item, or /rest/api/3/worklog/updated and /rest/api/3/worklog/list for everything changed since a date).
Step 4: price and add up
- Keep a rates table: one row per person or role with an hourly rate and a start date. Add a new row when a rate changes.
- For each worklog, multiply hours by the rate that applied to its author on the worklog’s date.
- Add up the cost per epic.
- Compare with the epic’s budget and what is left.
Where the spreadsheet breaks
- It is out of date as soon as someone logs time or moves a work item.
- Forecasting needs a pace (spend per day over recent weeks) and the remaining estimates of open work priced at your average rate.
- Cost and billing are different rates, and most people who need to see whether an epic is on budget shouldn’t see what each person earns.
- Every epic is a new copy of the same sheet.
Burnrate: Project Cost Tracking & Budgets for Jira
Burnrate is the app I make for this. It reads the worklogs your team already logs and prices them with a rate card of dated cost and billing rates (default, roles and people), so a new rate never changes the cost of past work.
- An epic budget, in money or hours, counts time on the epic, its work items and their sub-tasks. When a work item moves to another epic, its time moves with it.
- Budgets can be one-off, monthly or quarterly, and can also cover projects, fix versions or any JQL query.
- Pace, projected spend and run-out date, plus an estimate at completion from remaining estimates.
- A Cost panel on every epic and work item for people allowed to see costs, and reports grouped by epic, person, month, work type or work item, with CSV export.
- Two Jira permissions decide who manages rates and who only sees budgets. People who can only view budgets don’t see the rate card or cost per person.
It’s on the Atlassian Marketplace.
FAQ
Can Jira show the cost of an epic? No. Jira shows time logged, not money, because it has no hourly rates. You need rates applied to the individual worklogs.
How do I find all work items in a Jira epic with JQL? Use parent = EPIC-1 on current Jira Cloud sites, or the Epic Link field on older queries. Sub-tasks are not included; they belong to their parent work items.
Why is my epic cost too high when I add up time spent? Usually because the time of sub-tasks is counted twice, once in the parent’s aggregate time and once on the sub-tasks themselves.
Does Burnrate count sub-tasks in an epic budget? Yes. An epic budget counts time on the epic, its work items and their sub-tasks.
What happens to the cost when a work item moves to another epic? In Burnrate its time moves with it.
Jira and Atlassian are trademarks of Atlassian. Kayabyte is an independent developer and is not affiliated with or endorsed by Atlassian.
More guides
- How to delete old page versions in Confluence Cloud
- Apps to make a Confluence group watch a space or page, compared
- How to make a Confluence group watch a space or page
- Onboarding in Confluence: make new hires watch the right spaces automatically
- Confluence storage almost full? What counts and how to free it
- Confluence watching but no email? 5 things to check
- How to count business days between two dates in Jira
- Make a Jira field read-only after approval or when closed
- How to see project cost from Tempo worklogs in Jira
- How to set a WIP limit per person in Jira
- Add a group as request participants in Jira Service Management
- CC a whole team on every Jira Service Management request
- Group request participants apps for Jira Service Management compared
- JSM organizations vs request participants: which to use
- How to add public holidays to a JSM SLA calendar
- Kanban WIP limit per person in Jira: beyond column limits