Software license management for SMBs: how to stop paying for ghosts

· 7 min read · SilverData team

In almost every 10–50 person company we walk into, we find licences someone has been paying for for months while zero people actually use them. This isn't malice or incompetence. It's the natural result of nobody watching the list.

Software Asset Management (SAM) sounds like a topic for 2,000-person corporations. In reality it's one of the cheapest optimisations an SMB can run — the data is already there, you just need to pull it together once. On one project at a 34-person marketing agency we found 23 active Adobe Creative Cloud subscriptions, of which 11 people actually logged in. After adjusting the contract: 1,350 PLN a month saved, no revolution required.

Here's the reality we see most often, and what you can do about it in a week.

Where "ghost" licences come from

Three most common sources. First, offboarding — someone leaves, the Microsoft 365 account stays "just in case" because the HR lead is nervous about deleting something. The account is there, the licence keeps billing. A year later nobody remembers why.

Second, departmental purchasing. Marketing buys Canva Pro on their own, sales buys HubSpot Starter, the design team grabs Figma. Each on a different company card, different currencies, all with auto-renew. Accounting sees line items reading "subscription 49 USD" with no way to tie them to a specific person or actual usage.

Third, migrations that never fully closed. The company moved from Comarch Optima on-premise to the cloud version, but the old on-prem licence keeps ticking on maintenance fees because "we might roll back". Nobody ever rolls back.

Scale? At a typical 30-person client we find between 8% and 18% of the monthly software budget recoverable. Not from any revolution — from quietly switching off things that aren't being used.

Three subscription-contract traps

Annual auto-renew with a quarterly lock. The vendor gives a lower price for an annual commitment but bills monthly. It looks flexible. In practice, if you want to reduce your seat count mid-year, you can't — you can only add. This is the standard clause in Microsoft 365 under New Commerce Experience (NCE) contracts. Worth knowing before you sign, not after.

Priced per user, billed per "active seat". The definition of "active" gets creative. In one Comarch ERP XL setup, billing was based on the number of operators defined in the system, not the number of humans logging in. The company had 45 operators configured, of which 20 were service accounts, former employees, and "future hire" placeholders. The bill came for 45.

Bundles where you pay for one department's feature. Classic case: the whole company on Microsoft 365 Business Premium (for Intune and Defender), while MDM is really only needed by 6 field-sales people. The remaining 24 could sit on Business Standard. Difference: about 40 PLN per user per month — nearly 1,000 PLN a month across 24 seats.

How to do the first audit in a week

You don't need a 30k-a-year SAM tool for this. In a 10–50 person company, one spreadsheet and four data sources are enough.

  1. Accounting extract — every invoice from the last 12 months tagged "IT services", "subscriptions", or "licences". Filter by vendors: Microsoft, Adobe, Google, Autodesk, Comarch, JetBrains, Atlassian, HubSpot, and so on.
  2. Microsoft 365 (or Google Workspace) admin panel — the list of all accounts and their assigned licences. Export to Excel takes a minute.
  3. Active employee list from HR — literally who's on the payroll today.
  4. Admin panels of the other apps — Adobe Admin Console, HubSpot, Slack, anything paid.

Merge it into one sheet and sort on two criteria: account exists but the person is not in HR (offboarding that didn't close) and account has a licence but nobody logged in for 60 days (unused subscription). Those two categories are usually 80% of the savings.

A real case. A 28-person accounting firm on Comarch Optima and Microsoft 365. After one such audit: 4 former-employee accounts still on Business Standard (kill them — 260 PLN/month), 3 Comarch Optima Kadry Płace Plus licences instead of Kadry Płace Start for people who never touch the extensions (difference — about 180 PLN/month), 1 subscription for a project management tool they stopped using after a process change (140 PLN/month). Total: 580 PLN a month, almost 7,000 a year. Audit effort: 2 days of one person's time.

What to automate

Once you have the baseline, you want to avoid rebuilding the same mess in six months. Three loops worth closing.

The "let's change vendors while we're at it" trap

When you show the board 8% annual savings, someone often floats: "let's switch from Microsoft to Google, we'll save even more". Careful — that's almost never the same decision. Switching mail or office suite is a 3–6 month project with data migration, retraining 30 people, and six months of aftershocks. Trimming licences at your current vendor is one week of work.

Our usual advice: clean up what you have first. In six months, when you can see the real cost "post-cleanup", you have an honest baseline to compare against. Not the other way round.

Where to start this week

Four steps, one per day:

  1. Pull IT invoices from the last 12 months out of accounting, in one file.
  2. Export the list of users and licences from Microsoft 365 (or Google Workspace).
  3. Compare to the active-employee list from HR. Flag the differences.
  4. Book a conversation with two people: whoever manages IT accounts and whoever approves invoices. Decide together who permanently owns this list.

Do that and by the end of the week you have a concrete number to recover and a person responsible for it staying recovered. It's boring. But boring things in IT are usually the ones that save real money.

The cheapest licence is the one you don't pay for. Before you negotiate a better price, check how many licences you actually use.

← Back to blog