Multi-cloud cost management
LiveMulti-cloud cost management: AWS, Azure, and Google Cloud on one cost schema
Each cloud bills in its own format — the Cost and Usage Report on AWS, Cost Management exports on Azure, the BigQuery billing export on Google Cloud — with its own names for accounts, services, and tags. CloudQuell reads each native export through a read-only connection and maps every line onto one schema, so budgets, allocation, and anomaly detection run once across all three.
OpenAI, Anthropic, and Snowflake land on the same ledger. All six integrations are on every plan; Free covers three connected integrations under $10K/month of tracked spend — enough for one per cloud.
What it reads, per cloud
Each provider's own billing record, at the grain it publishes — nothing sampled.
- AWS
- The Cost and Usage Report (CUR 2.0), a daily resource-level Parquet export in a bucket you own, plus up to 12 months of Cost Explorer history backfilled on connect. Linked accounts are sub-accounts; cost-allocation tags ride on every line item.
- Azure
- A daily Cost and usage (FOCUS) export to a storage account you own — invoice-accurate billed and amortized cost — or an API quick connect that backfills up to 13 months with no export setup. Subscriptions are sub-accounts; resource groups arrive as tags.
- Google Cloud
- The Detailed usage cost export in BigQuery, down to project and SKU. Projects are sub-accounts; resource and project labels merge into tags. Google backfills only the current and previous month on a new export, so history grows forward from there.
- Commitments
- AWS Reserved Instances and Savings Plans, Azure reservations and savings plans through two optional read roles, and Google Cloud CUD-covered usage with its commitment identity. On Azure EA quick connect, coverage figures are partial; the FOCUS export path is complete.
- AI and data platforms
- OpenAI, Anthropic, and Snowflake on the same ledger — plus Bedrock, Azure AI Foundry, and Gemini / Vertex AI usage read from the cloud bills and counted once, inside cloud spend.
One schema, three billing formats
An EC2 line item, an Azure Virtual Machines meter, and a Compute Engine SKU land in the same normalized fields — account, subscription, and project become scope; tags and labels become attribution.
| Normalized field | AWS | Azure | Google Cloud |
|---|---|---|---|
| Source record | CUR 2.0 | Cost and usage (FOCUS) export | BigQuery Detailed usage cost export |
| Provider | AWS | Azure | GCP |
| Date | CUR billing day | export / API day | BigQuery export day |
| Service | Amazon EC2 · product service code | Virtual Machines · meter category | Compute Engine · service + SKU |
| Scope | 4021…8843 (prod) · linked account | prod-sub (…9f2c) · subscription | prod-analytics · project |
| Cost (USD) | $1,284.50 · amortized / effective | $612.30 · billed + amortized | $438.90 · detailed export |
| Usage | 940 hrs | 720 hrs | 512 hrs |
| Attribution | team=payments · resource tag | team=platform · resource tag | team=data · resource / project label |
How each cloud connects
Read-only on every cloud. Nothing is written back, and no agent runs in your accounts.
- AWS
- A cross-account IAM role with read-only billing permissions, assumed with a unique ExternalId; CloudQuell stores no AWS access keys. Quick-create it with a CloudFormation stack in about five minutes, from the management (payer) account so every linked account is covered.
- Azure
- A Microsoft Entra ID service principal with read-only cost roles — Cost Management Reader on the subscription, Billing account reader for MCA, or EnrollmentReader for EA — plus Storage Blob Data Reader on the export container if you use the export path. The secret is stored in AWS Secrets Manager, and CloudQuell warns you before it expires.
- Google Cloud
- Keyless, through Workload Identity Federation: grant CloudQuell's service account BigQuery Job User on the export project and BigQuery Data Viewer on the export dataset. Removing the two grants revokes access.
- Freshness
- Daily, not real-time. Azure reports with an 8–24 hour lag and Google restates over 24–48 hours; alert rules count AWS, Azure, and Google Cloud data through the day before yesterday, the last day each has finished reporting.
- Currency
- Every dashboard, report, and budget shows one display currency, chosen from 28. Charges keep the currency they were billed in and convert at the reference rate for the close of their billing month, so a past month's total doesn't move.
- Plans
- AWS, Azure, and Google Cloud connect on every plan, Free included within its three connected integrations. Budgets, cost centers and allocation, full anomaly and commitment detail, alerts, and MCP access are on paid plans from $99/month flat.
What it unlocks
One schema means each FinOps workflow runs once across clouds instead of once per console — with the gaps stated.
One view across clouds
At organization scope the Cloud dashboard combines every connected cloud — month-to-date spend, trend, top movers, and per-account breakdown — and the all-sources Overview adds AI and Snowflake with a forecast month-end. Reports pivot one provider at a time: a report cannot mix AWS and Azure rows.
One allocation model
Cost centers and allocation rules span every connected provider in one taxonomy, so a team's tagged AWS, Azure, and Google Cloud spend rolls up to the same center. Rules match a tag, a service, or an entire integration; there is no rule for a single linked account, subscription, or project. Spend no rule claims, on any cloud, lands in one Unallocated bucket.
Cloud cost allocation →Commitments across all three
AWS RIs and Savings Plans, Azure reservations and savings plans, and GCP CUDs on one Commitments page, counting toward Effective Coverage % — coverage times utilization. Commitment Expiry alerts cover AWS Reserved Instances and Savings Plans only; Azure and Google Cloud expiries aren't alerted yet.
Effective Coverage % →Budgets and anomalies per cloud
Scope a budget to one cloud platform — every integration for that provider — or to an account, a tag, or a cost center. Anomaly detection checks each service in each integration against its own baseline and alerts Slack, Microsoft Teams, or email.
Cost anomaly detection →Where it stops
Ranked savings recommendations — rightsizing, idle resources, RI and Savings Plan purchases — are AWS-only for now; Azure and Google Cloud get commitment tracking and Effective Coverage %, not recommendations. There is no Kubernetes cost allocation by namespace or workload.
What the native consoles can and can't do
This page is the product. The companion walks one cost investigation through AWS Cost Explorer, Microsoft Cost Management, and Google Cloud Billing — how many dimensions each holds at once, and where each reporting workflow runs out.
AWS vs Azure vs Google Cloud cost reporting →Common questions
- What is multi-cloud cost management?
- Tracking, allocating, and controlling spend across more than one cloud provider from one place. The hard part is the data: AWS, Azure, and Google Cloud each export billing in a different format with different names for accounts, services, and tags. CloudQuell reads each native export read-only and normalizes it into one schema, so a budget, a cost center, or an anomaly check works the same way on every cloud.
- Can I see AWS, Azure, and GCP costs in one place?
- Yes. At organization scope the Cloud dashboard combines every connected cloud, and the all-sources Overview adds OpenAI, Anthropic, and Snowflake, with a data-through date per source. Allocation, budgets, anomalies, commitments, and tag coverage work across the whole organization. The report builder is the exception: a pivot report reads one provider at a time.
- Which billing data does CloudQuell use for each cloud?
- Each provider's own export: CUR 2.0 on AWS, with a 12-month Cost Explorer backfill; the Cost and usage (FOCUS 1.0r2) export on Azure, or an API quick connect that backfills up to 13 months; and the Detailed usage cost export in BigQuery on Google Cloud. Google's FOCUS export is still preview, so CloudQuell reads the Detailed export there.
- What access does a multi-cloud FinOps tool need on each cloud?
- For CloudQuell, read-only on all three. AWS: a cross-account IAM role with billing and read permissions, assumed with an ExternalId. Azure: an Entra ID service principal with cost-reader roles. Google Cloud: two BigQuery read roles granted to a CloudQuell service account through Workload Identity Federation, with no key exchanged. Nothing is written back to any account.
- Does multi-cloud cost optimization cover Azure and Google Cloud?
- Partly. Commitment tracking covers all three — AWS Reserved Instances and Savings Plans, Azure reservations and savings plans, and Google Cloud CUDs — and each counts toward Effective Coverage %. Ranked savings recommendations, including rightsizing and commitment purchases, are AWS-only for now. Kubernetes cost allocation is not supported.
- How much does multi-cloud cost management cost?
- AWS, Azure, and Google Cloud connect on every plan. Free covers three connected integrations under $10K/month of tracked spend. Paid plans are flat — Starter $99/month up to $50K of monthly spend, Growth $199/month up to $200K, Scale custom above that — never a percentage of your bill, with a 14-day trial and no credit card.
Free under $10K/month of tracked spend, three integrations included. Read-only on every cloud, flat monthly price.