Tagging policies and cost dashboards are table stakes. Most enterprises have them. Most enterprises still overspend on cloud by 30–40%. The gap between dashboard and discipline is a cultural problem, not a tooling problem — and tooling won't close it.
This article describes how we embedded FinOps into the engineering culture of a large energy group operating across 14 countries on AWS and Azure. We started the engagement with a 47% cloud waste ratio (measured against rightsized baselines). Eighteen months later, they had achieved a 40% cost reduction while increasing deployment frequency by 3×.
Phase 1 — Making Costs Visible at the Right Granularity
The client's existing cost visibility was at the AWS account / Azure subscription level. This is useful for finance but useless for engineers. A squad working on a payment processing service has no way to connect their architectural decisions to a shared account-level bill.
We implemented a three-layer attribution model:
- Business domain: Tagged at the resource group / VPC level (e.g., Payments, Logistics, HR)
- Product: Service-level tagging enforced via Terraform modules and Azure Policy deny effects
- Environment: prod / staging / dev / ephemeral — critical for identifying forgotten dev environments
Untagged resources above €50/month triggered automated Jira tickets assigned to the owning squad. Within 90 days, tagging compliance reached 97%. The first actionable finding from this visibility alone: €180,000/year in dev environment EC2 instances running 24/7 that were scheduled to be ephemeral.
Phase 2 — Embedding FinOps into Engineering Ceremonies
The highest-leverage intervention was adding a "cost impact" field to the story template in Jira. Any story estimated above a threshold (initially €500/month projected cost delta) required a cost estimate before sprint commitment. This sounds bureaucratic. In practice, it took most squads less than 10 minutes — and it changed conversations fundamentally.
We also introduced a monthly "cost retrospective" as a standing item in the engineering all-hands. Three squads presented: one who reduced costs significantly, one who increased costs for justified reasons, one who discovered unexpected spend. This normalised cost discussion without shaming.
Phase 3 — FinOps Gates in CI/CD
The final piece was automating cost signals into the deployment pipeline. We integrated Infracost into the Terraform CI pipelines to produce a cost estimate diff for every infrastructure change. Pull requests touching infrastructure now include a comment showing projected monthly cost impact, broken down by resource type.
For changes above a threshold, the PR requires approval from a designated "FinOps champion" in the squad — a rotating role, not a full-time job. This creates peer accountability without a centralised bottleneck.
We also implemented scheduled rightsizing jobs using AWS Compute Optimizer and Azure Advisor recommendations, surfaced as automated PRs in the infrastructure repository. Squads review and merge (or reject with justification) these recommendations monthly.
- Cost visibility must be at squad/service granularity — account-level is too coarse
- Tagging compliance requires automated enforcement, not manual audits
- Embed cost review into existing ceremonies rather than creating new ones
- Infracost in CI/CD pipelines creates real-time cost awareness with minimal friction
- Celebrate cost wins publicly — cultural change follows recognition