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

27 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AAC sub-spec — The receipt
Normative refinement of [SPEC §9](../SPEC.md). 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.