AI Cost Intelligence (Public Preview)
AI Cost Intelligence finds the AI/ML portion of your cloud bill — Azure OpenAI, Azure Machine Learning, Amazon SageMaker, Amazon Bedrock, GPU compute, and anything you tag as AI — and turns it into a dedicated dashboard: total AI spend and its share of your bill, breakdowns by category, team, workload, and model, a searchable AI resource inventory, and savings recommendations specific to AI workloads.
How it works
Section titled “How it works”AI Cost Intelligence is a classification layer over billing data CloudOptify already ingests — your AWS CUR and Azure Cost Management export per-resource rows, plus the resource inventory collected by normal scans. Nothing new is read from your cloud. Every cost line and resource is evaluated against three tiers of signals:
-
Service identity (highest confidence) — Azure OpenAI / Cognitive Services, Azure Machine Learning, Azure AI Search, Amazon SageMaker, Amazon Bedrock, and managed AWS AI services (Comprehend, Rekognition, Textract, Transcribe, and others) are classified deterministically from the billing lines themselves.
-
GPU SKU registry — GPU compute is detected from what you’re billed for: AWS instance families in CUR usage types (
p4d/p5→ A100/H100,g5/g6e→ A10G/L40S,trn/inf→ Trainium/Inferentia, …) and Azure VM SKUs from the resource inventory (NC/NDseries → A100, H100, MI300X, …). -
Tag convention (your control) — tag any resource to include it, exclude it, or enrich it:
Tag Effect cloudoptify:ai=trueClassify this resource as AI (e.g. a training-data bucket or vector DB the rules can’t see) cloudoptify:ai=falseExclude it (e.g. a GPU box used for rendering, not ML) cloudoptify:ai-workload=training|inference|fine-tuning|ingestionSets the workload dimension cloudoptify:ai-model=<name>Attributes spend to a model (for custom/self-hosted models)
Model attribution is automatic for managed services where the bill carries it (Bedrock usage
types embed the model family) and tag-derived otherwise — the UI marks tag-derived values so
you always know which is which. Environment comes from your existing environment/env/stage
tags, and team allocation uses the same cloud groups as the rest of CloudOptify.
Prerequisites
Section titled “Prerequisites”| Requirement | Why |
|---|---|
| The AI Cost Intelligence feature enabled on your plan | It’s a per-plan feature — your admin enables it in the package configuration |
| A billing export connected (AWS CUR and/or Azure Cost Management export) | Classification reads per-resource billing rows; without an export there is nothing to classify |
(Recommended) Cloud groups configured, and the cloudoptify:ai-* tags on custom AI resources |
Unlocks per-team allocation and the workload/model dimensions |
No new cloud access is required. The feature works entirely from data CloudOptify already collects with its existing read-only access.
What access is needed — now and later
Section titled “What access is needed — now and later”The page itself shows this under “What CloudOptify reads for this page.”
Today (baseline — no action needed): billing-export lines, resource-inventory metadata (VM SKUs), tags, and your cloud-group setup.
Planned preview additions (optional, opt-in when they ship):
- Live GPU utilization — Azure Monitor platform metrics are covered by the Reader role your connection already has; AKS GPU node depth additionally needs Log Analytics Reader on your workspace with the NVIDIA DCGM exporter enabled.
- Deeper AWS discovery (endpoint/job inventory beyond billing) — a role-policy update adding
read-only
sagemaker:List*/Describe*,bedrock:List*/Get*,eks:List*/Describe*. A versioned policy update guide will be published when this ships; missing permissions never break the baseline experience.
What is never read: prompts, completions, training data, model artifacts, vector-database contents, or any stored data. Billing lines, control-plane metadata, and aggregate metrics only — the same read-only posture as the rest of the platform.
The dashboard
Section titled “The dashboard”- KPIs — AI spend for the selected range, share of total cloud spend, trend vs. the previous period, and total monthly savings potential from the recommendations.
- Breakdowns — by category (token services, ML platform, GPU compute, AI search), team, workload, and model.
- AI resource inventory — every classified resource with provider, type, model, team,
environment, GPU, cost, and a billing-derived status:
- Always-on — billed every day at a steady rate (schedule/spot candidate if it isn’t production inference)
- Bursty — job-style pattern, active on a minority of days (spot candidate for training)
- Idle — no charges for 7+ days
- Active — everything else Filter by status, provider, category, team, environment, or GPU; click a row for details; export the table as CSV. The Utilization column shows No data until metrics collection ships — statuses are billing-derived, and each one explains its reasoning in a tooltip.
- Recommendations — see below.
Savings recommendations
Section titled “Savings recommendations”Recommendations are computed from billing patterns, each with a monthly savings estimate and a confidence level. Estimates are deliberately conservative — validate before acting:
| Recommendation | Trigger | Typical estimate |
|---|---|---|
| GPU schedule / spot | Always-on GPU compute that isn’t tagged as production inference | ~45% (nights + weekends are ~65% of hours) |
| GPU rightsize | Training-class GPUs (A100/H100/H200/MI300X) on steady, non-training workloads | ~40% (L40S/L4/A10 class for inference) |
| Spot for training | Bursty, job-style usage billed at on-demand rates | ~55% (typical spot discounts 60–90%) |
| Idle cleanup | AI resources with no charges for 7+ days but real earlier run-rate | ~90% of run-rate |
| Token efficiency | One deployment dominating token-service spend | ~15% (caching, prompt-size review, rate limits) |
| Allocation | ≥25% of AI spend not allocated to any team | — (governance: accountability drives reduction) |
Recommendations never act on your environment — CloudOptify’s access is read-only. They tell you what to change and why; you make the change.
Custom views & SQL
Section titled “Custom views & SQL”- Widgets — the custom views widget picker includes AI sources: AI Spend and AI Savings Potential KPI tiles, and AI Spend by Category / Team / Model for donut and leaderboard widgets.
- SQL sandbox — the example-query cookbook includes AI queries (AI spend by service, GPU
compute spend on AWS, AI daily trend, spend by
cloudoptify:ai-workloadtag) that show how the classification maps to plain SQL over theazure_resource_costs/aws_resource_coststables.
Why is my AI spend zero? Either no billing export is connected (the classification source),
or your AI usage runs through services the rules don’t recognise yet — tag those resources with
cloudoptify:ai and they’ll appear on the next load. Tell support what was missed so the rules
learn it.
Why doesn’t the model column show my model? Model attribution is automatic only where the
bill carries it (e.g. Bedrock). For Azure OpenAI deployments and self-hosted models, set
cloudoptify:ai-model on the resource.
A resource is classified as AI but isn’t. Tag it cloudoptify:ai = false.
Do estimates equal guaranteed savings? No — they are pattern-based estimates with stated assumptions and confidence levels. Treat them as a prioritised to-investigate list.