Symptom. You watch activity happen — a staff member enters a room, uses a dispenser — and the data does not match. Opportunities appear with no wash-in, no end time, or no score. Compliance looks far worse than what you observed. Refresh a few minutes later and the numbers have changed.
In most cases nothing is wrong. Hand Hygiene finishes matching an opportunity before it scores it, and that takes time.
Why the delay exists
Hand Hygiene deliberately favors accuracy over speed. Scoring an opportunity means waiting for the whole picture: the visit has to end, the wash-out window has to elapse, and every dispense event in both windows has to be matched to the right badge and the right visit.
Until that is finished, the opportunity is real but incomplete. It exists in the system with the parts that have been resolved so far, and it fills in as the rest arrive. A single opportunity can take around ten minutes to settle.
This is why Hand Hygiene is not built as a live monitoring board. Watching the All Opportunities page during activity shows work in progress, not results.
What to do
- Wait, then refresh. Give it ten minutes and look again. Opportunities that appeared empty usually fill in with a wash-in, an end time, and a score.
- Judge compliance on completed periods, not on today. Review yesterday or a full week rather than the current shift. Partially settled opportunities drag today's number down for reasons that have nothing to do with staff behavior.
- Use Test Mode to confirm signals, not to measure compliance. Test Mode is faster than the Compliance Analytics page but still takes a couple of minutes. It answers "is the system seeing this badge and this dispenser," which is a different question from "what is our compliance rate."
Hand Hygiene also tells you when data is still arriving. On the All Opportunities page, a note such as Opportunities are complete up to a date and time means newer rows can still change. On the Compliance Analytics page, a notice that some locations could have missing or partial data opens Locations with incomplete data, which lists the affected campuses and days. See About compliance.
When it is not just latency
Return to the main troubleshooting article if any of these are true after waiting:
| What you see | Likely cause |
|---|---|
| Opportunities never gain a wash-in or wash-out, at any age | Dispense events are not being matched — check the Valid Wash-In and Valid Wash-Out Periods |
| No opportunities appear at all for a room | The room has no Beam Mini, or Room Matching is missing |
| Opportunities appear for some staff but never for others | Those staff have no Smart Badge linked to their profile |
| A whole department is empty | Rooms are not assigned to that Department in Smart Location |
| Visits you watched happen never appear | The visits were shorter than the Minimum Visit Duration and were discarded rather than scored |
That last row is worth checking before anything else. A visit below the Minimum Visit Duration does not become an opportunity, so it is not a missed opportunity and not a zero — it is simply absent. If a unit's staff make many short visits, a high Minimum Visit Duration can remove a large share of their activity from the data entirely.
If the issue persists
If opportunities are still incomplete after several hours, or the symptoms in When it is not just latency match what you are seeing, contact Kontakt.io support. When submitting your request, include:
- The campus, department, and the time window affected.
- A specific example: the room, the approximate time of a visit you observed, and what the opportunity shows now.
- Whether Test Mode shows badge activity and dispense events for that room.
- Your current Minimum Visit Duration, Valid Wash-In Period, and Valid Wash-Out Period values.
- Any recent changes to Room Matching, Staff Type Rules, or Opportunity Configuration.
See Troubleshooting & FAQs and Hand Hygiene terminology and metrics.