Copilot Now Counts OpenCode Usage: How to Read the New Metrics
The Copilot IDE report looks quiet, but your developers use Copilot every day through OpenCode. Where does that usage show up now, and why do requests outnumber prompts?

- GitHub added client-level Copilot model traffic reporting on October 23.
- It covers tools such as OpenCode when they use Copilot as the model provider.
- Compare matching units, reporting periods and organizational scopes before drawing conclusions.
Missing IDE activity can hide model usage
Tools that use Copilot without sending editor telemetry can leave gaps in IDE breakdowns. GitHub's new totals_by_client array uses server-side requests to expose that traffic. The October 23 announcement describes a tool-level view of model consumption.
The API returns links to the report files
The REST reference documents this endpoint for the latest organization-level 28-day report:
GET /orgs/ORG/copilot/metrics/reports/organization-28-day/latest Replace ORG with the organization name. The response supplies download_links along with report_start_day and report_end_day. Retrieve the files before looking for usage records. The signed download URLs expire; they are not permanent dataset addresses.
Access requires the usage metrics policy and an authorized role for the relevant scope. Organization owners and roles granted metrics visibility can retrieve organization reports. OAuth app tokens and classic personal access tokens also need read:org for this endpoint. A personal Copilot subscription alone is not an organization-report permission.
A request is a model call, not a prompt
| Field | Meaning |
|---|---|
client | Best-effort tool grouping, not verified identity. |
request_count | Successful model calls. |
session_count | Distinct sessions. |
token_usage | Input, output and average tokens per request. |
totals_by_model | Model-level traffic and selection mode. |
One prompt may trigger several calls. Agent app jobs are counted separately from model requests. For aggregate 28-day reports, look inside each day_totals entry for the new array.
Match the reporting scope before judging results
GitHub's reconciliation guide identifies time windows, scope and freshness as common causes of discrepancies. A daily export and a rolling dashboard may describe different periods. Files captured before telemetry finishes processing may also lag behind later views. Check the dates represented by the data before treating a recent dip as a change in behavior.
Organizational membership creates another trap. A developer can appear in several organization reports while the enterprise total deduplicates that person. Adding organization user counts does not necessarily produce an enterprise-wide unique count. License assignments belong to the separate user-management API, as the metrics concepts guide explains.
For an operational report, compare tool consumption over the same period first. Assess delivery with outcome measures such as merged pull requests and time to merge. Higher model traffic alone does not establish better development outcomes.
Frequently asked questions
Does this capture every model used through OpenCode?
No. The new breakdown concerns traffic using Copilot as the model provider.
Can I add organization user counts to get the enterprise total?
Not reliably. Membership can overlap, while the enterprise total deduplicates users.
Why does the endpoint return links instead of the expected usage array?
It returns report download locations. Retrieve the files and check their reporting dates before processing the metrics.