Joopler docs
AI governance

What a run cost, and who says so

Joopler prices nothing itself. Agent-reported cost is kept as reported; your rate card fills the gap, in the open.

A run's cost figure has to survive somebody asking where it came from. So there are exactly two sources for it, and the run page says which one it used.

Reported cost always wins

When an agent reports a cost through the SDK, that is the number. We never recompute it, because the agent was there and we were not. It reaches us with the step:

await run.step({
  kind: "model",
  provider: "anthropic",
  model: "claude-sonnet-5",
  tokensIn: 1840,
  tokensOut: 320,
  costCents: 2,
});

Your rate card fills the gap

Plenty of agents report tokens and leave cost at zero, because working out a price is not their job. A run that reported forty thousand tokens and no cost used to render as $0.00 spend, which is a wrong number rather than a missing one.

So AI usage → Rate card holds your own prices, per model, in dollars per million tokens the way providers publish them. Each row records where you got the price and the date it took effect, and any figure derived from it shows that source beside the arithmetic:

$0.018 priced from your rate card: 4,000 in at $3.00/Mtok + 800 out at $15.00/Mtok for claude-sonnet-5 (provider pricing page, from 2026-09-01)

We do not ship a starter price list. Asserting a per-token rate we never observed, and could not keep current, inside a product whose whole argument is that it only shows what it can back, would be the same mistake as inventing a model name on a usage chart. The rates are yours.

A model with no rate is not free

If a step reports tokens for a model your card does not price, that step stays out of the total and the run page names the model, with a link to add it. Silently counting it as zero would hide spend.

If you do not want cost at all

Turn off Track token cost in this workspace on the rate card page. Cost then disappears from the runs list and from every run, rather than showing zeros. Token counts stay, because those are reported rather than inferred.

That is the right setting for a workspace whose agents are billed by a vendor: there is no cost we could compute, and printing $0.00 at you is a claim we cannot back. Nothing is lost while it is off. Every figure is derived when the page is read, so turning it back on restores the history.

Where the numbers live

NumberSource
Tokens in / outreported by the agent, per step
Reported costreported by the agent, per step, never overwritten
Derived costyour rate card, computed at read time
Spend across runsthe sum of reported cost, in the database
What a run cost, and who says so