Unify Logo Footer.svg
AI Governance
Logo
Where Spend Comes From

Where Spend Comes From

Logo

6 mins READ

Introduction

Every cost figure in AI Governance — on an agent, on a model, on an outcome, in Cost Explorer — comes from one place: the traces your agents produce.

Understanding that derivation matters more than knowing where a particular chart lives, because it answers the questions people actually ask. Why is this agent expensive. Why is there a governance line on my bill. Why does this number not match my provider invoice.

Where to find it

AI Governance > Cost Explorer

Access to AI Governance is granted through platform roles. Ask your workspace administrator, or see Settings > Governance > Roles for how permissions are assigned.

The derivation

Cost is not reported to UnifyApps by your providers. It is computed from what your agents did.

  1. A span records a unit of work — One model call, one tool call. It carries what was consumed.

  2. Spans roll up into a trace — One end-to-end agent run. Its cost is the sum of its spans.

  3. Traces roll up into everything else — Sessions, agents, models, outcomes and any window you select are aggregations of the same trace data.

So the chain is span → trace → agent → report, and the whole of Cost Explorer sits at the far end of it. See Sessions, Traces & Spans.

"No traces, no cost. An agent that has never run is not free — it is unmeasured."

What spend decomposes into

Spend is broken into cost types, all derived from the same trace data. Group the Cost Explorer table by Cost Type to see the split, each with its total, its per-day rate and its share.

Cost type

What it is

Driven by

LLM

Model calls the agent made

Tokens in and out, per model

Tools

Tool invocations during a run

How often the agent reaches outside itself

Eval

Running your evaluators

How much traffic you score, and at what sampling rate

Governance

Running your controls

How many LLM-based checks you run, and on how many inputs

Unattributed

Spend that could not be assigned to a type

Activity whose trace data lacks what is needed to classify it

Two of those deserve attention.

Eval and Governance are separate, and both are yours

Neither is a charge from UnifyApps. Both are the cost of model calls made on your behalf by things you configured.

Eval is what your evaluators cost: an LLM-judged evaluator makes a model call per scored record. Governance is what your controls cost: a custom LLM check makes a call per input it inspects. They are separated because they are tuned by different dials — sampling rate for the first, check design and applied-on scope for the second.

Eval also appears per agent as Eval spend on its Evaluation tab — the same figure, scoped to one agent.

Unattributed is the honesty line

Not everything can be classified. Unattributed is real spend that the trace data did not carry enough information to assign, and it is shown rather than absorbed into the other buckets.

Read its share before quoting any breakdown. A clean-looking split with a large unattributed slice is a less complete picture than it appears — and knowing that is more useful than a tidy chart that hides it.

Controlling what governance costs

  1. Sample rather than score everything — Evaluators carry a sampling rate. Scoring every trace on a busy agent is rarely worth what it costs; a representative sample answers the same question.

  2. Prefer a prebuilt check to a custom LLM check — A rule-based check costs nothing per input. An LLM check costs a model call every time it runs.

  3. Prefer rule verification to an AI judge — The product says it plainly: a rule reads a signal the session already carries, at no added cost; an AI judge adds spend every session. Use the judge where no signal exists, not by default.

  4. Narrow where checks apply — A control watching four points costs four times a control watching one.

  5. Watch backfills — Evaluating past records is a one-off cost proportional to how many you select.

Reading cost figures honestly

  1. Every figure is window-scoped — Two numbers from two windows are not comparable. Check the range before quoting one.

  2. Cost is attributed to what produced it — The same underlying model usage appears against an agent when you look by agent, and against a model when you look by model. It is one set of spans read two ways, not two costs.

  3. Coverage bounds the total — UnifyApps can only cost what it can see. An agent that is registered but not instrumented reports nothing, and its real spend is invisible here.

  4. It will not equal your provider invoice — And should not. This measures governed agent activity in a window; an invoice measures everything on the account for a billing period. Reconcile the direction of change, not the absolute figure.

Refer: Spend on its own is half the picture. To weigh it against what the agents returned, see Outcomes & ROI.

Best Practices

  1. Instrument before you budget — An uninstrumented agent contributes nothing to these figures and everything to your real bill.

  2. Track spend per trace, not just total — Total spend rising with volume is expected. Spend per trace rising is a design change worth investigating.

  3. Budget governance deliberately — Decide what proportion of spend you are willing to spend on knowing what your agents did. Then set sampling rates to match.

  4. Review the expensive tail — Cost concentrates. A few agents usually account for most of it, and they are where optimisation pays.

FAQs

Why is governance spend non-zero when I have not bought anything extra?

Because your evaluators and LLM-based checks make model calls. That is your model usage, doing governance work.

An agent shows no cost. Is it free?

It has no traces. Either it has not run, or it is not instrumented — check LAST TRACE on its registry row.

Why do agent costs and model costs not add up the way I expect?

They are two views of the same spans. Adding them together double-counts.

Can I see spend split by category on screen?

Yes — in the Agent view, set Group By to Cost Type. You can also group by Agent or Owner, and switch the whole view between Agent and Model.

What does a large Unattributed share mean?

That some activity produced cost without the trace detail needed to classify it. Investigate instrumentation on the agents contributing most of it.