Attribution
Attribution turns captured traces into work items — an objective, an outcome, a work type, and a business domain — so spend can be rolled up by what it was actually for, not just by model or key. Turn it on per key from the Tracing settings page, then browse the results in the Attribution tab there.
What it is
When attribution is enabled for a key, each captured trace is classified into a work item: a one-sentence objective, an outcome (shipped, resolved, failed, incomplete, or unknown), a free-form work type (e.g. "bug fix", "customer support reply"), and a business domain (e.g. "billing", "onboarding"). The Attribution tab aggregates these across all classified traces — attributed spend, top work types, top domains, outcome mix — and lets you drill from any rollup down to the individual work item, and from there into the exact trace it came from.
Enabling it
Attribution is off by default and configured per key, in the same settings dialog as tracing. It requires tracing to already be enabled on that key — attribution classifies the prompt and completion content tracing captures, so there's nothing to classify without it. Once enabled, newly captured traces are picked up automatically; nothing needs to change in your application code.
How classification works
Classification runs in the background, roughly once an hour — it's not synchronous with the request, so a new trace can take up to an hour to appear as a work item. Each trace is classified independently: one trace becomes one work item, based on that trace's own content plus the name of the project it belongs to for extra context. Work type and domain labels are free-form, not drawn from a fixed list — the Attribution tab groups matching labels together as they accumulate.
Who pays for classification
The classification call itself is billed to Mizan, not to your wallet. Enabling attribution never draws down your balance or counts against a key's spend limit — only the traced calls you already made are billed, exactly as before.
What it can and can't infer
Classification only sees what's in the trace itself — the prompt, the completion, and the project name. It has no visibility into your business beyond that, so labels and outcomes are best-effort inferences, not ground truth: a call that looks "incomplete" from the model's output alone may have succeeded once your own code acted on it. Treat the Attribution tab as a fast way to see where spend is going and spot outliers to investigate, not an authoritative audit trail.
Each trace is classified once, on its own — there's no reconstruction of multi-trace sessions into a single work item yet, so a long-running agent that spans several traces currently shows up as several separate work items.
Best-fit use cases
- Seeing which business domain or work type is actually driving AI spend.
- Spotting a spike in failed or incomplete outcomes for a given key or project.
- Justifying AI spend to stakeholders in terms of the work it produced, not just tokens and dollars.