There is a moment, usually towards the end of the year, when you try to put down a list of everything you renew for your clients. Domains, hosting, mailboxes, maintenance contracts, a few licences. While you write it, it feels like a long list of small things.
Then you add it up, and the total does not match the feeling. Most of the money is not where you expect it. It sits in two or three items that take up exactly one line, like all the others. And the one that worries you most, the domain about to expire, is almost always the least significant in financial terms.
It is worth looking at that list for what it really is: not a set of deadlines, but a map of your recurring revenue. That changes the priorities, and it changes what is worth automating first.
The domain is the item you notice most and the one that weighs least
A domain renews for ten or fifteen euros a year. Even with fifty clients, the whole “domains” line stays a figure that will not move any agency’s accounts. Yet it is the one that causes most of the sleepless nights, and not without reason: it is the only renewal that, if it is missed, switches everything off at once. The site goes offline and the linked mailboxes stop working at the same moment, which means the client notices before you do.
There is also more room to recover than people think. A .it can be renewed up to thirty days after the deadline with no surcharge; the redemption period, where there is one, runs from zero to forty-five days depending on the extension. Restoring an expired .it costs around twelve euros on top of the renewal, a .com goes past sixty, with differences between registrars. We covered this in detail in what to do when a client’s domain has expired.
The point is that a domain is a problem of risk, not of revenue. Treating it as the centre of your deadline tracker is the most common way to build a system that watches the twelve-euro item perfectly and loses sight of everything else.
Hosting is where the recurring side starts to weigh
Hosting sits an order of magnitude above domains, and it often has a more complicated structure: plans that renew on different cycles, shared space where several clients sit on the same machine, mid-year upgrades that change the amount of the next renewal. It is the first item where what you take in and what you pay out start to genuinely diverge.
It is also the item where the provider matters. You can move a domain in half an hour; hosting, no. When a server plan renewal arrives together with a price increase, the choice is not “renew or not”, it is “renew, migrate, or pass the increase on to the client”, and the three options cost very different amounts of work. That is why every deadline in your list should carry its provider with it, not just the date.
In our experience it is also where the most forgotten material piles up: space still active for sites that no longer exist, oversized plans left over from a migration, services switched on for a project that never started. None of them sends a warning, because from the provider’s point of view everything is fine.
Maintenance is not resold: it is your own work, repeating
This is where the wrong word gets used most often. Domains and hosting you resell: there is a provider, you buy at one price and invoice at another. Maintenance is not like that. There is nobody to buy it from, so it has no purchase cost: it costs your own hours, which is an entirely different thing to work out.
That makes it, at the same time, the item with the highest margin on paper and the least certain margin in practice. A maintenance contract worth a few hundred euros a year looks like pure profit until you add in the two urgent jobs in March, the update that broke something, and the half-hours on the phone you never counted. You only find the real margin if you record the time as well, not just the payment received.
It is worth saying plainly: this is normally the biggest part of your recurring revenue, and it is almost always the worst managed. Automatic renewals nobody has renegotiated in three years, amounts frozen while costs have moved, deadlines nobody writes down because “it carries on by itself anyway”.
The items that never make the list at all
Then there is a third tier, the one that appears on no spreadsheet because it never had a line of its own: spam filters, certified email accounts, plugin and theme licences, certificates, backup space, privacy policy and cookie banner updates. Taken one at a time they are small amounts. Taken together, across twenty or thirty sites, they are a cost nobody has ever added up.
The problem with this tier is not the cost, it is the silence: these are services that renew themselves until a card expires, or that lapse without sending anything and get noticed only when the site throws an error. We gave it a whole piece, the deadlines an agency forgets, because it is the part of the recurring side that slips away most easily.
Should you look at recurring revenue by service or by client?
Almost everyone organises the deadline tracker by client: one record each, with all their deadlines inside it. That is convenient when the client rings you, but it is the wrong view for making decisions. By client you see “this one brings in eight hundred euros”; by service you see that hosting brings in forty per cent of what you thought, because half of it goes to the provider.
The two views do different jobs and you need both. The client view answers “what does this person have active”. The view by type of service answers “where is my money, and where am I working for free”. The second one tells you what is worth raising prices on, which provider is worth consolidating, and which service has reached the point where offering it no longer makes sense.
Not every recurring item can be adjusted the same way
Once you have the totals by category, the next question arrives on its own: where does it make sense to raise prices. And here the three tiers behave very differently.
On domains there is no margin to defend and no room to move either: it is an item the client can check in thirty seconds, and adjusting it earns you a few euros at the cost of an argument. On hosting the margin exists but it is tied to the provider, so an increase is only justified when the price list upstream has actually moved, and that is the case where it is easiest to explain.
Maintenance is the only item where the price depends on you alone, and on what the work you put into it is worth. It is also the one nobody reviews, for an understandable reason: it is the most awkward conversation. But that is where most of your recurring revenue sits, so it is the only one worth tackling properly once a year.
What mistakes get made when working out recurring revenue?
- Building everything around domains because they are the deadline that frightens you most, and ending up with no control over the items worth ten times as much.
- Recording only the date, with no amount, no provider and no note of what you paid: a list like that tells you when something expires, never whether it is worth it.
- Treating maintenance as a resale, and therefore never counting the hours that go into it.
- Leaving out the services the client bought on their own: when those fail, they still ring you.
- Never reviewing the amounts. Provider price lists move every year; your own prices have often been the same for three.
Where do you start measuring it?
- Make the list by type of service, not by client. One line for everything that renews, with its category beside it.
- Add two columns: what you take in and what you pay. If the second is empty because there is no provider, write that down. That is the maintenance case, and it needs looking at differently.
- Total it up by category. This is the moment you find out where your recurring revenue is. Usually not where you thought.
- Put whatever has no provider to warn you at the bottom of the list. Those are the items that will lapse first.
- Decide where to keep it. A spreadsheet holds up while you have few clients; we wrote about the point where it stops holding up in the comparison between a spreadsheet and a real deadline tracker, and the operational setup is in how to organise an agency’s client deadline tracker.
How do we measure recurring revenue ourselves?
We are EnneStudio, a web agency in Padua, Italy, and we redid this list several times before we got to a shape that held. Dotify came out of that: it is the tool we built for ourselves after losing a client over a forgotten renewal, and it is ours.
The part we cared about most was exactly this: every deadline has a type, a provider, the amount you take in and the cost you carry, so the total by category comes out on its own instead of being an end-of-year exercise. Shared costs, the ones you pay once and that cover several clients, are split across them, otherwise the margin on hosting stays a made-up number.
If you want to see how it is put together, the documentation on deadline management explains how types and amounts are structured. The free plan holds five clients with three deadlines each: it is there to let you see whether the setup makes sense to you, not to move your whole client base into it.