Units
Every measure is a { value, unitCode } pair using UN/CEFACT Recommendation 20 codes.
A bare number is ambiguous. 0.095 for a rollover probability could mean
9.5% or 0.095%, and nothing in the response would tell you which.
Every measure in the API therefore ships as a pair:
"possibility": { "value": 9.5, "unitCode": "P1" }The codes
Unit codes come from UN/CEFACT Recommendation 20, the same list
schema.org uses for unitCode. If you
already handle unitCode from structured data, these are the same codes.
| code | means | where you'll see it |
|---|---|---|
P1 | percent | rollover possibility |
C62 | one (a pure ratio) | static stability factor |
KMT | kilometre | odometer, distances |
SMI | mile (statute) | odometer, US sources |
LTR | litre | engine displacement, fuel capacity |
CMQ | cubic centimetre | engine displacement |
LBR | pound | weights |
INH | inch | dimensions |
Why a ratio carries a code
C62 is Recommendation 20's code for a dimensionless quantity. The static
stability factor is track width divided by centre-of-gravity height, so it
has no unit, and C62 says so explicitly.
That is different from a missing unit. { value: 1.48, unitCode: "C62" }
renders as 1.48. A measure with a value and no unitCode is a bug.
Please report it.
How to read them
Switch on the code. Do not infer the unit from the field name. The same
field can arrive in different units from different sources. An odometer is
KMT from a Canadian record and SMI from a US one, and the field is
called odometer either way.
Do not parse the code. It is an identifier from a fixed list, not a display symbol. Map it to whatever your interface shows.
A measure always has both halves. If value is present, unitCode
is present. Our emit gate rejects a measure with an empty unit, so you will
not see a half-populated one. A measure that does not apply is null as a
whole.