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

EkWh = Σmodel ( output_tokens[model] × e_out[model] ) ÷ 1000

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.

Modele_out (Wh / output token)Basis
Opus (4.6 / 4.7)0.0004Anchored 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.00007Small model; near the ML.ENERGY measured open-model range (~0.15–0.3 J/token).
unknown / new0.0002Fallback 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:

100,000 × 0.0004 ÷ 1000 = 0.04 kWh

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

Privacy

We only ever transmit token counts, model names, and a time range — never your prompts, conversations, file paths, or code.

See it live on the dashboard →