Skip to content

Methodology Change Log

Release: 2026-11-12 Registry revision: 3 (unchanged — no coefficient moved) Canonical truth: constants.json This file: the methodology release log — it records what the shipped estimation methodology does and when its behaviour changed. Coefficient values and their provenance belong to constants.json, whose structured corrections array remains the change log for coefficient moves (MDR-13-15).


2026-11-12 — METH-14-01: energy-first estimator replaces the counter-times-constant heuristic

  • METH-14-01 | action: released | entity: estimate_ai_footprint methodology — The estimator moved from a counter-times-constant heuristic with a tree-equivalence surface to an energy-first model driven by registry revision 3, and every tree-equivalent attribution was deleted from the tool's input schema, output schema, text summary and every shipped copy surface. Rationale: the retired gram-per-tier constants were never energy measurements, and the tree equivalence implied a compensation claim; Directive (EU) 2024/825 (ECGT, applied 27 September 2026) bans offset-based neutral/reduced/positive product claims, so the estimate now reports labelled energy and CO2e only, and the plant-trees invitation is a separate, quantity-free climate contribution.

Old behaviour

A counter-times-constant heuristic: 1.5 g CO2e per standard text response, 15 g per complex task, 25 g per generated image; a suggested-tree count derived from a 50,000 g per-tree sequestration equivalence (33,333 standard queries per tree, with a suggestedTrees ≥ 1 floor on any non-zero total); a tree-equivalence string in the output; an externalQueries input converting a bulk volume of standard queries into trees; and a donation link carrying a tree-quantity query parameter. For {100 standard, 10 complex, 2 images} the tool returned 350 g CO2e.

New behaviour

An energy-first estimator over this registry: per token entry (freshIn × C_in) + (cachedIn × C_in × 0.07) + (tokensOut × C_out), summed per row, multiplied once by the 1.3 datacenter uplift, converted at 458.29 g CO2e/kWh; a flat-rate fallback of 0.047 Wh per standard response, 0.47 Wh per complex task and 2.907 Wh per image when no token data exists; a hardcoded PETIT / MOYEN / MASSIF / GÉNÉRIQUE routing table (family first, then total-parameter parsing, then the conservative GÉNÉRIQUE fallback with a disclosed routing basis); one exclusive text lane with an explicit disclosure when the response counters are dropped; images additive in both lanes; every figure labelled with its mode, its size bucket where the token lane routed it, and client_asserted provenance; and the tree surface deleted entirely, replaced by a quantity-free action link. The same {100 standard, 10 complex, 2 images} fixture now returns 15.214 Wh / 6.972424 g CO2e.

Affected surfaces

All flipped in one atomic commit: workers/mcp/src/index.ts (schema, handler, get_methodology, INSTRUCTIONS); workers/mcp/src/energy-model.ts (new); workers/mcp/src/handlers.test.ts; workers/mcp/src/landing-page.ts and workers/mcp/src/root-page.test.ts; scripts/live-smoke.sh; scripts/check-config.mjs and test/e2e/config-drift.test.ts; test/e2e/skill-mirror-block.test.ts (new); README.md; plugin.json; skills/climate-assistant/SKILL.md; .claude/skills/{footprint,plant-trees}/SKILL.md; plugins/bloomy-earth/skills/{footprint,plant-trees}/SKILL.md; .opencode/commands/{footprint,plant-trees}.md.

Provenance

All figures come from constants.json revision 3 / version 2026-11-12 — no coefficient changed with this release, and the registry stays at revision 3. Bucket routing follows MDR-13-16 (the mixture-of-experts anchor sits in MOYEN; MASSIF is total-parameter-keyed), and the C_in coefficients keep their MDR-13-17 prefill-fraction HYPOTHESIS basis. MDR-13-15 and registry decision D-28 keep owning coefficient changes: a shipped coefficient moving ≥ 5 % publishes a new registry version with its own dated note, recorded in the registry's corrections array — never here.

What did not change

The seven-tool surface, the four-hint annotation matrix, the two-call write-confirmation floor, the scope gates, the auth worker and every coefficient value.