SKILL.md— paste into Microsoft 365 Copilot or ClaudeDownload▸ View skill file▾ Hide skill file
---
name: Inactive Licence Recovery
description: Reports Microsoft 365 users dormant past a sign-in threshold, separates disabled from dormant accounts, and quantifies recoverable AUD spend.
---
# Inactive Licence Recovery
> **TL;DR:** This skill reports licensed Microsoft 365 users who have not signed in within a set threshold, separates disabled accounts from active-but-dormant ones, and recommends reclaim actions with estimated annual savings in Australian dollars.
## How does the Inactive Licence Recovery skill surface unused Microsoft 365 licences?
This skill identifies Microsoft 365 licences assigned to users who are not actively using them. It cross-references each licensed user against the Microsoft 365 sign-in activity report, distinguishes disabled-account waste from dormant-user waste, and quantifies the recoverable annual spend in Australian dollars. It draws on Microsoft Entra sign-in telemetry as the authoritative source and recommends a reclaim action per user bucket.
## When should you run this skill?
- "Find unused M365 licences"
- "Report on inactive licensed users"
- "Quantify dormant licence spend"
- "Plan a licence reclaim cycle"
## How this skill works, step by step
1. Set the inactivity threshold (default: 90 days since last interactive sign-in)
2. Enumerate all licensed users and their assigned SKUs
3. Cross-reference each user against the sign-in activity report
4. Bucket users: Disabled (account blocked), Dormant (enabled, no sign-in), Light (occasional sign-in only)
5. Map each licence SKU to its current AUD list price
6. Calculate estimated annual recoverable spend per bucket
7. Recommend action per bucket: reclaim now (Disabled), reclaim with manager confirmation (Dormant), step down to lower SKU (Light)
8. Produce the report below
## Output format
| User | UPN | Assigned SKUs | Last Sign-in | Bucket | Annual Cost (AUD) | Recommended Action |
Followed by a summary:
- Total users reviewed: N
- Disabled with licences: N (reclaim immediately)
- Dormant: N
- Light usage: N
- Estimated annual saving: AUD N
## Scope and safety
Read-only by default. It does NOT:
- Remove or downgrade licences (read-only)
- Disable user accounts
- Renegotiate enterprise agreements
## Licensing and permissions
### Licences and add-ons
| Capability used | Minimum licence |
| --- | --- |
| Sign-in activity report (last interactive sign-in) | Microsoft Entra ID P1 |
| Per-user licence assignment and SKU enumeration | Any assigned Microsoft 365 licence |
### Least-privilege roles
- Global Reader — read tenant licence assignments and sign-in activity
- Reports Reader — read the Microsoft 365 sign-in activity report
### Microsoft Graph permissions (read-only)
- `User.Read.All` — read user accounts, account-enabled status, and assigned licences
- `AuditLog.Read.All` — read last interactive sign-in activity per user
- `Organization.Read.All` — read subscribed SKUs to map licences to AUD list prices
## Sources and compliance
- Uses the Microsoft 365 sign-in activity report as the authoritative source
- Reference: [https://learn.microsoft.com/en-us/microsoft-365/admin/manage/sign-in-activity-report](https://learn.microsoft.com/en-us/microsoft-365/admin/manage/sign-in-activity-report)
- Pair with Starter/Leaver Access Review to integrate reclaim into offboarding
- Refresh quarterly to align with finance reporting cycles
- Output in Australian English
How to use this skill
- Get the file. Download or copy the
SKILL.mdfrom the panel above. - Load it into your host:
- Microsoft 365 Copilot / Copilot Studio — add it as the instructions of a declarative agent or Copilot Studio agent.
- Claude (Cowork / Claude Code) — drop the file into your skills folder; it loads as an Agent Skill automatically.
- Any chat host — paste the file contents as your prompt.
- Grant read-only access. Assign the least-privilege roles and Microsoft Graph scopes listed in Licensing and permissions below.
- Provide your tenant scope and run it (a site, a collection, or the whole tenant).
- Review the report and action the risk-ranked recommendations.
This skill is read-only by default — it inspects and reports, and never changes your tenant.
Inactive Licence Recovery
TL;DR: This skill reports licensed Microsoft 365 users who have not signed in within a set threshold, separates disabled accounts from active-but-dormant ones, and recommends reclaim actions with estimated annual savings in Australian dollars.
How does the Inactive Licence Recovery skill surface unused Microsoft 365 licences?
This skill identifies Microsoft 365 licences assigned to users who are not actively using them. It cross-references each licensed user against the Microsoft 365 sign-in activity report, distinguishes disabled-account waste from dormant-user waste, and quantifies the recoverable annual spend in Australian dollars. It draws on Microsoft Entra sign-in telemetry as the authoritative source and recommends a reclaim action per user bucket.
When should you run this skill?
- “Find unused M365 licences”
- “Report on inactive licensed users”
- “Quantify dormant licence spend”
- “Plan a licence reclaim cycle”
How this skill works, step by step
- Set the inactivity threshold (default: 90 days since last interactive sign-in)
- Enumerate all licensed users and their assigned SKUs
- Cross-reference each user against the sign-in activity report
- Bucket users: Disabled (account blocked), Dormant (enabled, no sign-in), Light (occasional sign-in only)
- Map each licence SKU to its current AUD list price
- Calculate estimated annual recoverable spend per bucket
- Recommend action per bucket: reclaim now (Disabled), reclaim with manager confirmation (Dormant), step down to lower SKU (Light)
- Produce the report below
Output format
| User | UPN | Assigned SKUs | Last Sign-in | Bucket | Annual Cost (AUD) | Recommended Action |
Followed by a summary:
- Total users reviewed: N
- Disabled with licences: N (reclaim immediately)
- Dormant: N
- Light usage: N
- Estimated annual saving: AUD N
Scope and safety
Read-only by default. It does NOT:
- Remove or downgrade licences (read-only)
- Disable user accounts
- Renegotiate enterprise agreements
Licensing and permissions
Licences and add-ons
| Capability used | Minimum licence |
|---|---|
| Sign-in activity report (last interactive sign-in) | Microsoft Entra ID P1 |
| Per-user licence assignment and SKU enumeration | Any assigned Microsoft 365 licence |
Least-privilege roles
- Global Reader — read tenant licence assignments and sign-in activity
- Reports Reader — read the Microsoft 365 sign-in activity report
Microsoft Graph permissions (read-only)
User.Read.All— read user accounts, account-enabled status, and assigned licencesAuditLog.Read.All— read last interactive sign-in activity per userOrganization.Read.All— read subscribed SKUs to map licences to AUD list prices
Sources and compliance
- Uses the Microsoft 365 sign-in activity report as the authoritative source
- Reference: https://learn.microsoft.com/en-us/microsoft-365/admin/manage/sign-in-activity-report
- Pair with Starter/Leaver Access Review to integrate reclaim into offboarding
- Refresh quarterly to align with finance reporting cycles
- Output in Australian English
Licensed under CC BY 4.0 by Educ4te . Adapted from the open HybridSP skills catalogue.