For agencies and freelancers
Charging for maintenance without wincing at your own quote
In a month where nothing breaks, your client feels they paid for nothing. In a month where everything breaks, they think you took too long. Here is how to set a price that survives both.
What you leave with: a worksheet to fill in with your own numbers, and an email template to introduce a retainer to a client who has never had one.
What you get paid for is not what you do
Maintenance has a birth defect: when it works, it is invisible. A client who went twelve months without a single outage does not think “nicely done”. They think they paid twelve times for nothing, and they will say so out loud at renewal time.
The usual reflex is to drop the price to avoid the conversation. That is the worst possible answer: it confirms the work was not worth much, and it leaves you with the same obligations for less money. The right answer is to make the work visible, then price it from what it actually costs you.
This page will not give you a rate. We do not know what you front for your clients, we do not know what your hour is worth, and a “market price” copied from a blog is nobody's price. What it gives you is the method to find yours, and the material to defend it.
Your floor, worked out with your numbers
Every maintenance contract has a floor: the amount below which you lose money every month without noticing. Fill in both columns thinking of one real client. Nothing is stored, nothing is sent anywhere.
What you front every year
What you pay for this client that leaves your own account, per year. Leave at zero anything they pay themselves.
Every one you manage for them, defensive registrations included.
This client's share if the server is shared with others.
Anything that renews and without which a feature goes dark.
Off-site backups, restore space, archiving.
What you pay so you find out before they do that something went down.
The time you hold every month
Not the time you spent last month: the time you refuse to sell to anyone else because this client might call.
Updates, checks, small requests, and the slack for the incident that will eventually come.
The one you charge on projects. An hour of maintenance is not worth less than an hour of build.
Monthly floor
0
Yearly floor
0
This is a floor, not a price: it holds no margin, no risk, no value. Your price is built on top of it. The gap between the two is exactly what you are negotiating — you may as well know where it starts.
The four line items everyone leaves out
The conversation itself
A client who writes “is this normal?” at six in the evening costs ten minutes of reply and twenty minutes of concentration. Across a full year, that stops being a rounding error.
The renewals you front
You pay the domain and the hosting up front, you invoice at the end of the year, sometimes never. That is an interest-free loan you are granting your client.
Keeping up
Tracking versions, vulnerabilities, and the shifting rules at the big mailbox providers: nobody bills that time, everybody spends it.
The day it falls over
One serious incident eats a working day. If your retainer provisions for none, the first incident of the year wipes out twelve months of margin.
The three billing models you actually meet
None is better in the abstract. You choose based on what the client is willing to understand, and what you are willing to carry.
| Model | What works | What hurts |
|---|---|---|
| Monthly retainer | Steady revenue, one conversation a year, the client knows what they are paying for. | You have to hold the line when the client asks for “just one small thing” for the fifth time that month. |
| Hourly, as it comes | You are paid for what you do, no month runs at a loss. | The client hesitates to call, lets it drift, and the problem costs three times more by the time it reaches your desk. |
| Yearly retainer, at renewal time | A single invoice, placed when the domains and hosting renew: the moment the spend feels natural. | One chance a year to lose the client, and twelve months of cash to carry if you front the costs. |
A fourth pattern is common and is not a model: maintenance given away to win the project. It turns into debt, never into loyalty.
The sentence that gets the quote signed
A maintenance quote is rarely refused on the amount. It is refused because the client does not know what they are buying. So write two lists instead of one: what is included, and what is not.
The second list matters more, and it is the one everyone skips. It stops the rebuild disguised as “a quick tweak”, and it gives you something extra to sell rather than a conflict to manage. A contract that does not say what it excludes ends up including everything.
Say what you monitor, too, and how often. “I check regularly” is worth nothing. “Domain expiry, the certificate, site availability and the reputation of your sending addresses are checked continuously, and you get a report every month” is verifiable — and therefore billable.
The email that introduces a retainer to a client who has none
Adapt it, obviously: the brackets are there to force you to. It does not ask permission. It announces an arrangement and leaves the choice of date.
Subject: Your site in [year]: what I'd like to put in place
Hi [first name], I'm reviewing the sites I look after, and I'd like to propose something clearer for yours. Right now I handle it case by case: you write to me when something's wrong, and I fix it. That works, but it has two flaws. You never know what it's going to cost, and I find out about problems at the same time you do. Here's what I'd like to set up from [date]: — updates and backups, done and verified; — continuous monitoring of the domain name, the certificate and site availability; — [number] hours a month for your requests, carried over to the following month if unused; — a report you receive every month, listing what was checked and what was done. What this does not cover: new features, redesigns and content writing. Those I'll keep quoting separately, exactly as I do today. The amount: [amount] per month excluding tax, [term] commitment, then cancellable with [notice] notice. I'll call you at the end of the week to talk it through. Just tell me if you'd rather keep things as they are — that's genuinely fine. [signature]
The four objections, and what to say back
“That's a lot for doing nothing”
Don't defend the price, show the inventory. The number of checks actually run this month is a figure, and a figure changes a conversation. That is the entire point of a monthly report.
“My nephew can do it”
Probably, once. The question is not who installs the updates, it's who answers on the Saturday of your busiest week when the order form stops sending. Ask it exactly like that, without sarcasm.
“Let's look at it next year”
Accept, then write down what that means: who pays the domain renewal, how fast you respond to an outage, and at what rate. A documented refusal beats a vague understanding that will come back to you.
“Send me a proposal”
The most dangerous of the four, because it sounds like a yes. Put the follow-up date in the message itself, or the proposal joins the other four at the bottom of their inbox.
Where to start tomorrow
Do not announce a retainer to fifteen clients on the same day. Take the three you already front money for — the ones whose domain or hosting you pay — and start there: the conversation begins with a fact instead of an intention.
For the rest, wait for the next incident. That is not cynical, it is the only moment when the value of the work is visible from both sides. Fix it, then send the email above while the memory is fresh.
And before any of that, know what you are carrying. Plenty of freelancers discover, doing the inventory, that they still hold domains for former clients, that they still pay for them every year, and that they stopped invoicing for them long ago.
The report that makes the invoice obvious
DomainVigil watches the domains, certificates, availability and reputation of the sites you manage, and publishes a status page at your client's own address. It is the inventory you need at invoicing time — and it reads without you in the room.
Try it on one clientNo card required. You stay in control of what your client sees.