Published September 10, 2026 · 6 min read · Get the money side off your spreadsheet
Most agencies billing clients for hosting started with a spreadsheet. It worked at three clients. At twelve it became a monthly afternoon you schedule between actual work: check who's on what, work out what they owe, send invoices, chase the two people who didn't pay, and update the sheet. The billable work is fine. The billing of the work is the chore.
The good news is that the spreadsheet is mostly doing a job software should have been doing all along - and if your hosting lives in a platform where billing sits alongside the servers, most of that job disappears.
Start with the thing you actually sell: a hosting plan. Not just a price - a real package. You set how many sites it allows, how much storage and database space comes with it, whether email and staging are switched on, and how backups work. Then you set the money: the base price, an optional discount that expires on its own, a trial period, and a grace period before a lapsed plan gets cut off.
Doing this once per plan means every new client just joins the package you've already thought through. There's no version of "I'll work out their rate later" hanging over a Friday afternoon.
Marking invoices paid by hand works, but it's manual labour pretending to be a payment system. The better setup is a real checkout - connect Stripe and/or PayPal with your own credentials, or add an offline method like bank transfer. When a payment method is enabled, clients pay at signup, when they subscribe to a plan, and when they settle an invoice, and the subscription activates the moment payment completes.
Offline payment is the interesting one. The client submits a reference and a receipt, it lands in your pending approvals, and you approve or reject it - so bank transfers get the same tidy treatment instead of becoming an email thread nobody can find later.
Once plans and payments exist, invoicing becomes a single action instead of a routine: generate invoices for a billing period across every active client plan at once, then filter by paid, unpaid or overdue as responses come in. Payment terms are set on the plan too, so "how long do they get to pay" isn't a per-client judgement call - it defaults sensibly, and you override it when a client has earned it.
The part most people miss: keep your own platform/server costs separate from what you collect from clients. Server invoices are tracked apart from client revenue on purpose - if those two ever end up in the same list, you can't tell profit from turnover without an evening of reconciliation.
Which sets up the real question: not "did we invoice everyone" but "are we actually making money per server?" A revenue report that shows income by date, client and server, with each server's running cost estimated from the monthly price you set when you added it, answers that directly. Income minus real cost is the number worth watching, and it's the number spreadsheets are worst at surfacing.
Automation doesn't make the money arrive, but it removes almost all the admin around it. No spreadsheet, no guessing who's overdue, no evening lost to reconciliation. The recurring revenue that hosting was supposed to add turns into the thing it promised to be: income that quietly shows up, with the numbers to prove it's growing.
Build a package, add a client, generate invoices, and read the revenue report - all in the same dashboard.
See Client & Billing Tools