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:

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.