Skip to main content
Every time entry stores the rate it was priced at. Change a rate tomorrow and yesterday’s numbers stay exactly where they were.

What a snapshot is

When a time entry is saved, TimeTracker resolves the rates for that person on that date and copies three values onto the entry: Those three values are then fixed. Nothing re-reads the rate table for that entry again.

Why it matters

An invoice is a legal document and a budget is a commitment. If a rate change could reach backwards, three things would break at once:
  • An invoice you already sent would stop matching the numbers behind it.
  • A closed month’s revenue would move.
  • A project you delivered under budget could quietly go over it.
Snapshots make all three impossible.

Before and after – a concrete example

Sarah Lin bills at $100/hour. In March she tracks time on Bluebird Coffee – Website Redesign. March – rate is $100/hour Daniel invoices that $1,500 at the end of March. 1 April – Maya raises Sarah’s rate to $125/hour She adds a new row: 125.00 USD, effective 1 Apr 2026. After the change March is untouched. The March invoice still says $1,500. April prices at the new rate. Without snapshots, the March rows would silently become 15 × $125 = $1,875 – $375 that was never invoiced and never agreed.

What is snapshotted, and what is not

Invoices snapshot too

The same rule runs one level up. An invoice stores its own totals, its tax lines, its exchange rates and its “bill from” block at the moment it is created.

What a rate change actually does

It changes which rate applies to work recorded from its effective date onward. That is the whole effect.
1

You add a dated rate

A new row joins the person’s rate history.
2

Existing entries are untouched

They keep the figures they were saved with.
3

New entries resolve fresh

Each new entry looks up the rate in force on its own date, then freezes it.

Removing a rate is also safe

Deleting a row from Rate history does not re-price anything. The confirmation modal says so plainly:
Time already tracked keeps the rate it was recorded at.
What changes is which rate applies to new work dated in that window. The modal names the rate that takes over, or warns you that the person will have no rate for that period until you add one.

What if I really do need to re-price?

There is no bulk re-price button, and that is deliberate. Options, in order of preference:
1

Fix the rate first, then record

The cleanest path. Set the correct dated rate before the work is tracked.
2

Adjust the invoice

If the work is already invoiced and the amount is wrong, issue a credit note or void the invoice and raise a corrected one. See /invoicing/void-an-invoice.
3

Re-enter the time

For a small number of entries that are not yet invoiced, delete and re-enter them once the correct rate is in place.

Permissions

Snapshots are not a permission, but who can see them is: An entry’s cost figure is removed before it reaches anyone without the cost capability. See /rates/rate-permissions.

Common questions

Because the entry was priced when it was saved, and there was no rate at that moment. Set the rate, then re-enter the affected time.
You can set a past effective date, but it will not re-price entries that already exist. It only affects entries created from now on that are dated in that window.
No. Approval and invoicing change the entry’s status, never its money.
Editing an entry recalculates its value from the rate stored on it, not from the current rate table.
Only for new work. Budget consumption is built from the values stored on entries.
Yes, unless you remove a row yourself. Rows are added, never rewritten.

Troubleshooting

How rates are chosen

What gets snapshotted.

Set a person rate

Adding a dated rate.

Billable rates

What you charge.

Cost rates

What an hour costs you.

Void an invoice

The correction path for issued invoices.

Invoice sender details

The same snapshot rule for your company block.