Units of Measure
Infohub stores the unit as free text and converts nothing — so consistency is entirely a matter of discipline.
Every measure carries a unit of measure. It is worth being clear about what that field is and is not, because assumptions here cause real errors.
Infohub does not convert units#
The unit is stored on the measure as free text. There is no unit catalogue, no dimensional analysis, and no automatic conversion.
That means:
- Infohub will let you divide litres by hours and label the result
kg. - Infohub will let you aggregate a measure in
kWinto one labelledkWh. - Infohub will let you write
m3,m³,M3, andcubic metreson four measures holding the same quantity, and treat them as unrelated labels. - Nothing will warn you about any of it.
The unit is documentation for humans and a label on charts. Its correctness is entirely your responsibility, which makes convention the only defence.
Never leave the unit blank. A measure with no unit is a number with no meaning. Six months later nobody can tell whether 1,240 is litres, kilograms, or bottles. Where a value genuinely is dimensionless — a ratio, a count of events, an index — say so explicitly rather than leaving the field empty.
Agree a convention and write it down#
Because Infohub will not enforce anything, agree the spellings once, record them somewhere your team will find, and apply them everywhere. The specific choices matter less than the consistency.
A workable starting set:
| Quantity | Unit | Notes |
|---|---|---|
| Mass | kg, t |
Prefer t for tonnes over ton — the latter is ambiguous |
| Volume | l, m3, kl, Ml |
Pick m3 or m³ and never mix them |
| Volume (beverage) | hl |
Hectolitres |
| Infohub rate | l/s, m3/h, kg/s, t/h |
Always state the time base |
| Energy | kWh, MWh, GJ |
|
| Power | kW, MW |
Distinct from energy — see below |
| Pressure | kPa, MPa, bar |
|
| Temperature | degC, degF |
Or °C — pick one and stay with it |
| Time | s, min, h, d |
|
| Percentage | % |
|
| Counts | bottles, pallets, units, events |
Plural, lowercase |
| Currency | ZAR, USD, EUR |
ISO codes travel better than symbols |
| Dimensionless | ratio, index |
Better than blank |
Two practical notes on character choice. Superscripts and degree signs (m³, °C) render correctly in the web client but can be mangled by downstream systems, CSV exports, and some databases — if data leaves Infohub through a consumer, plain ASCII (m3, degC) is the safer choice. And keep case consistent: KG, Kg, and kg are three different strings to every grouping and search you will ever run.
Power is not energy#
The single most common unit error in plant reporting.
Power is an instantaneous rate — kW. Energy is power accumulated over time — kWh. They are different quantities and cannot share a unit.
The correct chain is unforgiving about which aggregation you use:
Power Tag Retrieved kW instantaneous reading
+-- Power Hourly Hourly Average kW average power in the hour
+-- Peak Demand Monthly Monthly Maximum kW highest hourly average
Energy Meter Tag Retrieved kWh cumulative register
+-- Energy Hourly Hourly Counter kWh energy used this hour
+-- Energy Daily Daily Sum kWh energy used today
Averaging a power reading gives you power. Summing power readings gives you nothing meaningful. If a measure labelled kWh was built with an Average aggregation from a kW tag, it is wrong — see Choosing the Right Aggregation Type.
Units on calculated measures#
The result unit of a calculation is not derived — you set it, and you should set it from the arithmetic rather than from habit.
| Calculation | Result unit |
|---|---|
l ÷ t |
l/t |
kWh ÷ t |
kWh/t |
t ÷ h |
t/h |
t ÷ t × 100 |
% |
ZAR ÷ t |
ZAR/t |
For percentages, be certain whether the expression multiplied by 100. A ratio of 0.924 labelled % will be read as 0.924%, and a value of 92.4 formatted with 0.0% displays as 9240%. See Format Strings.
Where to convert#
When a source reports in a unit you do not want, convert deliberately and visibly.
Best: fix it at the source. Correcting a historian that logs in the wrong unit fixes it for every consumer, not just Infohub.
Good: a calculated measure. Retrieve raw in the source's unit, then a calculation converts to yours. The conversion is explicit, reviewable, and the raw value stays visible for auditing.
Acceptable: in the source query. SQL-based connectors can scale in the query. Concise, but the conversion is buried in a connection property where nobody will look for it.
Never: relabelling. Changing the unit text without changing the value is not a conversion. It is a silent, permanent error that every downstream reader will trust.
For repeated conversions, put them in a custom function with an unambiguous name — KgToTonnes, not Convert.
Mixed-unit sites#
Sites that report in both metric and imperial, or that report locally in one system and to a parent company in another, are common.
Do not try to make one measure serve both. Build the model in one canonical system, then add converted measures where the second system is genuinely needed, named so the unit is obvious:
Production Daily t canonical
Production Daily (short tons) ton converted, for group reporting
Explicit duplication is far safer than a measure whose unit depends on who is looking at it.
Auditing units in an existing model#
Units drift as a model grows and different people add to it. A periodic check is cheap:
- List every distinct unit string in the model. Near-duplicates —
m3andm³,tandton,degCand°C— show up immediately. - Check every measure whose name contains "per", "rate", "%", "efficiency", or "specific": these are all divisions, and their units are the most frequently wrong.
- Check for blank units.
- Check that anything labelled
kWhwas built with Counter and Sum, and anything labelledkWwith Average or Maximum.
The Config CLI can list measures with their units, which makes this a scriptable check rather than a manual trawl.
Fix units before building charts on them. A unit appears in chart axis labels, table headers, widget captions, and exported reports. Correcting it after fifty charts have been built means checking fifty charts. Get it right when the measure is created.