The fleet, live.
Simulated deliveries, sped up. Each one is read by a cheap DS18B20 probe every 15 minutes and judged by DairyGuard Kinetic, the same model as in the Python package and the ESP32 firmware. The limit is the FSSAI hygiene limit for pasteurised milk; for the Listeria unit it is tenfold growth.
Draw a trip. See the verdict.
Drag across the chart to draw the air temperature around the milk over two days, or start from a preset. DairyGuard reads it exactly as a logger would.
Same truck, same log. Each line is the bacteria in one carton; they differ only in what they started with.
How far the answer swings if you change the thermometer or how often it reads, against how far it swings because nobody knows the bacteria.
Why it works, and how we know.
Milk at 4, 8 and 12 °C crosses the limit at very different times. Switch to the bacteria's own clock, which runs faster when it's warm, and the three curves become one. That's why one running total of the log is all a monitor needs.
Growing bacteria give off a tiny amount of heat. Hold a spoonful of milk at 20 °C in a calorimeter and time when the heat shows up. Busy bacteria show up sooner: one number for what the thermometer can't see.
240,000 deliveries. What they show.
Each way of reading a log gets a score out of 100 for telling cartons that crossed the limit from cartons that didn't. 50 is a coin toss. Pick a simulated world:
Cheap thermometer read every 15 minutes.
When a forecast says 70%, is it right 70% of the time? Average miss; smaller is better. In the standard world the comparison includes a model trained on 4,000 labelled trips, tested on the same 4,000 new trips; DairyGuard needed no labels.
Milk stored at 4 °C, with and without two 4-hour warm spells at 29 °C (Lin et al., 2016). The model never saw these times.
Five temperature laws, including a neural network, fitted on all Listeria studies in ComBase but one and tested on the one left out. Accuracy factor: 1.0 is perfect.
For researchers: the full statistics
Paired AUC differences on identical trips with 95% bootstrap intervals, and Brier score and calibration error of each forecast.
DairyGuard Batch: learning each batch
The evidence above says the limit is the batch, not the thermometer: real growth rates differ between studies by about 25%, and a flexible model learns nothing new from growth rates alone. Our next model keeps DairyGuard Kinetic's core and learns each batch's biology from complete growth curves and simple tests of the milk at loading. It will appear here, next to DairyGuard Kinetic, once it has been built and tested on real data.
- Results marked simulated come from a virtual cold chain built from published experiments; those marked real data use published measurements.
- "Crossing the limit" means the bacteria count passed the FSSAI hygiene limit for pasteurised milk (or, for Listeria, grew tenfold). It is a count, not a taste test and not a safety verdict.