> ## Documentation Index
> Fetch the complete documentation index at: https://docs.weaveos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AI tool costs

> AI tool spend per engineer in USD, by tool

Weave tracks what your team spends on AI coding tools such as Claude Code, Cursor, GitHub Copilot, and Codex, by tool and, where the tool's data allows, by engineer and team, and divides that spend by the [code output](/metrics/code-output) attributed to AI to give a cost per output. Each cost comes from the provider's billing data, token counts priced at list rates, or seat costs you enter, and is labeled with how it was measured. Your organization's AI tool costs and cost per output can be [benchmarked](/annotations/benchmarks) against organizations of a similar size or in your industry.

For most tools, cost is **pulled automatically** once you connect the integration, so there's nothing to enter by hand. You only enter cost manually in three cases: for seat-based tools that report no usage data, to set the per-unit rate on usage-priced tools (where Weave already pulls the usage volume for you), and to record a flat-rate seat plan such as Claude Code Max, with an optional [included allowance](#included-allowance-for-flat-rate-tools).

## How cost is collected

Cost comes from one of three sources, depending on the tool. **It matters which one a tool uses**, because it determines whether the dollar figure is your actual invoice or an approximation:

| Source | What the number is | How it's collected |
| - | - | - |
| **Actual provider billing** | The real amount the provider billed, pulled from their admin/analytics API | You connect a provider admin or analytics API key; Weave reads billed cost directly |
| **Estimated (tokens × list price)** | An approximation from token counts multiplied by published per-model list prices — it does **not** reflect negotiated discounts or credits | Computed by Weave (or the tool's own telemetry) from usage; no billing API involved |
| **Seat-based subscription** | Your flat subscription cost, spread across active users | You enter seats and cost-per-user in Weave; Weave allocates it to active users |

For some tools the dollar amount is a **hybrid**: real usage volume (e.g. ACUs or credits) multiplied by a rate you configure in Weave.

## Cost by tool

| Tool | Per-user cost | Source | What you see |
| - | - | - | - |
| **Claude Code** | ✓ Yes | Actual billing (Claude.ai Enterprise Analytics key) → estimated (Console Admin API) → plugin-observed or plugin-estimated (Claude Code plugin) → modeled, client-reported, or off-workspace usage (telemetry) | Per-user spend by model |
| **Claude.ai / Claude web** | ✓ Yes | Actual billing (Claude.ai Enterprise Analytics key) | Per-user chat spend |
| **Cursor** | ✓ Yes | Actual billing (Cursor Admin API spend) | Per-user spend |
| **GitHub Copilot** | ✓ Yes | Actual billing (GitHub billing API) + seats | Per-user premium/usage spend and seat cost |
| **Oh My Pi** | ✓ Yes | Client-reported; OpenRouter's reported request cost when Pi routes through OpenRouter | Per-user spend, model, tokens, and sessions |
| **Codex** | ✓ Yes | Hybrid — credits × your configured rate (or estimated from tokens) | Per-user spend from credits |
| **OpenAI (direct API)** | ✓ Yes | Estimated (tokens × list price) | Per-user/project estimated spend |
| **Modal** | ✗ No | Actual metered billing report; monthly billed summary shown separately | Organization-wide compute spend by workspace, app, environment, resource, and tag |
| **Devin** | ✓ Yes | Hybrid — real ACU usage × your configured ACU rate | Per-user spend from ACUs |
| **Windsurf** | ✓ Yes | Hybrid — real ACU usage × your configured rate, or seats | Per-user spend |
| **Gemini CLI** | ✗ No | None (token usage tracked, but the CLI emits no cost) | Token usage only; **Tool subscription costs** doesn't list Gemini CLI |
| **Amazon Q** | ✓ Yes | Seat-based subscription | Per-user allocated seat cost |
| **Sourcegraph** | ✓ Yes | Seat-based subscription | Per-user allocated seat cost |
| **Augment** | ✓ Yes | Seat-based subscription | Per-user allocated seat cost |
| **Kiro** | ✓ Yes | Seat-based subscription | Per-user allocated seat cost |
| **Cline** | ✗ No | None (Cline telemetry reports activity but no cost) | Activity only; **Tool subscription costs** doesn't list Cline |
| **Firebender** | ✓ Yes | Seat-based subscription | Per-user allocated seat cost |

Tools with per-user cost attribute spend to individual engineers and teams. Modal reports only workspace-level billing, so its spend stays organization-wide and is not allocated to active users. Flat subscriptions use their configured member assignment or activity-based allocation.

## Entering subscription details

For seat-based tools, and to set the rate for hybrid tools like Codex and Windsurf, go to **Settings** → **Financial** → **Tool subscription costs**, pick the **plan** for that tool, and enter the number of seats and cost per user (or per-credit / per-ACU rate). Devin has no plan of its own: Weave prices Devin ACUs at the rate on the Windsurf **Windsurf Usage-Based (ACU)** plan, because Cognition bills Windsurf and Devin from one ACU pool. For tools where Weave has per-user activity (Amazon Q, Claude Code, Cursor, Firebender, Kiro, Sourcegraph, Windsurf), the cost is allocated automatically to the engineers active in that tool. For other tools, assign members to the subscription and the cost is split across them.

For tools with an **actual billing** source, connect the provider's admin or analytics API key on that tool's **Data** page (see the tool's integration doc for setup) — Weave then reads real billed cost and you don't need to enter subscription details.

## Included allowance for flat-rate tools

A flat-rate tool is a fixed monthly seat plan (for example Claude Code Max, or a Cursor Teams seat) where the fee doesn't change with usage. For these, the value of what someone runs through the tool can far exceed the flat fee — so how Weave reports the tool's cost depends on one optional setting.

When you enter a per-seat plan under **Settings → Financial**, you can set an **Included usage allowance**, the list-price value of usage each seat is expected to cover per month:

* **Leave it blank** and the tool's cost is shown as its full **list-price consumption**: an estimate of the value used. It doesn't account for the plan's usage limits, so it can exceed the flat fee you actually pay. This is the safe default when you don't know how much usage the seat covers. Two exceptions keep the seat cost: tools with no usage cost data, such as AI code review tools, and Claude Code when the [Claude Code plugin](/ai-tools/claude-code-plugin) measured which requests your plan covered in the selected period (shown as seat cost plus overage).
* **Set an allowance** and the tool's cost is shown as **seat cost plus overage**: the flat seat fee, plus only the list-price usage above the pooled allowance (allowance × seats). This is closer to what you're billed when a plan charges for usage beyond its limits.

Either way, the per-person drill-down still shows each person's full list-price consumption with its [fidelity](#cost-fidelity) label — the allowance only affects the tool-level "what you pay" figure on the [AI ROI report](/reports/ai-roi).

## Estimated vs actual

When a tool's cost is **estimated**, the figure uses published list prices and ignores any enterprise discount, committed-use pricing, or free credits you may have. Treat estimated costs as directional. For exact spend, connect the provider's billing/analytics API where one is available (Claude Code, Claude.ai, Cursor, GitHub Copilot, Modal, and OpenRouter today).

## Cost fidelity

Every cost row in the **Cost per person** drill-down carries a **Fidelity** label so you can tell exactly how trustworthy each dollar figure is, from vendor-confirmed spend to a list-price approximation:

| Fidelity | What it means |
| - | - |
| **Actual** | Vendor-billed. The real amount pulled from the provider's billing/analytics API, or a contracted seat cost you entered. |
| **Estimated** | Tokens × published list price, computed by the provider (e.g. the Anthropic Admin API's estimated cost) or by Weave. Ignores discounts and credits. GitHub Copilot spend is also labeled Estimated when GitHub reports only an organization total and Weave splits it across users by their share of AI credits used. |
| **Plugin-observed** | Claude Code plugin usage priced from the server's per-request token counts, with the plan or overage state read from your account's rate limits. Requests served inside your plan are \$0; overage requests are priced at list rates. |
| **Plugin-estimated** | The same plugin token counts, but no rate-limit reading covered the request, so Weave can't tell whether your plan covered it. Priced at full list rates, so it can overstate cost. |
| **Client-reported** | A cost reported through the tool's telemetry. The usage is real, but the dollar amount is the tool's own figure: usually a local list-price estimate, or a provider-reported request cost when the tool passes one through (for example, Oh My Pi passes through OpenRouter's reported cost). |
| **Off-workspace usage** | Like client-reported, but the account was never seen on your organization's provider workspace — typically a developer signed into a personal plan on work hardware. This spend may not appear on your provider invoice at all. |
| **Modeled** | Derived from usage through a pricing model: a blended per-credit or per-ACU rate over a shared pool (Codex, Windsurf, Devin), or Claude Code telemetry token counts that Weave prices at list rates. |
| **Activity only** | Activity was tracked but the tool reports no cost signal (\$0). Seat-based tools' usage rows use this — their real cost is a seat subscription entered under **Settings → Financial**. |

<Note>
  **OpenRouter and Oh My Pi:** when Pi cannot obtain a provider cost, the raw request retains an unavailable (`NULL`) cost. The current cost projection displays that value as `$0` with Client-reported fidelity, so a zero in this projection is ambiguous and should not be interpreted as a free request.
</Note>

## What "Total cost" shows

The per-person drill-down footer shows a single **Total cost** — the sum of the **usage** rows above it. Each row is priced at the best available tier (actual where Weave has it, otherwise the estimated/list-price figures above), so Total cost is the **value of what was used**, which for flat-rate plans is not the same as what lands on your invoice: a heavy Claude Code user on a flat Max seat can show thousands of dollars of list-price Total cost even though the seat is a fixed monthly fee. The **Fidelity** column tells you, row by row, how much of that total is vendor-confirmed versus estimated.

Contracted seat subscriptions (entered under **Settings → Financial**) also appear in this drill-down as separate **Base cost** rows, grouped under a **Contracted seats** subtotal in the footer. That subtotal is day-prorated to the selected date range and is **not** folded into **Total cost**, because seat cost and list-price consumption are different scopes. Seat rows are omitted when you filter the drill-down by model.

<Note>
  Seat-based subscription cost is **prorated to the selected date range**. A whole-month view charges the full monthly seat; filtering to part of a month (for example, two days) shows only that fraction of the seat cost.
</Note>

## Evaluating ROI

Cross-reference with [AI output percentage](/metrics/ai-output-percentage) and [code output](/metrics/code-output) to assess whether the investment is translating to productivity gains. The [AI ROI report](/reports/ai-roi) combines cost and output into a single view.

## Common questions

### How do I see AI cost per unit of output?

Open the [AI report](/reports/ai) overview: **Cost per output over time** divides total AI tool cost, including prorated seat subscriptions, by AI code output for all tools and for each tool, and **Cost per output by tool** compares tools over the selected period. Lower is better, and review-only tools such as CodeRabbit and Greptile are left out so they don't skew the ratio.

### Can I match token spend to developer output?

Yes. On the AI report overview, **AI output & spend** plots AI-attributed code output against usage-based token spend for each period, and the **Cost per person** table lists each engineer's usage cost next to their cost per output. The AI report's **Models** page adds a **Model comparison** table with total tokens, average cost, and average AI code output per session for each model.

### Is the cost Weave shows the same as my invoice?

It depends on the [fidelity](#cost-fidelity) label. **Actual** rows are vendor-billed amounts or seat costs you entered, while rows priced from token counts at published list rates ignore discounts and credits. On flat-rate plans, the list-price value of usage can exceed the flat fee you pay (see [included allowance](#included-allowance-for-flat-rate-tools)).

### Does token spend include seat costs?

No. Token spend and the usage cost in **Cost per person** cover usage-based charges only. **Cost by fidelity** on the [AI ROI report](/reports/ai-roi) is the only view with the full total, including seat costs.

### Can I compare our AI spend with similar companies?

Yes, at the organization level. [Benchmarks](/annotations/benchmarks) rank your AI tool costs, AI cost per AI output, and output per AI dollar against other organizations that use Weave with a similar number of engineers, or in your industry if an admin selects that comparison.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.