Guide · 9-minute read

How to invoice hourly work cleanly.

Hourly invoicing is one of the easiest things to make harder than it needs to be. The math is straightforward; the friction is in inconsistent line items, surprising clients, and chasing payment after send. This guide walks through how to invoice cleanly.

Last updated May 27, 2026

Three invoice models, pick one as the default

Time-derived: every line is tracked hours × project rate. Clean when all work was tracked. The risk is forgetting flat fees that didn't get tracked.

Flat-fee: every line is a manually-entered description, quantity, and unit price. Clean for milestone-based or retainer billing. The risk is forgetting tracked work that should also be billed.

Mixed: tracked time pulls in as time lines; manual lines layer on for retainers, expenses, milestones, or anything you didn't track. This is the right default for most freelancers and small agencies — the spreadsheet path leads here anyway, so just start here.

Line item anatomy

A clean hourly line has four parts: description (what you did, in plain language the client recognizes), quantity (hours, with two decimal places), unit price (the project rate), and amount (computed). A clean flat-fee line replaces hours with a unit label ('engagement', 'milestone', 'monthly retainer') and quantity 1.

Avoid: cryptic project codes the client doesn't recognize, abbreviations only your team uses, line items with no description, or a single line item for the whole month ('Services rendered — $4,500'). Clients pay invoices they understand faster than invoices they don't.

Discount and tax, in that order

Apply discount first, tax second. Math: subtotal − discount = taxable amount; taxable amount × (1 + tax rate) = total. This is the universal convention; if your local tax rules differ, encode the difference in the tax rate (a 'discount before tax' system is fine for nearly every jurisdiction).

Show the discount as its own line so the client can read it. Hidden 'auto-discounts' embedded in line items create reconciliation work later — both for you and for their accountant.

Payment terms — Net what?

Net 15 (payment due 15 days after invoice date) is increasingly the default for service work. Net 30 is the corporate default and what enterprise clients usually expect. Net 7 is reasonable for retainers paid in advance.

Set the term per client when you onboard them — most billing tools have a 'default payment terms' field on the client record. Then due-date computation is automatic on every invoice and you don't have to remember.

Locking what you've sent

Once you send an invoice, the line items, the bill-to address, and the rates should be frozen for good. If your client renames their company next month, your old invoice still says the old name — that's correct behavior. The client's copy and your copy match. Always.

Tools that let you edit sent invoices are the wrong tools for this. The right model: sent = immutable. If you actually need to change a sent invoice, cancel it and reissue with a new number. The audit trail is preserved.

PO numbers when the client requires them

Corporate clients often require a purchase order number on the invoice. Add it to the client record once ('this client requires a PO'); the invoice form surfaces a PO field on those clients only, and the number prepends to the notes section.

Don't sneak it into a generic 'notes' or 'reference' field — accounts payable teams scan for it in predictable places, and a misplaced PO is the most common reason an invoice sits in a queue for 60 days.

Getting paid

Most invoice tools route payments through their own processor — funds sit with the tool for a few days, then transfer to you. This is fine for casual users; it's frustrating for businesses that need predictable cash flow.

Stripe Connect direct charges flip the model: funds settle directly to your Stripe account at the moment of payment. The billing tool never holds the money. Hoursmith uses this model on Studio and above; check whatever tool you're evaluating for the same property.

Following up without being annoying

The right cadence is one reminder around the due date, and one more 7-14 days after. Anything more frequent and you train clients to ignore your emails; anything less and balances drift to 90+ days.

A polite tone is more effective than an angry one. 'Just a friendly reminder, this invoice is due [date]. Let me know if anything's blocking it on your end' beats 'PAYMENT OVERDUE' in every population we've ever surveyed. Save the strong language for the third reminder, if it gets there.

How Hoursmith does it

How Hoursmith does it

Hoursmith's invoice builder defaults to the mixed model — pull every billable un-invoiced entry from a client, layer flat-fee lines on top. Discounts apply before tax automatically. Due date pre-fills from the client's default payment terms.

Sending freezes line rates and the bill-to snapshot for good. PO numbers surface as a field only on clients you marked as 'requires PO'. Online payment (Studio+) routes via Stripe Connect direct charges — the money lands in your own Stripe account, not ours.

Overdue reminders (Studio+) send through your BYO email if you've configured one, so they arrive from your domain. Manual offline payments (wires, checks) record the same way as online payments — single accounting path.

Common questions

  • What's a fair Net term to set?

    For most freelance and small-agency work, Net 15 is increasingly standard. Net 30 is the safe corporate default. Anything longer (Net 60+) usually indicates a client cash-flow problem and is worth addressing directly rather than just accepting.

  • Should I charge late fees?

    Specify them in your engagement contract, not as a surprise on the first overdue invoice. A standard late fee is 1-1.5% per month. Most clients pay before a late fee triggers if your reminder cadence is clean — late fees are a backstop, not a revenue stream.

  • What about international clients?

    Invoice in the currency of the engagement. Stripe Connect handles whatever currencies your connected account supports; for non-card methods (wire), include the SWIFT details and your bank's address. Hoursmith stores currency per-invoice, so multi-currency in one workspace is supported.

  • Should I batch invoices monthly or send each as soon as work completes?

    Monthly is the common cadence and most clients expect it. Faster (per-milestone) is fine for clearly-scoped engagements. Faster than that becomes a paperwork burden on both sides. The exception is one-off short engagements, which can invoice immediately on completion.

Related

Want this loop in your billing tool?

Hoursmith ships every pattern in this guide as a first-class feature. Free for solo freelancers; flat-fee for teams up to 25.

Free for solo freelancers · No credit card · Cancel any time

Skip to content