How do I find and reclaim unused licences?

Updated last monthSara AhlénSoftware

Software waste comes in two shapes, and you find them in different places. An unassigned seat is one you pay for that nobody holds, which Velory can always tell you about because it is a counting exercise. An unused seat is one somebody holds and never touches, which Velory can only see where usage telemetry reaches it — and most services never report any.

This article covers finding both, and what to do once you have.

Before you begin

You need Admin access. Reclaiming a seat changes an employee's access, so treat it as a real change rather than housekeeping.

The two kinds of waste

WasteWhat it meansHow you spot it
Unassigned seatsYou pay for a seat nobody holdsLicence counts — always available
Unused seatsSomeone holds a seat and does not use itTelemetry — only where it has been set up

Find unassigned seats

Start wide, then narrow:

  1. Go to Assets → Software. The No. of Unused Licenses column shows, per service, how many active licences are not assigned to anybody. Sort by it.
  2. Open a service with a number in that column and go to the Plans tab. The Unassigned Licenses column tells you which plan holds the slack.
  3. Open that plan's Licenses tab. Unassigned rows show Unassigned in the Assigned To column — sort by it to group them.

The License Utilization chart on the Software Spending page gives the same picture over time, assigned against unassigned. A gap that widens month on month is a subscription that grew while your headcount did not.

Plan seat limits help here too. If a plan has a Seat Limit set, its Finance tab shows consumption against it, so you can see at a glance whether you are paying for headroom you never use.

Find seats people hold but do not use

This needs usage data. Where Velory has it, each licence gets a health score from 0 to 100, shown as a grade:

GradeMeaning
AExcellent
BGood
CFair
DPoor

Add the Health and Health updated columns to a licence table, or filter by usage band — Unused, Low, Medium, High — to pull out the candidates directly. Not scored yet is its own band, and it is not a criticism of the licence: it means no usage data has arrived.

Scores are recalculated daily, so they lag real activity by up to a day.

The service's Usage tab shows the underlying picture, on two sub-tabs: License usage scores whether each seat is earning its keep, and Telemetry shows what each person actually consumed in tokens and cost.

Where usage data comes from

Health scores are built from AI usage telemetry, which covers Claude, OpenAI and Gemini and has to be rolled out to your fleet before anything is reported. Any service outside those three will show unscored licences permanently — for those, unassigned-seat counting is the tool you have.

See What is AI usage telemetry? for what it collects and How do I set up AI usage telemetry? for the rollout. Reading the numbers is covered in How do I read a service's Usage tab?.

Reclaim a seat

Once you have a candidate, pick the action that matches your intent:

ActionWhat happensUse when
UnassignFrees the seat, licence stays activeYou are handing it straight to somebody else
DeprovisionUnassigns and suspends the licenceThe seat should sit idle until needed
DeleteRemoves the licence record permanentlyYou are cutting the seat and want it out of your counts

Deprovision is the usual answer. It frees the seat, keeps the record for audit, and lets you reassign later. Delete only when you are genuinely reducing the subscription.

Note what none of these do on their own: reduce your bill. Velory stops counting a deleted seat, but the vendor keeps charging until you reduce the subscription with them. Reclaiming in Velory tells you what to renegotiate; it is not the renegotiation.

To act on several at once, select rows in the licence table and use Unassign, Deprovision or Delete from the bulk action bar.

Seats reclaimed from a usage report

Importing a usage CSV reclaims seats for you: anyone holding a licence who does not appear in the report has it unassigned automatically, on the assumption that the report is the current truth about who uses the service. That also means a partial export reclaims seats from everybody it omits, so read How do I import a usage report? before uploading one.

This applies to the CSV path only — connecting a usage API brings in consumption data without touching assignments.

The opposite problem

Under-licensing costs you differently — in compliance rather than money. SaaS Discovery's Users without an active seat tile counts people using a managed service with no live licence, and Coverage shows how complete each service is. See How do I give discovered users a licence?.

Both figures are worth reading in the same sitting. Paying for forty seats while thirty people use the tool without one is a single problem with two symptoms.

Good to know

Is "unused" the same as "unassigned"?

In the No. of Unused Licenses column, yes — it counts active licences with no holder. Elsewhere in this article "unused" means a seat somebody holds without using, which is the harder thing to see. The column name is the older wording.

Why are all my licences unscored?

Because no telemetry is arriving for them. Health scores come from AI usage telemetry, which covers Claude, OpenAI and Gemini and has to be rolled out to your fleet before anything is reported — a licence on any other service stays unscored permanently, and that is expected rather than a fault.

Does a suspended licence still count as unused?

The No. of Unused Licenses column counts active licences only, so a suspended seat is already out of that figure. It does still block a new assignment on the same plan for the same person, and it still blocks deleting the plan.

Someone shows no usage but insists they need the tool.

They may well be right. Health scores measure what the provider reports, and a service used through a route the provider does not see — a desktop app, an integration, an occasional but essential task — scores badly while being genuinely needed. Treat a low grade as a question, not a verdict.

How often should I do this?

Before each renewal is the minimum, which is what the Renewal Calendar is for. Monthly is better for anything per-user, because that is where headcount drift turns into spend.

Was this article helpful?