A server with sites nobody can name
The studio has a couple of servers and a managed hosting account, carrying many client sites. The hosting invoices are a mix: some clients pay yearly on the anniversary of their launch, some monthly with their maintenance plan, some were given free hosting for the first year and never started paying. A spreadsheet tracks it, updated when someone remembers.
When the hosting provider raises its prices, the owner wants to know what hosting actually costs per client site and whether the fees still cover it. The spreadsheet does not match the server. There are sites on the server for clients who left, and at least one client who has been billed for hosting on a site that moved elsewhere.
Why hosting billing drifts
- Sites are added to servers at launch, but billing depends on someone setting up a recurring invoice.
- Anniversary billing spreads invoices through the year, so missed ones are not noticed.
- Clients leave, and their sites stay on the server because nobody asked what to do with them.
- Plan upgrades, such as more storage or a staging site, are done on request but not reflected in billing.
- Hosting costs change with the provider, but client prices are set once and forgotten.
The server knows which sites exist. The accounts package knows who is billed. Nothing compares the two.
What drift costs
Hosting is provided and not billed. Old sites take up space and add security risk. Price increases from the provider are absorbed. When a client queries their hosting invoice, the agency has no clear record of what they are on and why. The owner cannot see whether hosting is a profitable service or a loss leader.
The hosting register we build
- Sites are read from your servers and hosting accounts, through the control panel or host API, with disk use, bandwidth and whether a staging site exists.
- Each site is linked to a client and a hosting plan, or flagged as unlinked.
- Plans are defined with their price and billing cycle, and each client's start date and any free period are recorded.
- Recurring invoices in Xero or QuickBooks are checked against the register. Sites with no matching billing, and billing with no matching site, are both flagged.
- Upcoming anniversary invoices are listed ahead of time, so they can be reviewed before they go out.
- Your hosting costs are split across sites so the register shows the cost and fee per site and per plan.
- Sites belonging to clients marked as ended in your CRM are flagged for a decision: transfer, archive or remove.
| Check | What it finds |
|---|---|
| Site with no billing | Hosting given away by accident |
| Billing with no site | Clients billed for hosting you no longer provide |
| Plan does not match usage | Upgrades never billed |
| Site for an ended client | Old sites to transfer or remove |
| Cost above fee | Plans to reprice |
Hosting you can account for
The owner opens the register and sees every site on the servers, each with its client, plan and billing. Several unlinked sites are identified and removed after checking with the clients. A few clients are moved to the right plan. When the provider raises prices again, the register shows which plans no longer cover their cost, and the owner can decide what to do before the next renewals.
Is your hosting billing a guess?
- You host client sites and rebill them.
- Nobody is sure every hosted site is being billed.
- Sites for former clients are still on your servers.
- Plan upgrades have not always reached the invoice.
- You cannot say whether hosting makes money.