Skip to content

Free · no engagement

Your AI usage says one number. Your invoice says another.

Send a month of model usage and the bill you were actually sent. We price the usage back up line by line, reconcile it against the invoice, and tell you where the two disagree and why. Most of the category will estimate your spend. The useful number is the difference between an estimate and an invoice.

Any provider that sends you a bill: OpenAI, Anthropic, Google Gemini, Mistral, or models billed through Bedrock, Vertex AI or Azure. Send one provider or all of them — a bill split across vendors is the hardest one to check by eye.

This never starts with a provider key. It starts with a usage export or an invoice — files you already have. The separate, read-only billing credential that a continuous reconciliation needs is described at the foot of this page, and it is not required for any of this.

INFRO sells a software subscription; your providers keep billing you for models, and we take 0% of that. This is a free pre-sales reconciliation done to demonstrate what the product does continuously — not a consulting, advisory, or professional-services engagement, and there is nothing to sign.

INFRO is in private early access. The catalog, the docs, and the API contract are public today, and the gateway is deployed. The console opens with an early-access account, billing opens in stages, and anything beyond v1 is marked Later. Early access details

None of these is exotic. Each one is a rate a vendor publishes and a cost model quietly fails to apply, and the first three all push the estimate in the dangerous direction: low, so a team plans against it and the invoice arrives larger than the screen promised.

  1. 01  Caching costs something on the way in, not only less on the way out

    Everyone expects a cache read to be cheap, and it is. The write that fills the cache is the part cost models miss: Anthropic bills a five-minute cache write at 1.25x the base input rate and a one-hour write at 2x. Gemini charges for keeping the cache instead — $4.50 per million tokens per hour of storage on Gemini 3.1 Pro — so a cache held warm bills even in an hour nobody reads it. A system that prices cached tokens at the read rate, or the prompt total at the input rate, reads low on exactly the workloads that cache hardest. Our own rate table had this wrong once.

    Anthropic pricing

  2. 02  The same model, the same tokens, three different prices

    OpenAI prices gpt-6-sol at $2 and $10 per million input and output tokens on the standard tier, $1 and $5 on Batch or Flex, and $4 and $20 in fast mode. Anthropic's batch API is half price too, and Amazon Bedrock puts its Priority tier at a 75% premium over Standard and Flex at half the Standard price. A cost model keyed on the model id alone gets two of those three wrong, and neither error shows up in a token count.

    OpenAI API pricing

  3. 03  Long prompts can reprice the whole request

    Gemini 3.1 Pro is $2.00 per million input tokens and $12.00 per million output tokens for prompts up to 200k tokens, and $4.00 and $18.00 above it — the rate is chosen by the size of the prompt, so crossing the line reprices the request rather than only the tokens past the threshold. Anthropic went the other way: Claude 4.6 and later carry the full million-token window at the standard rate. Whether a long-context premium exists at all depends on the vendor and the model generation.

    Gemini API pricing

  4. 04  Some of the bill is not tokens at all

    Server-side tools bill per call, per session or per gigabyte. OpenAI charges $10 per 1,000 web search calls, $2.50 per 1,000 file search calls plus $0.10 per GB a day of vector storage past the first gigabyte, and code-interpreter containers per 20-minute session. Anthropic charges $10 per 1,000 web searches; Gemini grounds with Google Search free for 5,000 requests a month and $14 per 1,000 after that. These land on the invoice as their own line items, and a system that only counts tokens will never see them.

    OpenAI API pricing

  5. 05  Tokenizers move, and tools cost tokens before you send any

    Anthropic's own documentation notes that Claude 4.7 and later use a newer tokenizer that produces roughly 30% more tokens for the same text than the previous one. Separately, putting tools on a request adds a tool-use system prompt of several hundred tokens before your prompt is counted — between 286 and 804 depending on the model and the tool choice. Every vendor tokenizes differently, so anything estimating from character counts, from another vendor's tokenizer, or from last quarter's drifts against the invoice.

    Anthropic pricing

  6. 06  Geography, midnight, and the shape of the invoice itself

    Pinning inference to a region carries a premium almost everywhere: OpenAI adds 10% on data-residency endpoints for models released on or after 5 March 2026, Anthropic applies 1.1x for US-only inference, and Claude's regional endpoints on Bedrock and Google Cloud cost 10% more than global ones. A request served at 23:59 UTC lands in one system's day and the other's. And the invoice total is not the usage total — it carries tax, and where a cloud marketplace bills on the vendor's behalf it can arrive as a single consumption-unit line with no tokens on it anywhere.

    OpenAI API pricing

Every rate, multiplier and per-call charge above was read from the vendor’s own documentation on 28 September 2026: OpenAI API pricing, Anthropic pricing, Gemini API pricing, Amazon Bedrock pricing, Anthropic Usage and Cost API. Vendors change prices. If one of these has moved since, a reconciliation is the thing that would tell you.

A worked example, with invented money and real rates. The point of the exercise is not the total at the bottom — it is the recurring, nameable rate in the middle that nobody was modelling.

Illustrative · thirty days

An illustrative reconciliation of estimated provider spend against the spend four providers reported, over thirty days. The figures are invented.
ProviderFrom your usageProvider billedDifferenceVariance
Anthropic$16,200.00$16,838.00+$638.00+3.8%
OpenAI$8,900.00$9,260.00+$360.00+3.9%
Google Gemini$3,400.00$3,682.00+$282.00+7.7%
Mistral$1,240.00$1,238.00−$2.00−0.2%
All four providers$29,740.00$31,018.00+$1,278.00+4.1%

Where the difference came from

AnthropicCache writes billed at the write rate, estimated at the input rate800M cache-write tokens on Claude Sonnet 4.6, where a five-minute write is $3.75 per million against a $3.00 input rate. 800 × $0.75.
+$600.00
AnthropicNot accounted forWritten down rather than absorbed. $38 of the Anthropic invoice no rate explains — under a quarter of a per cent of that provider's figure — and we say so rather than rounding it into the line above.
+$38.00
OpenAIOne project on a data-residency endpoint, at a 10% uplift$2,400 of token spend in that project, on a model released after 5 March 2026, ten per cent of it again. The estimate priced it at the global rate.
+$240.00
OpenAIWeb search, billed per call rather than per token12,000 web search calls at $10 per 1,000.
+$120.00
Google GeminiPrompts over 200k tokens, repriced whole at the long-context rate90M input and 3M output tokens in requests whose prompt crossed 200k on Gemini 3.1 Pro, estimated at $2 and $12 and billed at $4 and $18. 90 × $2 + 3 × $6.
+$198.00
Google GeminiSearch grounding past the monthly free allowance11,000 grounded requests, the first 5,000 free, 6,000 at $14 per 1,000.
+$84.00
MistralInside the noiseTwo dollars on twelve hundred, consistent with requests landing either side of midnight UTC. Nothing to investigate.
−$2.00
Total difference
+$1,278.00

The interesting figure here is not $31,018. It is the three rates nobody was modelling — Anthropic's cache writes, OpenAI's data-residency uplift, Gemini's long-context tier — each recurring every month, on a different vendor, for a different reason.

The Mistral line is the other useful outcome. Under a fifth of a per cent apart over thirty days is what agreement looks like, and it means nothing on that provider needs investigating. An estimate that already matches your invoice is a finding too, and it is the one that ends the conversation rather than starting a project.

The money above is invented to show the shape of a reply, not taken from anybody’s account. The rates it is built on are the vendors’ published ones and both tables add up, so the arithmetic is checkable even though the workload is not real.

How it runs

  1. 01  Send files, never a key

    A usage export from your provider's console, a CSV from whatever you already log, or the invoice itself. No credential, no access to your provider account, no integration to stand up. If all you have is a PDF invoice and a rough idea of the workloads behind it, send that — approximate numbers this week beat exact ones next quarter.

  2. 02  We price the usage back up, line by line

    At your negotiated rates where you have them and the vendors' published ones where you do not, with the multipliers that are easy to miss applied explicitly: cache writes at the write rate, batch and priority tiers, context tiers, per-call tools, regional premiums. The arithmetic comes with the answer so you can check it rather than trust it.

  3. 03  We reconcile that against what you were billed

    The output is not a total. It is the difference between the two numbers and an itemised account of where it comes from, with anything we cannot explain written down as unexplained rather than absorbed into a line that looks tidier.

  4. 04  You get the report, including the part that argues against us

    Which workloads a route, a budget or a fallback would have changed last month, what the subscription costs beside your provider spend, and which workloads we would leave exactly where they are. If the honest answer is that nothing here needs a control plane, that is the answer you get.

What we will tell you

  • The difference between what your usage implies and what you were billed, with the line items behind it
  • Which rates your current accounting does not model, and how much each one is worth a month
  • Which providers, models, projects and workloads dominate the bill
  • Where a route, a fallback or a budget would have changed last month
  • Which of your workloads we would leave exactly where they are, and why

What we will not do

  • Ask for a provider API key, or for any access to your provider account
  • Quote a number before reading yours
  • Present a figure we cannot show the arithmetic for
  • Claim INFRO makes your model spend smaller — it does not, and it takes 0% of it
  • Sell you consulting, implementation, or advisory services
  • Claim a model is the same model when it is a different one
  • Sell your data, or add you to a mailing list
  • Keep your usage export afterwards — say the word and it is deleted

When we would tell you to leave it alone

Four cases where the honest answer is that nothing here needs a control plane. They are on this page rather than discovered in a call, because a page with no losing case reads as an advert and gets discounted whole.

One provider, one model, a flat bill
If your spend is predictable, your provider is not failing you and nobody is asking where the money went, a gateway is a layer you are maintaining for no return. We will say so.
The estimate already matches the invoice
If your accounting is within a per cent of what you were billed, reconciliation has nothing to find. That is a good outcome and it is not a reason to buy anything.
A workload with no alternative model
Routing and fallback are worth what the second option is worth. Where there is genuinely only one model that does the job, moving it behind a route changes the failure mode and not the cost.
Spend a subscription would dominate
Below a certain monthly provider bill the control plane is the larger of the two numbers. We will show you both and let you conclude the obvious thing.

Want to sanity-check the order of magnitude before you send anything? Run the calculator — it takes a minute and uses the same published rates we would. It does not reconcile anything; that is the part a person does.

Roughly what do you spend on AI providers today?A band, not a figure — it only sizes the answer.
Which providers do you use today?
Which modalities matter?

We use this address only to reply with your estimate.

A reconciliation by hand answers one month. Keeping the answer true afterwards means reading the provider's own cost API on a schedule, and that needs a credential we will not take by accident — so here is exactly what it is, what it can reach, and where it stops.

The credential
An admin-scoped key, minted by an owner or admin at your provider: OpenAI's starts sk-admin-, Anthropic's sk-ant-admin. It is a different credential class from the key that serves your requests, it is stored in its own place under its own encryption, it is read-only against the billing endpoint, and there is no way to read it back out of INFRO once it is stored. Your inference key never reads your billing — that promise stays literally true because this is a separate credential you grant separately.
The providers
For the continuous version, OpenAI and Anthropic — the reconciliation by hand above works from files for any provider. Bedrock, Vertex AI and Azure keep their cost in the surrounding cloud's billing system, behind identity that has nothing to do with the inference credential, so there is no reconciliation for them yet. A provider with no integration shows no variance rather than a variance of zero, because zero would read as agreement.
The grain
Daily and organization-wide. Both vendors report cost by day for the whole organization, so a reported total is never attributed back to individual requests. Reconciliation calibrates confidence in the estimates; it never restates them.
The gaps we know about
Anthropic's cost endpoint excludes Priority Tier spend outright, and is not available for Claude billed through AWS. A variance on an account using either will not close, and the console has to be able to say why rather than showing a number that looks like a defect.
What it does with the answer
A day's gap is nearly always timing and means nothing on its own. What means something is direction: a gap that stays one way for five days out of seven, above a daily floor, with every request in the window priced, is a rate the platform does not model — and that is a defect report about our rate table rather than a chart.
Where it sits in the plans
The Business plan. Every plan records which rate produced each request's estimate, and a model with no usable rate is recorded unpriced rather than as zero — reconciliation is the layer above that, which proves the rates right.

None of this is needed for the reconciliation described above, which runs on files you already have. It is what keeps the answer true every day afterwards.

The full billing documentation is in the docs, and what each plan includes is on the pricing page. Neither is worth reading before the reconciliation above tells you whether there is anything to find.