Decision 01
One canonical machine record, adapters at the edge.
Every OEM quirk is absorbed in its own adapter and never leaks past it. Adding a fifth OEM is now a two-week job instead of a refactor.
TradeoffAn adapter layer to maintain, and a normalisation spec to keep honest.
Decision 02
Offline-first, with a conflict policy written before any code.
A shift produces work the server has never seen. We defined precedence rules with the client’s safety team first, then built to them.
TradeoffSlower start; the first eight weeks produced very little anyone could see.
Decision 03
Idle detection from telemetry, not from operator input.
Asking operators to log idle time would have produced compliant, useless data. We inferred it from engine and hydraulic signals instead.
TradeoffPer-model calibration for each machine class in the first quarter.