GitHub Copilot stopped counting premium requests on 1 June 2026. Plans now include a pool of GitHub AI credits, and extra usage bills at published rates. That change did not make unused seats free.
Copilot Business is still $19 per user per month. Copilot Enterprise is still $39. Each assigned seat also contributes included credits to a shared pool. A seat that never opens the editor costs the seat charge, and it inflates a credit pool nobody is drawing from.
This post is about the seat line, not Microsoft 365 Copilot. Those are different products with different oversharing problems.
What did usage-based billing change on June 1, 2026?
Base seat prices did not move. What moved is how included usage is measured.
| Plan | Seat | Included AI credits per user per month | Promo credits (1 Jun to 1 Sep 2026) |
|---|---|---|---|
| Copilot Business | $19 | 1,900 | 3,000 |
| Copilot Enterprise | $39 | 3,900 | 7,000 |
One credit is $0.01 of included usage at GitHub's published conversion. Business includes $19 of credits. Enterprise includes $39. Promo months raise that to $30 and $70.
Credits pool at the billing entity. They do not stick to the person who "owns" them. Unused credits do not carry over. The pool resets at 00:00:00 UTC on the first of each calendar month.
That last point is the trap. A team of 80 Business seats has 152,000 included credits in a normal month (80 × 1,900). If 30 of those people never use Copilot, the pool is still sized for 80. Power users can burn the idle people's credits. The invoice still has 80 × $19 in seats. The unused seats did not save anything. They funded someone else's overage until the pool ran out, then the overage billed anyway.
GitHub's docs: usage-based billing for organizations and enterprises. Promo amounts apply to existing Business and Enterprise customers for June, July, and August 2026. After 1 September 2026 the standard 1,900 / 3,900 allotment is the one to plan against.
Why do unused Copilot seats still show up on the invoice?
GitHub bills assigned licenses, not "people who typed this month."
Adding a seat is prorated for the rest of the current cycle. Removing a seat is not. Billing for a removed seat stops at the end of the cycle. There is no refund for unused days. Access for an unassigned seat lasts until cycle end unless the seat is revoked, in which case access drops immediately.
So the cleanup that feels like it should cut this month's bill often cuts next month's bill. That is why a finance review in the third week of August still shows seats that engineering "already took away."
Idle is a different question from assigned. A seat can be assigned, authenticated, and silent. Unsave flags a seat as idle after 30 days without activity, and as never-used after 14 days with no activity at all. Those windows are long enough that a new hire finishing onboarding does not look like waste, and short enough that a license sitting on a leaver does.
Pending cancellation is a third state. GitHub can show a seat that will drop at cycle end while it still counts in this month's assigned total. Counting those as active spend overstates next month. Ignoring them understates this month.
How do you find unused Copilot seats without a spreadsheet?
The GitHub API exposes Copilot seat assignment, last activity, last editor, and plan type. The billing usage API exposes what those seats actually cost.
A useful review is not "who has Copilot." It is four lists:
- Never used (14+ days assigned, no activity). These are the cleanest removals.
- Idle (30+ days since last activity). Confirm the person left, changed role, or moved to a different editor that GitHub does not see.
- Pending cancellation. Already leaving. Do not re-assign them this cycle.
- Heavy users near the pooled-credit ceiling. These people are why unused seats look "fine" until the pool is gone and additional usage is enabled (GitHub enables extra AI-credit spend by default unless an admin turns it off).
Unsave's GitHub Copilot view is built around those lists, next to the spend window. Pair it with why GitHub billing and your dashboard disagree: seat waste is a people problem, billed amount vs net is a window problem. Mixing them hides both.
Do not confuse this with Microsoft 365 Copilot readiness. M365 Copilot risk is SharePoint oversharing, not a $19 GitHub seat. That write-up is M365 Copilot readiness is SharePoint oversharing.
What should you do before you remove seats?
Removing seats in a panic creates the other failure: the one engineer who uses Copilot every day, whose seat you pulled because last_activity_at was stale, who then files a ticket. GitHub's last-activity field lags some editors. Treat idle as a candidate list, not a deletion script.
A practical pass:
- Export idle and never-used seats.
- Check HR / IdP for leavers first. Those are not debates.
- Ask managers about the rest with a 7-day reply window. GitHub will keep billing through cycle end either way.
- Turn off additional AI-credit spend if the intent is "included pool only." GitHub leaves extra spend on by default.
- Re-check billed amount on the first of next month, on a This month window, net vs billed amount. That is the only checksum that matches the invoice.
A 40-seat Business org with 8 never-used seats is $152 a month on seats alone, $1,824 a year, plus 15,200 credits a month that exist only because those seats exist. Promo months make the credit number look bigger. They do not make the seat line smaller.
GitHub's license-change rules make the calendar explicit. Add a seat and billing is prorated immediately. Remove a seat and billing stops at cycle end, with no refund for the unused days. If you unassign 8 seats on 20 August, August's invoice still has them. September does not. That is why a cleanup sprint in the last week of the month looks like it "did nothing" on the current billed amount.
User-level budgets, now generally available for orgs and enterprises, cap how much one person can burn from the pool and from additional usage. They do not unassign the seat. A budget of $0 on an idle user still costs $19 or $39. Budgets are for overage. Seat removal is for unused people.
Scan your Azure environment free, or connect GitHub and review idle Copilot seats → unsave.io