Why AI tool or Spend data might be missing for a person
Last updated: October 29, 2026
When someone's AI tool or spend data is missing from Span, the cause is rarely that they didn't use the tool. A person or a tool can drop out in six places, and each has a different fix. This article covers the AI Spend report and the Tool utilization report, and calls out where the two behave differently.
Why it matters
Missing data makes adoption look lower and spend look smaller than they are. Spend Span can't match to a person isn't included in totals; the integration status lists those unmatched accounts. Working through the checks below usually finds the cause in minutes.
How it works
Work down this list. The first "no" is usually the answer.
Can they see the report at all? See check 1.
Does that tool report this kind of data? See check 2.
Is the integration connected correctly? See check 3.
Is their tool account matched to their Span person? See check 4. This is the most common cause by a wide margin.
Is their person record active and eligible? See check 5.
Has the data had time to sync? See check 6.
Check 1: They can't see the report. No nav item means a visibility problem, not a data problem.
AI spend needs the AI Spend permission, granted per person or per team. Team Members see their own spend and that of people affiliated with them. Finance Admins see the whole organization.
Tool utilization needs a connected version control integration. The report is on by default; if it's missing for everyone, contact Span support.
Check 2: The tool doesn't report that kind of data. A person can use a tool heavily and still produce no spend row.
Tool | Spend | Usage | How usage reaches Span |
|---|---|---|---|
Cursor | Base and overage | Yes | Cursor connection |
GitHub Copilot (Business or Enterprise) | Base and overage | Yes | GitHub Copilot switch on a GitHub connection |
Claude Code, API plan | Overage only | Yes | Claude Code API connection |
Claude Code, Enterprise plan | Base and overage | Yes | Claude Code Enterprise connection |
Claude Cowork | Overage only | Yes | Claude Code Enterprise connection |
Claude Pro, Max, or Team plans | No | Through agent traces only | Agent traces |
ChatGPT and Codex (ChatGPT Enterprise workspace) | Overage only, from the usage cost the workspace reports | Yes | ChatGPT & Codex Workspace connection |
OpenAI API, including Codex CLI or the Codex IDE extension signed in with an API key | Overage only, from the cost OpenAI reports, under OpenAI API | Yes, under OpenAI API | OpenAI Platform connection. Agent traces, if installed, also report Codex sessions as Codex CLI. |
Codex CLI with neither a ChatGPT & Codex Workspace nor an OpenAI Platform connection, VS Code | No | Through agent traces only | Agent traces |
Augment Code | No | Yes | Augment Code connection |
Devin, Codegen, Codex Cloud, Copilot coding agent | No | Yes | Detected from pull requests |
Spend comes from Cursor, GitHub Copilot, Claude Code API, Claude Code Enterprise, the ChatGPT & Codex Workspace connection, which adds each person's daily ChatGPT and Codex CLI usage cost as overage spend, and the OpenAI Platform connection, which adds the cost OpenAI reports for each person, day, and model as OpenAI API overage spend. Claude subscription plans (Pro, Max, Team) produce no spend.
Plan tier matters for Copilot. Individual Copilot seats aren't visible to the organization API, so only Business and Enterprise seats report. Seats on an unrecognized plan type are dropped before pricing.
Check 3: The integration isn't set up, or is set up wrong. If an integration shows as connected but no data appears, check its requirement and the common mistake below.
Tool | Requirement | Common mistake |
|---|---|---|
Cursor | A team API key created by a team admin | Using a personal user key with admin scope. It returns no data. |
GitHub Copilot | The Span GitHub App holding the GitHub Copilot Business organization permission (read), and the GitHub Copilot switch turned on for that GitHub connection | Turning on the switch before granting the permission, so the sync returns nothing |
Claude Code API | An Admin API key from the Claude Console | Expecting subscription users to appear. This connection covers API users only. |
Claude Code Enterprise | An Analytics API key with the | Using a key without that scope |
ChatGPT & Codex Workspace | A workspace Admin API key from the OpenAI Admin Console with Enterprise analytics API → Read, for a ChatGPT Enterprise workspace eligible for daily usage reporting. One connection per workspace. | Using an OpenAI API Platform key ( |
OpenAI Platform | An organization Admin key ( | Using a project API key, which Span rejects. Or expecting usage from ChatGPT sign-ins, which comes only through ChatGPT & Codex Workspace. |
Claude Code's own OpenTelemetry export doesn't feed AI Spend. If a whole tool shows no data for anyone, start here rather than with individual people.
Check 4: Their account doesn't match their Span person. Span matches each tool on a different identifier, so a person can match in one tool and be missing in another.
Tool | Matches on |
|---|---|
Cursor | Email address |
GitHub Copilot | GitHub username on the person record. There is no email fallback. |
Claude Code API | Email address, or the API key name set on the person record |
Claude Code Enterprise | Email address |
ChatGPT & Codex Workspace | The email on the user's ChatGPT account, matched to a person active in Span. Matching isn't case-sensitive. Usage with no email, or with an email that matches no one, appears under Unknown. |
OpenAI Platform | Email address. For each day's usage and cost, Span uses the first email it finds: the user OpenAI recorded on the cost, then that user's email from your organization's member list, then the email of the person who owns the API key. Matching isn't case-sensitive. Usage on service account keys, and on deleted keys or keys in archived projects with no user recorded, has no person and appears under Unknown by API key ID. |
Agent traces | The work email on the session |
Tools detected from pull requests | The person who requested the pull request |
To see who matched, open the Integrations status on the Tool utilization or AI Spend page and select a tool. OpenAI Platform appears only in the AI Spend page's status. The Active tab lists people seen in the tool's data recently, Missing lists people in Span who haven't appeared, and Unknown lists emails or API keys that match no one in Span. A name in Missing next to a likely match in Unknown is a mapping problem. The Integrations status appears only for people with the Manage Integrations permission.
Things to check, in order:
Copilot usernames. A missing GitHub username on the person record is enough to hide someone. Add it.
Personal accounts. Someone signed in with a personal email or GitHub account that isn't on their Span record won't appear.
Claude API keys. Add the API key name to the person record, the same way you add VCS usernames.
Cursor events with no email can't be matched and are left out.
OpenAI service account and deleted keys. Usage on these keys has no person, so it stays under Unknown and is left out of AI Spend and Tool utilization.
Check 5: Their person record excludes them.
People who have left. AI Spend covers people who are active in Span. After someone is marked inactive, their Claude Code base spend and their overage spend for Cursor, Claude Code, ChatGPT, Codex CLI, and the OpenAI API no longer appear, including earlier months. If a past month's total changed, a departure is a likely cause.
Contractors and service accounts. People recorded as non-employee, system, or service account types never appear in these reports.
Tool utilization applies extra filters. It counts only people marked as developer contributors, skips their out-of-office days, and requires coding activity (a commit, merged PR, review, or PR comment) in the last 30 days. Someone can appear in AI Spend but not in Tool utilization for this reason.
Check 6: The data hasn't synced yet. Give a new integration a full cycle before investigating.
Tool | Sync frequency | Time to first data |
|---|---|---|
Cursor | Nightly at 02:30 UTC | Up to 24 hours |
GitHub Copilot | Every 4 hours | Up to 6 hours |
ChatGPT & Codex Workspace | About every 2 hours | A few hours |
OpenAI Platform | About every 2 hours | A few hours |
History. The first sync requests history back to your organization's integration sync start date. GitHub's per-user Copilot usage report has no data before October 10, 2025. Claude Code API history starts no earlier than February 24, 2025, when Claude Code launched. Claude Code Enterprise history starts no earlier than January 1, 2026. OpenAI Platform history goes back at most one year, because OpenAI serves only the past year.
Processing. After each sync, Span rebuilds usage and spend about every 2 hours and the combined spend table about every 6 hours.
Recent days. Copilot's report covers days through yesterday (UTC), and Augment Code data can lag up to two days. ChatGPT & Codex Workspace and OpenAI Platform report by UTC day, and each sync re-reads the previous 2 days, so the last couple of days can change slightly.
Setup
If the checks point to a mapping problem:
Open the person's record in Span and add the missing GitHub username, email, or Claude API key name.
Wait for the next rebuild (a few hours).
Reopen the Integrations status on the report and confirm the person moved from Missing to Active.
Things to know
Unmatched spend. Spend Span can't match to a person isn't included in the report's charts, cards, or tables. The Unknown tab of the Integrations status lists the unmatched accounts. This is the usual reason a Span total reads lower than the vendor's console.
Missing data can show as zero. A person whose tool isn't connected or whose account didn't match shows 0 rather than "no data".
Worked example. Your Copilot invoice covers 50 seats and Span shows Copilot base spend for 42 people. Five seats had no activity in the billing period, so they add nothing. The other 3 belong to developers whose GitHub usernames aren't on their Span records; they appear under Unknown in the Copilot integration status. Adding those usernames brings Span to 45 people after the next rebuild.
Related articles
Choosing the right Claude Code Integration
ChatGPT & Codex Workspace Integration
Need help?
Contact your Span account team or reach out to support@span.app. Include the person's name, their account identifier in the tool (email, GitHub username, or API key name), the tool and report, the date range, and what the vendor's console shows for the same person and period.