Bytes, quality and the first presentation, per stage.
The native tool's figures, computed in this tab.
A staged title is a base and refinement layers, each its own object. The staged-measurement method says how to state what such a title costs and gives: the bytes of every object, counted the same way everywhere; the quality of every prefix as exact integers; the bytes a sink needs before it can present anything; what refinement costs beside coding in one layer; and what a session presented, sealed in a signed claim.
This page runs the reference implementation's measurement code, compiled to WebAssembly, on the titles of the method's corpus. It fetches each object as binary bytes, presents every stage through WAI's own sink, and requires each figure it computes to equal, byte for byte, the corpus's golden figures, which the native tool wrote.
1 · The title's objects, counted
Under the method, an object is counted only when WAI checks the format of every payload it carries,
and its counted bytes are then the envelope's own: header, manifest and payload, computed here by the binding's
countObject under the registered framing. A payload stored as a JSON or
base64 text of its bytes is never counted, neither as stored nor as an estimate (§3.2). A file whose SHA-256 is not
the published one is refused before it is used.
| Object | Role | Units | Header · manifest · payload | Counted bytes | Content hash | Published |
|---|
2 · Each prefix, decoded in this tab
The base is decoded, and each layer applied, by wai::staged::StageSink compiled to WebAssembly.
Every output is checked against the digest the corpus's fixture tool wrote from its own encoder
(expect.json). The quality figures are the evaluation's integers: the sum of squared differences
(SSE) and, for pictures, the structural similarity of the luma in Q32 (232 is 1).
| Layers | Bytes of this stage | Bytes of the prefix | Units at this stage | Against the source | Against the final prefix | Outputs checked |
|---|
PSNR = 10·log10(255²·N / SSE) and SNR = 10·log10(Σ reference² / SSE) are derived from the SSE for display; the figures are the integers. A stage below a layer that changes the shape has no figure against the final shape.
What the sink reported
3 · Bytes and time to the first presentation
Live fetch is the time from this page's first request for the title to the frame callback after the base was presented on the page.
The delivery simulator
A virtual clock: the method's simulator (Appendix B) over a delivery plan. Change the link, the sender's schedule and carriage, the refinement timeout, or the sink's decode workers and order. Each unit's stall is when its base is presented under the plan, less when it is presented with no refinement at all. Simulated, not measured.
delivered dropped abandoned (a reset took bytes already sent) a base presented a refinement presented. Each bar runs from the object's first byte sent to its last byte arriving.
4 · What layering costs
Each point is one way to deliver this title: the staged set (the base and every layer), and single-layer references, each one layer coded straight from the base. Counted bytes include the base. The points are shown side by side; the method states no ratio between them.
| Point | Counted bytes | Against the source |
|---|
5 · Deduplication
Over every object the title references, a reference's base counted once more for each reference. A store keeps one copy of each content.
6 · Energy
Unmetered in the browser. This page reads no energy counter, so the session claim below states no energy
figure: its energy is null, never 0. A figure is published only from a dated measurement
record, with its class, its verdict and its label, under the method's §8; no such record is published with this
version of the page.
7 · The session, signed in this tab
While it presented the title, the page recorded the session with the binding's SessionHandle: each
decoder, the object it decoded and the unit its object starts at, each presentation with its output's digest, and
the bytes of every object of the title it received, a refused one included, so the session accounts for every byte
transferred. Bytes that are not a WAI envelope at all are an object received too, neither counted nor presented,
and logged; the run goes on. The binding derives each object's figures from its bytes — its counted bytes, its
length, and whether a decoder names it — and sealed a
reconstruct-session claim with a key made for this run alone and never stored, only after checking it
against the presentations, the objects and those envelopes. The claim is shown in its canonical form (JCS). Verify
recomputes the output tree's root, the consistency of what the presentations give, the byte sums, that each
decoder names what its envelope gives, and that each presentation is at the layers and of a unit its envelope gives. The download is a claim-conformance vector document with the envelopes, so
any conforming verifier can check it.
The evaluation, as the native tool prints it
The text the binding's evaluateTitle gives for this title, which equals the title's block of the
corpus's goldens.json and the native wai_stage_measure eval --json, byte for byte.
The same figures everywhere
Every figure is integer arithmetic: byte counts, sums of squares, a Q32 structural similarity over clipped 8 × 8 windows of integer luma, and SHA-256. So every conforming machine computes the same figures, and a browser's equal the native tool's. The binding's conformance script checks that over the whole corpus: every title's figures, the titles that must be refused, the counted objects, the quality pairs and every simulator case, against the corpus and against the native tool.
The titles, and the code
The titles are the corpus staged-measure-conformance: each base a committed test vector, each layer
coded toward a stated source; the corpus's README states where each title's content comes from. They are fetched
from /models/measure/v1/, copied unchanged from the open-standards repository at commit
dba242ff3633, and the WebAssembly binding is built from commit 1cffbc6f. The method is the
staged-measurement extension and the claim is
jwp-receipts §2.4.12; the code is Apache-2.0 in the
open-standards repository. Delivery itself is shown on staged delivery.
Runs the reference implementation compiled to WebAssembly. In the standard: the staged-measurement extension, its corpus, the session claim and the WebAssembly binding this page loads.