A breakdown of Microsoft 365 license allocation vs actual consumption, identifying waste by SKU and flagging opportunities to right-size
A breakdown of Microsoft 365 license allocation vs actual consumption, identifying waste by SKU and flagging opportunities to right-size
The data covers the full scope of Autotask PSA records relevant to this analysis, broken down by the key dimensions your team needs for day-to-day decisions and client reporting.
Who should use this: Microsoft 365 administrators, security teams, and account managers
How often: Weekly for license management, monthly for adoption reviews, quarterly for optimization
A breakdown of Microsoft 365 license allocation vs actual consumption, identifying waste by SKU and flagging opportunities to right-size
EVALUATE
SUMMARIZECOLUMNS(
'BI_MicrosoftPartnerCenter_Subscribed_Skus'[name],
'BI_MicrosoftPartnerCenter_Subscribed_Skus'[sku_part_number],
"TotalUnits", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[total_units]),
"ActiveUnits", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[active_units]),
"ConsumedUnits", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[consumed_units]),
"AvailableUnits", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[available_units]),
"WarningUnits", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[warning_units]),
"SuspendedUnits", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[suspended_units])
)
ORDER BY [TotalUnits] DESC
Paid SKUs ranked by waste percentage. These are the products where you are paying for seats that nobody is using.
| Metric | Value |
|---|---|
| Consumed | 4,217 |
| Active | 3,255,762 |
| Available | 3,252,013 |
| Utilization | 0.13% |
EVALUATE ROW("UniqueProducts", DISTINCTCOUNT('BI_MicrosoftPartnerCenter_Subscribed_Skus'[sku_part_number]), "Consumed", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[consumed_units]), "Active", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[active_units]), "Available", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[available_units]))
Consumed seats as a percentage of total seats for the six largest paid SKUs
EVALUATE
ADDCOLUMNS(
SUMMARIZECOLUMNS(
'BI_MicrosoftPartnerCenter_Subscribed_Skus'[name],
"Total", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[total_units]),
"Consumed", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[consumed_units])
),
"UtilizationPct", DIVIDE([Consumed], [Total], 0)
)
ORDER BY [Total] DESC
SKUs where Microsoft has flagged units in a warning state, typically indicating an expiring subscription, payment issue, or pending suspension
| License | Total Units | Warning Units | Consumed | Impact |
|---|---|---|---|---|
| Office 365 E1 | 398 | 398 | 95 | Entire subscription at risk |
EVALUATE
FILTER(
SUMMARIZECOLUMNS(
'BI_MicrosoftPartnerCenter_Subscribed_Skus'[name],
'BI_MicrosoftPartnerCenter_Subscribed_Skus'[sku_part_number],
"TotalUnits", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[total_units]),
"WarningUnits", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[warning_units]),
"ConsumedUnits", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[consumed_units])
),
[WarningUnits] > 0
)
ORDER BY [WarningUnits] DESC
SKUs at or above 95% utilization. These are sized correctly and need no adjustment.
| License | Total | Consumed | Available | Utilization |
|---|---|---|---|---|
| Microsoft 365 Copilot | 13 | 13 | 0 | 100.0% |
| Teams Premium | 10 | 10 | 0 | 100.0% |
| Microsoft 365 E3 | 1,176 | 1,162 | 14 | 98.8% |
| Power BI Pro | 150 | 147 | 3 | 98.0% |
| Microsoft 365 F3 | 612 | 603 | 9 | 98.5% |
EVALUATE
VAR _SkuSummary =
SUMMARIZECOLUMNS(
'BI_MicrosoftPartnerCenter_Subscribed_Skus'[name],
"Total", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[total_units]),
"Consumed", SUM('BI_MicrosoftPartnerCenter_Subscribed_Skus'[consumed_units])
)
RETURN
FILTER(
ADDCOLUMNS(_SkuSummary,
"Utilization", DIVIDE([Consumed], [Total], 0)),
[Utilization] >= 0.95 && [Total] < 10000 && [Total] > 0
)
ORDER BY [Total] DESC
76.1% of E1 seats are unused, and the entire subscription is in a WARNING state. This is the single largest cost leak in the tenant. If this subscription is expiring, the 95 active users need to be migrated to another SKU before access is lost. If it was intentionally reduced, the seat count should be right-sized to match actual consumption.
37 Defender P2 and 36 Entra ID P2 licenses are sitting unassigned. Unlike productivity tools where waste is purely financial, unassigned security licenses mean endpoints without threat protection and identities without conditional access. The waste here is not just cost. It is exposure.
Only 6 of 11 Dynamics 365 Marketing licenses are consumed. Marketing automation tools are expensive per seat. If the remaining 5 seats have no planned assignment, they should be reduced at the next renewal to avoid paying for capacity that is not being used.
M365 E3 at 98.8% and F3 at 98.5% utilization show that the main productivity suite is properly allocated. These are the largest SKUs by volume (1,176 and 612 seats) and they are running close to capacity without overage. No changes needed here.
All 13 Copilot and all 10 Teams Premium licenses are assigned and consumed. These higher-cost add-ons are being used by every seat that was purchased. If demand grows, plan for additional seats at the next ordering cycle.
5 priorities based on the findings above
All 398 E1 seats are in WARNING. Check Partner Center for the subscription expiration date and billing status. If this subscription is being deprecated or cancelled, migrate the 95 active users to M365 E3 or another appropriate SKU before they lose access to Exchange Online, SharePoint, and Teams. If the subscription is still active and the warning is a billing issue, fix the payment method. Either way, right-size to ~100-120 seats (95 consumed + buffer) and eliminate the 303-seat overage.
Every unassigned Defender P2 license represents an endpoint or server that is not receiving Microsoft's threat detection and response capabilities. Pull the list of devices in Intune or Entra ID and cross-reference against assigned Defender licenses. If 37 devices genuinely do not need Defender P2, reduce to 65 seats. If they do need it, assign the licenses now. 37 unprotected endpoints is a security gap, not just a cost issue.
36 Entra ID P2 licenses are unassigned. These licenses unlock conditional access policies, identity protection, and privileged identity management for the assigned users. Check which admin and privileged accounts are covered and whether the unassigned licenses were purchased for users who have since left or changed roles. Reduce to ~70 seats if no assignment plan exists.
Dynamics 365 Marketing at 45.5% waste (5 of 11 unused) and CE Plan at 30.0% waste (15 of 50 unused) are both candidates for seat reduction. These are high-cost licenses. Talk to the CRM team to confirm how many users actually need access, and adjust the seat count at renewal. If adoption is expected to grow, set a 90-day checkpoint to verify before committing to the current count.
Run this report monthly. License waste accumulates quietly as employees leave, change roles, or stop using tools. A monthly check against the Partner Center data takes under 15 minutes through Proxuma Power BI and catches overspend before it compounds. Add it to the IT operations calendar alongside patching and backup reviews.
The data comes from the BI_MicrosoftPartnerCenter_Subscribed_Skus table in Proxuma Power BI. This table is populated by the Microsoft Partner Center connector, which pulls the current subscription and license allocation data from your tenant. It includes total units, active units, consumed units, available units, warning units, and suspended units per SKU.
Consumed means a license has been assigned to a user or device. Available means the license is purchased but not assigned to anyone. Available licenses cost the same as consumed ones. You pay for the seat whether someone uses it or not. The goal is to keep consumed close to total, with a small buffer (5-10%) for new hires and role changes.
A warning state in Partner Center means Microsoft has flagged the subscription for an issue. Common causes: the subscription is approaching its expiration date, there is a billing failure, or the subscription was cancelled and is in a grace period. Users assigned to warning-state licenses still have access during the grace period, but will lose it if the issue is not resolved.
Many tenants have SKUs with 10,000+ units from Microsoft trial offers, developer packs, or included free tiers. Including them inflates the total and makes the waste numbers meaningless. This report filters to paid SKUs with fewer than 10,000 total units to focus on the licenses that actually affect your monthly bill.
Monthly is the recommended cadence. License allocation changes as employees join, leave, or change roles. Running it monthly catches drift before it becomes a significant cost. Run it quarterly at minimum, and always run it before any Microsoft renewal or true-up to have accurate consumption numbers for negotiation.
Yes. Connect Proxuma Power BI to your Microsoft Partner Center, add an AI tool (Claude, ChatGPT, or Copilot) via MCP, and ask the same question. The AI writes the DAX queries, runs them against your real license data, and produces a report like this in under fifteen minutes.
Connect Proxuma Power BI to your PSA, RMM, and M365 environment, use an MCP-compatible AI to ask questions, and generate custom reports - in minutes, not days.
See more reports Get started