One model across five brands
Every vendor names the same event differently. Unifying that vocabulary is unglamorous, and it is the whole job.
Senne Van Baelen

A mixed fleet is not five robots. It is five vocabularies, and they disagree about almost everything worth counting.
The same event, five names
One vendor reports an intervention when an operator touches the vehicle. Another reports it when the vehicle enters a manual state, which happens several seconds earlier and sometimes without anyone arriving. A third does not report interventions at all and expects you to infer them from a gap in mission progress.
Ask a simple question — how many interventions did we have last week? — and you get five answers that are each correct in their own dialect and useless together. Add the WMS and the picture gets worse: it counts orders, not missions, and it has never heard of a zone.
| Source | Calls it | Counts when |
|---|---|---|
| Vendor A | INTERVENTION |
operator touch |
| Vendor B | MANUAL_MODE |
state transition |
| Vendor C | nothing | inferred from gaps |
| WMS | ORDER_FAILED |
at order level |
Translation is not the hard part
Mapping four names onto one is an afternoon of work. What is hard is everything that follows from having done it:
- Deciding what the canonical event means. If B fires on a state transition and A on a touch, the unified event has to pick one definition and hold it, or the trend across brands is measuring the vendors rather than the floor.
- Keeping the mapping honest as firmware changes. A vendor renames a code in a point release and the model has to fail loudly, not quietly drop a category.
- Preserving the original. The canonical event is an interpretation. The raw record has to survive underneath it, or the first time someone disputes a number there is no way to settle it.
What the unified model buys
Once the vocabulary is one vocabulary, the questions that were impossible become ordinary:
- Which cause costs the most minutes per day, across every brand?
- Is that cause improving or worsening over the last thirty days?
- Which zone, which shift, which vehicle?
None of those are new features. They are the same question the floor has always asked, finally askable in one place.
The unglamorous work — naming things the same way — is what makes the interesting work possible.
That is the layer. Not a dashboard on top of five dashboards, but one model underneath them, with the raw records still intact beneath that.
This is a placeholder post used while the blog is being built. The argument is real; the vendor names are not.