Your M365 licenses are lying to you: the FinOps case for a license review

Premium licenses for people who need basic. Inactive accounts still licensed. Azure resources with no owner. The waste is measurable — and fixable.

Ask a CFO what the organization spends on Microsoft 365 and Azure, and you will usually get a number. Ask what it spends on Microsoft 365 and Azure that it actually uses, and you will get a pause.

That pause is where the money is.

License waste is not fraud or carelessness. It is the natural result of how licensing decisions get made: someone joins, they get the standard (usually premium) license. Someone changes roles, the license stays. Someone leaves, the account lingers. A project needs Azure, resources get provisioned, the project ends, the resources keep running. Nobody is responsible for the ongoing truth of any of it.

How the bill gets approved without anyone seeing it

Microsoft licensing spend survives scrutiny for a structural reason: it is approved as a lump sum. The renewal arrives, the total is compared to last year's total, and if the increase is modest, it passes. Nobody in the approval chain sees the composition — how many premium licenses are assigned to people who need basic, how many accounts belong to people who no longer work there, how much Azure spend belongs to resources nobody owns.

This is not a failure of finance. Finance is doing exactly what it is supposed to do: approving a budgeted operating expense. The failure is upstream, in the absence of anyone whose job is to connect the bill to usage. IT provisions access. Procurement renews the agreement. The person who would ask 'are we using what we are paying for?' does not exist in most organizations — and the vendor, understandably, is not volunteering the analysis.

The result is a bill that grows every year while nobody can explain why, and a renewal cycle that ratifies the waste by treating last year's spend as the baseline. Breaking that cycle requires one thing: a review that states, in plain terms, what is assigned versus what is used.

Where the waste hides

Over-licensing. E5 licenses assigned to people whose work needs E3. Premium Copilot licenses for users who never open Copilot. Power Platform premium plans for makers who build one app a year. The gap between assigned and needed is often 20–30% of the licensing bill — and it is invisible because the bill is approved as a lump sum.

Inactive accounts. Accounts for departed employees, contractors who finished, and test users, still licensed, still counted, still a security exposure. Every one of them is money spent and risk carried for no return.

Azure drift. Resources provisioned for projects that ended, oversized virtual machines, storage nobody accesses, dev environments running 24/7. Azure's consumption model means drift becomes a bill within a month.

Duplicate tooling. Paying for third-party tools that Microsoft 365 already includes — because nobody mapped what the licenses already cover.

The five license archetypes to check first

Every review finds the same patterns. Check these first:

The default premium. New joiners get the premium license because it is the standard, regardless of what their role actually needs. Over hundreds of joiners, the default becomes the single largest source of waste.

The role-changer. Someone moves from a role that needed advanced security and analytics to one that needs basic productivity. The license stays premium. Nobody reassesses, because reassessment is nobody's job.

The departed. Contractors who finished, employees who left, test accounts from a project that ended. Still licensed, still a security exposure, still on the bill.

The shelfware subscriber. Copilot, Power BI Premium, or a premium app assigned to someone who tried it once and never returned. The license is active. The usage is not.

The shared mailbox that is not shared. Licensed mailboxes doing the work of shared mailboxes, and vice versa. Small individually, significant in aggregate.

These five archetypes account for most of the recoverable spend in a typical estate. Finding them does not require new tooling — it requires someone to compare assignment against usage, account by account, and to ask the question the renewal process never asks.

Azure: the same problem, faster

Azure drift moves faster than license drift, because consumption billing turns an idle resource into a charge within a month. The patterns are familiar: development and test environments running around the clock, virtual machines sized for a peak that never comes, storage holding data nobody accesses, and resources whose owner left the organization — or the project ended — but which keep billing.

The fix is the same discipline applied to a faster problem: every resource gets an owner and a tag, every environment has a purpose and a lifecycle, and someone reviews utilization on a cadence. Azure cost management tooling will show you the spend. Ownership is what lets you act on it.

Why nobody catches it

Because licensing is nobody's job. IT provisions access; finance pays the bill; procurement renews the agreement. The person who could connect usage to cost does not exist in most organizations — and the vendor, understandably, is not volunteering the analysis.

The fix is a review with three outputs: what is assigned versus what is used, what can be downgraded or removed, and what process prevents recurrence. The review pays for itself — the savings are typically found in the first pass, and the governance (provisioning rules, periodic review, tagging) keeps them found.

Making the review stick

A one-time cleanup is worth doing, but it is not the goal. The goal is a routine that prevents recurrence: joiners get the right license for their role, movers get reassessed, leavers get deprovisioned on a schedule, and Azure resources get owners and tags. That routine is a few hours a month once it exists. Without it, the waste returns within two renewal cycles.

The most effective version is boring: a quarterly review, owned by a named person, with a short report to finance showing assignment versus usage. Boring is the point. License waste is not a crisis. It is a slow leak. Slow leaks are fixed by routines, not by projects.

The governance angle

License optimization is not a one-time cleanup. It is a routine: joiners get the right license for their role, movers get reassessed, leavers get deprovisioned on a schedule, and Azure resources get owners and tags. That routine is a few hours a month once it exists. Without it, the waste returns within two renewal cycles.

If your Microsoft bill has grown for three years while headcount stayed flat, the answer is not that Microsoft got more expensive. It is that nobody has looked.

Book a scoping call for a license and cost optimization review — find out what you are paying for that you do not use.
Weekly newsletter
No spam. Just the latest releases and tips, interesting articles, and exclusive interviews in your inbox every week.
Read about our privacy policy.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.