Skip to content

Group & Teams Sprawl Trend

The question it answers: How many Microsoft 365 groups and teams were created in the last 12 months, by whom, and how many are empty, ownerless or short-lived?

How fast are new teams and groups appearing, who creates them, and how many are abandoned - deleted again within weeks, never given a member, or left without an owner? A steady stream of short-lived groups points at a self-service creation policy that needs a naming, approval or expiration rule.

Where in the appTenant › Group & Teams Sprawl
WorkloadTenant
KindTable
DataBuilt from the tenant data IntensiveReports keeps in memory and refreshes in the background, so it opens at once.
LicenceNone; creator lookup reads audit logs (about 7 days of history; 30 days with Microsoft Entra ID P1).
Report id (API and MCP)tenant.collaboration.group-sprawl
ColumnKeyType
GroupNameLink
TypeKindStatus
StatusStatusStatus
CreatedCreatedDate
Created byCreatedByText
MembersMembersText
OwnersOwnersText
DeletedDeletedDate
FilterKey (API)On when the page opens
Only empty, ownerless or short-lived groupsabandonedNo

Licence: None; creator lookup reads audit logs (about 7 days of history; 30 days with Microsoft Entra ID P1).

Application permissions on the IntensiveReports app registration (all permissions):

PermissionAPIWhat it allowsNote
Group.Read.AllMicrosoft GraphRead all groups
AuditLog.Read.AllMicrosoft GraphRead all audit log datacreators - optional
Data sources it reads
  • GET /v1.0/groups?$filter=groupTypes/any(c:c eq 'Unified')&$expand=owners / members
  • GET /v1.0/directory/deletedItems/microsoft.graph.group
  • GET /v1.0/auditLogs/directoryAudits?$filter=activityDisplayName eq 'Add group'
GET /ir-api/v1/reports/tenant.collaboration.group-sprawl?size=100
GET /ir-api/v1/reports/tenant.collaboration.group-sprawl?filter=abandoned

An AI assistant reads it with the MCP tool get_report and the id tenant.collaboration.group-sprawl. The client needs the Read grant for Tenant. See Using the API.