Billing Best Practices

How to invoice clients for monthly retainers (with template)

By Darren Clark ·

Illustration: One oversized coin sliding down a smooth curved chute toward a slot in a flat surface, bold graphic silhouette

Invoice on the same day every cycle, in advance, with the period covered and the included hours printed on the invoice itself. Then automate it, because the reason retainer invoicing goes wrong is almost never that someone didn't know how — it's that the 1st arrived in the middle of a launch week and nobody sent it.

That's the short answer. Here's the actual loop, with numbers.

What should a monthly retainer invoice include?

A monthly retainer invoice needs seven things on it. Miss any of them and you've created a question, and a question is a week of delay while somebody in accounts waits for you to answer it.

  • Client and your details — the boring bit, but get the legal entity name right or it can bounce in their system.
  • The period covered — "1–31 March 2026", spelled out. This is the line people skip and it's the one that prevents the most queries. Without it, a March invoice sent on 1 March looks identical to a February invoice sent late.
  • The retainer fee — the agreed number, as a single clear line.
  • What's included — the hours or the deliverables the fee buys. Put it on the invoice, not just in the contract nobody's opened since signing.
  • Delivered hours — optional, but worth doing if you want the client to see the value. More on this below.
  • Overage as its own line — never folded into the fee. Separate line, hours, rate, total.
  • Payment link, terms and due date — one click to pay, and the due date as a date, not "net 14". Make them do zero arithmetic.

The invoice template has the layout if you'd rather copy something that already works than build one.

The monthly loop, with numbers

Made-up example so this is concrete: a $4,000/month retainer, 25 hours included, extra hours at $180. Billing date is the 1st. Fictional client, illustrative numbers — but the shape is the real one.

1st of the month. The invoice goes out. $4,000, period 1–31 March, 25 hours included, due the 15th, payment link on it. It covers the month that's starting, not the one that just ended.

Through the month. Time gets logged like it always does. What's different is that somebody is comparing the running total to 25. By the 18th you're at 22 hours with two weeks of requests still coming — which is a decision point, not a disaster, as long as you can see it.

When you cross 25. You cross it on the 24th. The client asks for one more round on the campaign, which is four hours. You say yes — and note it as billable overage right then, on the day, while everyone remembers the request.

1st of the next month. The April invoice goes out: $4,000 for April, plus a separate line — "March overage: 4 hrs @ $180 = $720". Not buried in the fee. Its own line, dated, tied to the request.

That's it. Cycle repeats. The only actual work is the middle bit, and it's the bit almost everyone skips.

Illustration: a stack of identical coins with a single extra coin standing apart from the stack, bold flat graphic

The overage conversation (which shouldn't be a conversation)

Billing the extra hours in the month they happen beats saving them for a renegotiation, and it isn't close.

Here's what saving it up looks like. You go over by four hours in March, six in April, seven in May. You say nothing because each one individually feels too small to bring up. Then in June you sit the client down and explain the retainer needs to go from $4,000 to $5,200, and you've got 17 unbilled hours you'd like to talk about.

From your side that's fair. From theirs, it's a surprise price rise plus a bill for work they thought was included, because you told them it was included by never charging for it. Three months of silence taught them the number was $4,000 no matter what they asked for.

Now the version where you bill it in March. It's a $720 line on an invoice, next to a request they made twelve days ago and remember making. Nobody has to be talked into anything.

The trick isn't being braver in the conversation. It's tracking hours against the fee as the month runs, so overage is a number you both watched arrive rather than news you have to break. When the client can see they're at 22 of 25 on the 18th, the fifth round of revisions becomes their decision, not your problem.

Common mistakes

Billing in arrears out of politeness. It feels more reasonable to bill for work you've already done. All it does is push your money 30 to 60 days behind the work and turn a fixed retainer into a variable one. Bill in advance for the month ahead.

Skipping the period-covered line. The single cheapest fix on this list. Without it, every invoice looks the same and nobody in accounts can tell whether they've already paid this one.

Letting overage slide "just this once". It's never once. And the second time you let it go you've set the price of extra work at zero, permanently.

Letting the invoice date drift. The 1st, then the 4th, then the 2nd, then the 9th because you were away. Your invoice needs to be boring and predictable to get paid without thought. Drift makes it an event, and events get questioned.

Not showing delivered hours. If the client never sees what 25 hours bought them, the fee starts looking like a subscription they could cancel. Showing hours delivered — especially in a month where you went over and didn't charge — is the cheapest retainer-defence there is.

Illustration: a row of stones spaced at perfectly equal intervals along a line, one nudged out of step, bold flat silhouette

Or just don't do it manually

Everything above is a process that depends on a human remembering, on the 1st, in a busy month, for years. That's the weak link — not the knowledge.

Automated retainer invoicing in Handl closes it. The invoice raises itself on the retainer cycle. Hours come in from the tools you already use — Harvest, Toggl, Clockify, Hubstaff, or Monday, Asana, Jira, ClickUp and Linear — and get tracked against the retainer fee, so you see 22 of 25 on the 18th instead of finding out in the post-mortem. If it doesn't get paid, the AI billing agent sends the scheduled, escalating reminders so you're not the one chasing. Clients pay by link with no login, and the money lands in your own Stripe account.

$29/mo to start, 7-day free trial, and pricing is by plan rather than per seat — which matters once you've got a few account managers touching the same retainers.

For the bigger picture — the different retainer models, rollover policies for unused hours, when a retainer is the wrong shape entirely — the full guide is here: retainer billing for agencies.

Darren Clark ran digital agencies for over 20 years before building Handl.

← All articles