Microsoft 365 Copilot licenses add a significant cost to your tenant subscription. If you assigned licenses to users who never open Copilot or who left the organization, you are paying for seats that deliver no value. The Microsoft 365 admin center does not show a built-in Copilot usage report, so you must combine PowerShell commands and the Microsoft 365 Apps health dashboard to identify inactive users. This article explains how to audit unused Copilot licenses by checking last sign-in dates, Copilot app activity, and license assignment dates.
Key Takeaways: Audit and Reclaim Unused Copilot Licenses
- Microsoft Graph PowerShell > Get-MgUserLastSignInDateTime: Retrieves the last interactive sign-in date for every user, helping you identify accounts that have not signed in for 90+ days.
- Microsoft 365 Apps health dashboard > Copilot metrics: Shows the number of active Copilot users per day, per app like Word, Excel, and Teams.
- PowerShell > Get-MgUserLicenseDetail: Lists all SKUs assigned to a user so you can filter for the Copilot service plan ID
CFQ7TTC0LG0P.
Why Copilot Licenses Go Unused
Microsoft 365 Copilot is an add-on SKU that you assign through group-based licensing or direct user assignment. Unlike core Office 365 licenses, Copilot requires the user to actively open a supported app and click the Copilot icon. Many organizations assign licenses broadly during a pilot or enablement phase without tracking actual usage. Users may never open Copilot because they do not know it exists, they prefer traditional workflows, or their role does not involve document creation. Over time, these unused seats accumulate and inflate the monthly bill. The root cause is the lack of a single Copilot usage report in the admin center — you must manually correlate data from multiple sources.
Steps to Audit Unused Copilot Licenses
Use two methods together to get a complete picture. Method 1 uses PowerShell to check last sign-in dates and license details. Method 2 uses the Microsoft 365 Apps health dashboard to view Copilot activity per app.
Method 1: PowerShell Audit of Last Sign-In and License Assignment
- Open PowerShell as an administrator
Press the Windows key, type PowerShell, right-click Windows PowerShell, and select Run as administrator. - Install the Microsoft Graph PowerShell module
Run the commandInstall-Module Microsoft.Graph -Scope CurrentUser. Type Y and press Enter when prompted. - Connect to your tenant with the correct scopes
RunConnect-MgGraph -Scopes "User.Read.All", "Organization.Read.All", "AuditLog.Read.All". Sign in with a Global Admin account. - Get all users with Copilot licenses
Run the following script to retrieve users who have the Copilot service plan enabled. The Copilot SKU part number isCFQ7TTC0LG0P.$copilotUsers = Get-MgUser -All -Property Id,DisplayName,UserPrincipalName,AssignedLicenses,SignInActivity | Where-Object { $_.AssignedLicenses.ServicePlans.ServicePlanId -contains "CFQ7TTC0LG0P" } - Export the results to a CSV file
Run$copilotUsers | Select-Object DisplayName,UserPrincipalName, @{N='LastSignInDateTime';E={$_.SignInActivity.LastSignInDateTime}}, @{N='LicenseAssignedDate';E={$_.AssignedLicenses.DisabledPlans}} | Export-Csv -Path "C:\temp\CopilotUsers.csv" -NoTypeInformation. Open the CSV file to see every user who holds a Copilot license and their last sign-in date. - Identify users who have not signed in for 90 days
In the CSV, filter the LastSignInDateTime column for blank values or dates older than 90 days. These users are candidates for license removal.
Method 2: Microsoft 365 Apps Health Dashboard for Copilot Activity
- Go to the Microsoft 365 Apps health dashboard
Open a browser and navigate to admin.microsoft.com. In the left navigation, expand Health and select Microsoft 365 Apps health. - Open the Copilot report
On the dashboard, click the Copilot tab. You will see a graph titled Copilot daily active users. The data shows how many users opened Copilot in Word, Excel, PowerPoint, Teams, and other apps each day. - Set the date range to the last 90 days
Click the date picker and select Last 90 days. The graph updates to show the daily active user count over the quarter. - Export the user-level activity report
Below the graph, click Export. Choose User-level data and select CSV format. The exported file contains a row for each user who used Copilot at least once in the selected period. - Compare the exported list with your PowerShell CSV
Open both CSV files side by side. Any user who appears in the PowerShell CSV (license assigned) but does NOT appear in the health dashboard export has never used Copilot. Mark those users for license removal.
If You Still Cannot Identify Unused Licenses
PowerShell returns no users with Copilot licenses
This happens when the Copilot SKU is assigned through group-based licensing and the PowerShell query does not resolve group members. Run Get-MgGroup -All | Where-Object { $_.AssignedLicenses.ServicePlans.ServicePlanId -contains "CFQ7TTC0LG0P" } to list groups that carry the Copilot license. Then use Get-MgGroupMember -GroupId "group-id" to list the members of that group.
The health dashboard shows zero Copilot users
The Microsoft 365 Apps health dashboard requires that users have the Microsoft 365 Apps for enterprise client installed and that diagnostic data level is set to Required or Optional. If your tenant blocks diagnostic data via group policy, the dashboard will show no data. Check your diagnostic data policy in the Microsoft 365 admin center under Settings > Org settings > Security & privacy > Diagnostic data. Set it to Send required diagnostic data at minimum.
Users appear active in the health dashboard but have not signed in for 90 days
The health dashboard tracks Copilot activity from the local Microsoft 365 Apps client, which can report usage even when the user has not performed an interactive cloud sign-in. For example, a user who keeps the app open and uses Copilot offline will appear in the dashboard but show a stale sign-in date in PowerShell. In this case, rely on the health dashboard data as the source of truth for Copilot usage. Do not remove the license from these users.
Copilot License Audit Methods: PowerShell vs Health Dashboard
| Item | PowerShell Sign-In Audit | Microsoft 365 Apps Health Dashboard |
|---|---|---|
| Data source | Azure AD sign-in logs | Microsoft 365 Apps client telemetry |
| What it shows | Last interactive sign-in date and time | Daily active Copilot users per app |
| License granularity | Per user SKU and service plan | Only Copilot-enabled users |
| Historical range | Up to 30 days by default, extendable with Azure AD Premium P1 | Up to 90 days |
| Best for | Identifying accounts with no sign-in activity | Verifying actual Copilot usage |
| Limitation | Does not show Copilot-specific app activity | Requires diagnostic data to be enabled |
Use the PowerShell method first to find users who have not signed in for 90 days. Then cross-reference that list with the health dashboard export to confirm that those users never opened Copilot. This two-step process ensures you only reclaim licenses from truly inactive accounts.
After you identify unused licenses, remove them using the Microsoft 365 admin center under Billing > Licenses > Copilot. Select the user and click Remove license. For group-based licensing, edit the group assignment in Azure AD > Groups > Licenses. Schedule a quarterly re-audit using the same PowerShell script and health dashboard export to keep your Copilot costs under control.