How to track project cost and budgets in Jira from worklogs
By Kayabyte · Updated 1 November 2026
Short answer: Jira holds hours, not money: worklogs record who logged how much time on which day, but Jira has no hourly rates and no budgets. Price each worklog with the rate that applied on its date (hours × rate), group the cost by project, epic or version and compare it with a budget, either in a spreadsheet fed by the REST API or with an app such as Burnrate: Project Cost Tracking & Budgets for Jira.
Your team already logs time in Jira. Finance wants to know what the project has cost so far and whether the budget will last. Jira holds the hours but not the money. This guide shows how to get from one to the other with Jira alone, and where that stops.
What Jira gives you
If your team logs time with Tempo Timesheets, the worklogs in Jira show one author; see how to see project cost from Tempo worklogs in Jira. To cost a single epic, see how to see what a Jira epic costs from worklogs.
- Worklogs: who logged how much time, on which work item, on which day.
- Time tracking fields: Original estimate, Remaining estimate and Time spent on each work item.
- Search and export: JQL to find the work items in a project, epic or version, and CSV export with their time fields.
Everything is in hours. Jira has no hourly rates and no budget with an amount and a period.
Step by step: price worklogs in a spreadsheet
- Get the worklogs. Exporting work items gives you Time spent per work item, but not per person or per day. For a real cost you need the individual worklogs: author, date and time spent. Pull them with the REST API (
/rest/api/3/issue/{key}/worklogper work item, or/rest/api/3/worklog/updatedplus/rest/api/3/worklog/listfor everything changed since a date). - Keep a rates table. One row per person or role with an hourly rate and a start date. When a rate changes, add a new row instead of editing the old one.
- Price each worklog with the rate that applied on the worklog’s own date: hours × rate. If you only keep the current rate, every rate change silently re-prices past work.
- Group the cost by project, epic or fix version. For epics and versions, include the time on their child work items and sub-tasks.
- Compare with the budget. Spent so far, the remaining amount, and the share used.
Prefer a script to a spreadsheet? atlassian-admin-scripts has a jira-epic-cost script that prices worklogs on epics and their child work items with dated rates from a CSV. It’s free, MIT-licensed and uses the public REST API. It runs once, so re-run it for fresh numbers.
Where the spreadsheet breaks
- It goes stale. Worklogs are added, edited and deleted every day, and work items move between epics and versions. A monthly export is out of date within days.
- Forecasting is manual. “Will the money last?” needs a pace (spend per day over the last few weeks), a run-out date, and the remaining estimates of open work priced at your average rate.
- Cost and billing differ. What an hour costs you and what you bill the client are different rates, so you need two tables and two results.
- Rates are sensitive. Most people who should see whether a budget is on track shouldn’t see what each person costs, so the sheet ends up shared with very few people.
A few rules that keep the numbers trustworthy
- Never change a past rate. Add a new one with a start date.
- Decide once what a budget covers (a project, an epic and its children, a version, or a JQL query) and whether it is one-off or resets every month or quarter.
- Keep non-billable work out with a label, and apply it to the work under it too.
Burnrate: Project Cost Tracking & Budgets for Jira
Burnrate is the app I make for this. It reads the worklogs your team already logs and keeps the numbers current.
- A rate card with dated cost and billing rates for a default rate, roles and people. A new rate never changes the cost of past work.
- Budgets in money or hours for projects, epics, fix versions or any JQL query, one-off, monthly or quarterly.
- Pace, run-out date, projected spend and an estimate at completion from remaining estimates.
- A Cost panel on every work item and epic, and reports by project, epic, person or month with CSV export.
- Two Jira permissions decide who manages rates and who only sees budgets.
It’s on the Atlassian Marketplace.
FAQ
Does Jira have hourly rates or budgets? No. Worklogs, time tracking fields and exports are all in hours.
Why doesn’t a CSV export of work items give cost per person? The export gives Time spent per work item, not per person or per day. For that you need the individual worklogs from the REST API.
What happens to past cost when a rate changes? If you keep only the current rate, every rate change silently re-prices past work. Keep each rate with a start date and add a new row instead of editing the old one.
Can Burnrate forecast when a budget will run out? Yes. It shows pace, a run-out date, projected spend and an estimate at completion from the remaining estimates of open work.
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 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