Azure FinOps Essentials

Who’s Paying for That? Getting Smart About Azure Cost Allocation

Hi there,

and welcome to this week’s edition of Azure FinOps Essentials.

This time, I’m diving into one of the most foundational (but often overlooked) pillars of cloud cost management: cost allocation.

Whether you’re trying to enable showback to teams, compare costs across projects, or figure out why your bill suddenly spiked, you need more than just a global number. You need visibility. Cost allocation gives you the ability to track, explain, and improve your cloud spending at the right level of granularity.

In this edition, I’ll show how Azure’s billing scopes and tagging can help (or hinder) cost transparency. And I’ll share practical steps to turn chaotic cost data into actionable insights, with real-world patterns I’ve seen work.

Let’s make those Azure bills useful, not just big.

Cheers,

Michiel

Why Cost Allocation Matters (and Fails)

Imagine opening your Azure bill and seeing one giant number. It might be broken down by subscription or service, but you have no idea which team caused what. Which app is driving most of the cost? Which product line? Are you still paying for test environments someone forgot?

This is the default state for many Azure environments.

Cost allocation solves that. It lets you slice your spend by what matters to your business: teams, environments, customers, applications, or projects. It enables:

  • Accurate forecasting and budgeting

  • Real accountability and chargeback or showback models

  • Cost per unit analysis (like cost per user, customer, or API call)

  • Detection of anomalies and sudden cost changes at the source

But it only works if you do the groundwork. And in Azure, that groundwork isn’t automatic.

In real environments I’ve reviewed, I often see:

  • Subscriptions with zero tagging

  • Disks, NICs, and other resources detached from any ownership

  • Shared resources that nobody feels responsible for

  • Different teams using different tagging standards (or none)

The result? Everyone assumes the cost is “somewhere else” and nobody takes ownership.

How Azure Handles Cost Allocation

Azure supports allocation in two main ways:

1. Billing Scopes

2. Resource Tags

Billing Scopes

Azure lets you organize costs based on hierarchy:

  • Subscription

  • Resource Group

  • Management Group

  • Billing account, profile, or invoice section (for MCA)

This structure is helpful, but limited. A single team might span multiple subscriptions. A shared platform might support dozens of apps. You need something more flexible.

Tags

Tags are where real cost allocation happens in Azure.

You can assign metadata like:

project = webshop
team = platform
env = prod
owner = jane.doe
costcenter = 4152

Then you can break down costs by tag in Cost Analysis, Budgets, and Exports. But the power of tagging only works when:

  • All resources are tagged

  • Tags are consistent

  • Tags match your actual cost model

And here’s where most teams struggle.

Common Issues

  • Tags not applied to all resources

    Many services like disks, public IPs, or managed identities don’t inherit tags. A Bicep or Terraform template may tag the App Service but forget the plan or VNet.

  • Tag key mismatch

    One team uses project, another uses ProjectName, and a third uses Application. Azure treats them as unrelated.

  • Tags added too late

    By default, Azure only applies cost allocation tags to future costs. But with MCA, you can enable retrospective allocation to apply tags to historical data.

  • Shared services can’t be fairly split

    If your platform team runs a central API gateway or CI/CD runner, you’ll need to split costs based on usage, traffic, or headcount.

Azure won’t solve this for you. But it does give you the tools, if you use them intentionally.

What You Can Do (Developers + FinOps Teams)

If you are a developer or engineer:

  • Use IaC (like Bicep or Terraform) to apply tags to every resource. Use modules to enforce consistency.

  • Don’t forget to tag supporting resources like disks, IPs, and app service plans.

  • Use a standardized tag schema across environments: env, team, project, and owner are great starters.

  • Discuss tagging responsibilities with your team. Don’t assume “the platform team will tag it later.”

If you are in FinOps or cloud governance:

  • Enable retrospective tagging if you’re using MCA. This ensures that tags can apply to past billing periods.

  • Use Azure Cost Analysis to report by tag and educate teams on their own consumption.

  • Create budgets by tag so teams get alerts based on their logical ownership.

  • Build Azure Workbooks to visualize spend per tag across subscriptions.

  • Document and enforce your tagging taxonomy with Azure Policy. It can block or audit deployments that don’t include required tags.

  • For shared services, define a showback model using data like API calls, storage usage, or number of users per team.

For example:

A shared Azure Container Registry costs €800 per month. Team A pushed 400 images, Team B pushed 600. You can charge them 40 and 60 percent of the cost respectively.

This is not something Azure does automatically, but with consistent logs and a bit of data modeling, it becomes feasible and transparent.

Cost Transparency Starts With Intent

In FinOps, the goal is not to reduce cost at all costs. It is to align spend with value and make cloud usage measurable, understandable, and actionable.

Cost allocation is where this starts. When teams can see their impact, they can make smarter decisions — and own them.

Azure gives you the mechanisms, but not the model. You have to define what “cost ownership” looks like for your organization. You need collaboration between engineering and finance. You need to make tagging part of your development lifecycle, not a last-minute afterthought.

When done right, cost allocation becomes an enabler. It helps spot waste, fund high-impact projects, and build a culture of shared responsibility. That’s the FinOps mindset in action.

If you're thinking about sponsoring this newsletter, check out the sponsor page for more details!

Thanks for reading this week’s edition. Share with your colleagues and make sure to subscribe to receive more weekly tips. See you next time!

Want more FinOps news? Then have a look at FinOps Weekly by Victor Garcia

FinOps WeeklySave on Your Cloud Costs with 5 Minutes every Sunday

Reply

or to participate.