Invoicing by the hour
An hourly invoice is hours times a rate. Most of what goes wrong with one comes down to what counts as an hour, so keep the rows, the expenses and the deposit apart.
How an hourly invoice is worked out
Each row is its hours multiplied by its rate, and the rows are added together. Expenses go on at face value. After that, everything follows the order the invoice editor on this site prints:
| Hours | Every row, hours multiplied by the hourly rate |
|---|---|
| Expenses | Added as entered, never multiplied by hours |
| Subtotal | Hours plus expenses |
| Discount | Taken off the subtotal, never off the tax |
| Tax | Charged on the subtotal after the discount |
| Total | Subtotal, minus the discount, plus tax |
| Balance due | Total minus whatever has already been paid |
One row per rate, not one row per day
Split the rows where the rate changes, and nowhere else. Say you worked 40 hours at one rate. A single row of 40 comes to the same as 8 rows of 5, but the single row is the one a client queries. The splits worth making are the ones the invoice has to justify: a different task, a different person, out-of-hours work. I wouldn't go further than that. One row per day turns the invoice into a timesheet, and a timesheet invites a line-by-line argument about work that's already done.
Expenses are not billable hours
Put an expense you're passing on in the expenses section. There it's billed once. Entering it in the hours section at a quantity of 1 gives the same total, but it reads as an hour worked, and it sits in the column your hourly rate is in. Travel is an expense too: the mileage calculator works out the distance at your rate per mile or kilometre, plus any travel time.
If you mark an expense up instead of passing it on at cost, enter the marked-up figure. The calculator has no markup field on purpose. If a markup is worked out for you and never shown, you can't explain that figure when the client asks about it.
Tax-inclusive and tax-exclusive rates
A rate includes tax when the rate you quoted is what the client pays. The tax is then extracted from the total rather than added to it, so changing the tax rate moves the tax line and leaves the total where it is. The calculator has a setting for this, but on a real invoice it's something you decide when you quote. Leave it unticked and the tax goes on top, which is the usual practice for business-to-business work in most of Europe and North America.
Settle this before you quote, because the gap comes out of your pocket. For example, on 40 hours at 25, exclusive tax at 10% is 100 and the total is 1,100. Inclusive, the tax is 90.91 and the total stays at 1,000. If you get it the wrong way round, you're the one who absorbs the difference.
Deposits, and why the balance stops at zero
A deposit larger than the total is clamped to the total, so the balance due stops at zero instead of going negative. The invoice editor applies the same rule, so the figures don't change when you move them into it.
If you do owe the client money, that's a refund. I recommend giving a refund its own document and number, rather than a negative line on this invoice.
Short version: Each row is hours times its rate, expenses go on once at face value, and the discount, tax and any deposit follow. Split rows where the rate changes, not by day, and keep expenses out of the hours column.
Last updated 22 September 2026