How to Find Unused Software Licenses — Odau
ODAU
Menu
The platform Pricing About Writing Compare Waste calculator Book thirty minutes
The platform Book thirty minutes
Guide 6 min read

How to find unused software licenses

Most companies pay for between a third and a half of their seats twice: once at purchase, and again at every renewal after nobody checked. Here is how to find them without interviewing the whole company.

Unused licenses are the easiest money in a software portfolio and the hardest to actually collect. Easy, because nobody argues that you should pay for seats nobody logs into. Hard, because proving which seats those are means joining three sets of data that live in three systems owned by three different people.

This is the method, in the order that works.

1. Start with what you pay, not what you own

The instinct is to begin with an inventory of applications. Skip it. An inventory is a snapshot someone assembled by hand, and it is wrong the day after it is written.

Start with finance instead. Pull twelve months of accounts payable and card transactions filtered to software vendors. Every tool you pay for appears there, whether or not IT knows about it. This is the only complete list you have.

Twelve months, not three — annual contracts only appear once.
Include expense reports and corporate cards, not just AP. That is where the small tools hide.
Watch for tools bundled inside a larger invoice; they are the most commonly missed.

2. Get the assigned seat count from each vendor

For each tool, you need two numbers: how many seats you are contracted for, and how many are currently assigned. These are frequently different, and the gap is pure waste — you are paying for capacity that has never been handed to anyone.

Most vendor admin consoles show both. For anything behind single sign-on, your identity platform will give you assigned users. For the rest you will be asking the tool’s administrator, which is why this step is where most efforts stall.

3. Now get actual activity, and be strict about it

This is where the real waste hides. An assigned seat is not a used seat. A person who logged in once in March is not an active user.

Pick a threshold and hold to it — no meaningful activity in ninety days is a defensible line. Beware of measuring logins alone: single sign-on refreshes and background integrations can register as activity when nobody has actually done anything.

Three numbers per tool — contracted, assigned, actually active. The gaps between them are the waste, and the second gap is always bigger than anyone expects.

4. Separate reclaimable from structural

Not all of it is recoverable, and pretending otherwise will damage your credibility with the people who have to act on it.

Reclaimable now — seat-based contracts you can reduce mid-term, or tools billed monthly.
Reclaimable at renewal — annual commitments. Note the date and the notice window, because both are easy to miss.
Structural — spare capacity kept deliberately, licenses held for compliance or continuity. Leave it alone and say why.

5. Attach a name to every finding

A list of unused licenses with no owner is a report nobody acts on. Every finding needs the person who can actually make the decision — and that is almost never IT, and almost never the person who signed the invoice.

This is the step that decides whether the exercise produces savings or a spreadsheet. Owners will confirm their own handful in minutes. Nobody will work through hundreds on someone else’s behalf.

6. Then fix why it happened

If you stop at reclaiming the seats, the same waste returns within a year — usually faster, because software spend per employee rises roughly twenty-two percent annually before AI tools are counted.

For each significant finding, ask what allowed it. A team that shrank and nobody adjusted the contract. A tool bought for a project that ended. Two departments who each bought the same category. Overprovisioning at purchase because nobody knew what usage would be. Those causes are fixable; the seats are just the symptom.

Doing it by hand

You can run this entire exercise with a finance export, admin console access and a spreadsheet. For a small portfolio it takes a few days and it works.

It stops working at scale, and it stops working over time. The joins are fragile — the same tool is spelled three ways across three systems — and the answer is stale the moment somebody buys something. That is the difference between an audit and a record.

Odau builds this continuously, from the systems you already own — with the owner, the evidence and the root cause attached to every finding.
Estimate your waste