← FinOpsAid blog

How many seats are we paying for and not using? Reading the Licenses page — 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

Four seat states and what each one justifies Active seats are used and require no action. Idle seats were used at some point and have gone quiet, making them reclaim candidates that need a human check first. Never-used seats were assigned and never picked up, which is an onboarding failure as much as a cost one. Pending-cancellation seats are already scheduled to end and must not be counted as new savings. FOUR SEAT STATES — FOUR DIFFERENT ACTIONS ACTIVE Used recently. Action: none. IDLE Used, then went quiet. Action: check, then reclaim. NEVER USED Assigned, never picked up. Action: onboard or remove. PENDING CANCEL Already scheduled to end. Action: none — don’t double-count. The Overview page splits these differently: Active / Idle / Not used on the Copilot donut. “Not used” there is the never-used population — an onboarding failure, not a cost-discipline one. Reclaiming a never-used seat saves money and hides the fact that the rollout never reached that person.
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

The 60-second read

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.