open-standards/aac/spec/receipt.md
Transaction Science ba1212361f Add aac, map, sandbox standards; catalog the standards family
Commit the previously-untracked standard directories and catalog them in the
root README alongside proof:

- aac/    — communication cargo class: portable boards + a ten-level
            offline-first cascade (Apache-2.0 code / CC-BY-4.0 spec).
- map/    — geospatial cargo class: range-requestable signed tilesets +
            an F0–F4 fidelity cascade (Apache-2.0 code / CC-BY-4.0 spec).
- sandbox/— isolated, metered, attested execution across the heterogeneous
            compute fabric (Apache-2.0 code / CC-BY-4.0 spec).
- jouleclaw-otel-authz, jouleclaw-trust — new jouleclaw reference crates.

Root README now lists aac, map, sandbox, and proof in the catalog, the tree,
and the contribution guide.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-07 17:04:36 -04:00

2.2 KiB
Raw Permalink Blame History

AAC sub-spec — The receipt

Normative refinement of SPEC §9. Reference: aac_core::{AacReceipt, AacStore}.

The receipt is where the family's energy-transparency doctrine meets AAC's free-forever doctrine — and where they constrain each other. Every operation MAY report its energy cost; no operation may turn that cost into a charge.

1. Two-part energy

A receipt carries an energy cost in microjoules expressed as two parts — measured + estimated — where measured is what hardware instrumentation actually read and estimated is what a model or constant supplied for the unmeasured remainder. Either part MAY be zero. The split is honest: an implementation MUST NOT report estimated energy as measured.

2. Provenance tag

Every reading carries a provenance tag consistent with the family vocabulary: hardware-measured, model-based, or a coarse estimator. A reading tagged hardware-measured MUST carry a non-zero measured part; a reading tagged estimator MUST NOT claim a measured figure. The tag exists so the standard never claims accuracy the platform cannot deliver.

3. Never billed (normative)

The receipt exists for transparency only. An implementation MUST NOT:

  • convert a receipt into a charge, an invoice, or a balance decrement;
  • gate, refuse, degrade, or rate-limit any operation on the basis of accumulated energy;
  • require an account, a payment instrument, or a positive balance to produce a receipt or to perform the operation it describes.

"This session used 3.2 mJ" is a fact shown to a user, a clinician, or a funder who wants to understand device load. It is never a bill. This is the AAC standard's hard line: in every other cargo class the receipt MAY underpin metered settlement; here it MUST NOT. Communication is not a metered good.

4. Session estimation

AacCascade::estimate_session_budget_uj(duration_minutes, utterances_per_minute) gives a coarse forward estimate of a communication session's energy, assuming the L0–L2-dominated mix the offline invariant guarantees (cache/lookup ~70%, local prediction ~25%, context ~5%). It is a planning aid for battery and load — not a quota, and not a ceiling that may stop a user mid-sentence.