For the complete documentation index, see llms.txt. This page is also available as Markdown.

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, and the Spend by provider page shows where the two agree and where they do not.

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.

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.


Connect your provider first: see Connecting Providers.

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.

For setup steps for each provider, see Provider Integrations.


Where the Metered figure comes from

Metered figures come from usage Revenium records itself: calls sent through the Revenium SDK or the metering API, OpenTelemetry data, 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.

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

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.

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.


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

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.

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.


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, then set your price on each one. Use Clone a Global AI Model the first time you price a model, and Update 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.


Last updated

Was this helpful?