White paper WP-02 · Blueprint

DairyGuard Batch

The model our lab will build next. This page is its blueprint: the data we will collect and how we will get it, the architecture layer by layer, how it will be trained, and the tests it must pass. All of it is fixed before the lab data exist, so the results cannot be tuned to fit.

Design · prototype on simulated data
Why a second model

Kinetic showed where it stops.

σ(ln b) = 0.25

DairyGuard Kinetic treats every batch of milk as a draw from one fixed population. Its own results say that is now the limiting assumption.

simulation0.27–0.40

AUC lost to the biology a log can't see. A lab-grade thermometer wins back at most 0.02.

real data25%

Spread of growth rates between 11 real Listeria studies.

real dataNo gain

A neural growth law fitted to rates alone predicts 20 unseen studies no better.

simulation69–94%

Of the accuracy gap closed by one measurement of the batch itself.

Architecture

Five layers. Tap one.

τb = e2δ ∫ μ dt
Data plan

What we will collect, and how we get it.

log10 Nobs ∼ 𝒩(·, 0.2²)
SourceWhat it givesAccessStatus
ComBase growth curvescounts against time for milk and chilled foodspublic, free registrationIn progress
Our ComBase collection373 milk records; 131 need a curve fitin the repositoryAvailable
Published shift studiesmilk counts under fluctuating temperatureraw counts requested from authorsTo request
E1–E3 lab countsreal milk, steady and shifting temperatures, day-one testsuniversity microbiology labsTo request
E4 calorimetryheat-flow detection times of the same batchesa partner labTo find
Temperature logsthe exact profile every sample sawour ESP32 + DS18B20 controllerHardware ready
Q1

Do real milk curves under temperature shifts collapse onto one curve in generalized time?

Q2

Which cheap test at loading (initial count, dye time, pH, heat test) predicts a batch best?

Q3

On batches it has never seen, how much of Kinetic's error does a batch-aware model remove?

Prototype

Already running, on simulated batches.

Σ + Cb

Layers 1–4 and training stages 0–2 are written and tested in experiments/batch_prototype.py. It learns from 30 simulated batches and judges 200 new ones on one trip. The batches and the link between day-one tests and biology are invented, so this tests the code, not milk.

simulation87–100%

True batch parameters inside their 90% intervals after fitting (stage 0).

simulation16–32 h

Median error of hours left using the population only, as DairyGuard Kinetic does.

simulation14–15 h

Median error with day-one tests, across four random seeds.

simulation0.82–0.98

How often the cautious value was safe with tests. Below 0.85 fails the blueprint's test: more batches needed.

Fixed in advance

It replaces Kinetic only if it passes.

0.85 ≤ coverage ≤ 0.95

On locked test batches, compared with DairyGuard Kinetic, a classical Baranyi fit, and a black-box recurrent network of similar size.

Cuts the median error of hours left at 4 °C by at least 30%.

Keeps its 90% uncertainty band honest: coverage between 85 and 95%.

Is no worse than Kinetic at telling crossed cartons from safe ones (AUC).

Beats the black-box network on error of log counts.

If it fails, the failure is reported in full. A negative answer is a result.

October 2026

Blueprint published. Prototype of stages 0–2 running on simulated batches.

Nov – Dec 2026 · now

Curve pipeline; data splits committed; synthetic recovery and population fit; lab protocol agreed.

Jan – Feb 2027

E1 and E2 in the lab; batch encoder on first batches; Q1 answered.

Spring 2027

E3 (and E4 with a partner); locked-test evaluation; Q2 and Q3.

After

A report of the results, and a peer-reviewed paper if they stand.

Read it

The whole design, in seven pages.