finopsunit-economicssaasmulti-tenant

Cost per tenant: measuring what each customer costs to serve

In a multi-tenant SaaS, the blended cloud bill hides that some tenants cost 50 times more than others to serve. Measuring cost per tenant exposes unprofitable accounts and bad pricing. Here is how to build the metric.

The C3X Team··7 min read

Quick answer

Cost per tenant splits your cloud bill across customers so you can see who is cheap and who is expensive to serve. For dedicated resources, tag them by tenant. For shared resources (a common database, a shared cluster), allocate proportionally by a usage driver you can measure per tenant: requests, storage GB, compute time, or rows. Divide total cloud cost by tenant to get cost to serve, then compare it against each tenant's revenue to find unprofitable accounts. Most SaaS teams discover their heaviest 5 percent of tenants drive 40 percent or more of infrastructure cost, which reshapes pricing and capacity decisions.

A multi-tenant SaaS runs most customers on shared infrastructure, so the cloud bill arrives as one blended number with no hint of which tenants are cheap and which are expensive. That blending hides a crucial truth: cost to serve varies enormously between customers, and some accounts can cost 50 times more than others while paying the same subscription. Cost per tenant is the metric that exposes it, and it is one of the highest-value pieces of cloud unit economics a SaaS can build.

Two kinds of cost to allocate

Cost typeAllocation method
Dedicated per-tenant resourcesTag by tenant, charge directly
Shared computeSplit by CPU-seconds or request count per tenant
Shared databaseSplit by storage GB or query volume per tenant
Shared networking / egressSplit by measured data transfer per tenant

Some resources belong to one tenant: a dedicated instance, an isolated database for an enterprise account. Tag those by tenant and charge them directly. The harder part is shared infrastructure, where many tenants run on one cluster or one database. There you need a usage driver measured per tenant, requests, CPU-seconds, storage GB, egress, rows processed, and you allocate the shared cost in proportion to each tenant's share of that driver. The metering to capture those per-tenant drivers is the real engineering work.

Instrumenting per-tenant usage

You cannot allocate what you do not measure. Add a tenant identifier to the signals that drive cost: log the tenant on each request, tag database rows or schemas by tenant, and emit per-tenant metrics for compute time and data volume. In Kubernetes, per-namespace or per-label accounting maps naturally to tenants, as the Kubernetes showback approach describes. The effort is real, but without it every shared cost is a guess, and a guessed cost-per-tenant number is not one you can make pricing decisions on.

Comparing cost to revenue

Cost per tenant only becomes powerful next to revenue per tenant. Plot the two and the picture is usually stark: a long tail of cheap, profitable tenants, and a small group of heavy users whose cost to serve approaches or exceeds what they pay. A common finding is that the heaviest 5 percent of tenants drive 40 percent or more of infrastructure cost. Those accounts are candidates for a usage-based pricing tier, a product limit, or a frank conversation, and you cannot even see them without the metric.

What the metric changes

Cost per tenant informs decisions across the business. Pricing teams use it to design tiers that track cost to serve instead of flat fees that lose money on heavy users. Product teams use it to add limits or efficiency features where a few tenants dominate a resource. Sales uses it to price enterprise deals with the real cost in hand. And engineering uses it to target optimization at the tenants and code paths that actually drive the bill, the same targeting logic as cost per request.

Keeping it current

Cost per tenant drifts as tenants grow and usage patterns shift, so compute it monthly and watch the trend, especially for accounts whose cost is climbing toward their revenue. Feed it into your forecasting so onboarding a big enterprise tenant comes with a projected infrastructure cost, not a surprise. Price the infrastructure a new tenant tier will need against the resource catalog before you commit to the pricing, so the margin is designed in rather than discovered on the bill.

FAQ

How do I calculate cost per tenant in a SaaS?

Split your cloud bill across tenants. Charge dedicated per-tenant resources directly by tagging them, and allocate shared resources (a common cluster or database) proportionally by a usage driver measured per tenant: requests, CPU-seconds, storage GB, or egress. Divide total cloud cost by tenant to get cost to serve. The hard part is instrumenting per-tenant usage, since you cannot allocate a shared cost you do not measure.

How do I allocate shared infrastructure across tenants?

Use a usage driver you can measure per tenant and split the shared cost in proportion to each tenant's share of it. For shared compute, split by CPU-seconds or request count; for a shared database, by storage GB or query volume; for networking, by measured data transfer. This requires instrumenting per-tenant usage, logging the tenant on each request and tagging data by tenant, so the split reflects real consumption rather than a guess.

Why does cost per tenant matter?

Because a blended bill hides that some tenants cost 50 times more to serve than others while paying the same subscription. Measuring cost per tenant and comparing it to revenue per tenant reveals unprofitable accounts, usually a small group of heavy users. A common finding is that the heaviest 5 percent of tenants drive 40 percent or more of infrastructure cost, which reshapes pricing, product limits, and capacity decisions.

What does cost per tenant change in a business?

Pricing teams design tiers that track cost to serve instead of flat fees that lose money on heavy users; product teams add limits or efficiency features where a few tenants dominate a resource; sales prices enterprise deals with real cost in hand; and engineering targets optimization at the tenants and code paths that drive the bill. Without the metric, all of these decisions are made blind to actual cost to serve.

How often should I recompute cost per tenant?

Monthly, watching the trend, especially for accounts whose cost is climbing toward their revenue. Cost per tenant drifts as tenants grow and usage patterns shift, so a stale number misleads. Feed the metric into forecasting so onboarding a big enterprise tenant comes with a projected infrastructure cost rather than a surprise on a later bill.

How does C3X help with cost per tenant?

C3X prices the infrastructure a new tenant tier or dedicated-tenant deployment will need from Terraform before you commit, so the cost to serve is designed into the pricing rather than discovered later. Combined with per-tenant usage metering for shared resources, that gives you the forward-looking half of the metric, what a tenant will cost, alongside the historical half from your billing data.

What to do next

Design tenant margins before you deploy the infrastructure. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.

Try C3X on your own Terraform

Free and open source. No API key required. One command to install, one command to estimate.