AI Usage
The AI Usage dashboard shows what your organisation is spending on AI services — the same way the Finance dashboard shows your cloud spend. It appears in the navigation under Cloud Intelligence once you have connected at least one AI provider or the feature is enabled for your tenant.
Usage and spend are imported directly from each AI provider, so the figures you see are the amounts the provider actually charged — not estimates. Everything is shown in your tenant's display currency, with conversion handled by Cloud Ctrl.
Getting data in
If you have not connected an AI provider yet, start with the AI Connectors setup guide. The dashboard fills in automatically as usage is imported.
Opening the dashboard
Open the sidebar and choose AI Usage under the Cost and Usage section. The page is organised into four tabs:
| Tab | What it answers |
|---|---|
| Overview | How much are we spending on AI, and is it trending up or down? |
| Models | Which models are consuming the budget, and what did we get for it? |
| Users | Who is spending it, and how much of the bill is tied to a person? |
| API Keys | Which API keys and workloads are consuming spend, and how well is that attribution covering the bill? |
Every tab shares the same date-range and search controls, so a filter you set on one tab carries to the others.
Default window
AI usage accumulates slowly, so this screen defaults to a 13-month window rather than the 30-day default used elsewhere. Pick a shorter range with the date selector when you want to focus on recent behaviour.
Understanding spend, gross and credits
Some providers bill through credits, allowances or subscriptions that cover part of the usage at no incremental charge. The dashboard therefore reports two figures side by side:
- Net AI Spend — what was actually billed (the amount you will see on the provider's invoice).
- Gross AI Spend — the list-price value of the usage before credits or allowances were applied.
The difference between the two is the credits drawn down — the value of prepaid or included consumption used during the window. When any credits were drawn down, the trend chart shows this as a stacked "Billed vs Credits" bar: net spend at the bottom, the credit portion on top, so the total bar height is always the gross figure.
This distinction matters for seats and allowances: a user working entirely inside their included allowance may be one of the heaviest consumers on the team while costing $0. The token counts still appear, so consumption-based decisions are not distorted by what happened to be covered that month.
Overview
The Overview tab frames AI spend as a trend plus four headline figures:
| Tile | Meaning |
|---|---|
| Net AI Spend | Billed cost after credits, for the selected window. |
| Total Tokens | Tokens consumed across all AI usage in the window. |
| Peak {Day/Month} Spend | The highest single period in the window. |
| Average / {Day/Month} | Mean spend per period. |
Beneath the tiles:
- AI Spend by Account — a stacked bar chart of AI-classified spend per cloud account (connection) over time. Use the toolbar to change the date range (30d/60d/6m/12m/13m or a custom range) and to filter or search by account.
- By Provider — the split of spend across your connected AI providers (OpenAI, Anthropic, GitHub Copilot, Cursor, xAI, OpenRouter). The View in Cost Explorer link opens the same breakdown grouped by provider in the standard Cost Explorer.
- Top Models / Top Users / Top API Keys — pie charts of the highest-spend items in each facet, each linking to its dedicated tab for the full breakdown.
The tab compares the selected window with the preceding window of equal length and shows the percentage change, so "are we spending more on AI than last month?" is answered on sight.
Models
The Models tab breaks spend down per AI model across the whole window:
| Tile | Meaning |
|---|---|
| Total Tokens | Tokens consumed across all models. |
| Total Billed Requests | Request-metered consumption (premium requests, AI credits) where the provider bills per request. |
| Net AI Spend | Billed cost after credits. |
| Gross AI Spend | List price before credits. |
- AI Spend by Model — a stacked bar of the top models by spend over time, with the remaining models grouped as Others.
- Model leaderboard — the same breakdown ranked by spend, showing spend, usage value, tokens and billed requests per model.
- Drill-down — click any model to open a dialog with:
- By token type — input, cache, output and total token counts for the model. Cached input and reasoning output are called out as their own buckets because they price differently from ordinary input and output tokens.
- Included vs on-demand — where the provider distinguishes usage covered by an allowance from usage billed incrementally, the split is shown (see Understanding the charge mix).
- Connections — which cloud connections (accounts) generated the spend for this model.
Users
The Users tab attributes AI spend to business identities, and is where you manage attribution quality:
| Tile | Meaning |
|---|---|
| Attributed Users | How many identities carry attributed spend. |
| Attribution Coverage | The share of AI spend tied to a real user identity, as a percentage. |
| Attributed Spend | Spend tied to an identity over the window. |
| Unattributed Spend | Spend with no user identity on the underlying usage. |
- AI Spend by User — stacked bar of attributed spend per user over time.
- User leaderboard — attributed spend per identity, with spend, usage value, tokens and requests. Click a user to drill into their Connections and Models.
- Attribution Coverage — a panel showing the attributed percentage with the attributed vs unattributed counts and dollar figures.
Improving attribution coverage
Unattributed spend has no ai.user identity on the underlying usage. How much of that you can fix depends on the provider:
- Providers that supply a user identity (OpenAI, GitHub Copilot, Cursor) attribute spend per user automatically.
- Providers that cannot (Anthropic, xAI, OpenRouter) report only at the workspace/team/account level — see the attribution comparison table before choosing a connection if per-person attribution matters to you.
- Where a provider reports the day's charge without a user or key, Cloud Ctrl shares that day's charge across the users and keys that were active, so attributed totals always add back up to exactly what the provider billed — attribution never silently drops spend.
If raw handles are messy (for example several email spellings or bot accounts), use Edit attribution mapping on this tab. It opens the normalisation editor for the AI User dimension, where you can group raw handles into canonical identities without leaving the screen. The same mechanism exists for AI API Key on the API Keys tab.
API Keys
The API Keys tab mirrors the Users tab, with attribution by API key instead of person:
| Tile | Meaning |
|---|---|
| Tracked API Keys | How many API keys carry attributed spend. |
| Attribution Coverage | The share of AI spend tied to an API key. |
| Attributed Spend | Spend tied to a key over the window. |
| Unattributed Spend | Spend with no API key on the underlying usage. |
- AI Spend by API Key — stacked bar of attributed spend per key over time.
- API Key leaderboard — attributed spend per key with drill-down into Connections and Models.
- Edit attribution mapping — normalise raw key references into canonical identities, exactly as for users.
API keys are the natural allocation handle for teams that run workloads under shared keys: naming keys per team, application or environment (for example proj-atlas-dev) makes this tab the per-team cost view without any extra mapping work.
Understanding the charge mix
For providers with seat allowances or included usage (GitHub Copilot, Cursor, Anthropic via commitments), every token is recorded as one of:
- Included — covered by an allowance the customer already pays for. Recorded with its token count and $0 incremental cost, which is what the provider charges.
- On-demand — billed incrementally at metered rates. This is what adds to your spend.
- Unknown — usage imported before this split was recorded. It is reported as unknown rather than assumed, since assuming on-demand would misreport allowance-covered usage as billed.
The split appears in the drill-down token tables, so you can see both how much a model was used and how much of that use was billable. A model with high token counts but a mostly included mix is not driving your invoice; one that is almost entirely on-demand is where optimisation pays.
How Cloud Ctrl classifies AI spend
All imported AI usage is tagged with reserved, system-managed dimensions that behave like any other tag in the platform:
| Dimension | Reserved tag | What it carries |
|---|---|---|
| AI User | $aiuser | The business identity behind the usage. |
| AI API Key | $aikey | A masked reference to the API key used. |
| AI Model | $aimodel | The canonical model id, comparable across providers. |
Three facts about how these behave:
- Unattributed usage is never blank. Rows with no identity land under a reserved
$Unassignedvalue, so filters and reports always see a value rather than a gap. - They are available everywhere. The dimensions can be used in Tag Mapping, Cost Explorer groupings and reports, so you can build chargeback or cross-provider views from them.
- They are auto-provisioned. Connecting any AI provider provisions the three dimensions for the tenant; no manual setup is required.
Frequently asked questions
Why does my AI spend not match my provider's invoice to the cent?
Net AI Spend reconciles to what each provider billed. Differences you might legitimately see:
- Calendar boundaries. Providers such as Cursor bill on a subscription cycle that does not start at midnight UTC, so a calendar-month view differs from a provider cycle view by whatever usage falls in the offset. Match your date range to the provider's cycle to compare like for like.
- Seat subscriptions. The Cursor connector ingests usage-based spend only — the fixed seat subscription is not included because the provider API does not expose it. Add it separately to reconcile the full invoice.
- Time to import. The initial import can take up to 24 hours, and recent days can lag until the provider finalises its own billing feeds.
Why do token counts show for a month where spend is $0?
When credits fully cover usage, the provider bills nothing and Cloud Ctrl reports $0 — but the tokens are still recorded. This is deliberate: consumption visibility should not disappear just because the cost happened to be covered that month.
Why does a heavy user show $0 on the Users tab?
They may be working entirely inside an included allowance (see Understanding the charge mix). Their tokens still appear in the drill-downs; only the billed amount is $0.
Why can I not see spend by person for my provider?
Not all providers expose a per-user breakdown. See the attribution comparison table for what each connector can attribute, and each provider's page for workarounds such as workspace-scoped keys or per-team accounts.
What does "Unattributed" mean and how do I reduce it?
It is spend with no identity on the underlying usage, shown in the coverage tiles as the unattributed bucket. Reduce it by choosing providers and key structures that carry attribution (see the comparison table), and by normalising raw handles with Edit attribution mapping.