How to handle hourly rate changes in Jira cost reports without changing past costs
By Kayabyte · Updated 4 November 2026
Short answer: Keep every rate with a start date and price each worklog with the rate that applied on the worklog’s own date. Jira has worklogs but no rates at all, so you do this in a spreadsheet or a Marketplace app. Apps whose listings or docs describe dated rates include Burnrate (the app I make), Financial Manager by Tempo, Time & Cost Tracker by SaaSJet and MarginRadar by Radrly. Whichever you use, change one rate on a test and confirm last month’s total doesn’t move.
Someone gets a raise in March, and suddenly January’s project cost is higher than the invoice you already sent. That happens when a report multiplies all hours by the current rate. The fix is simple to state and easy to get wrong.
The rule
A rate belongs to a period, not to a person. Three things follow:
- Never overwrite a rate. Add a new one with its start date, and leave the old one.
- Use the worklog’s date, not today’s. A worklog dated 28 February uses February’s rate, even if it was logged in March.
- Decide what wins when several apply. A common order is a person’s own rate, then their role’s rate, then a default.
In a spreadsheet
- Export the individual worklogs: author, date and time spent. A work item export only gives totals, so you need the worklog API or an app.
- Keep a table of rates with one row per person and start date, sorted by date.
- For each worklog, look up the last row for that person with a start date on or before the worklog date. In Excel or Google Sheets, filter the table to that person, then use
XLOOKUPwith match mode -1 on the dates. - Multiply hours by the rate you found.
It works for one project and a few people. It gets harder once worklogs are edited later, because yesterday’s export no longer matches today’s report.
Things that catch people out
- Back-dated changes. A rate with a start date in the past should change costs from that date. Make sure everyone expects that before you add one.
- Worklogs edited later. Moving a worklog’s date can move it to a different rate. That’s correct, but it surprises people who have already sent an invoice.
- Cost and billing rates. What a person costs you and what you charge for them usually change on different dates, so keep them apart.
- Rounding. Rounding each worklog gives a slightly different total from rounding the sum. With many very short worklogs the gap can be visible: in our test, 1,288 one-minute worklogs at 100 per hour came to 2,399.29 per worklog against 2,395.00 exact. Pick one method and tell finance which.
- Authors you can’t see. Worklogs synced from another time app can show that app as the author in Jira. Per-person rates then need another source.
With an app
The comparison of cost and budget apps shows which describe dated rates, and when each fits. Test any of them the same way:
- Set a rate and note the total for a closed month.
- Add a new rate starting this month.
- Check the closed month’s total hasn’t moved, and that new work uses the new rate.
Burnrate is the app I make. You set a default rate, roles and people, each with dated cost and billing rates, and it prices native Jira worklogs. A person’s own rate comes first, then their role’s, then the default. A new rate applies from its date, so past costs change only if you add a rate with an earlier date. It rounds per worklog. It’s new, with no reviews yet, and it’s on the Atlassian Marketplace.
FAQ
Does Jira have hourly rates? No. Jira records who logged how much time on which day, but has no rates or costs.
How do I stop a rate change from changing past project costs? Keep each rate with a start date, and price each worklog with the rate that applied on its own date.
Which Jira apps support rates with effective dates? The listings or docs for Burnrate, Financial Manager by Tempo, Time & Cost Tracker and MarginRadar describe them. Listings for other apps may not say, so check before you buy. Checked on 4 Nov 2026.
Should cost rates and billing rates be separate? Usually yes. They change at different times, and margin is the difference between them.
What happens if a worklog’s date is changed after a rate change? It should be priced with the rate for its new date, which can change a total you’ve already reported.
Jira and Atlassian are trademarks of Atlassian. Other app names are the property of their owners. Kayabyte is an independent developer and is not affiliated with or endorsed by Atlassian.
More guides
- Atlassian Connect end of support: what Jira and Confluence admins should check before 31 January 2027
- 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
- How to see what a Jira epic costs from worklogs
- 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
- Why adding request participants in bulk floods inboxes in Jira Service Management, and how to avoid it
- How to add public holidays to a JSM SLA calendar
- Kanban WIP limit per person in Jira: beyond column limits