Foreword. Data Artifact: the machine-readable twin of VRS-SVC-201 (VRS 2026 (draft)) — the sector criteria with their point ranges, rungs and tier ceilings, the contributing intrinsic criteria, the letter bands and the application classes — generated FROM the protocol’s Clause 5–7 by
tools/vrs-twin-generate.py. Consistency is by construction and re-verified on every build (conformance check 15). The JSON in Clause 4 is the normative payload; scorer tooling consumes it directly. A change to VRS-SVC-201 and to this twin is one change instrument.
1 Scope
This Data Artifact carries the rubric data of the Service & Public (SVC) sector in machine-readable form: the 10 sector criteria of VRS-SVC-201 Clause 6 with points, rungs and Unverified / Verified / Certified ceilings; the contributing intrinsic criteria of Clause 5; the letter bands and application classes of Clause 7. It states no independent requirements. Where this artifact and VRS-SVC-201 could be read to differ, VRS-SVC-201 governs and this twin is regenerated to match.
2 Normative references
- VRS-SVC-201, Service & Public — AR Assessment Protocol — source protocol twinned (Clauses 5–7).
- VRS-SVC-001, Service & Public — Sector Standard — application classes and hazard groups.
- VRS-GEN-005, IR Methodology — point sum, tier ceilings, no-evidence rule.
- VRS-GEN-006, AR Scheme — pool mechanics, letter bands, tier caps by construction.
- VRS-GEN-002, Designation and Drafting Rules — criterion layout (§6.5) and versioning.
3 Terms and definitions
The terms of VRS-GEN-001 and VRS-SVC-201 apply. data twin — a machine-readable artifact regenerated one-to-one from a source protocol’s normative clauses. rung — a named state of a criterion awarding a stated integer number of points (VRS-GEN-002 §3.9). ceiling — the maximum points a criterion awards at a stated tier (VRS-GEN-002 §3.10).
4 Payload
Sector criteria total 100 points; ceilings Unverified 70, Verified 85, Certified 100.
{
"_meta": {
"description": "SVC sector AR rubric data twin — machine-readable form of VRS-SVC-201 Clause 5/6/7 (VRS 2026 (draft)). Generated by tools/vrs-twin-generate.py; never hand-edited.",
"edition": "VRS 2026 (draft)",
"source_protocol": "VRS-SVC-201 v1.0.0",
"generated": "2026-09-16",
"conforms_to": "VRS-GEN-005 §6 (point sum, tier ceilings); VRS-GEN-006 §6–§8 (pool, bands, tier caps by construction)"
},
"sector_code": "svc",
"bands_percent": {
"AAA": 90,
"AA": 75,
"A": 60,
"B": 45,
"C": 0
},
"application_classes": [
"mobile service (delivery, cleaning, guidance, retail)",
"stationary interactive (kiosk/reception robots)",
"telepresence"
],
"contributing_ir_criteria": [
{
"id": "SF-1",
"document": "VRS-GEN-101",
"clause": "6.1"
},
{
"id": "SF-2",
"document": "VRS-GEN-101",
"clause": "6.2"
},
{
"id": "SF-4",
"document": "VRS-GEN-101",
"clause": "6.4"
},
{
"id": "SF-5",
"document": "VRS-GEN-101",
"clause": "6.5"
},
{
"id": "SF-8",
"document": "VRS-GEN-101",
"clause": "6.8"
},
{
"id": "RL-3",
"document": "VRS-GEN-102",
"clause": "6.3"
},
{
"id": "SV-1",
"document": "VRS-GEN-103",
"clause": "6.1"
},
{
"id": "SV-6",
"document": "VRS-GEN-103",
"clause": "6.6"
},
{
"id": "CY-2",
"document": "VRS-GEN-105",
"clause": "6.2"
},
{
"id": "CY-4",
"document": "VRS-GEN-105",
"clause": "6.4"
},
{
"id": "CY-6",
"document": "VRS-GEN-105",
"clause": "6.6"
},
{
"id": "MS-1",
"document": "VRS-GEN-106",
"clause": "6.1"
},
{
"id": "MS-7",
"document": "VRS-GEN-106",
"clause": "6.7"
},
{
"id": "SI-2",
"document": "VRS-GEN-104",
"clause": "6.2"
},
{
"id": "SI-6",
"document": "VRS-GEN-104",
"clause": "6.5"
}
],
"sector_criteria": [
{
"clause": "6.1",
"id": "SVC-1",
"name": "Anchor conformity (ISO 13482 / ISO 12100)",
"points_max": 15,
"what_is_measured": ".",
"rungs": [
{
"points": 15,
"state": "third-party-assessed conformity + functions validated for uninstructed-bystander conditions"
},
{
"points": 13,
"state": "pack-evidenced (documents), not demonstrated"
},
{
"points": 12,
"state": "third-party-assessed conformity ((public certificate))"
},
{
"points": 10,
"state": "self-declared + internal validation"
},
{
"points": 5,
"state": "self-declaration only"
},
{
"points": 0,
"state": "none"
}
],
"ceiling": {
"unverified": 12,
"verified": 13,
"certified": 15
},
"company_wide": null,
"evidence_bar": "DoC or equivalent for the rated version.",
"applicability": "mobile service (delivery, cleaning, guidance, retail) · stationary interactive (kiosk/reception robots) · telepresence. All criteria apply to all classes unless stated.",
"not_applicable_by_class": false
},
{
"clause": "6.2",
"id": "SVC-2",
"name": "Bystander detection and stop — children and reduced-mobility profiles",
"points_max": 15,
"what_is_measured": "Detection/stop with test obstacles at child height and low-contrast/slow-moving profiles at declared max speed.",
"rungs": [
{
"points": 15,
"state": "all declared profiles witnessed"
},
{
"points": 12,
"state": "pack-evidenced (documents), not demonstrated"
},
{
"points": 10,
"state": "adult profile at limits"
},
{
"points": 8,
"state": "certified with published data"
},
{
"points": 5,
"state": "nominal only"
},
{
"points": 0,
"state": "not established"
}
],
"ceiling": {
"unverified": 8,
"verified": 12,
"certified": 15
},
"company_wide": null,
"evidence_bar": "Detection envelope declared incl. minimum object size.",
"applicability": "mobile service (delivery, cleaning, guidance, retail) · stationary interactive (kiosk/reception robots) · telepresence. All criteria apply to all classes unless stated.",
"not_applicable_by_class": false
},
{
"clause": "6.3",
"id": "SVC-3",
"name": "Contact force / toppling protection",
"points_max": 10,
"what_is_measured": "Contact energy limits on collision; anti-topple at declared speed with declared payload/height.",
"rungs": [
{
"points": 10,
"state": "witnessed"
},
{
"points": 8,
"state": "certified ((public))"
},
{
"points": 7,
"state": "publicly evidenced only (no pack, no demonstration)"
},
{
"points": 6,
"state": "validation report"
},
{
"points": 3,
"state": "documented"
},
{
"points": 0,
"state": "not established"
}
],
"ceiling": {
"unverified": 7,
"verified": 8,
"certified": 10
},
"company_wide": null,
"evidence_bar": "Mass, CoG height and max speed declared.",
"applicability": "mobile service (delivery, cleaning, guidance, retail) · stationary interactive (kiosk/reception robots) · telepresence. All criteria apply to all classes unless stated.",
"not_applicable_by_class": false
},
{
"clause": "6.4",
"id": "SVC-4",
"name": "Adversarial-interaction behaviour",
"points_max": 10,
"what_is_measured": "Response to deliberate obstruction, tampering, riding/leaning, blocked path: declared safe behaviour (stop, retreat, alert) every time.",
"rungs": [
{
"points": 10,
"state": "witnessed all declared cases"
},
{
"points": 8,
"state": "pack-evidenced (documents), not demonstrated"
},
{
"points": 6,
"state": "documented + certified/tested"
},
{
"points": 3,
"state": "documented"
},
{
"points": 0,
"state": "not established"
}
],
"ceiling": {
"unverified": 6,
"verified": 8,
"certified": 10
},
"company_wide": null,
"evidence_bar": "Adversarial-interaction behaviours documented.",
"applicability": "mobile service (delivery, cleaning, guidance, retail) · stationary interactive (kiosk/reception robots) · telepresence. All criteria apply to all classes unless stated.",
"not_applicable_by_class": false
},
{
"clause": "6.5",
"id": "SVC-5",
"name": "Egress and crowd-flow discipline",
"points_max": 8,
"what_is_measured": "Robot never blocks declared egress routes; yields in dense crowds; stranded-robot state is movable/alerting.",
"rungs": [
{
"points": 8,
"state": "witnessed"
},
{
"points": 7,
"state": "pack-evidenced (documents), not demonstrated"
},
{
"points": 6,
"state": "documented + tested"
},
{
"points": 3,
"state": "documented"
},
{
"points": 0,
"state": "not established"
}
],
"ceiling": {
"unverified": 6,
"verified": 7,
"certified": 8
},
"company_wide": null,
"evidence_bar": "Egress/crowd behaviours documented.",
"applicability": "mobile service (delivery, cleaning, guidance, retail) · stationary interactive (kiosk/reception robots) · telepresence. All criteria apply to all classes unless stated.",
"not_applicable_by_class": false
},
{
"clause": "6.6",
"id": "SVC-6",
"name": "In-service failure and recovery",
"points_max": 10,
"what_is_measured": "Fault → declared safe stop with alert; recovery by venue staff per manual within declared time.",
"rungs": [
{
"points": 10,
"state": "witnessed"
},
{
"points": 8,
"state": "pack-evidenced (documents), not demonstrated"
},
{
"points": 7,
"state": "documented + repair record"
},
{
"points": 6,
"state": "publicly evidenced only (no pack, no demonstration)"
},
{
"points": 4,
"state": "documented"
},
{
"points": 0,
"state": "not established"
}
],
"ceiling": {
"unverified": 6,
"verified": 8,
"certified": 10
},
"company_wide": {
"text": "Repair record company-wide → 7",
"ceiling": 7
},
"evidence_bar": "Fault behaviours documented.",
"applicability": "mobile service (delivery, cleaning, guidance, retail) · stationary interactive (kiosk/reception robots) · telepresence. All criteria apply to all classes unless stated.",
"not_applicable_by_class": false
},
{
"clause": "6.7",
"id": "SVC-7",
"name": "Bystander data capture and privacy",
"points_max": 10,
"what_is_measured": "What sensors capture of the public, on-device vs cloud, retention, signage guidance, opt-out.",
"rungs": [
{
"points": 10,
"state": "shown on console + matches disclosure + third-party privacy audit"
},
{
"points": 8,
"state": "evidenced by documents alone (public or pack), not demonstrated"
},
{
"points": 7,
"state": "documented in detail"
},
{
"points": 4,
"state": "partial disclosure"
},
{
"points": 0,
"state": "undisclosed"
}
],
"ceiling": {
"unverified": 8,
"verified": 8,
"certified": 10
},
"company_wide": null,
"evidence_bar": "Privacy disclosure exists.",
"applicability": "mobile service (delivery, cleaning, guidance, retail) · stationary interactive (kiosk/reception robots) · telepresence. All criteria apply to all classes unless stated.",
"not_applicable_by_class": false
},
{
"clause": "6.8",
"id": "SVC-8",
"name": "Venue network exposure",
"points_max": 8,
"what_is_measured": "Operates on segmented guest/venue networks; remote access controlled; updates signed.",
"rungs": [
{
"points": 8,
"state": "shown"
},
{
"points": 7,
"state": "documented + public security audit"
},
{
"points": 4,
"state": "documented"
},
{
"points": 0,
"state": "not established"
}
],
"ceiling": {
"unverified": 7,
"verified": 7,
"certified": 8
},
"company_wide": null,
"evidence_bar": "Network model documented.",
"applicability": "mobile service (delivery, cleaning, guidance, retail) · stationary interactive (kiosk/reception robots) · telepresence. All criteria apply to all classes unless stated.",
"not_applicable_by_class": false
},
{
"clause": "6.9",
"id": "SVC-9",
"name": "Public-context field record",
"points_max": 8,
"what_is_measured": "Incidents involving the public over the window.",
"rungs": [
{
"points": 8,
"state": "none above near-miss (model-specific)"
},
{
"points": 6,
"state": "company-wide record in place of model-specific data"
},
{
"points": 5,
"state": "remediated"
},
{
"points": 3,
"state": "null-result rung"
},
{
"points": 0,
"state": "unremediated major"
}
],
"ceiling": {
"unverified": 5,
"verified": 8,
"certified": 8
},
"company_wide": {
"text": "Company-wide → 6",
"ceiling": 6
},
"evidence_bar": "Exposure declared or null search recorded.",
"applicability": "mobile service (delivery, cleaning, guidance, retail) · stationary interactive (kiosk/reception robots) · telepresence. All criteria apply to all classes unless stated.",
"not_applicable_by_class": false
},
{
"clause": "6.10",
"id": "SVC-10",
"name": "Premises-liability support",
"points_max": 6,
"what_is_measured": "Operator guidance, signage kit, incident-reporting process and insurance-relevant documentation provided to venues.",
"rungs": [
{
"points": 6,
"state": "all provided"
},
{
"points": 5,
"state": "publicly evidenced only (no pack, no demonstration)"
},
{
"points": 4,
"state": "guidance + reporting"
},
{
"points": 2,
"state": "guidance only"
},
{
"points": 0,
"state": "not established"
}
],
"ceiling": {
"unverified": 5,
"verified": 6,
"certified": 6
},
"company_wide": null,
"evidence_bar": "None.",
"applicability": "mobile service (delivery, cleaning, guidance, retail) · stationary interactive (kiosk/reception robots) · telepresence. All criteria apply to all classes unless stated.",
"not_applicable_by_class": false
}
],
"pool": {
"sector_only": {
"points": 100,
"ceiling_unverified": 70,
"ceiling_verified": 85,
"ceiling_certified": 100,
"best_letter": {
"unverified": "A",
"verified": "AA",
"certified": "AAA"
}
},
"with_contributors": "contributor ceilings are those of the cited IR standards; the combined pool sums are verified by the conformance gate (check 14)"
},
"rules": {
"no_evidence": "0 points (VRS-GEN-005 §6, R3.3); the criterion stays in the pool at full range",
"not_applicable": "criterion removed from numerator and denominator for that class (VRS-GEN-006 §6)",
"tier_rule": "AR tier ≤ IR tier (VRS-GEN-006 §7)"
}
}
5 Field dictionary
| Field | Meaning |
|---|---|
sector_criteria[].clause |
VRS-SVC-201 subclause (6.k) — the “Required by” reference used in derived packs and protocols |
sector_criteria[].points_max |
Upper end of the criterion’s integer range |
sector_criteria[].rungs[] |
Every verifiable state and its points, highest first; the 0 state is implicit where not listed |
sector_criteria[].ceiling |
Maximum points at each tier; always equal to a rung value (VRS-GEN-002 §7.5.1) |
sector_criteria[].company_wide |
Field-record criteria only: the reduced ceiling when company-wide data substitutes for model data |
sector_criteria[].applicability / not_applicable_by_class |
Application classes the criterion applies to; excluded criteria leave the pool for that class |
contributing_ir_criteria[] |
Intrinsic criteria counted in the sector pool, with the standard and clause that score them |
pool.sector_only |
Sums over the sector criteria and the best attainable letter at each tier (A / AA / AAA by construction) |
bands_percent |
Letter thresholds as a percentage of the applicable pool (VRS-GEN-006 §4) |
6 Verification
Regenerate with python3 tools/vrs-twin-generate.py --sector svc --check; a non-zero exit means the
committed twin no longer matches VRS-SVC-201 and shall be regenerated before publication.
Bibliography
- VRS-SVC-201, Service & Public — AR Assessment Protocol, v1.0.0, 2026 — the source of every number in Clause 4.
- VRS-SVC-001, SVC Sector Standard, 2026 — sector scope, hazard taxonomy and application classes.
- VRS-GEN-005, Intrinsic Rating — Methodology, 2026 — point aggregation and tier ceilings for the contributing IR criteria.
- VRS-GEN-006, Application Rating Scheme, 2026 — letter bands and pool mechanics reproduced in
bands_percentandpool. - VRS-GEN-002, Designation and Drafting Rules, 2026 — §6.5 criterion layout and §7.5.1 (ceilings equal rungs) that this twin verifies.
- VRS-GEN-004, Change, Edition and Review Policy, 2026 — how a twin regeneration is designated.
- VRS-GEN-009, Robot Risk Passport and Registry — Data Schema, 2026 — consumer of the payload.
- ISO/IEC 21778:2017, Information technology — The JSON data interchange syntax.
Change history
| Version | Date | Change |
|---|---|---|
| 1.0.0 (draft) | 2026-09-16 | VRS 2026 (draft) rewrite: regenerated from VRS-SVC-201 Clause 5–7 (criteria, rungs, tier ceilings, contributors, bands, classes). Weights, modifiers, confidence and stage-prior fields removed. |