Unused licenses are easy to miss in a client tenant. A departed employee’s seat that was never removed. A Business Premium license on someone who only needs email. Extra seats bought for a hiring plan that never happened. The client pays for each one every month, and finding them means comparing what was bought, who it’s assigned to and who signs in, in every tenant you manage.
This guide shows how to do that check by hand in one tenant, why it stops keeping up across clients, and how BetterTracker 365 Scout does it for each client.
Copilot adds a new reason to check. From December 1, 2026, usage-based billing for new Microsoft 365 Copilot Business licenses bought through CSP is billed separately from the license charge, so there is a second type of charge to track for each client.
Details as of November 2026. Microsoft says some Copilot billing details may change before general availability.
How is Microsoft 365 Copilot Business billing changing on December 1, 2026?
Per Microsoft, starting December 1, 2026, usage-based billing is on by default for new Microsoft 365 Copilot Business licenses bought through the Cloud Solution Provider (CSP) program. Earlier notices gave November 2 as the start. November 2 is now only when Partner Center sandboxes open for testing. (Microsoft Partner Center announcements, October 2026)
Here is what Microsoft’s pages say about the change:
- It applies to new Copilot Business licenses, bought on their own or bundled with a Business Basic, Standard or Premium plan.
- It covers features billed by usage instead of by seat, such as Copilot Cowork, Work IQ APIs and GitHub Copilot Harness.
- The default spending limit is 4,000 Copilot Credits per user per month, and it can be adjusted.
- Usage-based charges are billed separately from the license charge.
- Microsoft 365 Copilot (Enterprise) is not in scope. The change is for commercial customers, and some markets are not included at first.
Microsoft also says some purchase and management details may change before general availability, so check Microsoft’s usage-based billing page for Copilot Business before you quote it to a client.
Why does this matter for license reviews? A Copilot Business seat is a Microsoft 365 license assigned to a person. Before usage-based billing turns on for new purchases, check who holds each Copilot seat in each client environment and whether those people sign in. Copilot Credits and spending limits are managed in Partner Center and the Microsoft 365 admin center, not in this review.
What counts as an unused Microsoft 365 license?
An unused license is one that costs money without supporting anyone’s work. Assigned does not mean needed, and inactive does not mean remove. Sort what you find into four groups.
Assigned but no sign-in
The user holds a license but has not signed in during a window you choose, such as 30, 60 or 90 days. Check the reason first. A leave of absence, a seasonal role or a service account can explain it.
Assigned to a disabled or departed account
The person has left, or the account is disabled, but the license is still attached. This is often the easiest group to clear.
Purchased but not assigned to anyone
The client pays for the quantity, and some of it sits unassigned in the tenant.
Over-provisioned
The user holds a higher tier than the work needs. Right-sizing means moving that user to the plan that fits.
See who holds every license in each client environment, and which ones go unused.
How do you find unused Microsoft 365 licenses in one tenant by hand?
Use the Microsoft 365 admin center for each tenant. It takes three steps, and it works well for one tenant.
Step 1. See purchased and assigned licenses, and who holds each one
Go to Billing, then Licenses. The page lists each product with its available and assigned counts. Select a product to see who has it assigned. Licenses assigned through a group show the group name instead of individual users, so open the group to see its members. You can also open Users, then Active users, and select a person to see every license assigned to them. (Microsoft: assign or unassign licenses)
Step 2. Check last sign-in and usage for each licensed user
In the admin center, go to Reports, then Usage, then Microsoft 365 apps, and open the Active users tab. This Microsoft 365 license usage report covers the last 7, 30, 90 or 180 days, and the data usually trails by 24 to 48 hours. (Microsoft: Active users report) Use the user details to see who has a license but little or no activity.
For a scripted route, PowerShell or Microsoft Graph can read each user’s sign-in activity. Microsoft’s signInActivity documentation describes the last successful sign-in property, which covers interactive and non-interactive sign-ins. Microsoft documents the permissions and licensing the property requires, so check them before you script anything.
Step 3. Decide, reclaim and write it down for the client review
Confirm with the client before you remove a license. Check the subscription term before you reduce a purchased quantity. Then record what you changed, so you can show it at the next review.
A short checklist covers the whole review:
- Bought: what did the client purchase?
- Assigned: who holds each license?
- Used: who signs in and works in the apps?
- Right-sized: is each person on the tier the work needs?
- Decision: remove, move to a lower tier, or keep, and why.
Why does the manual method break down across every client tenant?
Microsoft 365 license management is manageable for one tenant. Each client is its own tenant, though, so you repeat the steps above for every client, every month. That is where the manual method stops keeping up.
- Seat counts drift. The count in your PSA or RMM, the count Microsoft bills, and the count you bill the client stop matching. Finding which seats do not match what you bill takes the same steps in each tenant.
- There is no saved history. A spreadsheet shows one day. Next month you start again, and you cannot easily show what changed.
- Nothing is ready for the client. Turning raw license lists into a presentable report is its own job.
Across many tenants, the time goes into repeating the same checks, not into acting on what they find.
Stop repeating the same checks in every tenant. Connect 2 clients with Login with Microsoft and see their unused licenses in one place.
How does BetterTracker 365 Scout find unused licenses for each client?
BetterTracker 365 Scout connects to a client’s Microsoft 365 tenant and finds unused or over-provisioned licenses. Connect each client from the Customer Dashboard with Login with Microsoft. No app registration is needed. You connect and manage your clients in one place.
For each connected client, Scout shows:
- every active Microsoft 365 license, read-only;
- which user each license is assigned to, and which licenses are unused or over-provisioned;
- Active and Inactive user columns, to help right-size licenses;
- daily sign-in counts.
Scout Report 2.0 turns a client’s results into a presentation-ready report with an executive summary, scores and charts for the client review. 365 Scout requires a subscription.
On average, BetterTracker MSPs have found $25K in savings. That is what was found, not a promise of what you will save.
Attend a QuickScan demo and get a $50 gift card.
First 100 qualifying demos or until November 30, 2026, whichever comes first. See the terms on the demo page.
How often should an MSP review client Microsoft 365 licenses?
Set a fixed rhythm for each client, such as monthly or quarterly, and add a review whenever something changes, such as onboarding, offboarding, role changes, renewals or budget planning. A recurring review catches idle licenses sooner than a once-a-year cleanup.
How do MSPs turn license cleanup into a billable service?
Package the license review as a recurring service for each client, not a one-time cleanup. You find the unused or over-provisioned licenses, report the results under your own brand, and repeat the review on a schedule. Recurring work like this is one way to add monthly recurring revenue (MRR). What you include and what you charge is your call.
Three BetterTracker pieces support it:
- License data. 365 Scout shows which user holds each Microsoft 365 license and which are unused or over-provisioned, so every review starts from the client’s own data. Scout Report 2.0 turns the results into a presentation-ready report.
- Branded recurring reports. BetterTracker lets you generate and schedule monthly, quarterly and annual reports for clients, branded with your logo. They cover contracts, spending, renewals and vendor usage, so they fit next to the license review in the same client conversation.
- QuickScan for prospects. QuickScan gives you a branded report of the applications connected to a prospect’s Microsoft 365 environment and who signs in to them. BetterTracker’s QuickScan page lists license cleanup among the upsell projects you can scope from a scan, and quarterly business reviews as a way to show existing clients what changed since last quarter.
Turn license reviews into a service. Run the same review for each client and bring the findings to every QBR.
How can a QuickScan open the license conversation with a prospect?
A QuickScan is a branded report of the applications connected to a prospect’s Microsoft 365 environment and who signs in to them, branded to your MSP. It is the ultimate MSP sales tool. Run it before the first meeting, so the conversation starts with what is in the prospect’s environment and not with a pitch.
The average business runs 99.8 apps, so there is usually plenty to talk about. Book a QuickScan demo to see the report and how it works.
Frequently asked questions
How do MSPs find unused Microsoft 365 licenses across all client tenants?
Work tenant by tenant. Connect BetterTracker 365 Scout for each client from the Customer Dashboard with Login with Microsoft. For each client, it shows every active Microsoft 365 license, which user each one is assigned to, and which licenses are unused or over-provisioned, along with active and inactive users and daily sign-in counts. Scout Report 2.0 turns each client’s results into a presentation-ready report for the review.
How can I tell whether a Microsoft 365 user is really inactive?
Check the user’s last sign-in against a window you choose, such as 30, 60 or 90 days, and compare it with Microsoft’s usage reports, which cover periods such as 7, 30, 90 and 180 days. Sign-in and service activity are different measures, so use both. Inactive does not always mean unused. A leave of absence, a seasonal role or a service account can explain it, so confirm with the client before you remove a license.
How often should an MSP review client Microsoft 365 licenses?
Review each client on a regular schedule you can keep, such as monthly or quarterly, and again whenever something changes. Good triggers are employee onboarding and offboarding, role changes, large hiring or reduction events, subscription changes, renewals and budget planning. A recurring review catches idle licenses sooner than a once-a-year cleanup.
How is Microsoft 365 Copilot Business billed from December 1, 2026?
Per Microsoft, usage-based billing becomes the default on December 1, 2026 for new Microsoft 365 Copilot Business licenses bought through the Cloud Solution Provider program. Usage-based billing covers consumption features such as Copilot Cowork and is billed by usage, separately from the license charge. The default limit is 4,000 Copilot Credits per user per month, and partners can adjust it. Microsoft 365 Copilot (Enterprise) is not in scope.
How can AI find unused software licenses automatically?
Start with a tool that reads license and sign-in data from each connected environment. BetterTracker 365 Scout does this for Microsoft 365, and Betty AI, your AI agent, lets you ask questions about that Scout data in plain language. Betty AI is available on eligible plans. Verify what she returns before you remove a license.
Can I find unused Microsoft 365 licenses without a paid tool?
Yes, for one tenant at a time. In the Microsoft 365 admin center, compare purchased and assigned licenses under Billing, then check each licensed user’s last sign-in. You can also script the same checks with PowerShell or Microsoft Graph. It works for a handful of clients but means repeating the same steps in every tenant, which is the point where a tool can help.
Find unused Microsoft 365 licenses in every client environment
Check licenses tenant by tenant by hand, or connect each client to BetterTracker 365 Scout and see who holds each license and which are unused. Use a QuickScan to open the same conversation with prospects.
Attend a QuickScan demo and get a $50 gift card.
First 100 qualifying demos or until November 30, 2026, whichever comes first. See the terms on the demo page.
Start your 14-day free trial. No credit card required.