---
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
