Approval and invoicing

How do you create an invoice from logged hours?

Updated 5 min read

Short answer

You close a period, check or approve the hours, and select only the billable hours that haven't been invoiced yet. You group them by project or activity, multiply by the agreed rate and prepare a draft invoice. After a final check you send the invoice with a breakdown of the hours, and mark those hours as invoiced so they don't go out again.

Which steps sit between hours and an invoice?

Invoicing from hours is mostly a matter of a fixed order. Skip a step and you invoice too little, too much or twice.

  1. Pick the period, usually a calendar month, and have everyone complete it.
  2. Approve the hours or review them yourself. See approving timesheets.
  3. Per client, select the billable hours from that period that haven't been invoiced yet.
  4. Turn them into a draft invoice, grouped the way you agreed with the client.
  5. Check the draft: rates, totals, descriptions and the breakdown.
  6. Send the invoice and make sure the hours are marked as invoiced.

How do you group hours on an invoice, and how much detail do you give?

There's no fixed rule; it depends on what the client wants to see and how much trust there is. A regular client on an ongoing engagement often wants one line per project. A new client, or one who has to justify costs internally, wants more detail.

A practical middle ground: on the invoice itself, one line per project or activity with the number of hours and the rate. Put the per-entry detail in an attachment.

Level of detailWhen it fits
One line with a totalRegular client, same type of work, high trust
Per projectSeveral projects for the same client
Per activityWork at different rates, such as advice and delivery
Per entryNew client, discussion expected, or the client asks for it

Should you attach a time breakdown?

It isn't always required, but it heads off most questions. A breakdown shows the date, person, description and duration of each entry. The client sees what they're paying for, and you don't have to explain anything.

So watch the descriptions. Internal abbreviations, file names or ‘misc.’ don't belong in a document the client reads. What makes a good description is covered in billable hours.

Which hours don't you invoice?

Not everything that's logged belongs on an invoice. Filter before you invoice.

  • Non-billable hours, such as admin, sales and internal meetings.
  • Leave and sick days. They're in your records for payroll, not for the client.
  • Trips and travel time, unless you agreed otherwise with the client, such as a fixed amount per trip or travel at a lower rate.
  • Hours already invoiced, even if they were edited later.
  • Hours not yet approved, if you work with approval.

How do you avoid invoicing hours twice?

Give every entry an invoice status: invoiced or not. Set that status when the invoice is created, not later by hand. For the next invoice, select only hours without that status.

Watch out for hours edited after invoicing, or logged after the fact into a month you've already invoiced. Those fall outside your period selection. So filter on ‘not yet invoiced’, not just on a date range.

If you use accounting software, create draft invoices and only send after checking. Deleting a draft is easier than issuing a credit note.

How does it work with a budget, prepaid hours or a monthly fee?

With an hour budget you simply log hours on the project and track how much is left. Warn the client before the budget runs out, not after. Only invoice hours over budget if that's agreed.

With a fixed monthly fee or retainer you invoice the agreed amount regardless of hours. Keep logging the hours anyway: then you can see whether the price still matches what the work costs.

How Half5 does it

In Half5's reports, "Create draft invoices from report" prepares draft invoices in one go. They include only work entries with a billable activity (or no activity) that haven't been invoiced yet. With "Approve hours before invoicing" switched on, only approved hours. Trips and leave never become invoice lines. Per-client trip charges (a fixed amount per trip, per km or travel time) show in the reports, but you add them to the invoice yourself. You export the breakdown to CSV, Excel or PDF; the invoice status column shows what's already been invoiced.

The invoice itself lives in your accounting software, and the integrations differ. Moneybird creates a draft invoice, can send it by email and syncs contacts and projects. WeFact creates a draft invoice, sends by email, syncs debtors and can create credit invoices and mark invoices as paid. Exact Online creates a draft invoice and syncs contacts and ledger accounts; you send it from Exact itself. e-Boekhouden has no draft invoice: Half5 creates the invoice and you send it manually; contacts and ledger accounts sync.

Projects have a budget in hours, showing budget used and a warning when you go over. A fixed monthly fee or prepaid bundle isn't an invoice type in Half5; you invoice those in your accounting software.

Frequently asked questions

How often should you invoice from hours?

Most businesses invoice monthly, at the start of the next month. For large projects, invoicing per milestone or every two weeks can help your cash flow.

Do I have to put every entry on the invoice?

No. One line per project or activity on the invoice is often enough. Send the per-entry detail as a breakdown.

What do I do with hours I forgot to invoice?

Add them to a later invoice, with a clear description of the period. That's why filtering on ‘not yet invoiced’ works better than filtering on date alone.

Can I put travel costs on the same invoice?

Yes, if you agreed that with the client. Put them on a separate line so the client can tell hours and travel costs apart.

What if the client disputes an entry?

Correct the invoice with a credit note or correction line, and record the agreement for next time. A clear description on every entry prevents most disputes.

Someone cycles home along the canal after work

Close your laptop on time today.

Try Half5 free for 30 days, on your own or with your whole team.