# Units


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:

```jsonc
"possibility": { "value": 9.5, "unitCode": "P1" }
```

## The codes

Unit codes come from **UN/CEFACT Recommendation 20**, the same list
[schema.org](https://schema.org/unitCode) 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.


---

Previous: [Charging stations](https://cardog.app/docs/charging.md) (Guides)
Next: [MCP server](https://cardog.app/docs/mcp.md) (Guides)
