Cold-chain monitoring for a cross-border distributor
Vaccine shipments were being written off because temperature breaches were only discovered on arrival. Paper loggers gave no way to intervene while a truck was still moving.
The situation
The distributor moves temperature-controlled pharmaceuticals across four countries, mostly by road, with handovers at depots along the route. Compliance required a temperature record for every shipment, and they had one: a single-use paper logger in the box, read when the box was opened.
What made it hard
The record was accurate and completely useless for prevention. By the time anyone knew a reefer unit had failed outside Vienna, the load had been at nine degrees for six hours and was already a write-off.
Two constraints shaped everything. The loggers travel inside sealed boxes with no mains power and no reliable cellular coverage, and the business would not accept a device that needed charging between shipments or a battery swap at the depot.
How we built it
A logger that lasts longer than the contract
Zephyr firmware on a low-power MCU, sampling every five minutes and transmitting a compressed batch every thirty. The power budget was modelled in week one and measured on real hardware in week four; the shipped device holds twenty-six months on a single cell, which comfortably outlives the two-year service interval.
LoRa at the depots, buffering in between
A gateway at each depot picks up loggers as vehicles arrive. Between depots there is no coverage at all, so every reading is written to flash with its device timestamp and replayed on the next contact. The console draws the gap explicitly rather than interpolating across it — dispatchers need to know what was measured and what was inferred.
Scoring against stability profiles, not a single threshold
A product is not spoiled by touching eight degrees; it is spoiled by cumulative exposure. The Node.js service scores every reading against the mean kinetic temperature profile for the product in that box, so the console can show a shipment consuming its allowance and flag it before the limit rather than after.
An interface for someone under time pressure
The dispatcher's screen shows shipments in the order they need attention, with time-to-breach as the sort key. Rerouting is two clicks and writes an audit record. Everything else is one level down.
What changed
Spoiled shipments fell by 63% in the first full year. The unexpected result was commercial rather than operational: the distributor now sells the temperature record as a service to manufacturers who previously ran their own loggers, which paid for the build inside eighteen months.
What we would tell the next team
- The stability profile mattered more than the sensor accuracy. A cheaper sensor with correct scoring beat a precise one with a naive threshold.
- Depot staff were the real users during rollout, not dispatchers. Making the gateway status visible on a wall display stopped three months of silent failures.
- We spent too long on map views nobody used. The list, sorted correctly, was the product.
Results above were measured by the client against their own baseline. We are happy to arrange a reference call where the contract allows it.
Other builds worth reading
Metering platform for a regional energy retailer
The retailer inherited three meter vendors with three protocols, and a billing team reconciling exports by hand every month.
Predictive maintenance across two CNC plants
Spindle failures stopped lines without warning, and the maintenance window was booked around a calendar rather than the state of the machine.
Tell us what you are trying to measure
An engineer reads every message and replies within one working day. The first call is a conversation about your problem, not a sales script.