Why an invoice does not change when you fix a rate
Understand what a generated invoice freezes, and the three ways to correct one after the fact.
This is the single most common source of confusion in the financial area, and it is deliberate behaviour rather than a fault. A generated invoice is a frozen document, not a live view of the jobs behind it.
What gets frozen
At the moment you press Generate invoice, the system writes a snapshot: the billing party, the tax rate, the date range, the invoice frequency, and the full row list with each job’s unit, dates, assignees, and amount. It is written once and never recomputed.
The consequence is that editing a rate table, renaming a unit, reassigning a job, or changing a holiday multiplier has no effect on an invoice that already exists. Nothing about it is recalculated in the background.
This is what makes an invoice safe to send. A document sitting with an approver cannot quietly change value underneath them.
Correcting an invoice
There are three routes, in increasing order of blast radius:
- Edit the invoice. The edit dialog rewrites the stored snapshot. Its
Refresh ratesbutton re-reads amounts and replaces only the money — every other invoiced fact stays exactly as it was. - Re-calculate. Available to admins on cleaner invoices, this voids and rebuilds the whole period.
- Void and re-issue. The blunt instrument, and the only real “regenerate”.
Voided invoices cannot be edited, and invoices generated automatically cannot be edited at all — they have no creating user to attribute the change to.
Two side effects worth knowing
Saving an edit resets the invoice status back to Draft, so an invoice already submitted has to go through approval again.
The service period shown on the invoice is recalculated from the rows that remain when you save. Deleting the earliest or latest job therefore changes the period the invoice claims to cover.
Invoices are never deleted, only voided. That is why a job can briefly appear on more than one live invoice — voiding the duplicate is the intended way to resolve it, not deleting anything. If you are hunting an invoice that will not appear in the list, check the service-period filter first: it defaults to the last two calendar months and it is the only date axis the list has.