Overview

A media company’s cloud spend was hard to explain or act on because costs lived in separate AWS, Azure, and Google Cloud invoices, tags were inconsistent, and allocation rules varied by team. Finance and platform leads reconciled statements in spreadsheets, Engineering argued about shared services, and product owners lacked a clear showback. Intelligex integrated AWS, Azure, and Google Cloud billing into a governed Snowflake warehouse, enforced tag compliance policies, and published showback dashboards in Power BI with finance?approved allocation rules. Product owners made accountable decisions, disputes subsided, and teams spent less time reconciling invoices—while the existing clouds, warehouse, and BI tools remained in place.

Client Profile

  • Industry: Media and streaming
  • Company size (range): Multi?brand portfolio with global audiences and distributed engineering teams
  • Stage: Multi?cloud footprint across AWS, Azure, and Google Cloud; ad hoc cost reporting from cloud consoles and spreadsheets
  • Department owner: IT & Infrastructure (Cloud Platform/FinOps)
  • Other stakeholders: Product Engineering, Data Platform, Finance/FP&A, Procurement, Security, Executive Sponsors

The Challenge

Cloud bills arrived as separate exports with different schemas and timing. Linked accounts, subscriptions, and projects used distinct hierarchies; credits and reservations were applied differently; and taxes, support plans, marketplace charges, and data transfer muddied comparisons. Tags existed but were inconsistent across teams and environments. As a result, monthly closes involved manual roll?ups and one?off allocations for shared services, and showback reports did not match what Finance saw on invoices.

Engineering lacked a trusted lens on cost drivers. A platform team’s Kubernetes cluster supported multiple products, but chargebacks changed each period based on who built the report. Data transfer and storage were frequently treated as central expenses instead of shared costs, so product owners could not tie architectural decisions to spend. Procurement negotiated commitments and discounts, yet the realized impact was hard to demonstrate in a way product leaders accepted.

Timing created friction. Invoices finalized after internal reporting cutoffs, discounts posted retroactively, and late tags required reprocessing. Conversations about cost drifted into debates over definitions rather than into decisions about rightsizing or architecture choices.

Why It Was Happening

Root causes were fragmented billing exports and an absent, finance?governed cost model. Each cloud used its own identifiers for accounts, services, and SKUs, and there was no canonical schema to reconcile them. Tags were optional and lacked policy, so business mappings broke when teams renamed services or created new resources. Shared cost allocation lived in spreadsheets rather than in a rules engine with ownership and effective dates. BI dashboards and warehouse tables were connected loosely, so figures appeared to change depending on the path used to assemble them.

Ownership was diffuse. Platform owned tooling, Engineering owned resources, Procurement owned contracts, and Finance owned reporting. Without a shared pipeline and approval process for cost definitions, tags, and allocation rules, alignment depended on whoever produced the latest spreadsheet.

The Solution

Intelligex delivered a FinOps?aligned cost pipeline that ingested cloud billing from AWS, Azure, and Google Cloud into Snowflake, normalized it to a canonical schema, applied tag compliance and allocation policies, and surfaced showback dashboards in Power BI. The pipeline consumed AWS Cost and Usage Reports (CUR), Azure cost exports, and Google Cloud Billing exports; harmonized accounts, subscriptions, and projects to business entities; and applied finance?owned rules for shared services, credits, reservations, and commitments. Tag compliance was measured and enforced through policy, and low?confidence allocations entered a review queue. The approach followed practices from the FinOps Framework and leveraged official billing export mechanisms for AWS CUR, Azure Cost Management exports, and Google Cloud Billing export, with modeling in Snowflake and visualizations in Power BI.

  • Integrations: AWS CUR via S3; Azure Cost Management exports to storage; Google Cloud Billing export from BigQuery; Snowflake as the central warehouse; Power BI for dashboards; optional ticketing for allocation reviews.
  • Canonical cost schema: Standard fields for provider, account/subscription/project, service/SKU, usage and cost metrics, credits/discounts, taxes, tags and labels, region/zone, and business mappings (product, environment, owner).
  • Tag compliance policies: Required key sets by environment and team; effective?dated policy versions; compliance scores and exceptions with owners.
  • Allocation and policy engine: Finance?owned rules for shared services (platform, data, networking), data transfer apportionment, commitment and reservation amortization, and marketplace charges; rationale and change logs.
  • Controls and validations: Reconciliation of warehouse totals to invoice amounts; detection of late tags and retro discounts; tolerance thresholds with reason codes.
  • Dashboards: Showback by product and owner, unit cost trends, tag compliance, idle and over?provisioned signals, commitment coverage, and variance views; drill?downs to resource and SKU.
  • Exception workflow: Queue for low?confidence allocations, missing tags, and shared cost updates; maker?checker approvals with attachments; segregation of duties enforced.
  • Security and access: Role?based access to cost domains; masking for sensitive tags or owner details; export controls and lineage tracking.

Implementation

  • Discovery: Cataloged current AWS, Azure, and Google Cloud accounts and exports; inventoried tag keys and compliance gaps; reviewed allocation practices for shared services and data transfer; gathered Finance and Procurement requirements for commitments and credits; collected audit and FP&A feedback.
  • Design: Defined the canonical schema and identity crosswalks; authored tag policy and compliance scoring; specified allocation rules and effective dating; designed reconciliation checks to invoice totals; planned Power BI datasets, role?based access, and lineage exports.
  • Build: Implemented ingest of AWS CUR, Azure exports, and Google Cloud Billing data; built normalization and currency handling; developed the allocation and tag compliance engines; configured reconciliation checks and exception routing; created Power BI models and dashboards; enabled audit logging in Snowflake.
  • Testing/QA: Ran in shadow mode: produced draft showbacks while teams used existing reports; reconciled warehouse totals to invoices; tuned tag policies, allocations, and mappings; piloted exception reviews with Platform, Product, and Finance owners.
  • Rollout: Launched showback for a subset of products first; retained legacy spreadsheets as a controlled fallback; expanded coverage to all clouds and products after stable cycles; enforced tag policies and approvals for allocation changes post?training.
  • Training/hand?off: Delivered sessions for Product, Engineering, and Finance on reading showbacks, fixing tags, and proposing allocation policy updates; updated SOPs for tag hygiene, shared service definitions, and commitment tracking; transferred ownership of policies and dashboards to the FinOps function under change control.
  • Human?in?the?loop review: Established recurring reviews of exceptions, policy changes, and outlier costs; decisions recorded with rationale and effective dates; insights fed back to product roadmaps and procurement planning.

Results

Cloud costs became explainable and actionable. Product and platform leaders saw the same allocations, tag compliance improved under policy, and showbacks matched invoice?reconciled totals in Snowflake. Discussions shifted from whose numbers to trust to which architecture or usage to adjust. Shared services and data transfer were apportioned consistently, and commitment benefits were visible to stakeholders who could change behavior.

Operational friction declined. Finance closed with fewer late reconciliations, Procurement demonstrated contract impact with evidence, and Engineering made tradeoffs with a clear view of unit costs and trends. AWS, Azure, Google Cloud, Snowflake, and Power BI stayed in place; the addition was a governed ingestion, allocation, and showback layer that aligned policy and execution.

What Changed for the Team

  • Before: Each cloud’s console and exports produced different answers. After: A canonical Snowflake model reconciled to invoices fed all dashboards.
  • Before: Tags were optional and inconsistent. After: Tag policies with compliance scores and owners drove reliable business mapping.
  • Before: Shared costs and data transfer were debated monthly. After: Finance?owned allocation rules applied consistently with change logs.
  • Before: Spreadsheets reconciled invoices. After: Automated reconciliation and lineage in Snowflake underpinned showbacks in Power BI.
  • Before: Commitments and credits were opaque. After: Dashboards showed commitment coverage and realized impact by product.
  • Before: Policy changes lived in emails. After: Maker?checker approvals and effective?dated versions governed updates.

Key Takeaways

  • Normalize first; bring all cloud billing into a canonical warehouse model tied to invoices.
  • Make tags a policy, not a suggestion; define required keys by environment and team with compliance tracking.
  • Encode allocations; handle shared services, data transfer, and commitments in rules with rationale and versioning.
  • Run in shadow mode; reconcile to invoices and tune policies before replacing legacy reports.
  • Preserve lineage; show how showbacks tie to billing records, tags, and policy versions to end disputes.
  • Integrate, don’t replace; keep AWS, Azure, Google Cloud, Snowflake, and Power BI, and add a governed FinOps layer.

FAQ

What tools did this integrate with? Billing data flowed from AWS Cost and Usage Reports, Azure Cost Management exports, and Google Cloud Billing export. Costs were modeled in Snowflake and visualized in Power BI. Optional workflows used the company’s ticketing and collaboration tools for exception reviews.

How did you handle quality control and governance? Tag policies and allocation rules lived in a FinOps registry with owners, rationale, and effective dates. Warehouse totals reconciled to cloud invoices, and exceptions carried reason codes. Changes to shared cost methods, tag requirements, or mapping logic required maker?checker approvals. All ingests, rule evaluations, reconciliations, and dashboard publishes were immutably logged.

How did you roll this out without disruption? The pipeline ran in shadow mode initially, producing draft showbacks while existing reports continued. We reconciled warehouse totals to invoices, tuned tag policies and allocations with stakeholders, and turned on Power BI dashboards for a subset of products first. Legacy spreadsheets remained as a controlled fallback until adoption and stability were clear.

How were shared services and data transfer allocated? The policy engine applied finance?owned rules aligned to the company’s operating model—such as proportional allocation by usage, seats, or traffic. Data transfer and central platform costs were apportioned using agreed drivers. Low?confidence allocations entered a review queue, and approved changes were versioned for future periods.

How did you manage commitments, discounts, and credits? Reservations, committed use, negotiated discounts, and credits were ingested and amortized per policy. Dashboards showed coverage and realized impact by product and owner. Retroactive adjustments were detected and applied prospectively with clear lineage to billing records.

What about security and access to cost data? Role?based access limited views by product, department, or region. Sensitive owner or tag fields were masked where not required. Snowflake captured access and query logs, and Power BI datasets exposed only necessary fields for each audience.

How did you improve tag compliance? Required tag keys were defined per environment and team, compliance was scored, and missing or malformed tags were surfaced with owners and due dates. Dashboards highlighted gaps, and fixes in the cloud were reflected on the next load. Policy updates followed change control.

You need a similar solution?

Get a FREE
Proof of Concept
& Consultation

No Cost, No Commitment!