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:

  1. Never overwrite a rate. Add a new one with its start date, and leave the old one.
  2. Use the worklog’s date, not today’s. A worklog dated 28 February uses February’s rate, even if it was logged in March.
  3. 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

  1. 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.
  2. Keep a table of rates with one row per person and start date, sorted by date.
  3. 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 XLOOKUP with match mode -1 on the dates.
  4. 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

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:

  1. Set a rate and note the total for a closed month.
  2. Add a new rate starting this month.
  3. 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.