How we estimate energy
Photosynth converts your agent's token usage into an estimate of the electricity consumed by AI inference, then offsets it in green-energy units (kWh) on Arkreen. We offset energy, not carbon — so there is no grid-carbon-intensity step and no region guesswork. Everything below is the whole method; you never need to read the code.
The formula
e_out is the energy per output token (in watt-hours) for a given model. We sum over every model used in the
period (a session often mixes a main model with smaller sub-agent models), then divide by 1000 to get kilowatt-hours.
Why output tokens
Generation (decode) dominates inference energy: producing each output token requires a full forward pass that streams the entire model's weights out of memory — it is memory-bandwidth bound. Processing your prompt (prefill) runs in parallel and is far cheaper per token. So counting output tokens captures the bulk of the energy. We deliberately avoid a pure FLOPs estimate, because real inference utilization is low (~10%) and FLOPs-based math systematically underestimates decode energy. v1 counts output tokens only.
Per-model coefficients
These are the v1 values. They are computed server-side, so they can be refined without you updating anything, and re-reviewed whenever new models ship or better measurements appear.
| Model | e_out (Wh / output token) | Basis |
|---|---|---|
| Opus (4.6 / 4.7) | 0.0004 | Anchored to Epoch AI's GPT-4o estimate (~0.3 Wh / ~500 output tokens ≈ 0.0006, incl. overhead); conservative mid-value for a frontier model after efficiency gains. |
| Sonnet (4.5 / 4.6) | 0.0002 | ~half of Opus (smaller active-parameter footprint). |
| Haiku (4.5) | 0.00007 | Small model; near the ML.ENERGY measured open-model range (~0.15–0.3 J/token). |
| unknown / new | 0.0002 | Fallback for models not yet in the table (and logged for review). |
A worked example
Suppose a heavy period generates 100,000 output tokens on Opus:
That is roughly the energy of running a laptop charger for a bit under an hour — small by design. Arkreen offsets down to milliwatt-hours, so even tiny amounts are settled exactly, with no rounding up.
What this is — and isn't
It counts your current session only, weighted toward generation, as a sample estimate:
it under-counts parallel sessions and later usage in the period. It is symbolic participation, not precise
metering. Every parameter (e_out, whether a prefill term is added) is public and adjustable. Hardware
manufacturing (embodied) carbon is out of scope, because we offset energy in kWh rather than carbon.
Sources
- Epoch AI — How much energy does ChatGPT use? (per-query / per-token anchor)
- Google 2025 — Measuring the environmental impact of AI inference (cross-reference)
- ML.ENERGY Leaderboard (measured open-model energy per token)
Privacy
We only ever transmit token counts, model names, and a time range — never your prompts, conversations, file paths, or code.