SaaS Cloud Costs: Cost per Tenant and Unit Economics
Total spend going up is not a problem if revenue per unit is going up faster. The number to watch is cost per unit.
For a software company, the cloud bill is not overhead. It sits inside cost of goods sold, next to the revenue it produces. That changes the question. A rising bill is fine if customers and usage rise faster; a flat bill is a problem if usage fell. The answer depends on two things a raw invoice does not show directly: which tenant or product line consumed the spend, and what business unit it produced.
Two disciplines from the FinOps Framework
The FinOps Foundation defines both as capabilities:
- Allocation: how costs are apportioned to those responsible for each component, whether directly or as a shared element, using accounts, tags, labels and other metadata.
- Unit Economics: metrics that show how an organization’s cloud use affects the value of its products, services or activities.
Multi-tenant architecture makes allocation harder: a shared database cluster or Kubernetes node pool serves many customers, and no single tag describes it.
A tagging detail to plan for on AWS
User-defined cost allocation tags do not show up in AWS billing reports until you activate them in the Billing and Cost Management console. After you apply a tag it can take up to 24 hours for the key to appear for activation, and up to 24 more hours to activate. Plan tag rollouts ahead of the month you want to report on.
How ZopNight handles allocation
ZopNight gives cost visibility, scheduling, recommendations and showback across AWS, GCP and Azure. Its showback works in two ways at once:
- By team. A resource owned by several teams has its cost split equally between them, and resources with no owner are tracked separately as unattributed, not silently dropped. Each team has a drill-down by provider and resource type.
- By tag. AWS tags, GCP labels, Azure tags and accepted smart tags each attribute the full resource cost to their key and value, so
tenant:acmeorproduct:analyticscan be read on its own trend line. A Tag Coverage widget shows how much spend is tagged versus untagged.
Where tags are inconsistent, smart tags derive a value from policy rules such as name patterns, and you accept them before they count toward attribution. The Cost Flow view then traces spend from provider to account to type to team in one Sankey diagram, with a toggle that highlights spend with no team owner.
How ZopNight handles unit economics
You define the denominator; ZopNight supplies the cost. Built-in metric types cover monthly and daily active users, requests, transactions and signups. Values arrive by push API, CSV upload or a daily pull from your own endpoint. The cost trend chart gains a second axis showing cost per unit, and the calculation can be scoped to a team or a tag, so cost per request for one product line or one large tenant is a filter, not a spreadsheet.
Walk through setup in cost per MAU, compare the two reporting models in showback vs chargeback, and see the reasoning in unit economics for cloud cost.
If your product calls LLMs
The AI Gateway issues per-team virtual API keys with hard USD budgets and model allow-lists, and reports AI spend by provider, model and team. That puts model spend in the same cost-per-unit view as infrastructure.
Questions we get a lot.
If yours isn't here, email us and we'll answer directly.
How is a shared cluster split between tenants?
By team ownership, a shared resource's cost is split equally across its owning teams. By tag, each tag value receives the full cost of the resources carrying it, so tag views should not be summed across values.
Where does the unit metric come from?
From you. Business metrics such as active users or API requests are not visible at the infrastructure layer, so ZopNight takes them by push API, CSV upload or a scheduled pull from your endpoint.