Reconcile software licenses with assigned users and approved purposes
Get the source data and prepare the review

Documentation-checked proposed route; source collection and human approval required

WHAT WAS CHECKED
Official documentation checked; all routes are proposed and have not been run in a product account. No client data, account access, installs or account writes used. Native column names are distinguished from editorial kit contracts. Missing source evidence blocks completeness claims.

BEFORE YOU START
- Existing Microsoft 365 admin access to subscription details and selected users’ license assignments; billing/global admin for subscription inventory.
- Actual purchase/invoice approvals and account-purpose/capability records; a snapshot does not establish purchase authorization.
- Firm-approved Excel; optional Copilot entitlement and tenant approval for the exact minimized data. Native Excel analysis can be done manually if Copilot is absent.
- Keep raw exports and identifying source pointers in a separate restricted location. The AI workbook contains only approved alias-based tables and visible policy/scope text, never raw client records on another tab.

DATA ACQUISITION LIMITS
- This route manually reads the documented native screens. It does not invent an assignment-history CSV or assigned_at timestamp.
- Licenses are not safely removable just because an account seems unused. Shared/service accounts, legal holds, required capabilities and group-assigned licenses require IT review.

DECLARED INPUT CONTRACT
purchases.csv: purchase_id, sku, quantity, period_start, period_end, approved_cost, currency, approval_ref
assignments.csv: account_alias, sku, assigned_at, source_ref
account-purposes.csv: account_alias, account_type, approved_purpose, required_capabilities, owner_alias, approval_ref
scope.txt

STEP 1: Read purchased subscription quantities
Tool: Microsoft 365 admin center
Open: Dashboard view: Billing > Your products; Simplified view: Subscriptions
Access needed: See prerequisites; actual subscription, tenant configuration and permissions are untested.

Read product name, total licenses, assigned licenses and subscription status. Open the subscription for its actual details; check each authorized billing account separately. Read the actual invoice/order/approval record locally for approved cost, currency, period and approval reference. Do not buy, cancel or change recurring billing.

Expected output: Observed subscription inventory plus independent purchase/approval evidence.
Use it next: Create a SKU/product crosswalk approved by IT; do not assume friendly names are canonical SKU codes.
Check: Quantity in the portal and approved purchased quantity are separate facts; note multiple subscriptions/billing accounts and reseller gaps.
Documentation limit: Official sources support named product features. Workflow-specific prompts, alias fields, mappings and reviewer rules are editorial adaptations, not native export promises.
Source documentation:
https://learn.microsoft.com/en-us/microsoft-365/admin/admin-overview/what-subscription-do-i-have?view=o365-worldwide

STEP 2: Read actual user assignments without saving
Tool: Microsoft 365 admin center
Open: Users > Active users > select user > Licenses and Apps > Licenses
Access needed: See prerequisites; actual subscription, tenant configuration and permissions are untested.

For each authorized account in the defined roster, inspect currently assigned products and relevant service capabilities. Record the observation and source reference without changing checkboxes or selecting Save changes. Use actual historical audit evidence for assigned_at only if already available; otherwise unknown.

Expected output: Manual account/product assignment snapshot, with capture time and coverage.
Use it next: Combine with the IT-approved purpose/owner roster in a separate alias-based workbook.
Check: Do not infer account type/purpose from a name or assume current assignment date equals capture date.
Documentation limit: Official sources support named product features. Workflow-specific prompts, alias fields, mappings and reviewer rules are editorial adaptations, not native export promises.
Source documentation:
https://learn.microsoft.com/en-us/entra/fundamentals/license-users-groups

STEP 3: Map the observed records to the starter input
Tool: Excel and authorized staff
Open: Separate analysis workbook > Home > Format as Table
Access needed: See prerequisites; actual subscription, tenant configuration and permissions are untested.

Populate purchases.csv from actual approved orders; assignments.csv from observed account_alias/sku,assigned_at (if evidenced),source_ref; account-purposes.csv from owner-approved account_type,approved_purpose,required_capabilities,owner_alias,approval_ref. Paste scope.txt and capture time into Scope. Preserve active quantities versus historical periods and document SKU aliases. Create named tables for Purchases, Assignments and AccountPurposes. Put the policy and review scope in visible worksheets or paste them into the next prompt.

Expected output: Purchases, Assignments and AccountPurposes tables with explicit missing approvals/coverage.
Use it next: Check the mapping against each original source before using AI.
Check: Aliases and missing policy fields are staff-created; do not relabel a native export as the kit schema. Unknown stays blank/unknown, not false or zero.
Documentation limit: Official sources support named product features. Workflow-specific prompts, alias fields, mappings and reviewer rules are editorial adaptations, not native export promises.
Source documentation:
https://support.microsoft.com/en-us/excel/tutorial-import-data-into-excel-and-create-a-data-model

STEP 4: Review the bounded evidence with Copilot
Tool: Excel Copilot, optional
Open: Approved analysis workbook > Copilot icon at lower right > Chat only
Access needed: See prerequisites; actual subscription, tenant configuration and permissions are untested.

Use Chat only and submit the prompt. Without Copilot: count per-SKU assignments, compare active purchase scope and check each account against its approved capability needs.

PASTE THIS PROMPT
Reconcile Purchases, Assignments and AccountPurposes within Scope. Count observed assignments by approved SKU mapping and compare with active purchased quantities for the same period. Flag unknown SKU, missing purchase approval, missing account purpose, apparent overassignment and capability conflicts. Do not classify an account as unnecessary or recommend removing a license solely from usage/absence. Return evidence and questions for IT; no purchases, removals or account changes.

Expected output: License evidence exceptions and owner questions.
Use it next: Copy the draft exception list to the reviewer; retain row references.
Check: Check every flagged row and the scope. A fluent answer is not evidence of completeness; no automatic workbook or source-system edits.
Documentation limit: Official sources support named product features. Workflow-specific prompts, alias fields, mappings and reviewer rules are editorial adaptations, not native export promises.
Source documentation:
https://support.microsoft.com/en-us/excel/copilot/get-started-with-copilot-in-excel
https://support.microsoft.com/en-us/excel/copilot/frequently-asked-questions-about-copilot-in-excel

STEP 5: Approve the review result
Tool: Responsible staff reviewer
Open: Reviewed local worksheet
Access needed: See prerequisites; actual subscription, tenant configuration and permissions are untested.

IT and the budget owner validate SKU mapping, group licensing, required capabilities and contractual quantities before considering a separate license change.

Expected output: Reviewed licensing exception list.
Use it next: Any external message, source change, payment or deletion requires its own authorized process.
Check: No savings estimate or removal decision is valid from incomplete assignment/purpose evidence.
Documentation limit: Editorial human-review gate; linked Excel documentation supports the worksheet used, not legal or accounting conclusions.
Source documentation:
https://support.microsoft.com/en-us/excel/tutorial-import-data-into-excel-and-create-a-data-model

ACCOUNT AND SOURCE CHECKS STILL NEEDED
- Actual account access, plan and source-data completeness have not been tested.

USING THE FILES IN THIS KIT
Use the exact files or source text named in the steps above. Native exports keep their own headers. The kit tables are editorial review worksheets; they are not a claim that a product exports those fields. Some routes use reviewed text directly or require additional original files. Never rename an unreviewed raw export to make it appear mapped. Keep expected-result files separate from inputs.

The source account, actual data, prompts and end-to-end workflow were not tested. Any final communication, filing, permission change, payment or publication needs its own authorized human action. This guide performs none.
