Skip to main content

AI Usage > Aggregation level

Written by Tom Williams

Dataset: AI Usage

Entity: AI Usage Measurement

Field ID: aggregation_level

Type: Select list

Description: What the measurement aggregates over. Possible values are:

  • USER the measurement covers one actor.

  • REPOSITORY the measurement covers one repository.

  • ORGANIZATION the measurement covers the whole account.

  • ENTERPRISE the measurement covers a whole enterprise, deduplicated across its organizations: it is not the sum of their ORGANIZATION measurements.

Note: Aggregation levels are not interchangeable and must not be aggregated together. See Definition: AI Usage Record Structure.

Source: Calculated

Transformation logic: Assigned from the provider report a record comes from.

App Mapping

GitHub Copilot

USER, REPOSITORY and ORGANIZATION on an organization's Copilot Metrics project; USER, REPOSITORY and ENTERPRISE on an enterprise's. GitHub publishes a separate report at each level

Claude Platform

USER for Claude Code usage; ORGANIZATION for API traffic that carries no account

Cursor (coming soon)

USER only

OpenAI Platform

USER where the API key belongs to a person; ORGANIZATION otherwise

OpenAI Codex Enterprise

USER for per-user rows; ORGANIZATION for workspace rows and code review

Reporting Use Cases

The Aggregation level field is one of the two fields that must appear in almost every AI usage filter. It says whose activity a record counts.

  • Always filter on one value: Mixing levels adds a day's per-user counts to that same day's organization total. A report that does this roughly doubles every figure.

  • Per-developer reporting: Filter to USER. This is the level that carries an actor, and the one from which active developer counts are derived.

  • Repository impact: Filter to REPOSITORY. Only GitHub Copilot publishes this level, and it carries pull request measures only - no tokens, no actor, no model.

  • Organization totals: Filter to ORGANIZATION. These are published by the provider rather than summed from user records, so they will not exactly match the sum of the USER records for the same day.

  • Beware overlapping organizations: Copilot attributes organization usage by membership, so a person in several organizations is counted in each. Do not sum organization records across several Copilot integrations.

  • Enterprise totals: Filter to ENTERPRISE for one GitHub Copilot figure across all the organizations of an enterprise, with each person counted once. Only GitHub Copilot publishes this level, when it is imported at enterprise level.

  • Account totals across providers: Filter to both ORGANIZATION and ENTERPRISE to compare a GitHub enterprise with other providers' account totals, and make sure no GitHub organization of that enterprise is also imported, or its activity is counted twice.

Did this answer your question?