Skip to content
Agencies Guide

How to Set Up Retainer Billing for Agency Clients

A practical guide to retainer agreements: how to structure them, track hours against them, invoice monthly, and handle overages without awkward conversations.

Vipul A M Vipul A M · · 3 min read
Billing
Miru invoicing screen with invoice status and totals
This article is currently written in English. Navigation, dates, and calls to action follow your selected language.

How to Set Up Retainer Billing for Agency Clients is straightforward once you stop adding process theater.

A practical guide to retainer agreements: how to structure them, track hours against them, invoice monthly, and handle overages without awkward conversations. We write from operating experience, not trend-chasing.

Structure the agreement clearly

Miru invoicing for retainer clients

A retainer has three numbers: the monthly fee, the included hours, and the overage rate.

Monthly fee: What the client pays every month, whether they use the hours or not. This is the point — they’re buying availability, not just output.

Included hours: The number of hours covered by the fee. Be specific. “40 hours of development work per month” is clear. “Ongoing support” is not.

Overage rate: What you charge per hour beyond the included amount. This should be in the contract before you start. Negotiating overage rates mid-project is a conversation nobody enjoys.

Put all three numbers in writing. Not in an email. In a signed agreement. Retainer disputes are almost always the result of ambiguity in the original terms, not bad faith.


Track every hour against the retainer

This is where most agencies fail. They have a retainer agreement but track time the same way they track project work — loosely, inconsistently, and without tying entries back to the retainer pool.

Create a dedicated project in Miru for each retainer client. Every time entry against that project counts toward the monthly pool. At any point in the month, you can see exactly how many hours you’ve used and how many remain.

miru time create --project-id 15 --duration 120 --note "Refactored auth middleware, patched session timeout bug"

Two seconds. Every entry logged against the retainer project. At month end, the math does itself.

The client should see this too. Share a report or give them portal access. Transparency is what makes retainers sustainable. When the client can see they’ve used 38 of 40 hours by the 20th, they’ll either prioritize better or approve the overage willingly.


Invoice on the same day every month

Pick a date. The 1st works. So does the 15th. What doesn’t work: “sometime around the end of the month, depending on when I remember.”

Generate the invoice directly from Miru. The retainer fee as the base line item, any overage hours as additional line items at the agreed rate, and any pass-through expenses attached to the project.

For retainer clients on autopay, set up Stripe recurring billing. The invoice generates, the charge processes, the receipt sends. One less thing to manage every month. One less thing that can fall through the cracks.


Handle overages before they become surprises

The worst thing you can do with overage hours is surprise the client at invoice time. “By the way, you went 15 hours over this month, here’s an extra $2,250” is a relationship-damaging sentence.

Instead: send a heads-up at 80% utilization. A quick message — “You’ve used 32 of 40 hours with 10 days left in the month. Want to discuss priorities or approve overage?” This takes 30 seconds and prevents a 30-minute argument later.

Miru’s reports show retainer utilization in real time. Check it weekly. If you’re trending over by mid-month, have the conversation early.


The bottom line

Retainer billing works when three things are true: the terms are clear, the hours are tracked, and the invoices are predictable. Miss any one of those and you get disputes, scope creep, or both.

Set up the retainer project. Track every hour. Invoice on a schedule. Communicate overages early. That’s the whole system. Start with Miru and get the first retainer running this week.

More agency billing tips →

Hard Stop

Run this loop for two weeks without skipping cleanup. The compounding effect is real.

Start with Miru or read the docs.

Share:
Vipul A M

Vipul A M

Co-founder at Saeloun. Building Miru. Rails contributor. Shipping from Pune, India.

Put it to work

Run one cleaner billing cycle in Miru.

If this article is about tracking time, billing clients, comparing tools, or automating work, Miru is the product version of that idea. Start free, invite the team, and send the next invoice from tracked work.

What you get

  • Time tracking, invoices, expenses, and payments in one place.
  • Free for up to 5 users. Pro is $1/member/month.
  • Open source, with CLI, API, MCP, and self-hosting paths.
See Miru

The article is the argument. Miru is the workflow.

Track the work, approve the hours, send the invoice, and get paid without bolting together three separate tools.

Billing
Miru invoicing screen with invoice status and totals
Invoicing Miru