Quick answer

Charge seats to the cost centre of the person who holds them, and split each tool's usage charges in proportion to measured usage, scaled so the total matches the invoice. For Claude Code, get usage by team from telemetry: label each machine with a team.id or cost_center and send it to Ganivra. For Cursor and Copilot, use seat counts from each admin console plus per-person usage from Cursor's Admin API and GitHub's usage reports. Spread whatever you can't map by headcount, and reconcile to each invoice before you post the journal. Download the free chargeback template (.xlsx).

Showback or chargeback: which should finance use for AI coding tools?

Showback reports each team's AI coding cost without moving money. Chargeback posts that cost to the team's cost centre in the general ledger, usually as a month-end journal. The data and the method are the same for both. The difference is whether the number lands in a team's P&L.

  • Start with showback for one or two closes. Team leads will find people mapped to the wrong team, contractors with no team, and bots on human seats. Fix those before anyone's budget is charged.
  • Move to chargeback once the mapping holds and AI coding spend is material: typically when it is a visible line in engineering's budget, or when teams use the tools very differently.
  • Keep one method for every tool. Charging Copilot by cost center and Claude Code by headcount makes teams compare numbers that weren't built the same way.

What do Claude Code, Cursor and GitHub Copilot bill, and what can you see per person?

Billing and reporting for team plans, checked November 7, 2026
Claude CodeCursorGitHub Copilot
Seat price (list, per month)Claude Team: Standard seat $25 ($20 annual), Premium seat $125 ($100 annual)Cursor Teams: Premium $30, Super $100, Ultra $200Business $19, Enterprise $39
Usage charged on topUsage credits after the seat allowance, at API rates; or all usage at API rates on Console or usage-based Enterprise billingAdditional usage from a prepaid team balance: third-party models, and Cursor models after a seat's weekly poolAI credits beyond the pooled monthly allowance, at $0.01 per credit
Per-person dataSpend report export per user and model (usage credits only on seat plans); Claude Code telemetry per developerAdmin API: members with email, and usage events with the amount chargedUsage reports with username; AI usage report per user and model
Native team or cost centreGroups on Enterprise; spend by RBAC group through the Enterprise Analytics APIGroup-level settings and spend limits on EnterpriseCost centers for users, enterprise teams, organizations and repositories
Gives you spend by teamNot on the Team planNot on the Teams planYes, with cost centers on metered billing

Sources: Claude pricing, Claude usage analytics, Cursor Teams pricing, Cursor Admin API, Copilot billing and GitHub cost centers. Compare total cost for your team size in the AI coding tools cost calculator.

How do I charge Claude Code costs back by team?

Claude Code costs have two parts. Seats are easy: each seat goes to the team of the person who holds it. Usage is the hard part. On the Claude Team plan, usage inside each seat's allowance isn't metered in dollars. Anthropic's spend report covers only usage credits above the allowance, and lists them per user and model, not per team. On API billing, the Console shows spend per member, not per team or cost centre.

Claude Code's OpenTelemetry export fills the gap. Each request reports its tokens and the developer's account. You add the team yourself with a resource attribute, which Anthropic's monitoring guide documents for multi-team organizations:

OTEL_RESOURCE_ATTRIBUTES="team.id=payments,cost_center=CC-4100"

Values can't contain spaces, so use short keys such as payments and map them to cost centre names in your sheet. Roll the setting out to every machine with managed settings, using one file per team. See Claude Code managed settings for cost tracking.

  1. 01
    Send telemetry to Ganivra

    Ganivra prices every Claude Code request at list API rates and totals it by developer and team. It uses the first of team.id, team, team.name or cost_center that is set, on any plan. Prompts and code are never received.

  2. 02
    Download teams as CSV

    On the dashboard's Coding agents tab, choose Teams and download the CSV: team, developers, requests, sessions, active days, tokens and cost at list rates. It pastes straight into the template.

  3. 03
    Split the invoice by share

    List-rate cost on a seat plan is higher than what you pay, because the seat covers part of it. Use each team's share of list-rate cost to split the usage-credit line on your invoice. On API billing the two should be close, and the share method still keeps the total equal to the invoice.

  4. 04
    Or map teams to cost centres in Ganivra

    In Reports, add allocation rules that match a team or a developer to a cost centre. The cost report then shows known cost per cost centre. Its evidence export lists each request with its developer, team and cost centre, for audit.

On Claude Enterprise, Anthropic's Analytics API can group cost by RBAC group for per-department spend. That covers Anthropic-billed usage. Usage through Amazon Bedrock or Google Vertex AI appears in your cloud bill instead. Telemetry covers all of them. Details: Claude Enterprise consumption guide and usage credits.

How do I charge Cursor costs back by team?

Cursor Teams bills a price per active seat: Premium, Super or Ultra. Seats don't share their weekly pools. Usage beyond a seat's pool, and all third-party model usage, is paid from a prepaid balance the whole team shares. Third-party models cost their API list price plus $0.25 per million tokens. Cursor has no cost centre field on the Teams plan, and lists group-level settings and spend limits for Enterprise. So charge it back from people:

  • Seats: pull members with GET /teams/members in the Admin API, which returns each member's email and role. Add their seat tier, and map each email to a team in your HR or identity system.
  • Usage: for each member, sum chargedCents from POST /teams/filtered-usage-events over the month and divide by 100. Use events rather than /teams/spend, which covers only the current billing cycle.
  • Mid-month changes: adding a member creates a prorated charge for the rest of the period. Upgrades are charged the prorated difference right away, and downgrades apply at the end of the period. Use the template's billable-days column to match.

Cursor's Admin API also documents billing groups with spend per group. If your plan includes them, a billing group per cost centre gives you Cursor spend by team directly. Check with Cursor before relying on them.

How do GitHub Copilot cost centers work for chargeback?

GitHub is the only one of the three with native cost centres. Enterprise owners and billing managers can create up to 1,000 cost centers. Each can hold users, enterprise teams, organizations and repositories. For licence-based products like Copilot, a cost center is charged for the users in it. When a user could fall into more than one, GitHub's precedence decides:

  1. A user assigned directly to a cost center is charged there.
  2. Otherwise, the user's enterprise team decides. If they are in several, the team created first applies.
  3. Otherwise, the cost center of the organization the usage is allocated to. If the organization is in no cost center, the cost stays with the enterprise.

Cost center changes apply to future usage only, so set them up before the month you want to charge. Cost centers apply only to metered billing, not to volume or subscription billing. You can add budgets per cost center, and when budgets overlap, the most restrictive one applies.

  • Seats: Business is $19 and Enterprise $39 per user a month. Added seats are billed pro rata. Removed seats are billed to the end of the cycle, so don't prorate removals.
  • AI credits: Business includes 1,900 credits per user and Enterprise 3,900, pooled across the billing entity. The pool resets on the first of each calendar month. Usage beyond the pool costs $0.01 per credit. Because the pool is shared, split the overage by each person's credit usage, not by who happened to use the last credits.
  • Reports: under Billing > Usage, choose Get usage report. GitHub emails a link that expires after 24 hours. The detailed report (up to 31 days) includes username and cost_center_name, and the AI usage report breaks credits down by user and model. Details: billing reports reference.

Which allocation method should you use for AI coding costs?

Recommended allocation by cost type
CostAllocate byWhy
SeatsThe person holding the seat, at your contract price, prorated where the vendor proratesA seat is a fixed cost tied to one person, so their team should carry it
Metered usageEach team's share of measured usage, scaled to the invoiceUsage varies widely between developers, and scaling keeps the total equal to what you paid
Unmapped usageSpread by engineer headcount, or hold on an unmapped lineSpreading is simple; holding it makes someone fix the mapping
Shared or automation seatsA platform or shared engineering cost centreCI bots and service accounts serve everyone, so don't load them onto one team
Taxes and creditsFollow your existing software policyTreat them the same way as other SaaS

Avoid splitting everything by headcount. Usage-based charges vary far more between developers than seats do. Spending on agentic work is concentrated in a few people, so a headcount split moves cost from the heaviest team to the lightest. See Claude Code cost per developer for how wide that spread runs.

What does an AI coding chargeback look like? A worked example

The template ships with one illustrative month for four cost centres and 18 engineers. The people, teams and amounts are made up. Claude Code usage at list rates came to $4,708.85, but the invoice's usage-credit line was $3,120.00, so each team's share of list-rate cost splits $3,120.00. One contractor and some Claude Code usage had no team. That $96.82 is spread by headcount.

Illustrative chargeback for one month, from the template's example data
Cost centreEngineersSeatsUsageUnmapped shareTotal chargePer engineer
CC-4100 Payments Engineering6$198.81$868.06$32.27$1,099.14$183.19
CC-4200 Platform & Infrastructure5$359.00$1,669.10$26.90$2,054.99$411.00
CC-4300 Mobile Apps4$99.00$285.78$21.52$406.29$101.57
CC-4400 Data & ML3$40.00$433.99$16.14$490.13$163.38
Total18$696.81$3,256.93$96.82$4,050.56$225.03

The spread between Platform (about $411 per engineer) and Mobile (about $102) is the point of measuring usage. A headcount split would have charged every team about $225 per engineer, and Mobile would have paid for Platform's agent runs.

Download the AI coding tools chargeback template

Download the chargeback template (.xlsx)

The workbook has seven sheets: Read me, Settings, Teams, Seat roster, Claude Code, Chargeback and Journal. Blue cells are inputs and black cells are formulas. Settings lists seat prices checked against each vendor on November 7, 2026. It works in Excel, Google Sheets and Numbers, with no macros.

  1. 01
    Set prices and invoices

    In Settings, enter the seat prices you actually pay (contract prices beat list prices), the days in the billing period, your expense and clearing accounts, and each tool's seat charges and metered usage from this month's invoices.

  2. 02
    Map teams to cost centres

    In Teams, list every team key exactly as it appears in your data, the cost centre it belongs to, and its engineer headcount. Several teams can share a cost centre.

  3. 03
    Fill the seat roster

    One row per person per tool: email, team key, tool and plan tier. For Cursor and Copilot, add each person's metered usage from the vendor export.

  4. 04
    Paste Claude Code usage from Ganivra

    In Ganivra, open the Coding agents tab, choose Teams and download the CSV. Paste the rows into the Claude Code sheet at A5.

  5. 05
    Check the chargeback and reconciliation

    List each cost centre once on the Chargeback sheet. The reconciliation block shows whether seats and usage match each invoice, and a check cell catches cost centres you forgot to list.

  6. 06
    Post the journal

    The Journal sheet has one debit per cost centre and one balancing credit, ready to import into your ERP.

Usage for each tool is split in proportion to measurement, so it always adds up to the invoice. Seats are not scaled, so a seat difference in the reconciliation block means something real: a missing roster row, a wrong tier, proration, or a discount you haven't entered.

Month-end close checklist for AI coding chargeback

  • Day 1: download the Claude Code team CSV from Ganivra, the GitHub detailed and AI usage reports, and Cursor members and usage events for the month.
  • Day 1: update the roster for joiners, leavers and tier changes, and map every new person to a team.
  • Invoice day: enter each invoice's seat and usage lines and check the reconciliation block reads Reconciled, or explain the difference.
  • Before posting: confirm the check cell for missing cost centres is zero and the journal balances.
  • After posting: send each team lead their line, with per-engineer cost, and keep the downloaded exports with the close file.

Common mistakes when charging back AI coding costs

  • Charging list-rate usage as if it were the bill. On seat plans, list-rate cost is an allocation key, not an amount owed. Scale it to the invoice.
  • Leaving cost center setup until month end. GitHub applies cost center changes to future usage only.
  • Team labels with spaces or inconsistent casing. Payments and payments become two teams. Pick lowercase keys and map them to display names in one place.
  • Forgetting cloud-billed usage. Claude Code through Bedrock or Vertex AI shows up in your cloud bill, not Anthropic's reports.
  • Charging automation to whoever set it up. Give bots and CI agents their own cost centre or team key.

From chargeback to budgets

Once each team has a monthly number, give it a ceiling. In Ganivra you can set a monthly budget for each team or developer, with warning and critical thresholds, matched to the same team key as the chargeback. See How to set Claude Code spend limits by team, and Claude Code Team seats vs API for whether each team is on the right plan.

AI coding costs chargeback: frequently asked questions

What is the difference between showback and chargeback for AI coding tools?

Showback reports each team's AI coding cost without moving money; chargeback posts that cost to the team's cost centre in the general ledger, usually as a monthly journal entry. Most companies start with showback for one or two months so team leads can check the numbers, then switch to chargeback once the mapping from people to cost centres is trusted.

How do I allocate Claude Code costs to teams?

Seats go to the team of the person who holds them. For usage, label each developer's machine with a team.id or cost_center attribute in Claude Code's OpenTelemetry settings, and send the telemetry to Ganivra. Ganivra prices every request at list rates and totals it by team, and you split the usage on your Anthropic invoice in proportion to each team's share.

Does GitHub Copilot support cost centers?

Yes. On GitHub's metered billing, enterprise owners and billing managers can create cost centers and add users, enterprise teams, organizations and repositories. Copilot licence costs follow the users in each cost center, usage reports include a cost_center_name column, and budgets can be set per cost center. Cost centers don't work with volume or subscription billing.

Can Cursor show cost per team?

Cursor's Teams dashboard tracks usage per member, and its Admin API returns members with email addresses and usage events with the amount charged for each. Group-level settings and spend limits are listed for Cursor Enterprise. To charge Cursor back by team, map each member's email to a team and add their seat price plus their charged usage.

Should AI coding tool costs be split by headcount?

Only the part you can't measure. Seats belong to the person who holds them, and metered usage should follow measured usage, because one heavy agent user can cost more than the rest of a team combined. Headcount is a fair way to spread what's left over, such as usage from people who haven't been mapped to a team yet.

How do I handle seats added or removed mid-month?

Prorate by billable days if the vendor does. GitHub bills added Copilot seats pro rata and keeps billing removed seats to the end of the cycle; Cursor creates a prorated charge when a member is added and applies downgrades at the end of the billing period. The template has a billable-days column for this.

Is there a free AI coding tools chargeback template?

Yes. Ganivra's spreadsheet template covers Claude Code, Cursor and GitHub Copilot. It maps teams to cost centres, prices seats, splits each tool's metered usage to match its invoice, spreads unmapped cost by headcount if you choose, reconciles to invoices and produces journal lines. It works in Excel, Google Sheets and Numbers.

For finance and engineering leaders

Get Claude Code spend by team, ready for the close.

Start a 14-day Ganivra trial, turn on Claude Code's telemetry, and download spend by team and developer for your chargeback each month. No credit card required.