Every FinOps guide says the same thing: "Tag your resources for cost allocation."
So you build a tagging strategy. You mandate tags in CI/CD. You create governance policies. You hold teams accountable for tagging compliance.
And six months later, your cost allocation report still shows 40% "untagged."
The "tag everything" approach is broken. Here's why, and what to do instead.
Let's be honest: adding tags is friction. It's one more thing between an engineer and shipping code.
When forced to tag, engineers do the minimum:
You can mandate all you want. You can't mandate caring.
Even when tags start accurate, they decay immediately:
Tags are a point-in-time snapshot that's wrong within weeks.
Some AWS costs can't be tagged at all:
Your tagging strategy has a fundamental ceiling.
How do you tag a shared RDS database used by 12 services? A NAT Gateway? A VPC? CloudFront distributions?
You can't accurately allocate shared infrastructure with tags. At best, you're guessing.
Here's the uncomfortable truth: perfect tagging doesn't save a single dollar.
Knowing exactly which team is wasting money doesn't make them waste less. It just tells you who to blame.
Tagging is cost visibility. Visibility is not optimization.
Instead of trying to tag everything, focus on what actually drives accountability and action.
Use AWS Organizations and separate accounts strategically:
Account-level allocation is 100% accurate, requires no maintenance, and can't be gamed.
Not everything needs a tag. Focus on:
Skip the rest. "Project," "CostCenter," "BusinessUnit" — these feel important but rarely drive action.
Three tags, enforced well, beats ten tags enforced poorly.
Instead of asking engineers to tag owners, detect ownership automatically:
Detected ownership is more accurate than tagged ownership.
For shared resources, allocate costs based on actual usage:
This is harder but infinitely more accurate.
The goal isn't perfect cost allocation. It's cost reduction.
Instead of arguing about which team's 43% of a shared database cost, ask:
Fix the cost first. Argue about attribution later (or never).
If you must tag (and you probably should, somewhat), here's the minimum viable approach:
That's it. Two tags, automated enforcement, quarterly cleanup.
Tags are a technical solution to a cultural problem.
If engineers don't care about costs, tagging won't make them care. They'll just add bad tags.
If engineers do care about costs, they'll find ways to optimize regardless of tagging.
Work on the culture. Make costs visible. Make waste painful. Make efficiency valued.
Tags are a tool in service of culture, not a substitute for it.
I know this is heresy in FinOps circles. Tagging is sacred. Challenging it feels wrong.
But look at your own organization. How's the tagging strategy working?
If you're like most companies, you've spent years on tagging initiatives that deliver mediocre results while consuming significant effort.
Maybe it's time to try something different.