Skip to content

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.

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:

  1. 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.

  2. 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/ND series → A100, H100, MI300X, …).

  3. Tag convention (your control) — tag any resource to include it, exclude it, or enrich it:

    Tag Effect
    cloudoptify:ai = true Classify this resource as AI (e.g. a training-data bucket or vector DB the rules can’t see)
    cloudoptify:ai = false Exclude it (e.g. a GPU box used for rendering, not ML)
    cloudoptify:ai-workload = training | inference | fine-tuning | ingestion Sets 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.

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.

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.

  • 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.

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.

  • 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-workload tag) that show how the classification maps to plain SQL over the azure_resource_costs / aws_resource_costs tables.

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.