Skip to main content
Industry Insights

New VS Code Agents metrics: keep missing data separate from zero

New Copilot report fields measure the dedicated VS Code Agents window. Here is how to import them without turning unavailable data into zero activity.

Sean McLellan profile photo

Sean McLellan

Lead Architect & Founder

4 min read
A constructed diagram distinguishes absent or null data, a reported numeric zero, and a positive activity count.
Constructed diagramConstructed explanation of missing-data handling for the new fields, not GitHub product UI or observed account data.

GitHub added generally available usage metrics for the dedicated VS Code Agents window on September 11. Teams that export Copilot reports can now track daily active users, sessions, and user messages for that window. Before adding the fields to a dashboard, check how your importer handles missing values: GitHub says an absent or null field means the corresponding data is unavailable.

That matters because a common reporting shortcut replaces missing counts with zero. For these fields, that would turn “we do not have the data” into “no activity was reported.” A team could appear inactive because its report lacks data, rather than because nobody used the window.

What the new fields report

The GitHub announcement describes additions to both one-day and 28-day reports. At the enterprise and organization level, daily_active_vscode_agent_users is an optional count of unique users active in the dedicated window each day. The optional totals_by_vscode_agent object contains session_count and total_user_messages.

Enterprise-user and organization-user reports add an optional used_vscode_agent indicator, along with per-user session and message totals in totals_by_vscode_agent. These let an analyst distinguish an aggregate activity count from an individual user's reported use. Keep that distinction in column names and report labels.

The daily active-user field remains a daily measure even when it arrives in a 28-day report. Adding daily counts does not produce a count of unique people across the whole period: the same person can be active on several days.

Preserve missing values through the whole import

GitHub explicitly says that optional fields remain absent or null when the corresponding Agents-window data is unavailable. Our recommendation is to preserve that state from ingestion through display, rather than fixing it only in the final chart.

For a count field, handle an absent key or null as unavailable. Keep an explicitly reported numeric zero as zero, and keep a positive count as the reported value. Reject unexpected types through your normal validation path instead of silently converting them to numbers. For the user-level indicator, preserve an explicit false; it is different from a missing indicator.

In a database, that may mean a nullable numeric column plus enough retained source data to investigate the import. In a dashboard, show “Unavailable” or a gap for missing data and reserve “0” for a reported zero. If a summary combines records with and without data, identify its coverage instead of presenting the partial total as complete.

This is also a useful place for a small regression test. Test an absent field, an explicit null, an explicit zero, and a valid positive count. Test missing and false user-level indicators separately. These are importer test cases, not examples of observed GitHub account activity.

Keep the dedicated window separate from Agent Mode

The new metrics cover the dedicated VS Code Agents window only. GitHub says they remain separate from editor-window Agent Mode and generic usage rollups. A dashboard label such as “All VS Code agent activity” would therefore describe more than these fields measure.

A constructed diagram separates the dedicated Agents window, editor-window Agent Mode, and generic usage rollups.
Constructed diagramThe new optional fields describe the dedicated Agents window. Constructed explanation based on GitHub's announcement, not a product screenshot.

Use a label such as “VS Code Agents-window sessions” for session_count from this object. Keep any existing Agent Mode series under its own definition. Do not append the new values to a different activity series merely because both names contain “agent.”

This differs from the earlier Copilot app metrics definition change, which expanded existing rollups. Here, the documented change adds separate window-specific fields. The immediate engineering task is to ingest those fields without losing their availability state or their scope.

Check access before diagnosing a blank report

Access requires an eligible role and an enabled Copilot usage metrics policy. GitHub lists enterprise owners and billing managers, organization owners, and custom organization or enterprise roles with the View Copilot Metrics permission. Administrators can start with the linked Copilot usage metrics API documentation.

Those requirements are worth checking, but an unavailable field alone does not identify the cause. The announcement does not establish why a particular organization's data is missing, nor does it promise historical backfill. Keep the raw report and the report period when investigating instead of assigning a cause from the chart.

Before shipping the dashboard update, trace one unavailable value and one reported zero from the source report to the screen. They should still look different at the end. That simple check is more useful than a polished adoption chart built on values your importer invented.

Reporting integration help

Keep missing data out of your activity totals

BaristaLabs can help review the import logic and dashboard labels in your reporting workflow. Start with the fields that currently turn missing values into zero.

Share a redacted field mapping or a description of the report you need to fix.

Practical AI Workflow Notes

Want more practical AI operations ideas?

Get short notes on applying AI inside real small-business workflows — from document handling and customer follow-up to internal reporting, compliance, and automation guardrails.

A useful next step if you’re still exploring and not ready to request a 20-minute workflow assessment.

Occasional emails. Practical workflow guidance only. Unsubscribe anytime.