Contents
Why Cost Per Customer Data? How It Works CloudZero Cost Per Customer Report Frequently Asked Questions about Cost Per Customer

Like most SaaS companies, CloudZero uses its own product. When we released cost per customer reporting, we tested it on ourselves first.

And today, we use cost per customer reports regularly. Why?

Because they help leadership answer board and renewal questions, including customer-level margins.

Cost per customer is valuable and hard to get right.

Multi-tenant systems and Kubernetes can hide the link between shared infrastructure (like EC2) and the customers using it.

Most teams end up in spreadsheets and best guesses.

In this guide, I’ll walk through how cost per customer model works, the metrics we care about, and what surprised us along the way.

Why Cost Per Customer Data?

Cost per customer answers a critical question for SaaS teams: Which customers are profitable and why? Customer profitability analysis is the foundation of any sustainable SaaS pricing and growth strategy.

In SaaS, revenue is predictable. Costs are not.

Two customers on the same plan can drive very different infrastructure usage.

Data volume, feature combinations, query patterns, and usage frequency all affect the cost of serving them.

Without the cost per customer, teams guess. And that guesswork leads to margin surprises, mispriced contracts, and slow reactions to cost spikes.

For us, cost per customer is not just about savings. It’s about decision quality.

We use it to:

  • Understand the margin by customer segment
  • Support pricing and renewal conversations
  • Validate whether growth improves or erodes unit economics — a core concern in SaaS unit economics analysis

For example, if mid-market customers generate higher margins than enterprise customers, leadership can pair that insight with CAC and sales motion data. That directly informs where we invest our go-to-market effort, including how we approach cloud cost optimization.

Cost per customer matters because it connects cloud spend to real business outcomes, not just invoices.

How It Works

Calculating cost per customer accurately requires more than billing data. Most cloud cost management tools stop at invoices. CloudZero functions as an observability system, ingesting AWS Cost and Usage Reports (CUR) plus rich metadata from your environment to explain why costs occur, not just where they appear.

That includes:

  • Cloud service metadata
  • Resource relationships
  • Kubernetes context
  • Deployment and runtime signals

This extra context is what makes cost per customer possible at scale.  Here’s a simple diagram to visualize how we think about it, which I’ll explain in more detail next.

To do that, we apply two layers of context to raw cloud spend.

Layer 1: COGS in context

The first step is to organize cloud costs into Cost of Goods Sold (COGS) in a way that aligns with how your business operates.

Instead of relying solely on tags, CloudZero uses context definitions, logical rules that group costs based on how resources behave and relate to one another.

These definitions can be used:

Context definitions are written in a simple YAML-based domain-specific language. That makes them flexible, version-controlled, and easy to change as your architecture evolves.

During onboarding, a CloudZero cost expert helps define these mappings. Most teams reach usable COGS context in one to two hours, not weeks.

Once applied, you can view costs by:

  • Product
  • Feature
  • Environment (prod vs R&D)
  • Team
  • Region

This is how we separate infrastructure spend from business cost.

Useful resources:

Layer 2: Customer Activity Impact on COGS

Once costs are allocated to COGS, the next step is to assign them to customer usage.

This is where cost per customer becomes precise.

 Here’s a marketecture diagram of what the process looks like:

CloudZero ingests telemetry streams from your application. These streams describe how customers use your product, not revenue, but usage signals that drive costs.

A telemetry record might show:

  • Which customer used a feature
  • How much of that feature did they use
  • When the usage occurred

These records are sent to CloudZero through a simple API.

We normalize telemetry over time (hourly or daily) and join it with COGS data from Layer 1. Then we allocate the cost proportionally.

Example logic:

  • Feature A costs $10,000 per day
  • Customer X accounts for 1% of Feature A usage
  • Customer X is allocated $100 of cost for that day

That logic scales automatically across millions of records. No spreadsheets. No estimates.

This approach avoids the biggest failures of cost per customer projects:

  • Tags breaking when resources change
  • Shared infrastructure hiding real usage
  • Kubernetes abstraction masking who caused what

Instead, CloudZero ties cloud spend to how your product is actually used.

That’s why the output isn’t just a number. It’s an explanation.

CloudZero Cost Per Customer Report

Here’s what cost per customer reporting looks like in production:

We use CloudZero’s built-in Cost Per Customer report to track both the average cost per customer and the cost for each customer, with a clean breakdown by product feature.

Some teams also pipe this data into a BI tool to pair cost with revenue and margin. But for most teams, the report is the fastest way to answer leadership questions without first building a custom model.

Average cost per customer

This is the “are we scaling efficiently?” view.

As we onboard customers, total spend rising isn’t automatically bad. What matters is if cost per customer is flattening or falling as usage grows. That’s how you spot economies of scale early instead of discovering margin pain at renewal time.

Customer-by-customer cost (treemap + drill-down)

Next, we look at the distribution.

The treemap makes it obvious when one customer is costly. And when you click into that customer, you can see which product areas are driving their cost. That’s what turns cost per customer from a finance metric into an engineering action list.

Daily cost per customer per feature (exportable)

This is where utilization context pays off.

CloudZero’s approach combines billing data with telemetry streams to enable you to allocate shared, multi-tenant costs based on real usage signals. That’s how you move beyond averages and get a precise cost per customer when infrastructure is shared.

You can export the daily table to perform deeper analysis in your BI layer, or use it to compare segments (SMB vs. enterprise) and identify “expensive behavior” patterns tied to how customers use specific features.

What we changed after a real spike

When we see a spike, we don’t want a mystery.

CloudZero pairs the report with real-time anomaly detection so spend events surface fast, without relying on manual thresholds.

When a customer’s data profile changes (higher cardinality, higher ingest volume, different usage), we can quickly identify it, quantify the cost impact, and address the root cause while the change is still fresh.

Ambitious brands such as Grammarly, Duolingo, Toyota, Drift, UpStart, and more use CloudZero to protect their margins as they scale.  Take a product tour or to see how CloudZero can help your company do the same.

Frequently Asked Questions about Cost Per Customer