MES for Dairy Processing: From Milk Reception to the Filling Line
In short: an MES for dairy processing should show what was made, from which milk, on which line, and where the line time went. Most dairies get there with two layers: batch, recipe and lot records on the process side, and a light MES with OEE on the filling and packing lines.
- Milk reception, standardisation, pasteurisation, vats and CIP run on process control and lab systems. Their records belong in a batch system, a full MES or the ERP.
- Most of the line time you can win back is on the fillers and packers: CIP windows, changeovers, start-up waste and short stops.
- Before you buy, give each record one owner: lots and genealogy, recipes, CIP logs, the plan and line OEE.
- Fabrico is the light MES layer: machine data, stop reasons from the operator, OEE and losses by line and shift, and an ERP connection scoped per customer. It does not hold lot genealogy, recipes or the plan.
A dairy runs two kinds of production under one roof. The process side works in batches: milk comes in, is standardised and pasteurised, then cultured, set or churned in vats and tanks. The packing side works in units: cups, cartons, blocks and cases, at speed.
An MES for a dairy has to serve both. This page is for dairy plant managers and engineers choosing one: which jobs an MES does, which system usually holds each record, and where a light MES pays back first.
We sell Fabrico, a light MES with OEE, so test what we say here like any other vendor's claims.
What an MES does in a dairy plant
No standard says what a dairy MES must include, so list the jobs and give each one an owner. A typical split looks like this.
| Job | In a dairy | Usually held by |
|---|---|---|
| Milk reception | Tanker volumes, tests, which silo | Reception software, LIMS or ERP |
| Standardisation, recipes | Fat and protein targets per product | Process control or a batch system |
| Batch records | What went into each vat or tank | Batch system or full MES |
| Lot genealogy | Silo to vat to packed lot to customer | Full MES or ERP |
| CIP | Cycles, times, temperatures, sign-off | The CIP controller and its records |
| Line OEE and downtime | Filler stops, changeovers, start-up waste | Light MES |
| Weights and inspection | Checkweigher, seal and code checks | Their own software |
| Production plan | Filling order by SKU and shelf life | ERP or a planning tool |
The batch side is big. Eurostat reports that in 2024 the production of cheese and butter used 69.0% of all the whole milk available to EU dairies, while drinking milk accounted for 8.5% of the whole milk used. So in many dairies the vats and churns matter as much as the fillers, and an MES that only knows filling lines covers part of the plant.
One system does not have to do it all, but each record needs one owner. The systems also have to share the same IDs on every filler run: the ERP order, the SKU, the lot code and the shift. Without them the reports never join.
For MES functions across food plants, and where each one usually starts, see our parent guide to MES for food manufacturing.
Where a dairy loses line time
Dairy losses follow the product, not the machine. Here is where the minutes go, and what an MES should record for each.
CIP windows
CIP is planned, but it is still time the filler does not fill. Book each CIP with its own code, apart from breakdowns, with minutes over the standard for each CIP type. Our page on CIP time in OEE shows how to split one window.
Many SKUs, short runs
Fresh products are filled close to the order, so flavours, pack sizes and private labels share one filler. Runs get short and changeovers many. The MES needs a changeover code by type (flavour, pack size, allergen) and an ideal rate that changes with the SKU. The worked example below shows why.
Start-up waste
The first packs after a CIP or a product change often go to waste while weights and seals settle. They were made, so they belong in the quality figure. If nobody counts them, the line looks better than it is.
Aseptic and ESL fillers
On many aseptic fillers, a stop that breaks the sterile zone means sterilising again before the restart. The MES should tie that time back to the stop that caused it. See OEE for aseptic filling lines.
Short stops at the filler
Cup drops, lid feeds, film feeds and carton magazines stop for seconds at a time. Nobody writes them down, but they add up. A light MES picks them up from the machine signal. For the stop modes one by one, read yogurt cup filler stops and micro-stops.
Giveaway
A dairy can give product away twice: fat above the standard in the milk, and weight above the label in the pack. For packs with a fixed declared weight, the first of the three packers' rules in Great Britain, as GOV.UK puts it, is that the contents must not be less on average than the nominal quantity. So packers aim a little above the label, and every gram over the target is lost. That guidance covers England, Scotland and Wales, so check the rules in each market you sell into.
Neither kind of giveaway shows in OEE, because the packs count as good. Track it next to OEE, from the standardisation and checkweigher data. Our OEE guide for dairy and cheese plants prices a tenth of a fat point, and giveaway as a quality loss covers the pack side.
Which system holds which record, from milk reception to dispatch
Here is one example: a dairy with a process side and two packing lines. Your split will differ.
The light MES reads the machines on the packing side, where the minutes are. It does not replace process control, the batch system or the ERP. For machine-by-machine choices of signal, sensor or camera, see camera or sensor for OEE, machine by machine.
Light MES or full MES for a dairy
Most dairies decide record by record and line by line. Use this as a starting point.
| Biggest problem | Start with | Why |
|---|---|---|
| Filler stops, changeovers, CIP overruns | A light MES on the filling lines | The minutes are there, and machine signals give the data. |
| Auditors want electronic batch records | A batch system or full MES on the process side | They need recipe and step data a light MES does not hold. |
| A recall test cannot link a vat to packed lots | Lot genealogy in the ERP or a full MES | Genealogy is a record of materials, not of machine time. |
| The filling plan is rebuilt by hand every day | Planning in the ERP or a planning tool | Scheduling is a different job from measuring the line. |
| Several of these | Light MES first, full MES where a rule needs it | Payback on the lines while the bigger project is scoped. |
Traceability is a common reason a dairy looks at a full MES. In the EU the floor is Article 18 of Regulation (EC) No 178/2002, the General Food Law: one step back and one step forward. In the legislation.gov.uk copy, the version kept in Great Britain, food businesses must be able to identify who supplied them and which businesses they supplied, with systems that give this to the authorities on demand. Any system above can hold that record, if one of them owns it.
In the US, cheeses other than hard cheeses, such as fresh soft, soft ripened and semi-soft cheeses, are on the FDA's Food Traceability List, with exclusions such as frozen and shelf-stable cheeses. Under the Food Traceability Rule, records must reach the FDA within 24 hours of a request, or a longer time the FDA agrees to. The FDA proposed moving the compliance date to 20 July 2028, and Congress has directed it not to enforce the rule before that date. If you make them for the US, ask each vendor which system will hold those records.
For a fuller test, read light MES vs full MES: four checks, and our lot traceability data model for what genealogy has to hold.

Bring your station list and one week of stop sheets to a demo. We will show which records a light MES fills and which stay with your other systems.
Worked example: one ideal rate per SKU, or one for all
These are example numbers, and they describe no real plant. A carton filler runs one 480-minute shift with a CIP inside planned time and two SKUs: 1 L cartons with an ideal rate of 120 a minute, and 0.5 L cartons at 150 a minute.
The filler PLC gives the run state and the count. The operator tags the stop reasons on a tablet. The checkweigher's reject count, plus the start-up cartons pulled off after the CIP, feed quality.
Stops took 110 minutes: CIP 40, two changeovers 25, short stops 30 and one breakdown 15. Run time is 370 minutes, so availability is 77.1%.
The filler ran 1 L for 210 minutes and made 22,800 cartons. At 120 a minute that is 190 minutes' worth. It ran 0.5 L for 160 minutes and made 21,000 cartons, 140 minutes' worth at 150 a minute. So 330 of 370 run minutes made product at the ideal rate. Performance is 89.2%, and 40 minutes went to slow running.
Rejects and start-up waste were 360 cartons of 1 L and 450 of 0.5 L, or 6 minutes of filler time. Quality is 324 of 330 minutes, 98.2%.
OEE is 77.1% x 89.2% x 98.2% = 67.5%. The short way gives the same: 324 minutes of good output in 480 planned. For the formula step by step, see OEE calculation.
Now set one ideal rate of 120 a minute for both SKUs. The 0.5 L run then looks faster than ideal, performance reads 98.6%, and OEE reads 74.6%. The report shows 5 minutes of slow running instead of 40.
Keep the ideal rate per SKU in one master, usually the ERP's product data, and send it to the MES, so a new SKU never runs on the default rate.
Eight questions for any dairy MES vendor
Run these with every vendor, and with us. Bring one real shift from last week as the test case.
| Ask | How to test the answer |
|---|---|
| Which records do you hold, and which stay in our ERP? | Ask for a one-page list: lots, recipes, CIP logs, OEE, the plan. |
| Does the ideal rate change with the SKU? | Run the worked example above in their software, with your own SKU list. |
| How do you book CIP and start-up waste? | Ask for a CIP code, minutes over standard for each CIP type, and where the first packs after a CIP go. |
| How do you read our fillers? | Ask how each machine connects: PLC, a device on older machines, or a camera. Who maps the tags? |
| Where does giveaway show? | Next to OEE, in kilograms and money, from the checkweigher or standardisation data. |
| What happens when the ERP order changes? | Ask how orders come in and actuals go out: API, webhooks or file export. |
| Who holds traceability records? | Ask which system answers a mock recall from one silo to every customer, and how fast. |
| How long until the first line is live? | Ask for a dated plan for one filling line, then for the rest of the site. |
Where cameras fit in a dairy MES
On a dairy filler, the PLC is usually the counter to trust. Cameras earn their place where no signal counts well: manual cheese and butter packing, old wrappers, and case packers whose PLC you cannot reach.
Fabrico's AI camera add-on, on request, counts output at those stations. You can open the camera video for any moment on the shift timeline. In the standard setup, video is streamed on request, not stored in Fabrico. Roadmap: stop-reason suggestions from the camera, confirmed by the operator, and jam zones on the camera view. Today the operator adds the reason.
Fill level, seals and date codes are inspection, a different job, and its reject count can feed OEE quality. For stations and camera positions, read computer vision for dairy processing. Frame any camera on the product, not the crew, and talk to staff and the works council first: see production line cameras without surveillance.
Where Fabrico fits
Fabrico is a cloud OEE and light MES platform: the monitoring and OEE layer of an MES. On a dairy line it does this today.
- Machine data: it reads automated lines from the PLC, and fits an IoT device with external sensors to older machines. See machine connectivity.
- Stops and reasons: stops on connected machines, with their start and duration. The operator tags the cause on a tablet or phone, from your own list of reason codes. Short stops are picked up from the machine signal.
- OEE and losses: availability, performance and quality by line and shift, with losses shown in money. Good units and scrap can be entered on a tablet where no sensor counts them.
- Camera add-on, on request: the AI camera add-on counts output where there is no usable signal, with video for any moment, streamed on request.
- Your data: a REST API and webhooks, Excel or CSV export, and a connection to SAP or another ERP scoped per customer.
Roadmap, not live today: stop-reason suggestions from the camera, confirmed by the operator, and jam zones on the camera view. Production planning is on our roadmap, with no release date. Today Fabrico does not build or schedule your plan: it shows what the lines can do.
What Fabrico does not do: lot genealogy, BOMs, routings, job dispatching, recipes, batch records or CIP control. Those stay in your ERP, batch system or full MES. Giveaway and inspection stay with the checkweigher and inspection software.
Devices connected in about a month; full rollout in 3 to 4 months. Our MES and OEE solution overview sets out the steps. If you are still comparing platforms, read our guide to OEE software. The eight questions above apply to us too.
For camera projects, see Fabrico's computer vision add-on for OEE and our hub on computer vision for FMCG manufacturing.
What people ask next
What is an MES in a dairy plant?
Software that records what the plant made and how the lines ran: batches, lots, stops, output and OEE. In most dairies the work is split. Process control and a batch system or full MES hold the process records, and a light MES measures the filling and packing lines.
Does a dairy need a full MES for traceability?
Not always. Traceability needs a lot record from milk to packed product, and that can live in the ERP, a batch system or a full MES. Pick the one that answers a mock recall fastest. A light MES like Fabrico does not hold lot genealogy.
Can a light MES run next to our ERP and batch system?
Yes, that is the usual setup: the ERP holds orders and lots, the batch system recipes, and the light MES machine time and OEE. Fabrico connects through a REST API and webhooks.
How should a dairy MES book CIP?
With its own code, apart from breakdowns, and with minutes over the standard for each CIP type. Decide once whether CIP sits inside planned time, and keep that rule on every line. See CIP time in OEE.
Which dairy line should we connect first?
The filling line with the most stops or changeovers, where the PLC gives a run state and a count. It shows results fastest. Manual cheese or butter packing can follow with a camera count.
What drives the cost of a dairy MES?
Scope first: which records it holds, and how many lines and machines connect. Then the ERP connection, devices for older machines, cameras if any, and training. Pricing is set per quote, so give each vendor the same station list.
Want to see it on a line like yours? Book a demo and bring one shift from a dairy filler.
Related articles
Latest from our blog

Real Fabrico tiles, sample data.











