Documentation / Attribution / Three Anthropic projects
Three Anthropic projects
Three agents share one Anthropic bill: support, code review, and research. The numbers below are an example month, not a quote and not a customer's invoice. Each path shows what you configure, then the chargeback you can actually produce. The comparison is at the end.
The agents and departments have to exist under Agents & allocation and Governance before a mapping or a tag can point at them.
Separate workspaces
Give each agent its own Anthropic workspace. Ask Onaro to turn on workspace splitting. During Early access that is on request, at support@onaro.io. On Source identities, map each workspace to its agent and department.
From the cutover date forward, Meridian stores one row per day, model, and workspace, and the mapping sets the agent and the department. Dates before the cutover stay one row per day and model for all three agents combined. Those earlier dates cannot be pulled apart.
Example chargeback for a month that is entirely after the cutover:
| Agent | Department | What the bill could separate | Amount |
|---|---|---|---|
| Support | Support | Its workspace | $120 |
| Code review | Engineering | Its workspace | $80 |
| Research | Research | Its workspace | $45 |
Spend on the default workspace is a fourth bucket, named Default workspace, until you map it. Mapping it assigns that whole bucket to one department. It does not divide it across the three agents.
A gateway
Put LiteLLM, Kong, or Portkey in front of the three agents. One virtual key, consumer, or Portkey key per agent. Map each key on the Gateway key registry. The setup steps are the gateway guides.
Meridian rolls each request up to the agent for that key, and to the pool id if you set one. The row is declared. If Anthropic is also connected, rows with no pool id are scaled to the Anthropic bill for the same model and day, and the bill is the tie-out rather than a second copy. A pool id stays at the gateway's amount.
Example chargeback when each key was used only by its agent:
| Agent | Department | What the bill could separate | Amount |
|---|---|---|---|
| Support | Support | Its gateway key | $120 |
| Code review | Engineering | Its gateway key | $80 |
| Research | Research | Its gateway key | $45 |
The Anthropic invoice itself may still be one set of workspace totals. The split you are booking is the gateway ledger, tied to that invoice in total when the model and the day match. A key you forgot to map stays unattributed. Requests on a shared key all land on the one agent that key is mapped to.
OASA events
Send an OASA usage record per request, with a distinct agent id for support, code review, and research. The events page covers the ingest key and the cost center. An OpenTelemetry collector is one way to send them. The exporter guide is the OpenTelemetry connector.
The agent is declared from the agent id. One cost center on that agent-day can set the department. The same tie-out applies when the Anthropic bill is connected: event rows with no pool id, for a model and a day, scale to the bill. A pool id stays at the measured cost.
Example chargeback when each event named its agent and one cost center:
| Agent | Department | What the bill could separate | Amount |
|---|---|---|---|
| Support | Support | The agent id on the event | $120 |
| Code review | Engineering | The agent id on the event | $80 |
| Research | Research | The agent id on the event | $45 |
Events with no agent id stay unattributed. Two cost centers for one agent on the same day stay one row, and the cost center is left empty. The provider invoice does not contain the span attributes. Without the Anthropic connection you are booking the measured event cost, not the invoice.
Bedrock with tags
This path is Claude on Amazon Bedrock, not the Anthropic Admin API. Create an application inference profile per model, tag each profile with a cost center and an agent name, activate the tags, and upload the FOCUS export. Meridian's default keys are CostCenter and Agent, not oasa_cost_center and oasa_agent, until a saved mapping says otherwise. Details are on AWS Bedrock and tagging.
The department is inherited from the tag. The agent is set when the name matches an agent that already exists. While Cost Explorer is connected, Bedrock lines in the upload are held until you pick a source of record.
Example chargeback from a FOCUS file whose tags matched, and which was the source of record:
| Agent | Department | What the bill could separate | Amount |
|---|---|---|---|
| Support | Support | Its inference-profile tags | $120 |
| Code review | Engineering | Its inference-profile tags | $80 |
| Research | Research | Its inference-profile tags | $45 |
A call by model id, with no profile, has nothing to tag. It lands in the inbox as invoked by model id. The Cost Explorer daily total, if you book that instead, is one number for the whole account. It cannot draw this table.
Comparison
| Path | What you configure | Grain you can book | What it cannot split |
|---|---|---|---|
| Anthropic cost report, splitting off | The connector only | One total per day and model | The three agents. They are one bucket. |
| Separate workspaces | A workspace per agent, splitting turned on, a mapping per workspace | Per workspace, from the cutover date | Dates before the cutover. Agents that share a workspace. The default workspace, unless you map it as one bucket. API keys. |
| A gateway | A key per agent, mapped in the gateway key registry | Per request, rolled up per agent, day, and pool id | Agents on one key. A pool id, which is not scaled to the provider bill. The provider invoice, unless the upstream call also sets a workspace or a tag. Days already rolled up, which are not rewritten. |
| OASA events | An agent id per agent on each event | Per request, rolled up per agent, day, and pool id | Events with no agent id. Several cost centers for one agent on one day. A pool id, which stays at the measured cost. The provider invoice, unless a matching bill is connected and the model names line up. |
| Bedrock with tags | A profile per model, activated tags, a FOCUS upload | Per tagged line in the file | Calls by model id. Tags that were never activated. The Cost Explorer daily total. Rows held while Cost Explorer is still connected. |
| Invoice upload only | The file | Whatever line the file already has | Three agents on one line. There is no workspace hiding inside the total. |
Effort follows the configuration column. Workspaces are the smallest change that still splits the Anthropic bill, and only after the cutover. A gateway or OASA events are more setup and are per request. Bedrock tags split the cloud bill, not the Anthropic Admin invoice. The unsplit cost report and a one-line invoice are the paths that cannot draw the three-row table at all.