Home/Microsoft 365/Shelfware Identification
Cost Optimization · M365 Telemetry

Shelfware is not a discovery problem. It is a contracting problem.

Every Microsoft 365 estate above 3,000 seats carries seven to fourteen percent inactive entitlement at any given moment. The telemetry to prove it sits inside the tenant the buyer already owns. The reason it stays paid for is that the next true up, the next renewal, and the next add on attach all priced from the inflated number. Shelfware identification is the optimization play that sits in front of every other Microsoft 365 negotiation. It is also the one that returns dollars fastest.

Contact Us Microsoft 365 pillar →
What counts as shelfware

Four definitions. One of them is the right one.

The shelfware label gets applied loosely inside most enterprises and that is part of the reason the dollars never come out. The contracting move requires a tight definition that Microsoft cannot dispute at the table.

Definition 01 · The defensible one
90 day idle

Assigned, paid, not consumed

A license is assigned to a named user, the buyer is paying for it inside the EA or MCA E, and the user has not authenticated against any workload covered by that license for ninety days or more.

  • Why ninety days. Long enough to absorb vacation, leave, and short term reassignment. Short enough to surface the real population.
  • Why authentication. The token tells the truth. Mailbox opens, Teams logins, OneDrive sync, SharePoint reads, Defender heartbeats. All recorded.
  • Why named. Microsoft will challenge population estimates. They will not challenge a user level audit pulled from their own tenant.
Definition 02 · 03 · 04
Adjacent categories

Overprovisioned. Overlapping. Phantom.

Three adjacent categories that look like shelfware but require different remediation. Treating them as the same category is the most common reason the cleanup stalls.

  • Overprovisioned. User is active but on an SKU one or two tiers above what their workload pattern requires. E5 user who only consumes E3 entitlements. Step down candidate, not removal candidate.
  • Overlapping. User holds a standalone add on that is already inside their bundle. Defender Plan 2 on an E5 seat. Power BI Pro on an E5 seat. Cleanup is a SKU rationalization, not a seat reduction.
  • Phantom. Assigned to a service account, a shared mailbox, a deactivated user, or a contractor whose engagement ended. Cleanup is operational hygiene before contracting matters.
The telemetry

The data exists. It is already paid for.

The reason most enterprises do not act on shelfware is not lack of data. It is lack of an inventory the procurement team can present at the renewal table. Three sources, all already inside the tenant, all already accessible.

Source 01

Microsoft 365 Admin Center

The Active Users report and the License usage report give the population level snapshot. They are coarse but they are unambiguous. Microsoft cannot dispute their own admin center.

  • Output. Assigned versus active counts by SKU at a tenant level.
  • Limitation. Activity definitions vary by workload and the lookback window is bounded.
Source 02

Entra ID sign in logs

The authoritative answer at the user level. Sign in events tied to specific apps and resources, with date and frequency, retained for thirty days at the lowest tier and up to two years with retention configured.

  • Output. User by user, workload by workload, last access date.
  • Limitation. Requires Entra ID P1 or higher to retain beyond the default window.
Source 03

Workload telemetry

Per workload data from Exchange, Teams, OneDrive, SharePoint, Defender, Purview, Power BI, and Copilot. The signal that distinguishes the overprovisioned user from the truly inactive one.

  • Output. Which entitlements a user actually exercises, weekly or monthly.
  • Limitation. Requires a consolidated pull. Most enterprises have it siloed across teams.
The economics

What seven percent inactive actually costs.

The number sounds small at the population level and becomes substantial at the contract level. The reason it persists is that nobody calculates it in dollar terms at the moment the renewal quote is drafted.

Model 01 · Mid market
8,000 seats

A typical mid market M365 estate

Eight thousand E3 seats at a discounted EA price of roughly $26 per user per month. Annual spend on E3 base alone of $2.5M. A ten percent inactive rate translates to $250K per year on the base SKU alone, before add ons.

Layer in the typical add on stack. Defender for Endpoint Plan 2, Entra ID P2, Power BI Pro, Teams Phone. The blended add on spend doubles the base. Inactive entitlement carried across both layers reaches $500K per year. Across a three year EA term that is $1.5M of cash held against entitlement the tenant proves was never consumed.

Model 02 · Large enterprise
42,000 seats

A Fortune 500 E5 footprint

Forty two thousand seats blended across E3 and E5 with E5 at fifty percent attach. Annual base spend approaching $22M. A nine percent inactive rate against the blended base translates to roughly $2M per year before add ons.

The number that makes the conversation move is the renewal projection. Microsoft will quote the next term against the assigned count, not the active count, with a year over year uplift on top. The same nine percent compounded across uplift and term length produces a multiyear exposure that frequently lands above $9M. That is the number procurement needs to walk into the renewal with.

The contracting move

From identification to recovered dollars.

Identification is the cheap half of the work. The dollars only come out when the inactive count is converted into a true down position, a renewal anchor, or both. Microsoft does not refund. Microsoft accepts a different starting number on the next instrument.

Move 01

Reassignment first

Before contracting, run the reassignment pass. Reassign idle seats to active users currently waiting on provisioning. Reassign overprovisioned seats inside the same SKU pool. Reassignment costs nothing and reduces the seat count Microsoft can quote against.

The reassignment pass is also the precondition for the contracting move. If the buyer cannot demonstrate that the inactive population has been operationally drained, Microsoft will argue that the inactive count is reabsorbing latent demand. The reassignment record removes that argument.

Move 02 · 03

True down at anniversary

The Enterprise Agreement permits seat count adjustments at anniversary in defined directions. The Enterprise Agreement Subscription, the M365 EA variant, permits a downward adjustment at each anniversary. The MCA E permits monthly downward flexibility on most subscriptions.

The contracting move is to time the cleanup so that the inactive population is removed at the anniversary window with the documentation to support it. The renewal that follows starts from the lower seat count rather than from the inflated one. The math compounds across the remaining term.

The M365 shelfware identification kit.

Our internal checklist for the ninety day inactive test. Entra ID sign in queries, workload telemetry queries, reassignment sequencing, and the documentation pack to take into the renewal table. Sent on request.

$420M+ recovered · 340+ engagements
Engage the practice

Identify the shelfware before Microsoft prices the next instrument.

The shelfware position needs to be ready before the renewal quote is drafted, not after. The earlier the data lands, the cleaner the anchor at the table.

Contact Us 79% audit exposure cut · 20+ years practice depth