Discover how CloudZero helps engineering and finance get on the same team — and unlock cloud cost intelligence to power cloud profitability

Learn more Arrow Arrow

Explore CloudZero

Discover the power of cloud cost intelligence

Why Change Icon
Why Change?

Give your team a better cost platform

Services Icon

Give engineering a cloud cost coach

About Icon

Learn more about CloudZero and who we are

Pricing Icon

Learn more about CloudZero's pricing

Tour Icon

Take a customized tour of CloudZero


Explore CloudZero by feature

Cost Anomaly Detection Icon
Cost Anomaly Detection

Build fast with cost guardrails

Budgeting Icon
Budgeting And Forecasting

Drive accountability and stay on budget

Discount Dashboard Icon
Discount Optimization Dashboard

Manage all your discounts in one place

Dimensions Icon
CloudZero Dimensions

Organize spend to match your business

By Use Case

Cost Per Customer
Cost Per Customer Analysis

Understand your cloud unit economics and measure cost per customer

Kubernetes Cost Analysis
Kubernetes Cost Analysis

Discover and monitor your real Kubernetes and container costs

Unit Cost Analysis
Unit Cost Analysis

Measure and monitor the unit metrics that matter most to your business

Cost Allocation
Tagging And Cost Allocation

Allocate cost and gain cost visibility even if your tagging isn’t perfect

SaaS COGS Measurement

Identify and measure your software COGS

Engineering Cost Awareness
Engineering Cost Awareness

Decentralize cost decisions to your engineering teams

Cloud Cost Optimization
Cloud Cost Optimization

Automatically identify wasted spend, then proactively build cost-effective infrastructure

By Role

All Your Cloud Spend, In One View

CloudZero ingests data from AWS, GCP, Azure, Snowflake, Kubernetes, and more

View all cost sources Arrow Arrow


Discover the best cloud cost intelligence resources

Resources Icon Resources

Browse webinars, ebooks, press releases, and other helpful resources

Blog Icon Blog

Discover the best cloud cost intelligence content

Case Study Icon Case Studies

Learn how we’ve helped happy customers like SeatGeek, Drift, Remitly, and more

Events Icon Events

Check out our best upcoming and past events

Cost Assessment Icon Free Cloud Cost Assessment

Gauge the health and maturity level of your cost management and optimization efforts


CloudZero Advisor

Compare pricing and get advice on AWS services including EC2, RDS, ElastiCache, and more

Learn more Arrow Arrow

How SeatGeek Measures Cost Per Customer

Discover how SeatGeek decoded its AWS bill and measures cost per customer

Read customer story orangearrow arrow-right

How Skyscanner Creates A Cost-Aware Culture

Learn how Skyscanner decentralized cloud cost to their engineering teams

Read customer story orangearrow arrow-right

How Malwarebytes Measures Cost Per Customer

Learn how Malwarebytes measures cloud cost per product

Read customer story orangearrow arrow-right

How Remitly Shifts Cloud Costs Left

Learn how Remitly built an engineering culture of cost autonomy

Read customer story orangearrow arrow-right

How Ninjacat Combines AWS And Snowflake Spend

Discover how Ninjacat uses cloud cost intelligence to inform business decisions

Read customer story orangearrow arrow-right

How Smartbear Uses Cloud Cost To Inform GTM Strategies

Learn Smartbear optimized engineering use and inform go-to-market strategies

Read customer story orangearrow arrow-right
arrow-left arrow-right
View all customer stories

The Quest For Sunken Treasure: Top-Down Vs. Bottom-Up Cloud Cost Allocation

CloudZero’s top-down cost allocation focuses on the highest-impact cost areas first, and gets more granular based on results and experience.

Is your current cloud cost tool giving you the cost intelligence you need?  Most tools are manual, clunky, and inexact. Discover how CloudZero takes a new  approach to organizing your cloud spend.Click here to learn more.

This article is part of a two-part series on cost allocation. Find the second article, "Are We There Yet? How To Know When You’ve Got Deep Enough Cloud Cost Metrics" here.

High-quality cloud cost allocation has become an existential issue for businesses. In order to get as much out of their (mounting) cloud investments as possible, business leaders need to know how much they’re spending in the cloud, what/who they’re spending it on, and whether there’s a good reason for it.

In its ideal form, cost allocation answers all these questions. It matches what you spend with who you spend it on, giving you business-relevant metrics like cost per customer, cost per product, cost per feature, etc. 

But how do you get to that ideal form? How do you go from inefficient, semi-accurate cost allocation (usually done through manual tagging) to efficient, precise cost allocation?

Two main methods have emerged: Top-down allocation and Bottom-up allocation. Different tools use one or the other (ours uses top-down). As their names indicate, they’re opposites — bottom-up allocation starts at the most granular resource level and then generalizes, whereas top-down allocation starts at the highest level of spend and then gets specific.

Think of it in terms of searching for sunken treasure at sea. The bottom-up method would be like starting by combing the whole ocean floor, whereas the top-down method would be like using radar to identify promising places to drop anchor.

If you had infinite time and money, combing the whole ocean floor would yield the best results, ten times out of ten. 

But most of us don’t have infinite resources. Time is scarce, money is finite, and we invest based on probabilities. Because of this, CloudZero uses top-down allocation, which starts broad, focusing on the highest-impact areas first, and gets more granular based on results and experience.

Let’s dive deeper (pun very much intended) into why we prefer top-down allocation.

3 Reasons Why Top-Down Allocation Is The More Effective Approach

1. Top-down allocation has no resource limits

Bottom-up cost allocation tools (like Amazon Cost Profiler, or ACP) start by targeting individual resources, like EC2, Lambda, and others. Having entered at that level, they then go upward, exploring each customer/product/feature that uses those resources.

The problem here is that you’re limited by the number of resources a tool is built to target. Most of these tools can only handle a handful of resources. ACP lists only four: EC2 instances, SQS queues, SNS topics, and DynamoDB reads and writes.

If you use any other resource that the tool isn’t calibrated to target — like RDS, S3, CloudFront, API Gateway, or EBS — it’s impossible to include it in your overall cost allocation.

Rather than starting at the resource level, top-down solutions like CloudZero start with all production spend, allocated to your business context. 

Step one is grouping spend from all your providers — AWS, GCP, AZURE, Snowflake, New Relic, etc. — and putting it into business context.

CloudZero uses a custom domain-specific language, called CostFormation, that lets you apply flexible rules to your billing data in order to aggregate resources into business-centric Dimensions.

Step two is allocating costs (especially those hard-to-allocate shared costs!) based on real customer and product usage. Choose a metric that represents how your customers are using your platform (e.g., number of messages processed, duration of a query, or length of video streams processed) and correlate it with your cost. CloudZero does this with telemetry streams. 

Allocating shared costs

This way, with a single metric, you are dynamically allocating all the spend from all cloud services, and thus all the resources within. 

Step three is layering in additional metrics to get even more specialized views of your spend. 

For example, after starting with cost per customer, maybe you go to cost per product per customer, then cost per feature per product per customer. All this (and more) can be achieved by adding new telemetry streams and crafting custom Dimensions.

Layers of granularity
With bottom-up spend, it takes a lot of initial work to get usable unit costs because you’re only getting data from a subset of your spend at a time. With top-down spend, you get usable information with just one metric, and then dive as deep as you want.

2. Top-Down Allocation Gives You Only The Granularity You Need

It might seem like you’d want as granular, universal view into your cloud spend as possible. There’s some truth to that — the more time you spend analyzing your cloud spend, the more you’ll get out of an atomic (if not subatomic) view.

But we maintain it’s better to get granular based on real business impact than to start granular and hope for business impact.

Think back to the sunken treasure metaphor: What’s the main piece of information you want? The location of treasure chests. 

Do you care about the location of coral reefs, deep sea vents, crab colonies, jellyfish clusters, worm civilizations, and everything else you’ll find by scraping the ocean floor?

You don’t. But a bottom-up approach would give you all of this data, meaning you’d have to sift through a lot of information that, while interesting, would have little to no impact on your business goal.

But if you started general, using radar to identify the location of sunken ships, for example, you’d be able to conduct a more meaningful, efficient search. 

At the start of your cloud cost allocation journey, you don’t know precisely what cost information is going to help you make better business decisions. It’s better to start slow and learn it as you go than to throw yourself into a data ocean and hope for the best.

3. Top-Down Allocation Is Designed to Facilitate Your FinOps Journey

If you’ve spent any time researching FinOps, you know it’s based on a maturity framework: 

Crawl → Walk → Run

Crawl is about putting the people, teams, processes, and tools in place, and then starting to collect information.

Walk is about getting deeper information, having more meaningful conversations, and strategizing about maximizing cloud ROI.

Run is where you’ve got total allocation, dynamic unit cost metrics, high levels of FinOps enthusiasm, and a flywheel to make sure systems are always improving.

Top-down allocation mirrors the Crawl → Walk → Run framework. You start with high-level cost data, expend relatively little effort getting your first metric (many of our partners start with Cost Per Business Unit or Cost Per Product Feature), and get into deeper, more targeted metrics over time. 

(A really interesting example of nuanced metrics is Beamable, a company that provides infrastructure to video game designers, who we ultimately helped see cost per service per game per customer.)

Beamable quote

The bottom-up approach expects you to start at the “Run” stage. It requires you to instrument a wide array of metrics before you get any usable unit cost information. That’s just not reasonable. 

Starting with more granularity than you need can be a burden, and having to produce many granular metrics to get any unit data is like skipping “Crawl” and “Walk” and going straight to “Run.” Moreover, since most organizations are at the “Pre-crawl,” “Crawl,” or “Walk” stages of FinOps, using a bottom-up approach is like entering a toddler into an Olympic sprint. 

Custom(er) allocation

The overarching benefit of top-down allocation is that it lets you craft a powerful cost allocation schema over time — based on real business impact. No two organizations’ business models are identical, and thus, the information they’ll need to make sound business decisions won’t be identical either. 

We use our own platform, using five telemetry streams to get unit cost data. One of our bigger customers uses 200 telemetry streams, another uses twenty-eight streams, and others use a range of numbers in between. It all depends on what their needs are, and what it takes to get real business impact. 

Starting with total granularity gives you an enormous burden, right upfront. Starting general and figuring out where to drill gives you a tailored system, producing data at the pace that you can handle it. Ready to start looking for sunken treasure? Schedule a demo today!

In Part II of this series, I answer the most common follow-up question I get: “How does my organization know when we’ve got deep enough granularity?” Or, in other words: “Are we there yet?”. Read it here.

Kevin Mueller

Author: Kevin Mueller

Kevin Mueller, CloudZero’s principal technologist, is a veteran in more than one sense of the word. From his roots in the U.S. Army to a decade-plus-long stint at the New York Stock Exchange to Amazon Web Services and beyond, Kevin has spent decades finding novel solutions to complex technical challenges.


Join thousands of engineers who already receive the best AWS and cloud cost intelligence content.