A license audit answers four questions: who holds what, through which mechanism, at what cost, and with what exceptions. Answering them tenant-wide means joining subscription data, per-user license details, and the group hierarchy, which is why most license audits sample instead of enumerate.

The four audit questions#

Each maps to specific data:

  • Who holds what: per-user license details across every SKU.
  • Through which mechanism: direct versus group-based, and for group grants, which group.
  • At what cost: seats consumed rolled up by group and SKU against purchased totals.
  • With what exceptions: assignment errors, duplicates, conflicts, and disabled plans per user.

Why sampling lies#

Sampled audits systematically miss the structural cases, because the exceptions cluster: duplicates concentrate where hierarchies overlap, errors concentrate in automated onboarding batches, and waste concentrates in forgotten licensed groups. A sample of well-behaved users proves nothing about the corners where the findings live.

VisualizerEngine

How VisualizerEngine does it

The audit is continuous instead of annual: every assignment is mirrored with its source and path, conflicts, duplicates, and disabled plans are tracked per user, and cost analysis attributes seats to groups and SKUs. Exports with provenance metadata turn any view into evidence, and snapshots date-stamp the audit baseline.