Our footprint reports the full lifecycle of your AI usage, converged with the Watershed corporate AI emissions framework. We keep our four-way token engine as the innermost layer, then widen the accounting boundary around it in two steps. This page documents the math, the sources, and the uncertainty behind every CO₂ number on your dashboard.
Earlier versions reported only active GPU silicon. Watershed's corporate methodology counts the whole facility and the hardware lifecycle, so their number is larger. Rather than replace our engine with a flat blended factor, v1.2 reports three distinct, inspectable layers — you can see exactly where each gram comes from, and the innermost layer is still our own measured execution energy.
Our engine
Active execution
Per-token joules from the four-way token split (prefill, decode, cache creation, cache read), through PUE and grid intensity.
GHG Scope 2
Facility operational
Active energy scaled by host overhead (×1.18) and cluster utilization (÷0.3) — the server and idle-fleet cost of serving your request.
GHG Scope 3
Full lifecycle
Operational plus embodied hardware (0.02 kg/MTok) and amortized model training (0.008 kg/MTok), carried as its own line — never blended in silently.
Your dashboard headline is Layer 3, the full lifecycle footprint. Layers 1 and 2 are persisted alongside it so any number can be inspected down to the active silicon.
Per request, we split tokens into categories, compute their active energy, then widen to operational and lifecycle. Cached input tokens are near-zero cost because the provider skips the KV-cache rebuild.
Categorize tokens
Split each event into uncached_input, cached_input, cache_creation, and output. Anthropic and OpenAI report these separately; OpenRouter doesn't break out cached, so all input is treated as uncached (conservative default).
Layer 1 — active energy → CO₂
Active energy (J) = uncached × prefill_J + cache_creation × prefill_J + cached × cached_J + output × decode_J, then layer1_kg = J ÷ 3,600,000 × PUE × grid. Prefill and decode are separate because decode is autoregressive and prefill is parallelizable.
Layer 2 — facility operational (Scope 2)
layer2_kg = active_kWh × 1.18 ÷ 0.3 × PUE × grid. Host overhead accounts for the whole server beyond the accelerator; dividing by cluster utilization allocates the idle fleet capacity that has to exist to serve you.
Layer 3 — full lifecycle (Scope 3)
layer3_kg = layer2_kg + (embodied + training) × tokens ÷ 1e6 with embodied = 0.02 and training = 0.008 kg per million tokens. Training is carried as its own component so it is always visible, never folded invisibly into the operational number.
Uncertainty — IPCC Tier 1 RSS
Combined uncertainty is the root-sum-of-squares of activity-data and emission-factor uncertainty: √(20² + 20²) ≈ 28.28%. Bounds are layer3 × (1 ± 0.2828). These bands are real and material — energy-per-token varies with hardware generation, batch size, and inference framework.
Each model is matched to a tier by pattern. Active energy comes from published GPU power draw for representative deployments; reasoning tiers get a higher decode coefficient because extended-thinking chains amplify output-side compute. PUE and grid intensity vary by provider fleet.
| Tier | Prefill (J/tok) | Decode (J/tok) | Cached (J/tok) | PUE | Grid (kg/kWh) |
|---|---|---|---|---|---|
Small / Distilled small | 0.100 | 0.200 | 0.0100 | 1.20 | 0.420 |
Medium / Flagship medium | 0.300 | 0.500 | 0.0300 | 1.20 | 0.420 |
Large / Frontier large | 0.500 | 0.900 | 0.0500 | 1.20 | 0.420 |
Reasoning (extended thinking) reasoning | 0.500 | 1.800 | 0.0500 | 1.20 | 0.420 |
Gemini Flash gemini_flash | 0.080 | 0.500 | 0.0080 | 1.09 | 0.345 |
Gemini Pro (reasoning) gemini_pro_reasoning | 0.350 | 2.500 | 0.0350 | 1.09 | 0.345 |
Gemma (open weights) gemma_open | 0.040 | 0.160 | 0.0040 | 1.09 | 0.345 |
Google embeddings google_embedding | 0.004 | 0.000 | 0.0004 | 1.09 | 0.345 |
We match each model name against these glob patterns at calculation time. Unknown models fall back to medium as a conservative default. If a model you use isn't covered, let us know and we'll add it.
gpt-4o-mini*gpt-3.5-turbo*gpt-5-nano*claude-haiku*claude-3-haiku*text-embedding-3-small*gpt-4o*gpt-5-mini*claude-3-5-sonnet*claude-sonnet*text-embedding-3-large*gpt-4-turbo*gpt-4*gpt-5*claude-3-opus*claude-opus*o1*o3*o4*claude-3-7-sonnet*gemini-3.5-flash*gemini-3-flash*gemini-2.5-flash*gemini-2.5-flash-lite*gemini-3.1-pro*gemini-2.5-pro*gemma-4-*gemma-3-*gemma-2-*codegemma*gemini-embedding-2*gemini-embedding-001text-embedding-005text-embedding-004One million tokens on the medium tier (GPT-4o class): 750k uncached input, 250k output, no caching. PUE 1.20, grid 0.42 kg/kWh.
The headline your dashboard shows for this workload is the Layer 3 figure, ~0.22 kg CO₂ per million tokens, with the active and operational layers inspectable underneath it.
The dashboard also estimates the water behind your AI use: water a data centre uses on site, mostly for cooling, and water power plants use to make its electricity. It is an estimate only, and it is never part of the signed Footprint Statement, receipts or audit packs.
Usage counted in tokens
Water = active_kWh × (WUE + PUE × grid_water). Here active_kWh is the energy the chips use to run your tokens, the Layer 1 energy above. PUE (power usage effectiveness) is the energy the whole data centre uses for each kWh its servers use: 1.20 on most tiers and 1.09 on Google's. That gives 1.8 + 1.20 × 2.5 = 4.8 litres per kWh, or 4.525 on Google's tiers.
Microsoft 365 Copilot prompts
Copilot is counted in prompts, and the energy we estimate for a prompt already includes the whole data centre. Multiplying grid water by PUE again would count PUE twice, so WUE is divided by a reference PUE of 1.2 instead: facility_kWh × (WUE ÷ 1.2 + grid_water), which is 1.8 ÷ 1.2 + 2.5 = 4.0 litres per kWh.
The two start from different energy
For tokens, water follows the chip energy (Layer 1). For Copilot prompts, it follows the energy of the whole facility.
Uncertainty
We keep a low and a high value 50% either side of each estimate: water × (1 ± 0.5). For Copilot prompts the band is applied to the low and high energy of each prompt, so the range is wider. The dashboard shows the central estimate.
WUE, grid water and the 50% band are CrbonFree's own values, the same for every provider.
The sentence on the water card compares the estimate with one thing, and the thing changes from day to day: days, months or years of one person's water use at home (opens in a new tab) (82 US gallons, about 310 litres, a day), an average shower (opens in a new tab) (18 US gallons, about 68.1 litres) or a toilet flush (opens in a new tab) at the US federal standard (1.6 gallons, about 6.06 litres), all from US EPA WaterSense. A very small amount is compared with a 500 mL bottle.
The layered boundary, factor values, and uncertainty approach draw on the Watershed framework, the GHG Protocol, IPCC guidance, and peer-reviewed research.