Skip to content

Commit 8ac7cd9

Browse files
Add "Example schema for Copilot usage metrics" reference article (#60057)
Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com>
1 parent f8b6f07 commit 8ac7cd9

File tree

4 files changed

+253
-1
lines changed

4 files changed

+253
-1
lines changed

content/copilot/concepts/copilot-usage-metrics/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ children:
1919
- /content/copilot/reference/copilot-usage-metrics/lines-of-code-metrics
2020
- /content/copilot/tutorials/roll-out-at-scale/measure-success
2121
- /content/copilot/tutorials/roll-out-at-scale/assign-licenses/track-usage-and-adoption
22+
- /content/copilot/reference/copilot-usage-metrics/example-schema
2223
includedCategories:
2324
- Get started with metrics
2425
- Understand metrics

content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ These metrics appear in the code generation dashboard and provide a breakdown of
6464

6565
These fields appear in the exported NDJSON reports and in the {% data variables.product.prodname_copilot_short %} usage metrics APIs. They provide daily records at the enterprise, organization, or user scope, depending on the metric.
6666

67+
For example schemas of the data returned by the APIs, see [AUTOTITLE](/copilot/reference/copilot-usage-metrics/example-schema).
68+
6769
| Field | Description |
6870
|:--|:--|
6971
| `agent_edit` | Captures lines added and deleted when {% data variables.product.prodname_copilot_short %} (in agent and edit mode) writes changes directly into your files in the IDE. `agent_edit` is not included in suggestion-based metrics and may not populate suggestion-style fields (for example, `user_initiated_interaction_count`). Counts edits from custom agents as well. |
@@ -98,7 +100,7 @@ These fields appear in the exported NDJSON reports and in the {% data variables.
98100

99101
### {% data variables.copilot.copilot_cli_short %} metrics fields (API only)
100102

101-
The `totals_by_cli` object contains the following nested fields when CLI usage is present. These metrics are currently only available in the enterprise-level and user-level reports.
103+
The `totals_by_cli` object contains the following nested fields when CLI usage is present. These metrics are currently only available in the enterprise-level and user-level reports.
102104

103105
| Field | Description |
104106
|:--|:--|
Lines changed: 248 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,248 @@
1+
---
2+
title: Example schema for Copilot usage metrics
3+
shortTitle: Example schema
4+
intro: See an example schema of the data returned by the {% data variables.product.prodname_copilot_short %} usage metrics API.
5+
permissions: '{% data reusables.copilot.usage-metrics-permissions %}'
6+
versions:
7+
feature: copilot
8+
contentType: reference
9+
category:
10+
- Copilot usage metrics
11+
- Understand available data
12+
- Track Copilot usage
13+
allowTitleToDifferFromFilename: true
14+
---
15+
16+
The following are example schemas for the user-level and enterprise-level data returned by the {% data variables.product.prodname_copilot_short %} usage metrics endpoints. The actual data returned may vary based on the specific metrics being tracked and the level of aggregation. You can use these examples as a reference for understanding the structure of the data and how to interpret the various fields and metrics included in the API response.
17+
18+
## User-level schema example
19+
20+
```json copy
21+
[{
22+
"code_acceptance_activity_count": 1,
23+
"code_generation_activity_count": 1,
24+
"day": "2025-10-01",
25+
"enterprise_id": "1",
26+
"loc_added_sum": 8,
27+
"loc_deleted_sum": 0,
28+
"loc_suggested_to_add_sum": 10,
29+
"loc_suggested_to_delete_sum": 0,
30+
"totals_by_cli": {
31+
"last_known_cli_version": {
32+
"cli_version": "1.0.8",
33+
"sampled_at": "2025-10-01T00:01:43.000Z"
34+
},
35+
"prompt_count": 2,
36+
"request_count": 2,
37+
"session_count": 2,
38+
"token_usage": {
39+
"avg_tokens_per_request": 4400.0,
40+
"output_tokens_sum": 5000,
41+
"prompt_tokens_sum": 3800
42+
}
43+
},
44+
"totals_by_feature": [{
45+
"code_acceptance_activity_count": 1,
46+
"code_generation_activity_count": 1,
47+
"feature": "code_completion",
48+
"loc_added_sum": 8,
49+
"loc_deleted_sum": 0,
50+
"loc_suggested_to_add_sum": 10,
51+
"loc_suggested_to_delete_sum": 0,
52+
"user_initiated_interaction_count": 0
53+
}],
54+
"totals_by_ide": [{
55+
"code_acceptance_activity_count": 1,
56+
"code_generation_activity_count": 1,
57+
"ide": "vscode",
58+
"last_known_ide_version": {
59+
"ide_version": "1.85.0",
60+
"sampled_at": "2025-10-01T00:00:02.000Z"
61+
},
62+
"last_known_plugin_version": {
63+
"plugin": "",
64+
"plugin_version": "",
65+
"sampled_at": "2025-10-01T00:00:02.000Z"
66+
},
67+
"loc_added_sum": 8,
68+
"loc_deleted_sum": 0,
69+
"loc_suggested_to_add_sum": 10,
70+
"loc_suggested_to_delete_sum": 0,
71+
"user_initiated_interaction_count": 0
72+
}],
73+
"totals_by_language_feature": [{
74+
"code_acceptance_activity_count": 1,
75+
"code_generation_activity_count": 1,
76+
"feature": "code_completion",
77+
"language": "unknown",
78+
"loc_added_sum": 8,
79+
"loc_deleted_sum": 0,
80+
"loc_suggested_to_add_sum": 10,
81+
"loc_suggested_to_delete_sum": 0
82+
}],
83+
"totals_by_language_model": [],
84+
"totals_by_model_feature": [],
85+
"used_agent": false,
86+
"used_chat": false,
87+
"used_cli": true,
88+
"user_id": 1,
89+
"user_login": "login1",
90+
"user_initiated_interaction_count": 0,
91+
"etl_id": "green",
92+
"day_partition": "2025-10-01",
93+
"entity_id_partition": 1
94+
}]
95+
```
96+
97+
## Enterprise-level schema example
98+
99+
```json copy
100+
[ {
101+
"day_totals" : [ {
102+
"code_acceptance_activity_count" : 2,
103+
"code_generation_activity_count" : 2,
104+
"daily_active_cli_users" : 2,
105+
"daily_active_users" : 2,
106+
"day" : "2025-10-01",
107+
"enterprise_id" : "1",
108+
"loc_added_sum" : 30,
109+
"loc_deleted_sum" : 0,
110+
"loc_suggested_to_add_sum" : 35,
111+
"loc_suggested_to_delete_sum" : 0,
112+
"monthly_active_agent_users" : 0,
113+
"monthly_active_chat_users" : 0,
114+
"monthly_active_users" : 2,
115+
"pull_requests" : {
116+
"median_minutes_to_merge" : 2.5,
117+
"median_minutes_to_merge_copilot_authored" : 2.5,
118+
"total_applied_suggestions" : 1,
119+
"total_copilot_applied_suggestions" : 1,
120+
"total_copilot_suggestions" : 1,
121+
"total_created" : 2,
122+
"total_created_by_copilot" : 1,
123+
"total_merged" : 2,
124+
"total_merged_created_by_copilot" : 1,
125+
"total_reviewed" : 1,
126+
"total_reviewed_by_copilot" : 1,
127+
"total_suggestions" : 1
128+
},
129+
"totals_by_cli" : {
130+
"prompt_count" : 3,
131+
"request_count" : 3,
132+
"session_count" : 3,
133+
"token_usage" : {
134+
"avg_tokens_per_request" : 4100.0,
135+
"output_tokens_sum" : 7000,
136+
"prompt_tokens_sum" : 5300
137+
}
138+
},
139+
"totals_by_feature" : [ {
140+
"code_acceptance_activity_count" : 2,
141+
"code_generation_activity_count" : 2,
142+
"feature" : "code_completion",
143+
"loc_added_sum" : 30,
144+
"loc_deleted_sum" : 0,
145+
"loc_suggested_to_add_sum" : 35,
146+
"loc_suggested_to_delete_sum" : 0,
147+
"user_initiated_interaction_count" : 0
148+
} ],
149+
"totals_by_ide" : [ {
150+
"code_acceptance_activity_count" : 2,
151+
"code_generation_activity_count" : 2,
152+
"ide" : "vscode",
153+
"loc_added_sum" : 30,
154+
"loc_deleted_sum" : 0,
155+
"loc_suggested_to_add_sum" : 35,
156+
"loc_suggested_to_delete_sum" : 0,
157+
"user_initiated_interaction_count" : 0
158+
} ],
159+
"totals_by_language_feature" : [ {
160+
"code_acceptance_activity_count" : 2,
161+
"code_generation_activity_count" : 2,
162+
"feature" : "code_completion",
163+
"language" : "unknown",
164+
"loc_added_sum" : 30,
165+
"loc_deleted_sum" : 0,
166+
"loc_suggested_to_add_sum" : 35,
167+
"loc_suggested_to_delete_sum" : 0
168+
} ],
169+
"totals_by_language_model" : [ ],
170+
"totals_by_model_feature" : [ ],
171+
"user_initiated_interaction_count" : 0,
172+
"weekly_active_users" : 2
173+
} ],
174+
"enterprise_id" : "1",
175+
"report_end_day" : "2025-10-01",
176+
"report_start_day" : "2025-09-04",
177+
"etl_id" : "green",
178+
"day_partition" : "2025-10-01",
179+
"entity_id_partition" : 1
180+
}, {
181+
"day_totals" : [ {
182+
"code_acceptance_activity_count" : 1,
183+
"code_generation_activity_count" : 2,
184+
"daily_active_users" : 2,
185+
"day" : "2025-10-01",
186+
"enterprise_id" : "2",
187+
"loc_added_sum" : 38,
188+
"loc_deleted_sum" : 0,
189+
"loc_suggested_to_add_sum" : 40,
190+
"loc_suggested_to_delete_sum" : 0,
191+
"monthly_active_agent_users" : 0,
192+
"monthly_active_chat_users" : 0,
193+
"monthly_active_users" : 2,
194+
"pull_requests" : {
195+
"total_applied_suggestions" : 0,
196+
"total_copilot_applied_suggestions" : 0,
197+
"total_copilot_suggestions" : 0,
198+
"total_created" : 1,
199+
"total_created_by_copilot" : 0,
200+
"total_merged" : 0,
201+
"total_merged_created_by_copilot" : 0,
202+
"total_reviewed" : 1,
203+
"total_reviewed_by_copilot" : 0,
204+
"total_suggestions" : 1
205+
},
206+
"totals_by_feature" : [ {
207+
"code_acceptance_activity_count" : 1,
208+
"code_generation_activity_count" : 2,
209+
"feature" : "code_completion",
210+
"loc_added_sum" : 38,
211+
"loc_deleted_sum" : 0,
212+
"loc_suggested_to_add_sum" : 40,
213+
"loc_suggested_to_delete_sum" : 0,
214+
"user_initiated_interaction_count" : 0
215+
} ],
216+
"totals_by_ide" : [ {
217+
"code_acceptance_activity_count" : 1,
218+
"code_generation_activity_count" : 2,
219+
"ide" : "vscode",
220+
"loc_added_sum" : 38,
221+
"loc_deleted_sum" : 0,
222+
"loc_suggested_to_add_sum" : 40,
223+
"loc_suggested_to_delete_sum" : 0,
224+
"user_initiated_interaction_count" : 0
225+
} ],
226+
"totals_by_language_feature" : [ {
227+
"code_acceptance_activity_count" : 1,
228+
"code_generation_activity_count" : 2,
229+
"feature" : "code_completion",
230+
"language" : "unknown",
231+
"loc_added_sum" : 38,
232+
"loc_deleted_sum" : 0,
233+
"loc_suggested_to_add_sum" : 40,
234+
"loc_suggested_to_delete_sum" : 0
235+
} ],
236+
"totals_by_language_model" : [ ],
237+
"totals_by_model_feature" : [ ],
238+
"user_initiated_interaction_count" : 0,
239+
"weekly_active_users" : 2
240+
} ],
241+
"enterprise_id" : "2",
242+
"report_end_day" : "2025-10-01",
243+
"report_start_day" : "2025-09-04",
244+
"etl_id" : "green",
245+
"day_partition" : "2025-10-01",
246+
"entity_id_partition" : 2
247+
} ]
248+
```

content/copilot/reference/copilot-usage-metrics/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ children:
99
- /interpret-copilot-metrics
1010
- /reconciling-usage-metrics
1111
- /lines-of-code-metrics
12+
- /example-schema
1213
---

0 commit comments

Comments
 (0)