Get started with AIEDS
Compute a disclosure, carry the required record, and validate it against the published schema.
1. Compute energy, then carbon
Energy first, carbon derived from it. Never the other way round.
energyWh = inputTokens / 1000 * modelInputWhPer1k
+ outputTokens / 1000 * modelOutputWhPer1k
energyWh = energyWh * providerPue
gCO2e = energyWh / 1000 * gridIntensityGPerKWh
Every coefficient, PUE and grid-intensity value you use must identify its methodology version and its evidence source. Do not blend disclosures from different impact model versions in one aggregate.
2. Record what a disclosure has to identify
recordId stable id for this record
subjectKind what was measured
subjectName which one
scope device, usage, inference, or training
windowStart start of the time window
windowEnd end of the time window
energyKWh Level 1, energy
gCO2e Level 1, carbon
gridIntensity and region, when known
confidence the level the evidence supports
methodologyVersion 2.0.0
generatingSource what produced this record
generatedAt timestamp
Include compute provenance when you have it: tokens, GPU seconds, FLOPs, hardware.
3. Derive comparisons from Level 1, not instead of it
Tree-Time uses one Mature Reference Tree at 21,000 g CO2e per year. Any 22 kg figure is superseded 1.x prose.
treeTimeMinutes = gCO2e / 21000 * 525600
4. Render the required copy, exactly
Every rendered disclosure states this:
Energy and carbon are modeled estimates.
Tree-Time and equivalents are educational comparisons.
Never describe an equivalency as an offset, credit, certification, verified outcome or restoration result. Use the confidence level the evidence supports, and never upgrade it because an estimate looks plausible.
5. Validate the record against the published schema
The standard requires a structured record to validate against a schema before release. That schema is published here, beside the prose, and byte-locked the same way:
- /source/aieds.schema.json, JSON Schema draft 2020-12, methodology 2.0.0
- sha256
40104c58b60b, pinned in /source/source-lock.json
Download it and compile it. This is the whole integration:
npm install ajv ajv-formats
curl -fsSL https://randomknights.xyz/source/aieds.schema.json -o aieds.schema.json
import Ajv2020 from 'ajv/dist/2020.js';
import addFormats from 'ajv-formats';
import { readFileSync } from 'node:fs';
const ajv = new Ajv2020({ strict: false });
addFormats(ajv);
const schema = JSON.parse(readFileSync('aieds.schema.json', 'utf-8'));
const validate = ajv.compile(schema);
if (!validate(record)) console.error(validate.errors);
The schema's $id is
https://standard.rand0m.ai/aieds/v2/aieds.schema.json.
That host does not serve it yet. A JSON Schema
$id is an identifier, not a locator: a schema loaded from
a local file validates with an $id that does not resolve,
because nothing dereferences it. Local file validation is the
supported path today, and when the host is stood up remote fetch will
work with no change to the schema.
A record stamping a 1.x methodologyVersion is rejected.
Methodology 1.x is superseded and must not be used for new
disclosures, so a v2 schema that accepted a v1 record would be
certifying nonconformance.
provenance is optional and carries where the FACTOR came
from: measured, vendor-published, class-estimated, or unknown.
confidence is a different ladder and says how the ENERGY
figure was arrived at. A record may carry both, and neither implies the
other.
The coefficients are yours
The standard fixes the method and the record contract. The numbers you
put into modelInputWhPer1k, providerPue and
gridIntensityGPerKWh are yours to source and to evidence,
and every one of them must identify its methodology version and its
evidence source.
Cite methodology 2.0.0 together with the sha256 of the source bytes
at /source/AIEDS.md,
8da923acee51.