Purpose
An agent buying shoes on someone's behalf cannot try the shoe on. Today the Universal Commerce Protocol carries size as a label (Size: EU 40) and fit as free text through ask. Neither is something an agent can compute with. This extension makes fit a measurable property: the variant carries the dimensions of the space inside the shoe; the buyer may supply consented foot measurements; when both are present, the variant also carries a zone-by-zone assessment with an explicit confidence.
Fit is a comparison between two measurements, not a summary of reviews.
Principles
- MillimetresAll values in millimetres. Every dimension has a tolerance and a source.
- UncertaintyEvery assessment has a confidence.
unknownis a valid verdict; an assessor must not guess. - ConsentThe foot profile belongs to the buyer, is supplied per request, and is not stored by the business without separate consent.
- VocabularyField names follow ISO 19409 and ISO 19410-1 for the inside of the shoe, ISO 7250 and Mondopoint (ISO 9407) for the foot.
- ExclusionsNo reviews, no return statistics, no size conversion (ISO 19407 covers that).
1. The variant carries its internal dimensions
"fit": {
"internal_dimensions": {
"functional_length_mm": 257.0,
"ball_width_mm": 92.5,
"ball_girth_mm": 238.0,
"instep_girth_mm": 244.0,
"heel_width_mm": 63.0,
"toe_height_mm": 27.5,
"tolerance_mm": 2.0,
"source": "last_derived",
"vocabulary": "ISO 19409:2022 / ISO 19410-1:2022",
"last_reference": "opaque-id"
}
}
| Field | Meaning |
|---|---|
functional_length_mm | Usable internal length, heel to where the longest toe is meant to reach. Required. |
ball_width_mm, ball_girth_mm | Width and girth at the ball. |
instep_girth_mm | Girth at the instep. |
heel_width_mm | Width at the heel seat. |
toe_height_mm, heel_height_mm | Toe-box height; heel height of the shoe. |
tolerance_mm | Measurement uncertainty. Required. |
source | One of last_measured, last_derived, in_shoe_measured, estimated. Required. |
last_reference | Opaque id of the last, so an agent can see that two variants share one. |
2. The buyer supplies a foot profile, with consent
Sent in catalog context, which UCP defines as provisional, non-identifying buyer signals. One entry per foot; feet differ.
"context": {
"foot_profile": {
"feet": [
{ "side": "left", "length_mm": 251.0, "ball_width_mm": 94.0, "ball_girth_mm": 236.0, "instep_girth_mm": 241.0, "heel_width_mm": 62.0 },
{ "side": "right", "length_mm": 254.5, "ball_width_mm": 95.0, "ball_girth_mm": 238.0, "instep_girth_mm": 243.0, "heel_width_mm": 62.5 }
],
"measurement_method": "phone_scan",
"measured_at": "2026-10-20",
"tolerance_mm": 1.5,
"consent": true
}
}
3. The assessment carries its uncertainty
Returned on the variant only when a foot profile was supplied and the assessor could compare.
"fit": {
"internal_dimensions": { "...": "..." },
"fit_assessment": {
"overall": "good",
"confidence": 0.78,
"foot_side": "right",
"zones": [
{ "zone": "toe", "delta_mm": 4.5, "verdict": "good" },
{ "zone": "ball", "delta_mm": -1.5, "verdict": "snug" },
{ "zone": "instep", "delta_mm": 2.0, "verdict": "good" },
{ "zone": "heel", "delta_mm": 0.5, "verdict": "good" }
],
"limiting_zone": "ball",
"assessed_by": "ai.vsize",
"method": "geometric comparison, last-derived dimensions"
}
}
overall and each zone verdict are one of good, snug, tight, loose, unknown. confidence and assessed_by are required, so an agent always knows how sure the assessment is and who made it.
Non-goals
- No reviews, keep rates or return statistics.
- No size-system conversion.
- No storage of foot data on the business side.
- Footwear only in this draft. The pattern may transfer to apparel; that is out of scope here.
Open questions
- Do
internal_dimensionsbelong on the catalog variant, or in a separate capability? - May
foot_profiletravel in catalogcontext, or does buyer measurement data need its own consent path, like identity linking? - May
vocabularyreference an externally governed, paid standard, the question UCP #971 raises for print?
Status and path
This is a draft published under a vendor namespace, as the UCP contribution guide recommends for emerging use cases. If a second party, a merchant or a scanning provider, wants to expose or consume these fields, the intent is to propose dev.ucp.shopping.fit through an Enhancement Proposal to the Shopping Tech Council. Comments are welcome in UCP discussion #1027.
Draft 1, November 2026. Published by VSIZE, Novainvent AB, Sweden. Schema licensed under Apache 2.0, in line with UCP.
← All insights