Review enterprise licensing and billing
As an enterprise administrator, start in the enterprise settings to review billing and license consumption. The licensing view displays how many seats are consumed and provides an estimated monthly cost. In the example environment, two licenses are currently consumed (down from three after removing “dev2” in a prior task), with an estimated monthly charge of about $42. The Advanced Security section shows how many Advanced Security entitlements are assigned for features such as secret scanning and CodeQL code scanning. In this example, one license is used for secret protection and one for code security. To validate entitlements, download the CSV reports that enumerate enterprise users and their license details. These exports are the primary data source for auditing who holds Advanced Security access.Inspect the enterprise users CSV
The enterprise users CSV lists everyone associated with the enterprise and includes columns such as GitHub.com login, enterprise role, license type, and organization-level roles. Use this file to confirm which accounts currently hold Advanced Security entitlements.
Export and analyze Advanced Security reports
Download the Advanced Security exports. Typically these are split into two reports:- Secret protection (secret scanning) usage
- Code security (CodeQL) usage

Recommended audit workflow
Follow these steps to audit and reclaim unused Advanced Security licenses safely:Best practices and governance
- Establish an inactivity policy (for example, reclaim Advanced Security licenses after 60 or 90 days of no activity).
- Automate periodic exports and reporting to keep license utilization under continuous review.
- Maintain an audit log of entitlement changes and a communication process to notify affected users.
Consider automating periodic exports and reports so license utilization is reviewed on a regular cadence. This helps catch stale entitlements early and reduces license costs.
Before removing Advanced Security access, confirm the user is not performing required security tasks via automation (e.g., Dependabot or scheduled scans) that might not show as recent pushes. Notify the user or their team to avoid disrupting essential workflows.