A measured sweep recorded as a validation case: where every number came
from, under what terms, how each metric was defined, and how far the configuration BLIS
would simulate is from the one that ran. The verdict is computed from those facts, never
read from the file.
A measured run supersedes the evaluation run for scoring. Runs live in
blis-catalog under measurements/<license_ref>/<name>.yaml, beside the licence registry
measurements/sources.yaml.
# Synthetic fixture: every value below is invented for tests; none is measured.kind:MeasuredRunname:synthetic-h100-tp4schema_version:1source:kind:vllm_benchadapter:name:tools/validation/adapters/vllm_benchversion:"1"sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaainputs:-role:reporturl:https://example.org/results.jsonsize:2048sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbfetched_utc:"2026-10-15T13:58:06Z"-role:manifestrepo:example/synthetic-fixturescommit:0123abcdpath:serving-tests.jsonsha256:ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccextraction:method:jsonselectors:-median_ttft_mslabel_verified:trueretrieved_utc:"2026-10-15T13:58:06Z"license_ref:synthetic-fixturemodel:gpt-oss-120bengine_version:0.31.0cluster:hardware:h100nodes:1gpus_per_node:4deployment:kind:Deploymentname:tp4pools:-role:colocatednodes:1parallel:tp:4pp:1dp:1enable_expert_parallel:falseengine:max_model_len:8192router:kind:directworkload:trace:data:trace.csvsha256:ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddheader:trace_version:2time_unit:usmode:generatedclient:harness:vllm bench serveharness_version:0.31.0image_digest:vllm/vllm-openai@sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeecommand:-vllm-bench-serve---seed-"0"seed:0num_prompts:200burstiness:1ignore_eos:falseendpoint:completionstokenizer:repo:openai/gpt-oss-120brevision:b5c939demetric_defs:itl_p99:formula:itlstatistic:p99population:pooled_chunksclock:clientpercentile_method:numpy_linearunit:mscite:vllm/benchmarks/serve.py:572output_tps:formula:output_throughputpopulation:pooled_tokensdenominator:main_phase_wallclock:clientoutput_len_source:usageunit:tokens_per_scite:vllm/benchmarks/serve.py:572ttft_p50:formula:ttftstatistic:medianpopulation:per_requestclock:clientstart_event:send_after_semaphorestop_event:first_content_chunkpercentile_method:numpy_linearunit:mscite:vllm/benchmarks/serve.py:572points:-id:c1load:concurrency:1metrics:itl_p99:value:20output_tps:value:50ttft_p50:value:100completed:200failed:0kv_utilization:0.1prefix_hit_rate:0noise:seeds:3cv:0.05-id:c4load:concurrency:4metrics:itl_p99:value:25output_tps:value:180ttft_p50:value:150realized:mean_isl:1024mean_osl:1024provenance:-setting:tensor_parallel_sizereport:value:"4"ref:log:12blis:value:"4"verdict:MATCHmaterial:"yes"-setting:block_sizeblis:value:"16"verdict:UNSTATEDresolved_by:'vllm/config/cache.py:block_sizedefault16atv0.31.0'material:"yes"verdict:EXACTresolution:RESOLVED
Each definition is keyed by the metric name the points use. A field left out is unstated,
and any unstated formula, population, clock, or statistic (denominator for a
throughput) keeps the run from EXACT: a scorer cannot tell whether a BLIS metric is the
same quantity.
Key
Type
Required
Meaning
formula
string
no
The quantity, such as ttft or output_throughput.
statistic
string
no
mean, median, std, max, or a percentile pNN. Not for a throughput.
population
string
no
What the statistic is over: per_request, pooled_chunks or pooled_tokens.
denominator
string
no
What a throughput divides by. Only for a throughput.
clock
string
no
client or server timestamps.
start_event
string
no
When a latency starts.
stop_event
string
no
When a latency stops.
output_len_source
string
no
Where output token counts come from.
reasoning_counted_as_content
boolean
no
Whether reasoning tokens count as output.
percentile_method
string
with a percentile
How a percentile interpolates; numpy_linear.
unit
string
yes
ms, tokens_per_s or requests_per_s; must be the formula's.
cite
string
yes
Where the definition is read from: a harness file and line, or the report's text.
BLIS cannot build the run: model, engine_version, cluster, deployment or
workload is missing, or a diff entry is not_expressible.
EXACT
Otherwise, when the diff is empty, no provenance row is MISMATCH or UNVERIFIABLE,
every UNSTATED row has resolved_by, every metric definition is complete, the client
harness is recorded, and the licence permits scoring. Resolution is RESOLVED when a
row was resolved by a rule and STRICT otherwise. Only an EXACT run may anchor
calibration.
PARTIAL
Any other run. It is scored and reported apart from EXACT runs.
kind is not MeasuredRun, name is not a lowercase slug, or schema_version is not 1;
a vocabulary value is not recognized, or a digest is not 64 lowercase hex characters;
the source has no adapter name, version or digest, no inputs, no report input, or an
input without a url or path;
a timestamp is not RFC 3339 UTC, or the client image is not pinned by digest;
the cluster, deployment, router or workload is invalid, or the deployment does not fit
the cluster;
a metric definition has no unit or cite, a unit that is not its formula's, a
statistic on a throughput, a denominator on a latency, or a percentile without a method;
there are no points, two share an id, a point states no load, points mix load modes or
are not strictly increasing, or a metric has no definition or a negative or non-finite
value;
a provenance row's sources do not support its verdict, resolved_by is on a row that is
not UNSTATED, or bound is missing for bounded or present otherwise;
a removable difference names no owner_repo;
a string carries a credential: a token, a private key, a Kubernetes Secret reference, or a
kubeconfig path;
a stated verdict or resolution is not the computed one.
measurements/sources.yaml lists every source a run may cite. Only a verified entry
permits anything.
kind:MeasurementSourcessources:-id:synthetic-fixturetitle:Synthetic test fixture; every value is invented, none is measuredlicense:Apache-2.0status:verifiedpermits:-score-derive_coefficients-redistributeevidence:-url:https://github.com/inference-sim/blis-schemas/blob/main/LICENSEquote:Apache Licenselocation:LICENSE:1-id:hudtitle:PyTorch HUDstatus:unverifiednote:no terms found
Key
Type
Required
Meaning
kind
string
yes
Always MeasurementSources.
sources
list
yes
One entry per source, below.
Key
Type
Required
Meaning
id
string
yes
The key a run's license_ref names, a lowercase slug.
title
string
yes
What the source is.
license
string
when verified
The SPDX identifier the evidence states.
status
string
yes
verified, unverified, or refused.
permits
list
when verified
Uses the terms permit: score, derive_coefficients, redistribute. Empty unless verified.
evidence
list
when verified
Quoted statements of the terms.
attribution
string
no
What a use must carry.
note
string
unless verified
Why a source is unverified or refused.
Key
Type
Required
Meaning
url
string
yes
Where the terms are, http(s).
quote
string
yes
The text that states them.
location
string
yes
Where the quoted text is.
A catalog run must cite a licence that permits redistribute, since a committed file is
redistributed; validate-measurements -local admits one
that permits only scoring, for output kept out of the repository.