Ettix guides · Microsoft 365 renewals
Microsoft 365 license renewal checklist
Compare the Microsoft 365 licenses you pay for with the licenses currently assigned, then review the difference before renewing.
Download the files
- Sample billing CSV
- Sample assigned seats CSV
- PowerShell export for assigned license counts
- Excel checklist and worked example
1. Record the billing terms
For each client and SKU, record paid seats, the monthly USD unit cost and the renewal date. Use the exact SKU part number in both files. If several subscriptions cover the same SKU, verify their terms separately before consolidating. The same assigned count belongs to the tenant and SKU.
2. Export assigned license counts
Use a PowerShell session with the Microsoft Graph PowerShell modules installed. Sign in to the intended tenant with an account authorized to read licenses and check the tenant ID. The download reads the assigned count by SKU and writes only the client key, SKU, count and snapshot date to a local CSV.
Connect-MgGraph -TenantId '<tenant-id>' -Scopes 'LicenseAssignment.Read.All'
./export-m365-seat-counts.ps1 -ClientKey 'CLIENT-A' -TenantId '<tenant-id>' -OutputPath './client-a-assigned.csv'
For a multi-client review, use a different client key and output file for each tenant. Combine the per-client CSVs into one assigned-count file. The keys must match your billing file.
Import-Csv -LiteralPath './client-a-assigned.csv', './client-b-assigned.csv' |
Export-Csv -LiteralPath './all-assigned.csv' -NoTypeInformation -Encoding UTF8 -NoClobber
3. Review potential changes
In the sample, 60 paid seats and 48 assigned seats leave 12 to review. At $20 per seat per month, removing all 12 at renewal would reduce annualized cost by $2,880. Confirm the terms and any seats reserved for planned users before scheduling a reduction.
Open SeatRenewal and try the sample.
See Microsoft's license count documentation and renewal scheduling documentation.