A facilities dashboard will happily report an efficiency figure for a month in which a third of the readings never arrived. The calculation runs on what is there, the result looks reasonable, and nothing on the screen says how much of the period it actually represents. The number is not wrong exactly; it is unqualified, and an unqualified number presented as a finding is how analytics loses credibility the first time somebody checks it against reality.
The message up front: four measures cover this. Coverage, how many of the points you expect are reporting at all. Completeness, what proportion of expected readings arrived for those that are. Freshness, how recent the latest reading is. Validity, what proportion of what arrived is trustworthy. Publish all four alongside any derived figure, define each against an expectation recorded per point, and treat them as the entry condition for analytics rather than as a diagnostic you run when something looks odd.
1. Why these come before any other metric
Facilities KPI frameworks usually start at the outcome: energy intensity, availability, compliance, cost per square metre. The approach is sound and it is covered in the FM KPI framework. The problem is that every one of those numbers is computed from telemetry whose completeness is unmeasured, which means a change in the KPI can be a change in the building or a change in the data, and nothing distinguishes them.
That ambiguity is corrosive in a specific way. The first time a reported improvement turns out to be a sensor that stopped reporting, the whole programme becomes suspect, and recovering that trust takes far longer than measuring completeness would have.
2. The four measures
| Measure | The question it answers | Computed as | What a bad reading means |
|---|---|---|---|
| Coverage | Are the points we expect even present? | Points reporting at all in the period, against points expected from the register | Equipment unconnected, points never mapped, or a controller offline. Structural rather than transient |
| Completeness | Did we get all the readings we expected from them? | Readings received against readings expected, from the point's declared interval | Collection gaps, outages, buffer overflow. The measure that qualifies any aggregate |
| Freshness | Is the latest value recent enough to act on? | Age of the most recent reading against the declared interval | A live display showing something stale, which is the failure mode in the connectivity loss playbook |
| Validity | Of what arrived, how much should be believed? | Readings without a quality flag, against total readings | Faulted sensors, out-of-service objects, implausible values. Depends on the flags in BACnet data quality flags |
They are deliberately separate because they have different owners and different fixes. Coverage is a mapping and commissioning problem. Completeness is a collection and network problem. Freshness is an operational alerting problem. Validity is an instrumentation problem. One combined data quality score hides all four and routes none of them.
Every measure needs a declared expectation, or it cannot exist
All four depend on knowing what should have arrived: which points exist, how often each reports, and what counts as valid. That expectation lives in the point register, not in the analytics layer, which is the practical reason the register described in the BMS point dictionary has to exist before any of this is computable. Without it, completeness is calculated against whatever arrived, which always yields a perfect score. That circularity is why so many platforms report excellent data quality on obviously incomplete data.
3. Aggregating without hiding anything
A single estate-wide percentage is the natural first instinct and the least useful presentation, because a high average comfortably conceals a critical asset reporting nothing.
- Weight by criticality. A gap on a critical plant item matters more than one on a store-room sensor, and the classification exists for this in asset criticality classification.
- Report the worst alongside the average. The count of points below an acceptable threshold is more actionable than the mean, because it is a work list.
- Break down by site, by system and by collection mechanism. Grouping by mechanism is unusually informative: a completeness problem confined to subscribed points is a subscription lifecycle problem, which is a specific diagnosis from COV subscription recovery.
- Never average completeness across points with different intervals without weighting, or a frequently sampled point dominates.
- Trend everything. The absolute level is less informative than the direction, and a slow decline is the normal shape of an unmaintained estate.
4. Attaching them to the figures people actually read
The measures are worth little as a separate dashboard nobody opens. Their value is as qualifiers on the outputs.
- State completeness on every aggregate. A monthly consumption figure should carry the proportion of the period it covers. A total built from eighty percent of the data is usable when it says so and misleading when it does not.
- Suppress rather than publish below a threshold. Agree in advance the completeness below which a figure is not reported at all, and show the reason instead of a number. That decision is far easier to make in advance than when somebody wants the number.
- Show gaps on charts as gaps. A line interpolated across missing data looks like a steady condition. This is the presentation half of the flag-don't-filter principle.
- Exclude invalid readings before aggregating, not after, or one faulted sensor pulls a whole period.
- Carry the qualification into exports. Data leaving for analysis elsewhere loses its caveats at the boundary unless they travel with it.
5. Setting expectations rather than targets
A single target percentage across an estate is the wrong instrument, for two reasons.
First, the appropriate level differs enormously by purpose. A figure adequate for monthly trending would be useless for diagnosing a short excursion, and the same dataset can be fit for one and not the other. Define the requirement per use, not per estate.
Second, completeness targets are gameable in a way that damages the thing they measure. The easiest route to a better score is to lower expectations: widen the declared interval, remove troublesome points from the register, reduce the validity criteria. All three improve the number and none improves the data. If these measures are attached to anyone's performance, the register they are computed against needs change control, which is the governance point in point-to-asset mapping.
What works better is a stated requirement per use case, a measured actual, and an explicit decision about which analyses are supportable on the data you have.
6. Turning the measures into work
- Coverage gaps become mapping or commissioning tasks. A point in the register that never reports is either not connected or not mapped, and both are findable in an afternoon.
- Completeness gaps become network or collection tasks, routed by where they cluster. Concentrated on one trunk is load, per BACnet polling schedules; spread across a site is usually the link.
- Freshness failures become operational alerts, with an owner and a response, not report lines.
- Validity failures become instrumentation work orders, against the instrument rather than the plant, which is the routing argument in when a fault clears before a technician arrives.
- Review monthly with a named owner. Unowned data quality reporting produces a chart that declines gently for years.
The pipeline-side counterpart to these measures, watching the collection path itself rather than the resulting dataset, is covered in BMS ingestion monitoring.
Limits
No target percentages, thresholds or acceptable gap durations are given here, deliberately, because the right level is set by what the data is for and a published figure would be adopted as a standard it cannot be. The section above argues against estate-wide targets for that reason. Also worth stating plainly: these four measures describe whether data arrived and whether the system believed it, not whether it is true. A fully covered, complete, fresh and valid dataset from a sensor reading the wrong thing scores perfectly. Physical verification remains the only check on that, as set out in point-to-asset mapping. This is written from the data governance side, which is my own domain.
The idea to walk away with
Analytics on building data carries an unstated assumption that the data is there. Making that assumption measurable costs four queries and turns an invisible risk into a managed one.
Keep the four separate so each routes to the right owner, compute them against expectations held in the point register rather than against whatever arrived, weight by criticality, and attach the result to the figures people read rather than parking it on a dashboard of its own.
Final thoughts
One number is worth producing before any of the rest: for last month, the proportion of expected readings that actually arrived, across the points feeding your most-quoted figure.
If that proportion is high, you have cheap reassurance. If it is not, you have just learned something important about a number that has been presented in meetings, and the four measures stop being a governance exercise and become the obvious next piece of work.
Disclosure
Alongside advisory work I also build a CMMS and CAFM platform, so I have a commercial interest in this category. Nothing above is a recommendation for it, and no vendor named here has paid for inclusion or had any editorial input. Weigh the analysis accordingly.
Reporting on data you have not measured?
Independent help defining coverage, completeness, freshness and validity against a real point register, weighting them by criticality, and attaching them to the figures your organisation actually reads. 22+ years across CMMS, CAFM, EAM and ERP implementations.
Book a conversationRelated reading: BMS ingestion monitoring, BACnet data quality flags, BMS point dictionary, FM KPI framework, Asset criticality classification, Connectivity loss playbook.
Muhammad Abbas
CMMS / CAFM Manager & Independent Advisor · 22+ years across enterprise CMMS, EAM, CAFM and ERP implementations in utilities, oil and gas, manufacturing, government and facility operations.
Work with me