Fewer tokens, less energy. And the numbers to show it
Every loop stopped and every call moved to a lighter model is energy datacenters don’t use. GuardrailX estimates it from each call’s tokens, in kWh, CO₂e and water, with a range and a public methodology.
Free plan forever: 5,000 requests a month, no credit card.
Agents use energy. Nobody says how much.
Model usage ends up in sustainability reports, but providers don’t publish how much energy each model and each call uses.
Reports ask for numbers
ESG and Scope 3, yours and your customers’: AI has to show up too, with a stated method.
Provider data isn’t there
There are no public measurements per model and per call: estimates are needed, done properly.
Numbers without a method
A figure without a range and without a methodology version doesn’t stand up to scrutiny.
How it’s computed
From each call’s tokens, not from dollars: price and energy don’t track each other well, with discounts, margins and cache.
-
1
It starts from tokens
A prompt token weighs 5% of a response token, which the model writes one at a time; a token read from the cache 1%.
-
2
It puts the model in a class
Mini, small, medium or large, each with its energy per 1,000 response tokens, datacenter included.
-
3
It counts what you avoided
Lighter models chosen by rules and Autopilot, reduced reasoning, changes made in your code, loops stopped. Comparison tests are subtracted.
-
4
It moves to CO₂e and water
0.35 kg of CO₂e per kWh, the average grid intensity, with a range from 0.1 to 0.45 kg; 1.1 litres of water per kWh for cooling.
-
5
It exports for reports
A CSV with one row per day, agent and item: Wh, kWh and CO₂e with low and high range, litres of water and methodology version.
What’s in the export
One row per day, agent and item, with the same columns as the Overview card. Avoided items are positive, tests negative: their sum is the card’s net figure.
- The type says whether an item is measured or attributed (only changes in your code).
- Every number has its low and high range.
- Every row carries the methodology version, to cite in the report.
# One row of the CSV export
day = 2026-10-20
agent = agente-fatture
item = modello
type = misurato
requests = 412
wh = 128.4
kwh = 0.1284
kwh_low = 0.0514
kwh_high = 0.3852
co2e_kg = 0.0449
co2e_kg_low = 0.0051
co2e_kg_high = 0.1733
water_litres = 0.1412
methodology_version = 1
Model classes
The values sit within the published orders of magnitude: Google (about 0.24 Wh for a median Gemini prompt, 2025), Epoch AI (about 0.3 Wh for a GPT-4o response) and the EcoLogits methodology for how energy grows with size.
| Class | Wh per 1,000 response tokens |
|---|---|
| Mini (nano, lite, 8-billion-parameter models) | 0.08 |
| Small (mini, flash, haiku) | 0.2 |
| Medium (the base models) | 0.6 |
| Large (opus, pro, the largest reasoning models) | 2 |
The items, and what it isn’t
These are estimates, not measurements: providers don’t publish how much energy each model uses. That’s why every number has a range and the methodology has a version number.
- It isn’t a certified environmental claim and doesn’t replace the provider’s data. In a report, say it’s an estimate and cite the version.
- Calls stopped by limits and pauses don’t count: the work may have been redone later.
- Water is datacenter cooling only, not the water used by power plants.
| Item | How it’s counted |
|---|---|
| Lighter model · measured | Calls routed to another model: the same tokens with the requested model minus those with the model used. |
| Less reasoning · measured | Rules on the same model with less reasoning: the fewer reasoning tokens, from the comparisons’ pairs. |
| Changes in your code · attributed | Your code now asks for the model or reasoning a rule or a suggestion made it use. |
| Loops stopped · measured | Each call stopped by the anti-loop counts as a typical call of that model in the project. |
| Comparison tests · subtracted | Calls to the candidate and the judge use energy too. |
Questions about environmental impact
Is it a certified environmental claim?
No. It’s an estimate with a public, versioned methodology, and it doesn’t replace the provider’s data. If you use it in a sustainability report, say it’s an estimate and cite the methodology version, at the bottom of the card and in every export row.
Why estimates and not measurements?
Because providers don’t publish the energy of each model and each call. It starts from tokens, which are measured, and from the model’s class; the range accounts for the uncertainty on energy, from 0.4 to 3 times the estimate.
Can I use it for Scope 3?
You can use it as a stated basis for the part about model usage: the CSV export gives energy, CO₂e with range and water per day and agent, yours and your customers’. If the tool you use for Scope 3 asks for supplier data, this remains an estimate.
Do calls blocked by limits count as savings?
No: the work may have been redone later. Only loops stopped, lighter models, reduced reasoning and changes made in your code count.
If I move the model into my code, do I lose the savings?
No. When at least 20 calls of a rule’s group already arrive changed, GuardrailX notices and from that day counts them as «Changes in your code», an attributed item. It stops when the code changes model again or the previous model is retired.
What if a model’s class is wrong?
Let us know: the class is corrected in the price list, and from there it applies to everyone.
Related features
Autopilot
Tries cheaper models on your calls by itself, measures quality and moves traffic a little at a time, rolling back if needed.
Loop blocking
Spots the same request repeated within seconds and blocks it, with a clear error your code can handle.
Model routing
Rules per model and per agent: send work that doesn’t need the most expensive model to a cheaper one, with automatic fallback.
Put a cap on spending before the next loop.
Start on the Free plan: 5,000 requests a month, no card and no end date.