> For the complete documentation index, see [llms.txt](https://docs.revenium.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.revenium.io/track-and-control-costs/how-revenium-prices-a-transaction.md).

# How Revenium Prices a Transaction

Where Revenium's Invoiced (Billed) and Metered figures come from, how the gap between them is shown, and how to make Metered cost reflect a negotiated rate.

Revenium shows two kinds of cost figure, and they come from different places. **Invoiced** is what your AI provider charged you, read from the provider's own billing data. **Metered** is usage Revenium recorded directly, priced by Revenium. The provider's billing data is the record of what you owe. Metered is the detailed, per-request view. The [**Spend by provider**](/track-and-control-costs/monitor-infrastructure-costs.md) page shows where the two agree and labels each provider by how close Metered comes to its invoice.

A negotiated rate does not change your Invoiced figure, because that figure already comes from the provider. It changes Metered only if you enter it. You set it per model in the app, or for a whole provider at once through the API, as described in [Use a negotiated or committed rate](#use-a-negotiated-or-committed-rate).

{% hint style="info" %}
**Invoiced and Billed are the same data.** The **Spend by provider** view labels provider-charged figures **Invoiced**. Other screens, such as **Guardrails** and **Alerts**, and the source chips on dashboard tabs, label the same data **Billed**. This page uses Invoiced.
{% endhint %}

***

Connect your provider first: see [Connecting Providers](/get-started/quickstart/connecting-providers.md).

## Where the Invoiced figure comes from

Invoiced figures come from your provider's billing or cost reporting API, through the provider connection you set up under **Integrations > Providers**. Revenium stores the cost amount the provider reports and does not recalculate it with Revenium's own prices. Runway is the one conversion: it reports credits, which Revenium values at $0.01 each. Without a provider connection, Revenium stops syncing new Invoiced data. Spend it already imported stays in your history and still counts in the periods it covers.

| Provider             | Billing source                  |
| -------------------- | ------------------------------- |
| Anthropic            | Admin API                       |
| Anthropic Enterprise | Claude Enterprise Analytics API |
| OpenAI               | Admin API                       |
| Google (Vertex AI)   | BigQuery Billing Export         |
| AWS Bedrock          | AWS Cost Explorer               |
| Azure                | Azure Cost Management           |
| LiteLLM              | LiteLLM Proxy API               |
| OpenRouter           | OpenRouter API                  |
| Cursor               | Cursor API                      |
| GitHub Copilot       | GitHub Billing API              |
| fal.ai               | fal.ai Platform API             |
| Runway               | Runway API                      |

Timing depends on the provider and on how the data was refreshed:

* Revenium's daily sync loads the previous day, so by default today's spend appears only as Metered. A manual refresh can request today or a longer span.
* Some providers revise recent billing data, and Revenium picks up those revisions, so a recent Invoiced figure can change. The Providers pages show a notice when the dates you select may still change. See [Data Freshness and Provisional Figures](/track-and-control-costs/data-freshness-and-provisional-figures.md).

For setup steps for each provider, see [Provider Integrations](/integrations/provider-integrations.md).

***

## Where the Metered figure comes from

Metered figures come from usage Revenium records itself: calls sent through the [Revenium SDK](/integrations/sdk-setup.md) or the metering API, [OpenTelemetry data](/integrations/otlp-integration.md), and AI assistant activity. Each recorded transaction is priced when Revenium receives it, in this order:

1. **A cost you send with the transaction.** If your metering payload includes a `totalCost`, Revenium uses that value instead of calculating one.
2. **Your team's own price for the model.** If your team has set its own price for the model, Revenium multiplies the transaction's tokens by that price.
3. **The provider's list price.** Otherwise Revenium uses the published list price for the model.

For text models, each kind of token is priced separately: input, output, cache writes and cache reads. The transaction's cost is the sum of those parts. Image, video and audio models are priced per unit instead, such as per image, per second or per minute.

Each transaction can also record its service tier, when your integration reports it: the tier that was requested, such as priority or flex, and the tier the provider actually used, which can differ when a request is downgraded. It records whether the call ran at batch or standard pricing as well. Because these are kept per call, you can tell premium and batch traffic apart from standard traffic.

A price change applies to transactions Revenium records after you save it. Transactions already recorded keep the cost they were given.

{% hint style="info" %}
**Models without a price.** If a model has no price in Revenium, set one under **Cost Sources > AI Models**, or send `totalCost`, so its usage counts toward Metered spend and [Cost Controls](/track-and-control-costs/cost-controls.md).
{% endhint %}

Some AI assistant usage is paid per seat rather than per token. For those assistants, Revenium shows usage at API rates on the AI Assistants pages but does not count it as real spend, unless you change the team's setting. See [Configure AI Assistant Pricing Mode](/track-and-control-costs/analyze-ai-tooling-spend/configure-coding-assistant-billing-models.md).

***

## How the gap is shown

Open **Providers** in the left navigation. The first tab, **Spend by provider**, is the reconciliation view. Its table lists each provider with **Invoiced**, **Metered**, **Coverage** and **Status** columns. The summary card below it, **Invoiced vs Metered**, shows both totals for the selected period.

**Coverage** is Metered as a share of Invoiced. Near 100% means Revenium's metering sees what you pay for. Do not add the two totals together: they measure the same activity from two sources.

When metering falls short of what a provider invoiced, a banner states the dollar amount, for example "\~$X of invoiced spend from Anthropic is above what Revenium metered". When metering exceeds the invoice, the summary states that amount and lists the usual causes: the provider's billing for the period has not posted yet, credits and discounts bring your invoice below list API rates, or the usage is on a plan the provider does not invoice per token.

### Coverage states

The coverage label compares Revenium's Metered spend with the provider's Invoiced spend. **Full coverage** means the two amounts closely agree. **Partial** and **Low coverage** mean Metered spend is below Invoiced spend. Usage Revenium did not meter is one possible cause. Different prices can also leave a gap even when every call is metered. **Above invoiced** means Revenium metered more than the provider billed, usually for one of the reasons given above.

Each provider row carries one state. The table initially sorts by **Invoiced**, largest first. Select **Needs attention** in the sort control to bring rows that need review to the top.

| State                 | When it appears                                                                                                                                                                                                                                     |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Low coverage**      | Metered is less than 40% of Invoiced.                                                                                                                                                                                                               |
| **Partial**           | Metered is 40% to 89% of Invoiced.                                                                                                                                                                                                                  |
| **Full coverage**     | Metered is 90% to 109% of Invoiced.                                                                                                                                                                                                                 |
| **Above invoiced**    | Metered is 110% or more of Invoiced, or the provider invoiced nothing while Revenium metered usage.                                                                                                                                                 |
| **Not metered**       | The provider invoiced spend and Revenium metered none.                                                                                                                                                                                              |
| **No activity**       | Neither figure has any spend in the period.                                                                                                                                                                                                         |
| **Billing data only** | The provider reaches Revenium only through its billing data, as Cursor does, so there is no separate Metered figure to compare.                                                                                                                     |
| **Seat plan**         | The usage is paid per seat under your pricing setting, so per-token cost is not compared. Where seat counts are known, the row compares instrumented people with invoiced seats instead, and a count above the seats shows as **Above seat count**. |
| **Window narrowed**   | The invoiced total covers the whole period, but metered usage could be compared over only part of it. The row shows both totals without a ratio.                                                                                                    |
| **No overlap**        | The invoiced days and the metered days do not overlap, so there is nothing to compare.                                                                                                                                                              |

When a provider's comparison covers only part of the selected period, the summary card shows an **Adjusted** chip and that row names the window it compared.

{% hint style="info" %}
If you have no provider connection, the view asks you to connect a billing integration instead of showing coverage. If metered usage cannot be loaded, it says the coverage data is temporarily unavailable rather than showing zero.
{% endhint %}

### Provider credits

When a provider reports credits or discounts on its bill, Revenium nets them off gross spend and shows your spend both before and after credits. The Invoiced figures are the gross amount the provider reports, and a line beneath them states the credits and the amount after credits. See [Provider Credits](/integrations/provider-integrations.md#provider-credits) for the providers that report them.

***

## Claude Code and Cowork on a Claude Enterprise invoice

Developers may sign in to Claude Code or Claude Cowork with their Claude Enterprise accounts. Anthropic then bills that usage to your Enterprise organization. The Claude Enterprise feed Revenium reads tags each charge by product.

* On a usage-based Enterprise plan, the feed reports the consumption on your invoice.
* On a seat-based plan, it reports usage credits and overage only. Seat subscription fees do not appear in any Anthropic cost report.

Some Claude Code usage is billed elsewhere and does not appear on the Enterprise invoice:

* Claude Code that signs in with a Claude Console API key is billed to that Console organization.
* Claude Code on Amazon Bedrock, Google Vertex AI or Microsoft Foundry is billed by that cloud. See [Provider Integrations](/integrations/provider-integrations.md) to connect each billing source.

The Claude Code and Claude Cowork figures on the **AI Assistants** pages come from the telemetry each client sends. Revenium values them at API rates. They are an estimate beside the bill, not a line on it.

[AI Assistant Pricing Mode](/track-and-control-costs/analyze-ai-tooling-spend/configure-coding-assistant-billing-models.md) decides whether that estimate counts as spend in Revenium totals. It does not change what Anthropic invoices.

Confirm your plan type and any seat fees against your Anthropic contract. To allocate the billed amount to departments, see [Allocating billed Claude Enterprise spend to departments](/track-and-control-costs/attribute-spend-to-departments.md#allocating-billed-claude-enterprise-spend-to-departments).

***

## Compare vendors side by side

To compare usage, cost and value across your AI vendors in one place, open **Providers** and select the **Comparison** tab. It shows invoice spend separately from Metered usage valued at list API rates, which may differ from the rates you pay. Where a code host is connected, it also shows cost per merged change. See [Monitor Infrastructure Costs](/track-and-control-costs/monitor-infrastructure-costs.md).

***

## Use a negotiated or committed rate

Your Invoiced figure is the amount your provider reports, so a negotiated rate is already in it. Metered figures use list price until you tell Revenium otherwise.

To make Metered reflect your rate in the app, set your own price for each model:

1. Open **Cost Sources** in the left navigation, then **AI Models**.
2. Find the model and choose **Customize Pricing**. For a model your team already priced, the action reads **Edit Pricing**.
3. For a text model, enter your prices per million tokens for input, output, cache creation (5-minute and 1-hour) and cache reads, then save. Image, video and audio models ask for a price per unit instead.

Your price then replaces list price for that model, for your team, from the moment you save. You need admin access to your organization to change prices. Any model you have not priced, including a model the provider releases later, is still priced at list.

**Set every model from one provider at once.** Use the API. List the provider's models with [List AI Models](https://revenium.readme.io/reference/list_ai_models), then set your price on each one. Use [Clone a Global AI Model](https://revenium.readme.io/reference/clone_ai_model) the first time you price a model, and [Update AI Model Pricing](https://revenium.readme.io/reference/patch_ai_model_pricing) after that. API prices are per token, so divide a per-million price by 1,000,000.

If you calculate cost yourself, you can also send it with each transaction as `totalCost`, and Revenium uses your value. See [SDK Setup](/integrations/sdk-setup.md).

***

## Related

* [Monitor Infrastructure Costs](/track-and-control-costs/monitor-infrastructure-costs.md): the Providers pages, including Coverage
* [Provider Integrations](/integrations/provider-integrations.md): connect each provider's billing data
* [Data Freshness and Provisional Figures](/track-and-control-costs/data-freshness-and-provisional-figures.md): when each source last synced, and which Invoiced figures may still change
* [Configure AI Assistant Pricing Mode](/track-and-control-costs/analyze-ai-tooling-spend/configure-coding-assistant-billing-models.md): seat plans versus API rates
* [Set Budgets & Alerts](/track-and-control-costs/set-budgets-and-alerts.md): why guardrails enforce on Metered data


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.revenium.io/track-and-control-costs/how-revenium-prices-a-transaction.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
