- Completeness, the usual master-data KPI, rewards filling fields. It says nothing about whether the field is right.
- Agreement measures whether independent systems of record concur on each asset attribute, within a tolerance, with provenance. Values asserted by only one system count as unverified, not agreed.
- Because agreement falls when the plant changes and the records do not, it doubles as a drift detector, which is what an asset record actually needs.
01Three systems, three truths
Take one temperature tag on a furnace pass. In the historian it is 23-TI-401D, with a range, an engineering unit and a description typed by whoever configured the DCS. In SAP it is an attribute of functional location F-401, itself a node in a hierarchy that was frozen at commissioning. In the document store it appears on datasheet DS-1174 rev C and on a P&ID that has been revised four times since. Each system is internally consistent. Together they disagree about the tag's range, its parent equipment and, occasionally, whether it still exists.
This is normal. On the plants we have worked with, between a fifth and a third of live historian tags cannot be joined to any maintenance object by a deterministic key, and the fraction grows with every management-of-change that touches one system and not the others. The consequence is not a data-quality dashboard problem. It is that every analytic built on top, from reliability models to operating-envelope monitoring, inherits an asset model that is quietly wrong in ways no one can enumerate.
The usual response is a master-data programme measured by completeness: the share of mandatory fields that are populated. Completeness is easy to compute and easy to raise. It is also the wrong target, because a wrong value is complete.
02Defining agreement
We score the asset record on whether independent sources concur. For an asset a and an attribute k (range, unit, parent, criticality, design pressure, and so on), let Sa,k be the set of systems that assert a value for it. Two values concord under an attribute-specific comparator: exact match for identifiers, unit-normalised numeric tolerance for engineering values, and a rules-plus-embedding comparator for free text such as descriptions.
The indicator is 1 only when at least two independent systems assert the attribute and every pair concords. Weights wa,k scale with criticality: a SIL-rated tag's range counts more than a spare pump's paint code.
Two design choices carry the weight of the definition.
Singletons are unverified, not agreed. If only SAP knows an asset's design pressure, the attribute contributes zero to the numerator. Filling a blank in one system therefore does not move A. Only a second, independent assertion that concurs does.
Independence is tracked, not assumed. Every value carries provenance. When a value in the CMMS was bulk-loaded from SAP, the two are one source, not two, and the pair is excluded from the indicator. Copying a system into another system cannot manufacture agreement.
03How agents move the number
Agreement is a score; the work is in raising it honestly. Axiom runs a pipeline of agents whose only lever is to find, verify and reconcile evidence.
- Discover crawls historians, ERP tables and document stores and builds an inventory of every asserted attribute, with its source, timestamp and extraction confidence.
- Resolve is entity resolution: which tags belong to which asset. The signal is a mix of site naming grammar (unit–loop–suffix conventions), P&ID text extraction, and co-occurrence of tags in the same alarm groups and control loops. A resolved link is itself an attribute and is scored for agreement like any other.
- Validate applies physical checks: a range must be plausible for the instrument type, units must be convertible, a parent must exist. Failures are flagged, never silently corrected.
- Arbitrate routes genuine conflicts to a person with an evidence packet: the competing values, their sources, their dates, the document excerpts. The decision is recorded with its rationale and becomes a new, human-provenance source.
- Publish writes the reconciled model to the customer's platform with lineage intact, and keeps the agents running against it.
On the reference deployment behind the figures on our homepage, the classes of conflict the agents surfaced broke down as follows.
| Conflict class | Share | Typical cause | Resolved by |
|---|---|---|---|
| Naming drift | 41% | Tag renamed in DCS, not in SAP | Agent, by naming grammar + loop co-occurrence |
| Stale functional location | 27% | Equipment moved or replaced under MOC | Agent, from MOC records; 1 in 5 to engineer |
| Unit or range mismatch | 14% | Re-ranged transmitter, datasheet not revised | Engineer, with evidence packet |
| Orphan tags | 12% | Temporary or decommissioned instruments | Agent, flagged for retirement |
| Duplicate assets | 6% | Same pump created twice in different projects | Engineer |
04Why the number is hard to fake
A metric a team is judged on will be optimised. The question is what optimising it forces you to do.
Optimising completeness forces you to populate fields. Optimising agreement forces you to find a second independent source for each attribute and make the two concur, and the only honest ways to do that are to correct one of the systems against evidence or to retire the attribute as unverifiable. Both are exactly the work a master-data programme is supposed to be doing.
The same property makes A a drift detector. When a transmitter is re-ranged on Monday and the datasheet is not revised, the historian and the document store now disagree, and A falls by that attribute's weight, on Monday. No one has to notice. The monitoring agent raises it with the two values and their dates, which is a management-of-change gap caught the day it opened rather than at the next turnaround audit.
05Operating on agreement
- Report it weighted and unweighted. The weighted figure is what matters; the unweighted one shows whether the long tail of minor assets is being neglected.
- Set the threshold per attribute class. Ranges and units on safety-critical tags should sit at 100% or be explained. Free-text descriptions will never reach it and should not be forced.
- Treat every drop as an MOC question. The value is not the score; it is the list of what changed.
06Limits
Agreement between systems is not agreement with the plant. Two records can concur and both be wrong, most often when both were populated from the same original datasheet that was itself never verified in the field. Provenance narrows this but cannot close it; a walkdown does. Free-text attributes remain the softest part of the score and depend on document extraction quality. And the metric says nothing about attributes no system records at all, which is a completeness question after all, just a much smaller one once the rest is verified.
The claim of this note is modest. If you are going to hold an asset record to one number, hold it to one that can only be raised by making the record more true.