Hosting many sites on shared infrastructure makes one question surprisingly hard to answer: what is the hosting cost per site? The cloud bill arrives as one number. The plans clients pay for are flat. Somewhere in between, a few sites use far more than their share, and some sites are hosted for free because they are charities.
I wanted resellers, and myself, to be able to see that at a glance.
Hosting cost per site, month by month
A new page in the AceHost admin lists every reseller site for any of the last six months, with:
| Column | Where it comes from |
|---|---|
| Requests, bytes sent, PHP time | A monthly traffic ledger built from the web server logs |
| Local and S3 media size | The site's files and its media bucket |
| Indicative S3 and CloudFront share | The month's storage and delivery costs, allocated by usage, in pounds |
| Client plan | The live plan the client is on |
Everything exports to CSV, so a reseller can take it into their own accounts.
Count each request once
The ledger is written by the same incremental log parser that feeds AceHost's five-minute traffic window. Reading the logs once, and writing both views from that single pass, means a request can never be counted twice or missed by one view and not the other. The ledger keeps thirteen months of per-site figures, so a year-on-year comparison is always possible.
Costs are held in whole minor units rather than floating-point pounds, and allocations are reconciled so the shares add up to the bill. Rounding errors across dozens of sites are small, but a total that does not match the invoice undermines every other number on the page.
Paid, sponsored, charitable and non-profit
Not every site pays. Each client site is now classed in a fixed order: charity first, then non-profit, then paid if it has a live plan above zero, and otherwise sponsored. Reseller dashboards show filter chips with counts, and a monthly totals line where charity income is reported as donations, separate from paid revenue.
Non-profit status sits beside charity status, with the same registration number, review and evidence fields, so a status is something that can be checked rather than a tick box.
Why it matters to clients
- Fair pricing. When a site's usage grows, the conversation starts from shared numbers, not a surprise invoice.
- Finding waste. A site with large media and little traffic is a candidate for moving media to object storage or tidying up.
- Honest support for good causes. Sponsored and charity hosting is visible as a cost I have chosen to carry, rather than disappearing into the totals.
The figures are indicative. They allocate shared costs by usage, which is a model, not a meter. But a reasonable model that everyone can see beats a precise bill that nobody can break down.