Environment · Article 9
Energy, measured. Not claimed.
Our constitution requires every inference to report its measured power draw and estimated carbon footprint. This page is the public ledger for that requirement: the actual reading, the method behind it, the arithmetic that follows, and — plainly — the parts we have not automated yet.
Measurement live Per-inference attribution partial Grid-intensity source manual
Latest measured reading
Read directly from the hardware power rails of NGARi Node-01 (NVIDIA Jetson AGX Orin, 64 GB), sampled every five seconds from tegrastats. The reading below was taken while a training job and the public preview were both active — a loaded machine, not an idle one.
VDD_GPU_SOC + VDD_CPU_CV + VIN_SYS_5V0
Sample taken 2026-09-22 20:54 EDT. Source: /run/ngari-tegrastats.json, written by tegrastats-reader.timer every five seconds on the device. Load context: an active distillation training run plus the public preview API.
How it is measured
tegrastatsreads the module's on-board power monitors — the same rails NVIDIA uses to enforce Jetson power modes.- Every five seconds the reader parses three rails:
VDD_GPU_SOC,VDD_CPU_CVandVIN_SYS_5V0, sums them, and writes total watts plus temperatures and RAM to/run/ngari-tegrastats.json. - The inference engine's hardware abstraction layer exposes the same value at runtime via
get_power_consumption(), so application code can attribute energy to work rather than guess it. - No power figure on this page is modelled, sampled from a vendor datasheet, or inferred from a cloud provider's disclosure. Anything not measured is labelled as derived below.
What "measured" does not mean. This is board-level input power from the module's own monitors, not a wall-plug meter. It excludes AC/DC adapter losses, and it does not yet separate the energy of one inference from another process on the same board.
Energy intensity — derived, with the arithmetic shown
We have one throughput figure we can stand behind today: our distilled 1.5B model sustains roughly 39 tokens/second on Node-01, documented in the serving code. Pipelined at the measured 37.7 W, the arithmetic is:
| Quantity | Arithmetic | Result |
|---|---|---|
| Time for 1,000,000 tokens | 1,000,000 ÷ 39 tok/s | ≈ 7.12 hours |
| Energy for 1,000,000 tokens | 7.12 h × 37.7 W | ≈ 268 Wh (0.27 kWh) |
| Energy per token | 268 Wh ÷ 1,000,000 | ≈ 0.97 joules |
| Tokens per kilowatt-hour | 1,000,000 ÷ 0.268 kWh | ≈ 3.7 million |
| Carbon, at 0.39 kgCO₂e/kWh | 0.268 kWh × 0.39 | ≈ 105 gCO₂e |
The carbon row uses the US grid average emission factor (0.39 kgCO₂e/kWh) as a stated assumption. Article 9.2 requires using measured or regional grid intensity where that data is available; sourcing it automatically is on the roadmap below, not in production. Change the factor and the carbon figure changes proportionally — the energy figure above does not.
What governance requires vs. what is automated
We would rather publish an accurate gap than a flattering claim. Article 9 and Tech Charter §3 require four things; here is the honest status of each.
| Requirement | Status | Detail |
|---|---|---|
| 9.1 Measure power draw of every inference, in real time | Live | Board power is sampled every 5 s and exposed to the runtime through the HAL. |
| 9.1 Record energy cost in the audit log, per inference | Partial | Inference attestations are signed and persisted with model, device, mode, token count, duration and network bytes. Energy is not yet a field in that record. This is the single largest compliance gap on this page. |
| 9.2 Estimate carbon footprint where source data is available | Partial | Derived above from a stated grid factor. Automatic regional grid-intensity lookup is not wired. |
| Tech Charter §3 Gate inference if the power monitor is unavailable | Not enforced | The measurement path exists but does not currently block execution when it fails. Treating energy transparency as a hard gate rather than optional logging requires a kernel change. |
| 9.2 Surface energy in system reports | Live | This page is generated from the device's own telemetry rather than a marketing figure. |
Closing the gap
- Add
energy_joulesandavg_wattsto the signed inference attestation. The meter already records duration, tokens and network bytes; the power value is available at the same moment. This closes the main 9.1 gap. - Attribute board power to the inference window. Sample power for the duration of each request rather than the board's rolling state, so heavy co-tenant load stops contaminating the number.
- Wire a regional grid-intensity source so 9.2 uses measured intensity instead of a hard-coded national average.
- Make the power monitor a gate, not a log, per Tech Charter §3 — refuse inference when energy cannot be measured.
- Publish a monthly energy ledger for the hosted preview and API fleet, with the same method shown here.
Until items 1–4 ship, treat hosted-preview energy figures as device-level measurements and treat per-request energy as unavailable rather than estimated. We would rather you know which is which.
Verify it yourself
Sovereign energy reporting is only meaningful if you can reproduce it. On any NGARi device you can:
# board power rails, updated every five seconds
cat /run/ngari-tegrastats.json
# the raw source, sampled live
tegrastats --interval 1000 | head -1
# outbound bytes since boot (loopback excluded) — the air-gap check
cat /proc/net/dev
On NGARi+ you can run all of the above with the network cable unplugged and get the same energy numbers, because inference never depended on the network in the first place. That is the point of measuring on your own board instead of trusting a provider's dashboard.
Own the meter.
You cannot audit energy you do not control. NGARi+ puts the power monitor, the model and the audit log on the same machine — yours.