Why CostReveal shows the spend it cannot explain
The CostReveal team, , 7 minute read
Every cost report has a part nobody can explain. A shared cluster that runs five workloads. An AI bill with no tag saying which feature made the calls. A line item that arrived before the tags that would have explained it. This post is about what a cost tool should do with that part, why CostReveal shows it rather than hiding it, how every figure says how sure it is, and how teams shrink the unexplained share on purpose, month by month.
The part every report hides
Most cost tools deal with the unexplained part quietly. Some spread it across teams in proportion to what those teams already spend. Some leave it out of the per team view, so each team's figure looks clean and the gap sits in a total nobody reads. Either way, the totals still add up, and the report looks complete.
That completeness is the problem. Once unexplained spend has been spread, nobody can tell which figures were measured and which were assigned. A team's cost rises, and nobody knows whether the team spent more or simply received a larger share of something no one could explain. Decisions get made on figures that look equally solid but are not.
Every figure says how sure it is
CostReveal labels every attributed cost with its basis, the kind of evidence behind it:
- Direct, when the provider itself reports it. The service and, for AI providers, the model are direct: the bill says so.
- Inferred, when an existing signal names the owner: a resource tag or label, a workspace or project owner someone named in CostReveal, or an assign rule you wrote.
- Allocated, when a shared cost is divided by something you can inspect: a split rule, by fixed percentages, evenly, or in proportion to what each owner already explains; a Kubernetes cluster's cost, by what each workload used or reserved; Databricks charges on a cloud bill, by the usage they bill for; or shared AI spend, by the usage data your application sends.
- Unknown, when there is not yet enough evidence, and the product says so.
The labels are not decoration. Every view, from Home to Explore to a chargeback statement, shows the basis of each figure, so a reader can tell a measured figure from a divided one at a glance. Whether an amount is final is a separate question from who it is for. Home shows, apart from the labels, how much of the period no invoice confirms yet, such as an open month of Datadog estimates, Databricks usage priced at list price, or New Relic consumption priced at your contract rates. That spend keeps its owner's label, and may still change.
Unknown is an answer, not a failure
Unknown is not an error state. It is the honest answer to "who is this spend for?" when the evidence does not say. And it never arrives alone. Home shows the single change that would explain the most of it, with the amount it would explain and its share of the period's spend:
- Tag the AWS resources of one service with a team tag, when that service holds the most untagged spend.
- Name the team for an Anthropic workspace or an OpenAI project, when one carries a large share with no owner.
- Send usage data from your application, when shared AI spend can only be divided by who made each call.
That suggestion is computed from your own data every time the figures change, not written by hand. Act on it, and the next largest gap takes its place.
Why this matters to finance and to engineering
Finance needs to know which owners are firm and which are a best effort, and which amounts will hold when the invoice closes. Engineering needs to know where the evidence is thin, and what would fix it. The labels answer who; the figure not yet invoiced answers how final.
It also changes the conversation in a cost review. Instead of arguing about whether a team's figure is fair, the review can look at what is unknown, see the change that would explain it, and decide who makes that change. The unexplained share becomes something a team shrinks on purpose rather than a number someone disputes.
A tool that forces every dollar into a team is not more accurate than one that admits what it cannot explain. It is less accurate, and it hides the difference.
Divided, but never guessed
Showing unknown spend does not mean refusing to divide shared costs. Shared costs are real, and many organizations want them divided. CostReveal divides them, in the open:
- A split rule says how a shared cost is divided, and the rule is shown with every figure it produced.
- A Kubernetes cluster's bill is divided among its workloads by what each used or reserved, whichever is greater, with idle capacity shown apart.
- Usage data divides shared AI spend by the calls each customer or feature made.
The result is allocated, and labelled so. What stays unknown is only what no evidence and no rule reaches. The difference between "divided by a rule we agreed" and "spread so the report looks complete" is the whole point.
The checks behind the labels
Labels are only as good as the arithmetic beneath them. CostReveal records every billing line in an append only ledger: a correction from the provider is a new line that keeps what was said before, never an edit. Then it checks its own figures.
Attribution against the ledger. On every dimension, team, feature, customer, service and the rest, attribution read back from the database must add up exactly to the ledger, to the cent. A difference is shown, never absorbed.
The ledger against the provider. Where the provider offers a second total, such as AWS Cost Explorer, Azure Cost Management, Google's export total, Oracle's Usage API, or Anthropic's, OpenAI's and Datadog's own totals, each month is compared with it. While a month is open, a difference is pending, because both sources are still filling in. Once the invoice closes, a difference is flagged as a variance. Where a provider offers no second source, Home says so, rather than implying a check that did not happen.
The point is not that every figure is certain. The point is that you can see which ones are.
How teams shrink the unknown share
In practice, the unknown share falls quickly when it is visible and each step is named. A typical sequence looks like this:
- Use the tags you already have. The default tag keys cover common names such as
team,owner,cost-centerandcustomer, and you can add your own. On AWS, activate those keys as cost allocation tags so they reach the bill. - Name owners where tags cannot reach: an Anthropic workspace or an OpenAI project, named once in CostReveal.
- Write rules for what belongs to one team, such as a whole subscription, account or stack, and for shared costs to divide.
- Send usage data for shared AI spend that only your application can divide by customer or feature.
- Watch coverage month by month. Home shows how much of each period is explained on each dimension, so progress is measured, not assumed.
None of these steps changes how your systems run. They change how much of the bill can be explained.
What this looks like for a reader
Open Explore by team, and every row shows its spend split by basis: how much is direct, inferred, allocated and unknown. The unknown row is there too, with its amount, not hidden under the teams. Filter to it, and you see exactly which services and accounts it comes from. That is the view a finance lead can trust and an engineer can act on.
Frequently asked questions
Why not spread unknown spend across teams, like other tools? Because once it is spread, nobody can tell measured figures from assigned ones. CostReveal divides shared costs only by rules and measurements you can inspect, and labels the result allocated.
What does each basis mean? Direct is reported by the provider, such as the service and model. Inferred comes from a tag, a named owner or an assign rule. Allocated is divided by a rule, a cluster's usage, Databricks usage or usage data. Unknown has no evidence yet.
How do I reduce unknown spend? Follow the suggestion on Home: tag the AWS resources of one service, name an owner for an AI workspace or project, or send usage data. Then write rules for what belongs to one team.
Does unknown spend mean the figures are wrong? No. The total is still exact and checked against the ledger. Unknown says who the spend was for is not yet known, not that the amount is uncertain.
How are the figures checked? Attribution must add up exactly to the ledger on every dimension, and where a provider offers a second total, each month is compared with it.
Is there a target for the unknown share? Each organization sets its own. Home shows coverage by dimension each month, so the trend is visible.
Keep reading
- CostReveal vs CloudZero: how two platforms treat spend that cannot be attributed.
- Connecting AWS to CostReveal: cost allocation tags, and the activation step most teams miss.
- Connecting Stripe to CostReveal: set attributed cost against revenue for margin by customer.