GitHub Copilot usage metrics help organizations understand how developers are using Copilot across their repositories, teams, and enterprise.
For an individual developer, Copilot usage may simply mean accepting a code suggestion or asking a question in chat. For an organization, however, administrators may need a broader view:
How many developers are using Copilot?
Which Copilot features are being used?
How frequently are developers engaging with Copilot?
How much code-generation activity is occurring?
Which repositories or teams are adopting Copilot?
How is usage changing over time?
GitHub provides usage metrics through dashboards, APIs, and downloadable reports. These sources use the same underlying telemetry, but the data is aggregated and presented differently depending on the reporting surface.
This article explains the main concepts behind GitHub Copilot usage metrics and how developers, engineering managers, and administrators can interpret them correctly.
What Are GitHub Copilot Usage Metrics?
Copilot usage metrics are data points that describe how GitHub Copilot is being adopted and used.
GitHub groups the information around areas such as:
Adoption
Engagement
Feature usage
Code generation
Code acceptance
Pull request activity
AI credits
IDE and language usage
The exact fields available depend on the report and aggregation level.
For example, the current user-level schema includes fields such as:
{
"day": "2025-10-01",
"code_generation_activity_count": 3,
"code_acceptance_activity_count": 3,
"ai_credits_used": 12.5
}
GitHub's documented schema contains additional fields covering Copilot activity and feature usage.
The important point is that these metrics describe usage activity. They should not automatically be interpreted as a direct measurement of developer productivity or software quality.
Why Usage Metrics Matter
When an organization introduces an AI coding tool, simply assigning licenses does not tell you whether the tool is actually being used.
Consider an organization with 500 Copilot seats.
A licensing report can tell you that 500 seats exist.
Usage metrics can provide additional information about actual engagement.
For example:
Copilot seats
|
v
Active users
|
v
Feature usage
|
v
Code generation
|
v
Code acceptance
|
v
Pull request activity
This makes the data useful for understanding adoption patterns.
It can also help administrators identify areas where developers may need documentation, training, or better configuration.
Adoption vs Usage
One of the easiest mistakes is treating adoption and usage as the same thing.
They are different.
Adoption
Adoption answers a question such as:
How many assigned users are actually engaging with Copilot?
Usage
Usage provides more detail about what those users are doing.
For example:
Adoption
|
+-- User is active
Usage
|
+-- Code completions
+-- Chat
+-- Code generation
+-- Code acceptance
+-- Other Copilot features
An organization can therefore have high seat assignment but lower active usage.
That does not necessarily mean the product is failing. It may indicate that users have different workflows, different levels of experience, or different reasons for using the tool.
Important Copilot Metrics
GitHub's current metrics model contains a number of fields. The exact fields available can change as Copilot features and reporting evolve, so administrators should use GitHub's current schema when building reporting systems.
Some useful categories are described below.
Code Generation Activity
Code generation activity measures activity associated with Copilot generating code.
A simplified example could look like:
code_generation_activity_count = 25
This means the metric recorded 25 relevant code-generation activities for the reporting scope and period.
It should not be interpreted as "25 useful pieces of production code."
The metric describes activity, not business value.
Code Acceptance Activity
Code acceptance activity records activity associated with developers accepting Copilot-generated suggestions or output.
For example:
code_generation_activity_count = 25
code_acceptance_activity_count = 15
This can help organizations understand how generated suggestions are being used.
However, acceptance should not automatically be interpreted as code quality.
A developer may accept a suggestion and immediately modify it.
AI Credits Used
Current usage reporting can also include AI credit consumption.
For example:
{
"ai_credits_used": 12.5
}
AI credits are relevant to Copilot's usage-based billing model and should be analyzed separately from adoption metrics. GitHub documents AI credits as part of usage-based billing for organizations and enterprises.
Lines of Code Metrics
GitHub also documents Lines of Code metrics.
These provide a directional measurement of Copilot output by quantifying lines of code suggested, added, or deleted across supported Copilot experiences.
This can be useful for understanding the scale of generated output.
However, there is an important limitation.
Lines of code are not the same as engineering value.
For example:
Developer A
100 generated lines
20 accepted lines
Developer B
20 generated lines
18 accepted lines
The numbers alone do not tell you which developer produced better software.
The code could differ dramatically in complexity and purpose.
For that reason, LOC metrics are better treated as directional telemetry rather than a standalone productivity score.
Pull Request Lifecycle Metrics
Copilot usage reporting can also provide visibility into pull request lifecycle trends.
This is useful because organizations often want to understand whether Copilot adoption is associated with changes in development workflows.
For example:
Copilot activity
|
v
Code changes
|
v
Pull request
|
v
Review
|
v
Merge
These metrics can provide additional context around the development process.
However, correlation does not establish that Copilot caused a particular change in pull request performance.
Other factors can influence pull request duration, such as:
project complexity
review requirements
team size
release schedules
incident response
changes in engineering processes
Where Can You Access Copilot Metrics?
GitHub currently provides Copilot usage metrics through several surfaces.
Dashboard
The Copilot usage metrics dashboards are available at enterprise and organization levels. They provide a UI-based way to explore adoption and usage information.
REST API
The REST API provides programmatic access to usage reports.
This is useful when an organization wants to integrate Copilot data into:
internal dashboards
BI systems
scheduled reports
data warehouses
governance tools
Exported Reports
The API returns download links for generated reports.
The downloaded reports use formats such as NDJSON, which makes them suitable for processing large amounts of structured data.
Enterprise-Level Metrics
At the enterprise level, authorized users can retrieve Copilot usage metrics for the enterprise.
GitHub provides endpoints for:
Enterprise usage
Enterprise users
Enterprise user teams
For example, the API provides a 28-day enterprise report endpoint.
Conceptually:
Enterprise
|
+-- Organization A
| |
| +-- Users
|
+-- Organization B
|
+-- Users
This makes enterprise-level reporting useful when Copilot is managed centrally across multiple organizations.
Organization-Level Metrics
Organizations can also retrieve their own Copilot metrics.
For example, the REST API supports organization-level reports covering:
organization usage
organization users
user-team relationships
The organization-level reports can be retrieved for a specific day or as a latest 28-day report.
This makes it possible to build reporting pipelines without manually downloading data from the dashboard.
User-Level Metrics
User-level metrics provide more detailed information about individual Copilot activity.
For example, a report may contain fields such as:
{
"day": "2026-05-07",
"user_login": "developer1",
"code_generation_activity_count": 18,
"code_acceptance_activity_count": 11
}
The exact schema depends on the report and available metrics.
Access to these reports is controlled. GitHub documents specific permissions for users who can retrieve Copilot metrics, including enterprise and organization owners and authorized custom roles with the relevant Copilot metrics permissions.
This matters because user-level reporting contains more detailed activity information than an aggregate organization dashboard.
Team-Level Metrics Require Additional Work
A common assumption is that the API provides one ready-made report for every team.
GitHub's current documentation explains that team-level metrics are not provided as a single pre-aggregated team report.
Instead, team-level metrics can be constructed by joining:
The daily user-teams report.
The daily per-user usage metrics report.
The shared user identity can then be used to associate activity with team membership.
The process looks like this:
User-Team Report
|
| user_id
v
Per-User Usage Report
|
v
Join
|
v
Team-Level Metrics
This is useful for organizations that need custom team-level BI reporting.
Example: Downloading an Organization Report
A REST API request for the latest 28-day organization report follows this general structure:
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "X-GitHub-Api-Version: 2026-03-10" \
"https://api.github.com/orgs/ORG/copilot/metrics/reports/organization-28-day/latest"
The response contains download links rather than placing the complete report directly in the API response. GitHub documents this behavior for the organization and enterprise usage metrics endpoints.
A simplified response looks like:
{
"download_links": [
"signed-report-download-link"
],
"report_start_day": "2026-08-01",
"report_end_day": "2026-08-28"
}
The actual signed URL should be downloaded within its validity period.
Example: Calling the API From C#
If you are building an internal reporting service in .NET, HttpClient can be used to call the API.
using System.Net.Http.Headers;
var organization = "my-organization";
var token = Environment.GetEnvironmentVariable("GITHUB_TOKEN");
if (string.IsNullOrWhiteSpace(token))
{
throw new InvalidOperationException(
"GITHUB_TOKEN is not configured.");
}
using var client = new HttpClient();
client.DefaultRequestHeaders.UserAgent.ParseAdd(
"CopilotMetricsReporter");
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token);
client.DefaultRequestHeaders.Accept.ParseAdd(
"application/vnd.github+json");
client.DefaultRequestHeaders.Add(
"X-GitHub-Api-Version",
"2026-03-10");
var endpoint =
$"https://api.github.com/orgs/{organization}" +
"/copilot/metrics/reports/organization-28-day/latest";
using var response = await client.GetAsync(endpoint);
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
Console.WriteLine(json);
The example deliberately reads the token from an environment variable rather than placing it directly in the application.
For production reporting tools, authentication should use the least privilege required by the selected endpoint.
Understanding the API Permissions
Access to Copilot metrics is not automatically available to every GitHub user.
For organization-level metrics, GitHub documents the Organization Copilot metrics read permission for fine-grained tokens. Enterprise metrics similarly require the corresponding enterprise permission.
Depending on the authentication mechanism, GitHub also documents relevant classic OAuth or personal access token scopes.
The practical rule is:
Give the reporting application only the access it actually needs.
If a service only needs organization-level metrics, there is little reason to grant it broader enterprise administration privileges.
Data Freshness Matters
Copilot metrics are generated and processed over time.
For example, GitHub's API documentation describes daily reports and latest 28-day reports. The data represents completed reporting periods rather than necessarily being a live stream of every Copilot event.
This matters when creating dashboards.
Do not label a report:
Live Copilot Usage
unless the underlying data actually supports that interpretation.
A better approach is to display the reporting period:
Copilot Usage
August 25 – September 21
That makes the meaning of the numbers clearer.
Reconciling Dashboard and API Numbers
You may sometimes see different numbers between a dashboard, an API report, and an exported file.
That does not automatically mean that one source is wrong.
GitHub explains that these surfaces use the same underlying telemetry but aggregate and present the information differently.
When reconciling data, check:
Reporting period
Enterprise vs organization scope
Aggregation level
Metric definition
Data processing status
Filters applied by the dashboard
User or repository scope
A useful internal report should always document these dimensions.
What Usage Metrics Do Not Tell You
This is one of the most important sections for anyone building an internal Copilot dashboard.
Usage metrics can tell you about activity.
They do not automatically tell you:
whether generated code is high quality
whether a developer became more productive
whether code is more maintainable
whether security improved
whether a project was delivered faster because of Copilot
whether a developer is a strong or weak engineer
For example:
High Copilot usage
≠
High software quality
and:
Low Copilot usage
≠
Low developer performance
There are many legitimate reasons developers use Copilot differently.
Common Mistakes
Mistake 1: Treating Acceptance as Quality
A high acceptance count does not prove that generated code was high quality.
Review actual engineering outcomes separately.
Mistake 2: Using LOC as a Productivity Score
Lines of generated or accepted code provide directional information, but they are not a complete productivity measurement. GitHub itself describes LOC metrics as directional.
Mistake 3: Ignoring the Reporting Period
A 28-day report and a daily report should not be compared without considering their time windows.
Mistake 4: Assuming Team Data Is Directly Available
Current team-level raw reporting requires joining user-team data with per-user usage data.
Mistake 5: Giving the Reporting Tool Excessive Permissions
Metrics reporting should use the smallest appropriate permission set.
Best Practices
Define the Question Before Selecting the Metric
Start with the business or engineering question.
For example:
Question:
Are developers actively using Copilot?
Metric:
Adoption and engagement
Rather than:
Question:
Are developers productive?
Metric:
Lines of code
The second approach can lead to misleading conclusions.
Use Multiple Metrics Together
A useful report might combine:
Adoption
+
Feature usage
+
Code generation
+
Code acceptance
+
Pull request trends
This gives more context than one number.
Keep Usage and Quality Separate
Pair Copilot telemetry with existing engineering signals such as:
test results
code review outcomes
defect trends
deployment frequency
incident data
cycle time
These should be analyzed together rather than treating one metric as a complete answer.
Document Metric Definitions
If an internal dashboard contains:
Acceptance Rate: 42%
document exactly how that number was calculated.
For example:
Accepted code-generation activity
---------------------------------
Total code-generation activity
Without a clear definition, two dashboards can calculate apparently similar metrics differently.
Advantages and Disadvantages
Advantages | Disadvantages |
|---|---|
Provides visibility into Copilot adoption | Usage does not directly measure productivity |
Supports organization and enterprise reporting | Metrics require careful interpretation |
API access enables custom reporting | Team-level reporting requires additional data processing |
Provides user and repository-level data | Reports are processed rather than a simple live event stream |
Supports feature-level analysis | Definitions can evolve as Copilot features change |
Useful for adoption planning | User-level metrics require appropriate access controls |
A Practical Reporting Model
For an internal engineering dashboard, a useful structure could be:
Copilot Overview
|
+-- Adoption
| +-- Assigned users
| +-- Active users
|
+-- Engagement
| +-- Feature activity
| +-- Code generation
| +-- Code acceptance
|
+-- Cost / Usage
| +-- AI credits
|
+-- Engineering Context
+-- Pull request trends
+-- Review activity
+-- Delivery metrics
The key is to keep Copilot usage metrics in context.
Summary
GitHub Copilot usage metrics provide organizations with structured information about how Copilot is being adopted and used.
The available data covers areas such as adoption, engagement, code-generation activity, code acceptance, lines of code, AI credits, and pull request lifecycle trends. GitHub makes this information available through dashboards, APIs, and reports.
For organizations building custom reporting, the REST API is particularly useful because it provides downloadable daily and 28-day reports at enterprise and organization scopes, along with detailed user-level data.
The most important thing to remember is that usage metrics measure activity, not developer quality. A strong reporting system should use Copilot metrics as one source of engineering information and combine them with broader development and delivery signals.
When interpreted in that context, Copilot metrics can help teams understand adoption, identify usage patterns, plan enablement, and build more informed internal reports without reducing software development to a single number.

Join the conversation! Your thoughts help the community grow.