One user-governance problem I keep seeing in Atlassian Cloud is that finding inactive users is only half the job.
The harder part is explaining why the seat is still billable before anyone removes access.
Atlassian's own documentation says users are automatically placed in default groups when you give them access to a cloud app, and that default-group setup can lead to unintended license consumption if it is configured badly:
https://support.atlassian.com/user-management/docs/default-groups-and-permissions/
Their app-access documentation also makes the same mechanism explicit: when you give app access to a user, Atlassian adds them to the default group for that app:
https://support.atlassian.com/user-management/docs/update-product-access-settings/
That is where cleanup starts to get awkward. Between default groups, synced groups, unmanaged accounts, and service accounts, the review usually becomes manual.
Disclosure: I built License Guard for this workflow. It helps review why access is still billable, which supported products are affected, and which accounts should be held back before cleanup. It also keeps proof tied to the review and approval cycle. Current cleanup is group-removal based after approval; it does not delete Atlassian accounts.
I am curious how others are handling this today.
Are you exporting users manually, scripting it, or using a tool?
And when cleanup gets risky in your environment, what is usually the hardest part: default groups, SCIM-synced groups, unmanaged accounts, or service accounts?