How to estimate the carbon footprint of using ChatGPT, Copilot and other AI tools across a team?
For teams on seat licences who get no token logs from the vendor. Factor version soma-ai-ef-2026.11-dataset-v3.1.0. Factors last updated . Location-based grid averages, not renewable contracts. Estimates from published benchmarks.
Page updated
Part of the SOMA AI Emission Factors cluster.
Short answer
Take active users and, if the console has them, message counts from each tool's admin export. Convert messages to tokens with stated defaults, choose a model class and a region as declared assumptions, and apply the factor. For 50 active seats at the dataset's default of 30 messages per seat per month over a year, the SAEF estimate is 1 kg CO2e on a mid-size model from US East - N. Virginia, with a band of 0.5 to 2.3 kg.
What the admin consoles give
| Tool | What the admin side gives |
|---|---|
| ChatGPT Enterprise, Edu | Active users and messages per user in workspace analytics, with a per-user CSV export. See OpenAI's workspace analytics. For other ChatGPT plans, check what the admin console offers. |
| Microsoft 365 Copilot | Enabled users, active users and prompts submitted per user in the Copilot usage report of the Microsoft 365 admin center, exportable as CSV. No token counts. |
| Gemini for Workspace | A seat-licensed product of the same kind. We have not checked what its console exports, so ask your administrator. |
Steps
- Export active users. Pull the monthly count of active users, not licences, from each tool's admin console for the reporting period. Save the export with its date.
- Export messages where the tool offers them. If the console reports messages or prompts per user, use your own count. If it reports only active users, use the dataset's default messages per active seat per month and say so.
- Convert messages to tokens. Assume an input and an output token count per message from the dataset defaults, and raise the output tokens by the reasoning uplift if reasoning modes are on.
- Declare a model class and a region. The vendor rarely says. Pick the nearest published model class and the most plausible serving region, and write both down as assumptions.
- Apply the factor and keep the range. Multiply the tokens by the class and region factor, and report the dataset's uncertainty band on tokens beside the central value.
Worked example, a 50-person team
A team of 50 people has 50 licences for a chat assistant. Assume class B (mid-size) and US East - N. Virginia. The dataset's default input is 928 tokens and output 282 tokens per message, with output raised by 2.20 for the share of messages that use reasoning. So 50 seats times 30 messages times 12 months is 18,000 messages and 28 million billed tokens.
| Case | Messages | Central | Band |
|---|---|---|---|
| 50 active, default, US East - N. Virginia | 18,000 | 1 | 0.5 to 2.3 |
| Only 30 active | 10,800 | 0.602 | 0.3 to 1.4 |
| Heavy use, 325 per seat | 195,000 | 10.9 | 5.4 to 25 |
| 50 active, EU North - Sweden | 18,000 | 0.249 | 0.12 to 0.57 |
Counting active users rather than licences, and using your own message counts when the console has them, narrows the estimate more than any other step. The SOMA AI calculator runs the same arithmetic for several tools at once.
Common mistakes
- Counting licences instead of active users, which charges the inventory for seats that send nothing.
- Treating the default messages per seat as your own data. It is a benchmark from other organisations.
- Reporting the seat line as an exact figure instead of an estimate with a band.
Keep reading
- How do I calculate the carbon footprint of my company's AI usage?
- What is the carbon footprint of Microsoft 365 Copilot, ChatGPT Enterprise and other AI seats? Class and region side by side
- What should I ask an AI vendor for to report the carbon footprint of my usage? Ask the vendor for better data
- AI usage in Scope 3 and CSRD. Where the line is reported
- Methodology
