← FinOpsAid blog

Why don't our team costs add up to the bill? Reading the Teams page honestly
Allocated cost, credit-share modeling, acceptance rate and the overlap warning — what every column on the FinOpsAid Teams page means, and why summing the rows is the one thing you must not do.
The Teams page exists to answer "which teams are driving AI spend". It answers that well. It does not answer "what should each team be charged", and the difference between those two questions is the entire content of the amber banner sitting near the top of the page.
Read the grammar behind every number for the badge conventions if you haven't.
The banner is not boilerplate
The overlap is not roundable away. If you need a ledger where the parts sum to the whole, you need a primary-team rule applied outside GitHub — which is exactly the design problem covered in chargeback by team.
The KPI row
| Tile |
What it counts |
Direction |
| Team AI Usage Cost |
Sum of every team's allocated cost. Footnote: "allocated · not billed". |
Worse — but remember this total is inflated by overlap. |
| Active Teams |
Number of teams with any activity. |
Neutral. |
| Members |
Sum of member counts across teams — also inflated by people on multiple teams. |
Neutral. |
| Cost / Team |
Team AI Usage Cost ÷ team count. |
Neutral. A blunt average; the ranked list below is more useful. |
Neither of the two sums is a headcount or a bill. They're roll-ups of a roll-up.
The basis badge — the most important chip on the page
Top-right of the Teams card sits one of two chips, and it changes what every dollar figure means:
Green — "GitHub-attributed." GitHub reported per-developer Copilot cost directly (via the billing endpoints that accept a user parameter), and the team figure is a straight roll-up of real attributed dollars. The cost column header reads Attributed Cost.
Amber — "Estimated · credit-share." GitHub did not attribute per-user cost, so we split the org's AI-credit spend across developers in proportion to the AI credits each one consumed, then rolled that up per team. The column header changes to Allocated Cost (est.).
Same layout, different epistemic status. Check the chip before you quote a figure, and say which one you were looking at.
The Teams table
| Column |
Meaning |
Direction |
| Team |
Team slug with a two-letter avatar, linking to the team's detail page and out to GitHub. |
— |
| Members |
Members in that team. |
Neutral. |
| AI Credits |
Total AI credits consumed by its members. A usage signal, not money. |
Neutral — high credits with low cost means cheap models, which is efficient. |
| Acceptance |
Average Copilot suggestion-acceptance rate for the team. |
Higher is better — with a caveat below. |
| Attributed / Allocated Cost |
The dollar figure, per the basis badge. |
Lower is better for the same output. |
Rows are sorted by cost descending, with credits as a tiebreak.
On acceptance rate: it measures how often a suggestion was kept, which tells you whether the tool fits the codebase. A team working in an unusual language, a heavily bespoke framework, or a codebase with strict lint rules can be getting real value at a low acceptance rate. Treat a low number as a prompt to ask the team, not as a verdict on the team.
The most interesting row is rarely the top one. Look for high credits with low acceptance — that team is generating a lot of suggestions and keeping few of them, which is the clearest efficiency signal on the page.
AI usage cost by team
A ranked horizontal bar list of the top eight teams by cost, with the same "allocated, not billed — overlaps across shared members" subtitle. Same numbers as the table, shaped for a screenshot in a deck.
Clicking any team opens its detail page: allocated cost, member count, AI credits, acceptance rate, a membership history timeline showing who joined and left, and a per-member table with department, credits, acceptance and allocated cost.
That membership history is the piece people miss. When a team's cost jumps, the question is usually "did we add people or did existing people use more?" — and the timeline answers it directly.
What people get wrong on this page
- Summing the team column. It double-counts shared members. The banner says so; the banner is right.
- Ignoring the basis chip. Amber means our model, and someone will eventually ask what the model is. The answer: org AI-credit spend split in proportion to per-developer credit usage.
- Reading acceptance rate as productivity. It's fit, not output.
- Treating AI credits as cost. Credits inside the included allowance bill nothing.
- Using this page for chargeback. Use it for showback. Chargeback needs a primary-team rule that GitHub can't give you.
The 60-second read
- Check the basis chip. Green or amber decides how you talk about everything below.
- Read the ranked bar list for the top three teams — that's usually most of the spend.
- Scan for high-credits/low-acceptance rows. Those are the efficiency conversations.
- Open the top team's detail page and check the membership timeline before concluding anything about a cost change.
- Never quote the sum. Quote the org total from Cost Explorer instead.
Frequently asked questions
Why do team costs add up to more than our GitHub bill?
Because members on multiple teams are counted in full inside each team, so the rows overlap by design. GitHub teams overlap and a chargeback ledger cannot. Use the page to compare teams against each other, and take the org total from Cost Explorer or Billing as the billed figure.
What does the Estimated credit-share badge mean on the Teams page?
It means GitHub did not attribute per-user Copilot cost for your org, so FinOpsAid split the org's AI-credit spend across developers in proportion to the credits each consumed, then rolled that up per team. When GitHub does attribute cost directly the badge turns green and reads GitHub-attributed.
Can I use the Teams page for chargeback?
Use it for showback, not chargeback. Chargeback needs every dollar to land in exactly one place, which requires a primary-team rule that GitHub cannot supply. The overlapping allocation here is honest about that rather than hiding it behind a rounded total.
Want your own team breakdown? Connect your GitHub org — read-only and free during beta — or explore the demo first. Next: how to read the Developers page.