← FinOpsAid blog

How many seats are we paying for and not using? Reading the Licenses page
Total, active, idle and pending-cancel seats, utilization percentage, seat price and the reclaim table — every number on the FinOpsAid Licenses page and what it justifies.
Licenses is the page most likely to produce a saving in the next hour. Seat waste is unambiguous — a seat either got used or it didn't — and every finding has a name attached. That combination makes it the easiest cost conversation in the product, and the one where you're least likely to be argued with.
The conventions used below live in the grammar behind every number.
The KPI row
| Tile |
What it counts |
Direction |
| Total Seats |
Every provisioned seat. This is what you pay for. |
— |
| Active |
Seats used within the activity window. |
Higher is better. |
| Idle |
Seats not used within the window. Footnote carries the modeled annual savings estimate. |
Lower is better. These are the findings. |
| Utilization |
Active ÷ Total, as a percentage. |
Higher is better. |
| Seat Price |
Monthly price per seat. The multiplier behind every savings figure on the page. |
— |
Utilization is the headline number and the one to track over time. It's the only figure here that survives a change in headcount — if you grow from 200 to 400 seats, idle count going up is expected and utilization going down is not.
The Seat Price tile is quietly the most important. Every savings estimate on this page and on Savings is idle seats × seat price × twelve. If the price is wrong, every derived number is wrong by the same factor, so it's worth confirming against your agreement once.
Idle is not the same as unused
Idle and never-used cost the same and mean different things. One is a cost-discipline finding; the other is evidence that an enablement programme didn't land, and reclaiming the seat quietly closes that ticket without fixing it.
Seat distribution
A donut of Active / Idle / Pending cancel, with the total in the centre and a full legend. Same data as the KPI row, shaped for a slide.
Idle seats (reclaim candidates)
The working table, sorted by days idle descending, with the modeled annual saving as a green chip in the header.
| Column |
Meaning |
| User |
Avatar and login, linking to their developer page and out to GitHub. |
| Plan |
Their Copilot plan type. |
| Last Active |
The last date any activity was recorded. |
| Days Idle |
Days since that date. The sort key. |
| AI Credits |
Credits consumed by this seat — usually near zero, which is the point. |
| Cost |
Allocated cost for the seat. |
Top 30 rows. Sorting by days idle rather than by cost is the right default: every seat costs the same, so the differentiator is confidence, and 180 days idle is more confident than 31.
The check before you reclaim. Parental leave, sabbatical, long-term sick, a contractor between engagements, someone who switched to an IDE the metrics don't cover — all show as idle. Clicking through to the developer page gives you the seat-granted date, the editor last used, and the chat/agent/cli split, which is usually enough to tell "gone" from "quiet". A batch revocation without that check produces a support queue and a credibility problem.
Billing by product
The last card: a ranked list of net billed cost per GitHub product, headed by the net total and your overall discount percentage.
It's here to put seat cost in proportion. If Copilot licences are 15% of the bill and Actions is 60%, an afternoon spent reclaiming seats is worth less than an afternoon spent on CI — and this card is the fastest way to know that before you start. The full detail lives on Cost Explorer.
What people get wrong on this page
- Reading the savings estimate as banked. It's modeled — idle seats × price × 12 — and it assumes every idle seat is reclaimable.
- Counting pending-cancel seats as new savings. They're already leaving.
- Reclaiming without checking. Leave and long-term absence look identical to idleness.
- Tracking idle count instead of utilization. Idle count moves with headcount; utilization doesn't.
- Assuming the seat price is right. Confirm it once against your agreement; everything derives from it.
The 60-second read
- Utilization percentage, and how it compares to last month.
- Idle count against the annual savings chip — that's the size of the prize.
- Reclaim table sorted by days idle: everything past 90 days is a high-confidence candidate.
- Click through the top three names before acting on any of them.
- Billing by product, to check whether seats are even the right thing to be working on today.
Frequently asked questions
How do I find GitHub Copilot seats nobody is using?
Open the idle seats table on the Licenses page, which lists inactive seats ranked by days idle along with each user's plan, last active date and credit usage. Sorting by days idle rather than cost is deliberate — every seat costs the same, so the differentiator is confidence.
Is the annual savings figure for idle seats a real saving?
It is modeled: idle seats multiplied by seat price multiplied by twelve, and it assumes every idle seat is reclaimable. Parental leave, sabbaticals and long-term absence all look identical to idleness, so treat the list as candidates and check the top names before acting.
Should I track idle seat count or utilization?
Utilization. Idle count rises naturally as headcount grows, so it can look worse while nothing has actually got worse. Utilization, meaning active seats as a share of total, survives a change in headcount and is the number worth trending month over month.
Want to find your own idle seats? Connect your GitHub org — read-only and free during beta — or explore the demo first. There's more on the security angle in dormant GitHub seats. Next: how to read the Anthropic / Claude page.