Operations & ReportingProposed workflow

Compare software licenses with approved account purposes

Match purchased capacity, assignments and documented account needs.

Tools for the documented steps

These products support separate steps. Their presence does not imply a tested connection or endorsement.

Practice relevance

Cross-practice idea · A general operational method. Review the stated tool and jurisdiction limits before use.

The problem

Match purchased capacity, assignments and documented account needs.

Why it matters: Unused capacity can be intentional, and a service account may be essential. Reviewing assignments against approved purposes gives the owner a clearer list of questions before any license or access change.

Sources & evidence

Proposed / not tested. The public source describes the problem. Documentation supports only the stated method components; no result from this recipe has been verified.

What’s been verified

Source methods and reported problems have been reviewed. We have not run the adapted workflow. The sample below describes expected behavior on synthetic data, not a customer result.

What to measure: In a synthetic pilot, count correctly found exceptions, false alarms, and unresolved inputs. No time or cost saving is assumed.

  • Pain evidence: Microsoft subscriptions for a small law firm ↗Microsoft subscriptions for a small law firm, 2026-06-29, older: a six-lawyer/two-admin firm operator describes confusing subscriptions and an earlier count of 15 licenses, later 10. The account does not establish that any particular license was unnecessary.
  • Method: View licensed and unlicensed Microsoft 365 users ↗View licensed and unlicensed Microsoft 365 users documents licensed-user and assigned-plan inspection. This recipe consumes an export supplied by an already-authorized administrator; it does not create credentials, grant access or run tenant changes.

Source checked: October 15, 2026. Pain accounts are self-reported. Documentation supports components; this adapted recipe and prompt have not been tested. We wrote these prompts. The adapted workflow hasn’t been tested.

Suggested approach

Start when: Monthly billing review or scheduled renewal review

  1. reconcile purchased seats, assigned seats and administrator-approved account purposes
  2. Keep source references and report unknowns instead of filling gaps.
  3. The responsible reviewer checks the report before any separately approved action.

Limits and review

The assistant drafts or reports only. Check source records and review the output before a human performs any separately approved send or change. No automatic legal decision, money movement, account connection or publication is included.

Who reviews it: IT and billing owner check purpose, contract terms and feature requirements. Test a legitimate service account, prepaid spare capacity and a renamed SKU. No cancellation, purchase or permission change is made.

What you need

Your firm-approved AI assistant · prepared files

  • 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.
  • Use synthetic inputs first. Keep real data in firm-approved accounts and processing, with appropriate access, confidentiality and retention controls. Aliases alone do not anonymize records. Never paste credentials, API keys or unnecessary client details.

How to use

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

Before you start
  • 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.
Check access and setup
  • Actual account access, plan and source-data completeness have not been tested.
  1. Read purchased subscription quantities

    Microsoft 365 admin center · Dashboard view: Billing > Your products; Simplified view: Subscriptions

    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.
    Next step
    Create a SKU/product crosswalk approved by IT; do not assume friendly names are canonical SKU codes.
    Check before continuing
    Quantity in the portal and approved purchased quantity are separate facts; note multiple subscriptions/billing accounts and reseller gaps.
  2. Read actual user assignments without saving

    Microsoft 365 admin center · Users > Active users > select user > Licenses and Apps > Licenses

    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.
    Next step
    Combine with the IT-approved purpose/owner roster in a separate alias-based workbook.
    Check before continuing
    Do not infer account type/purpose from a name or assume current assignment date equals capture date.
  3. Map the observed records to the starter input

    Excel and authorized staff · Separate analysis workbook > Home > Format as Table

    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.
    Next step
    Check the mapping against each original source before using AI.
    Check before continuing
    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.
  4. Review the bounded evidence with Copilot

    Excel Copilot, optional · Approved analysis workbook > Copilot icon at lower right > Chat only

    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.

    Expected output
    License evidence exceptions and owner questions.
    Next step
    Copy the draft exception list to the reviewer; retain row references.
    Check before continuing
    Check every flagged row and the scope. A fluent answer is not evidence of completeness; no automatic workbook or source-system edits.
  5. Approve the review result

    Final human review

    Responsible staff reviewer · Reviewed local worksheet

    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.
    Next step
    Any external message, source change, payment or deletion requires its own authorized process.
    Check before continuing
    No savings estimate or removal decision is valid from incomplete assignment/purpose evidence.

What you’ll get

license-review.csv: sku, purchased_quantity, assigned_quantity, unassigned_capacity, account_alias, approved_purpose, source_ref, missing_evidence, reviewer_question. Do not call a spare or service account waste or cancel access.

Inputs and a sample test Synthetic example · not a measured result

Input files

  • 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: export cutoff, coverage and approved SKU mappings

Synthetic example

Synthetic inputs are included in the starter kit.
purchases.example.csv
assignments.example.csv
account-purposes.example.csv
scope.example.txt

Expected output

SKU-A purchased 3 and assigned 2 gives 1 unassigned capacity, documented as prepaid spare capacity.
ACC2 is an approved service account. Do not call it waste or remove its license.
ACC3 has undocumented purpose and SKU-LEGACY with no matching purchased SKU/mapping. Keep purpose and SKU evidence gaps separate.
Do not subtract unknown SKU-LEGACY from SKU-A capacity or recommend cancelling security capabilities.

Test a failure

IT and billing owner check purpose, contract terms and feature requirements. Test a legitimate service account, prepaid spare capacity and a renamed SKU. No cancellation, purchase or permission change is made.

Try with the sample files

Follow the tool steps above and use the inputs named in each step. Where provided, native-* files are blank scaffolds and NATIVE-INPUT-MAPPING explains their fields. Original examples and the optional full review prompt use a separate prepared-input schema. Keep them separate unless the mapping explicitly connects them. Downloading a kit does not connect accounts or prove the workflow works.

Download inputs and checklist 12 files

Instructions, blank templates and separate synthetic examples; these files do not install an automation. Blank templates still need verified source data.

Optional full review prompt for prepared inputs

Prepared-input review prompt with Your firm-approved AI assistant · prepared files

Proposed / not tested · editorial prompt. This prompt uses the original prepared-input schema shown in the sample test. Step prompts may use different tables. Follow NATIVE-INPUT-MAPPING where supplied; do not mix the original examples with native-step inputs without mapping and checking every field.

Read original method Read pain evidence

Published by Law Firm Agents. These are source-linked editorial adaptations; no end-to-end execution is claimed. Read the plain-text version.