AI Spend Report

Last updated: October 28, 2026

The AI Spend report estimates what your AI coding tools cost, split into seat cost (base spend) and usage beyond the plan (overage spend), by tool, model, team, and person.

Why it matters

Vendor consoles show spend one tool at a time and rarely by team. The AI Spend report puts Cursor, GitHub Copilot, Claude Code, ChatGPT, Codex, and the OpenAI API in one view so you can:

  • Track total AI tool cost over time and against the previous period.

  • See cost per developer to plan seat allocation.

  • Break down cost by tool and model to spot which models drive overage.

  • Separate seat cost from usage cost for budget planning.

  • Project where spend is heading with the projected spend view.

How it works

Open AI Effectiveness → AI spend. The page is titled AI Spend, and a banner reminds you: "These are cost estimates, not actual bills."

Total spend = base spend + overage spend.

Base spend is seat or subscription cost. For each person on a plan, Span divides the monthly plan price by the days in the month the billing period starts, then books that daily amount for every day from the person's first activity in the billing period to the end of the period.

Tool

What starts a person's base spend

Price

Matches people on

Cursor

Any row for the person in Cursor's daily usage data

Your plan setting. Default: Team plan, $40 per developer per month

Email address

GitHub Copilot

The seat's last-activity date from GitHub's seat list

The seat's plan type: Business $19, Enterprise $39 per developer per month. Not editable

GitHub username

Claude Code

The person appears in Claude Code Enterprise data. Without a Claude Code Enterprise connection there is no Claude Code base spend

Your plan setting. Default: Enterprise, $18 per developer per month

Email address

If a person appears under two connections for the same tool in one billing period, Span keeps the higher-priced plan.

Overage spend is the usage charge each vendor reports beyond what the seat price includes. It is the only spend Span splits by model.

Tool

Source

What counts

Cursor

Cursor's usage events

Usage-based token calls, priced at Cursor's token fee plus token cost. If you set a Cursor connection to the Enterprise plan, Span also counts events Cursor marks as "Included in ..." from the date that plan applies, because Enterprise contracts bill that usage against a pre-commitment.

Claude Code (Claude Code API connection)

Anthropic's Claude Code usage report

Anthropic's estimated cost per model. Usage through API keys counts for the person whose API key name is set on their Span person record.

Claude Code (Claude Code Enterprise connection)

Claude Enterprise analytics cost reports

Claude Code and Claude.ai chat cost, booked under Claude Code. Claude Cowork cost appears separately as Claude Cowork.

GitHub Copilot

GitHub's per-user usage report

AI credits used × $0.01. GitHub gives no per-model split, so all Copilot overage shows under the model "copilot".

ChatGPT and Codex CLI (ChatGPT & Codex Workspace connection)

The workspace's daily usage report

OpenAI's estimated USD value of the credits each person used, plus any usage OpenAI priced directly in USD. ChatGPT web, desktop, and mobile count as ChatGPT; every other client counts as Codex CLI. Usage without a model breakdown appears under the model "other".

OpenAI API (OpenAI Platform connection)

OpenAI's organization cost data

The cost OpenAI reports in USD per person, day, and model, for everything billed to the organization, including embeddings, images, and audio. Codex used with an API key counts here.

If you connect both Claude Code API and Claude Code Enterprise, Enterprise data wins for any person and day it covers, so the same usage is never counted twice.

What's on the page

  • Summary cards: Total spend, Base spend, Overage spend, Avg spend / month, and Avg spend / developer, each compared with the previous period of the same length.

  • Spend chart: three views, Base & Overage, By Model, and By Tool, as a bar or line chart. In By Model, seat cost shows as one "Base" series because seats have no model.

  • Show projected spend: adds a forecast built from your recent spend history, with Expected and Conservative cases.

  • Breakdown by tool and model: overage spend and input and output tokens for each tool and model combination.

  • Data table: spend by person for the selected range.

  • Filters: date range, teams and people, and person attributes such as IC level, manager status, job title, and location.

  • Integrations status: shows which tools are connected and which plans each tool's data supports.

Setup

  1. Connect your tools under Settings → Integrations: Cursor, Claude Code API, Claude Code Enterprise, GitHub Copilot (a switch on each GitHub connection), ChatGPT & Codex Workspace (ChatGPT Enterprise), and OpenAI Platform (OpenAI API).

  2. On the same page, open AI Spend Integration Settings. For each connection, set the Plan, the cost per developer, and the Billing Date. Choosing a plan prefills its list price; change the cost to match your invoice.

  3. If your plan or price changed, click + Add Setting to add a row. Each row has a Valid From and Valid Until date, and Span applies the right rate to each period. The first row applies from the beginning of your data.

  4. Give people the AI Spend permission. It can be granted per person or per team. The default Finance Admins role sees the whole organization. Team Members see their own spend and that of people affiliated with them.

Available plans by tool

Tool

Plans you can choose

Cursor

Team ($40/dev), Enterprise (enter your price)

Claude Code

Enterprise ($18/dev)

GitHub Copilot

Priced from each seat's plan type (Business $19, Enterprise $39). Only the billing date is configurable.

Without settings, Span uses the defaults above with billing day 1.

Things to know

  • These are estimates, not your invoice. Span uses the price you enter (or the default), books seats from each person's first activity in the billing period, and leaves out spend it can't tie to a person. Invoices include unused seats, taxes, discounts, and true-ups. Use the report for trends and team splits, and your invoice for the exact amount.

  • Unused seats add nothing. A seat with no activity in the billing period has no base spend. Span has no inactive-seat metric.

  • Unmatched spend is left out. Spend from accounts Span can't match to a Span person, from API keys with no owner, or from Cursor events with no user email doesn't appear in any card, chart, or table. See Why AI tool or Spend data might be missing for a person.

  • People marked inactive lose their past spend. Claude Code and Cursor spend attaches only to people active in Span, so marking someone inactive removes their spend from past months too.

  • Plan settings are per connection, not per team. To price two groups differently, they need separate tool connections.

  • Model filters remove base spend. Seat cost has no model, so filtering by model shows overage only.

  • Avg spend / developer counts AI users only. Span divides total spend by the number of people with any spend in the range. People with no AI spend don't count.

  • Avg spend / month counts partial months as whole. A range from March 15 to May 15 touches three calendar months, so Span divides by 3.

  • Augment Code has no spend. Span reads Augment usage but has no spend source for it. Claude Pro, Max, and Team plans aren't covered by either Claude connection.

  • ChatGPT and Codex come from your ChatGPT Enterprise workspace. With a ChatGPT & Codex Workspace connection, each person's daily ChatGPT and Codex CLI usage cost, as the workspace reports it, appears as overage spend under those two tools. Neither has a plan in AI Spend Integration Settings, so neither has base spend. Codex sessions captured only by agent traces add no spend.

  • OpenAI API spend comes from your OpenAI API organization. With an OpenAI Platform connection, the cost OpenAI reports for each person, day, and model appears as overage spend under OpenAI API, including Codex used with an API key. The API has no plan in AI Spend Integration Settings, so it has no base spend. Usage on service account keys, and on deleted keys with no user recorded, has no person and is left out; it appears under Unknown in the integration status by API key ID.

  • Copilot overage is a usage signal. GitHub's usage report is not an invoicing total, so Copilot overage can differ from GitHub's billing page.

  • New data takes a few hours. Span rebuilds base and overage spend about every 2 hours and the combined spend table about every 6 hours, after each tool's own sync.

  • Worked example. Your Cursor connection is on the Team plan at $40 with billing day 1. A developer first uses Cursor on October 20. October has 31 days, so the daily rate is $40 ÷ 31 = $1.29. Base spend for October 20 to 31 (12 days) is 12 × $1.29 = $15.48. The same developer uses 1,500 GitHub Copilot AI credits that month: Copilot overage is 1,500 × $0.01 = $15.00. Their total for October is $30.48 plus any Cursor usage-based charges.

Related articles

Why AI tool or Spend data might be missing for a person

Cursor Integration Guide

GitHub Copilot Integration Guide

Choosing the right Claude Code Integration

Claude Code API Integration

ChatGPT & Codex Workspace Integration

OpenAI Platform integration

Need help?

Contact your Span account team or reach out to support@span.app.