OEE for Animal Feed Mills: Batching, Pelleting and Bagging
In short: a feed mill is three processes with bins between them, so measure OEE in three places: batches at the mixer, tonnes at the pellet mill, bags at the bagging line.
- Set the ideal rate per formula and die. One tonnes per hour figure for the whole mill makes slow formulas look like speed loss.
- Die chokes, die changes and waiting for mash are availability losses. A feeder held back by wet steam or motor load is a performance loss.
- Fines that go back to the pellet mill are not good tonnes. Take the good count at the finished bin.
- Fabrico is a cloud-based OEE and light MES platform. Stops come from the machine signal and the operator adds the reason.
Most feed mills know their tonnes per shift. Few know why Tuesday's shift made 15 tonnes less than Monday's on the same formulas.
The International Feed Industry Federation (IFIF) estimates world compound feed production at over one billion tonnes a year. At that scale a few lost tonnes per shift look small, until you add them up over a year of shifts.
This page shows how to set up OEE for a feed mill so the number means something to the people who run it. We sell Fabrico, so test what we say like any other vendor's claims.
Why one OEE number for the whole mill does not work
The mixer makes batches, the pellet mill runs as a continuous process, and the bagging line makes bags. Mash bins and finished bins sit between them.
Because of those bins, the mixer can run flat out while the pellet mill stands with a choked die. One blended number hides both facts.
So give each section its own OEE, with its own unit. Then read the pellet mill first, because in most mills it is the constraint.
Intake and bulk load-out rarely need their own OEE. Record them as reasons on the sections they hold up: "waiting for raw material" at the grinder, "finished bins full" at the pellet mill.
Where a feed mill loses time, speed and product
This is the typical picture, not a measurement. Your own stop list will rank them differently.
| Section | Availability (stopped) | Performance (slow) | Quality (not good first time) |
|---|---|---|---|
| Grinding | Hammer mill screen change, magnet cleaning, feeder bridging, grind bin full | Worn hammers or screens, fibrous or damp grain | Wrong particle size for the formula |
| Batching and mixing | Empty dosing bin, hand tip of micro ingredients not ready, discharge gate fault, mash bins full | Slow dosing screws, long liquid addition, batch cycle over the recipe time | Batch out of weighing tolerance, flush batches between formulas |
| Conditioning and pelleting | Die choke, die change, roller reset, waiting for mash, cooler or finished bins full | Feeder held back by motor load, low steam pressure, worn die | Fines, soft pellets, start-up product sent back |
| Cooling, crumbling, sieving | Cooler discharge fault, blinded sieve deck | Cooler bed limits the pellet mill rate | Crumble off size, warm or damp pellets |
| Bagging | Bag magazine jam, closer thread break, palletiser fault, bag size change | Short stops at the bag placer, slow fill on dusty mash | Off-weight bags, torn or open bags |
Two rows need a decision before you start. Die changes and waiting for mash are both stops on the pellet mill, but they have different owners.
A die change is a changeover: time it from the last good pellets of one formula to the first good pellets of the next, and keep it inside planned time as an availability loss. Waiting for mash is a starved stop, caused upstream.
Set the ideal rate per formula, not per mill
Tonnes per hour through a pellet mill depends on the formula, the die and the pellet size. A starchy poultry feed and a fibrous ruminant feed do not run at the same rate on the same machine.
If you use one ideal rate, the slow formulas show a speed loss that nobody can fix, and the plan mix decides your OEE.
So build a small rate table: one row per formula and die, with the best sustained rate you have actually held with good pellets. Take it from a tested run, not from the nameplate and not from an average week.
Do the same at the mixer with an ideal batch cycle time per recipe, and at the bagger with bags per minute per bag size.
The OEE calculation is the same in all three places. Only the unit changes.
Pellet mill: die chokes, die changes and steam
A die choke is the classic feed mill stop. The rolls slip, the die plugs, and someone has to clear it before the mill restarts.
One choke can cost two minutes or forty. Log them all with a duration, because the pattern matters: chokes that cluster on one formula, one die or one hour of the day point to different causes.
Steam quality sits behind many of them. Wet steam puts free water on the mash, and the rolls slip.
Low or unsteady pressure means the conditioner cannot hold temperature, so the operator slows the feeder.
That gives you a clean rule for the loss type.
If the mill stopped and someone had to clear or reset it, it is availability. If it kept running below the formula's ideal rate, it is performance.
Give steam its own stop reason, separate from "die choke, cause unknown". Otherwise the boiler house never sees its share of the lost tonnes.
Feeder trips and short chokes that the operator clears in a minute or two are micro-stops. On this site they count as a performance loss, under a threshold of about five minutes that you set once and keep.
No one writes them down by hand, so they need to come from the machine signal.
Fines and returns: what counts as good tonnes
The sieve after the cooler takes out fines and sends them back to the pellet mill. Start-up product, soft pellets and off-size crumble often go the same way.
Nothing is thrown away, so it is tempting to call it all good. Those tonnes are not good: they used steam, power, die wear and mill time twice.
The rule we use across this site is that good means good the first time. See rework and good count in OEE for the reasoning.
In a feed mill that works out simply: total count is tonnes through the die, and good count is tonnes that reach the finished bin. The gap is your quality loss.
You need two measuring points for that: the pellet mill feeder or a flow scale for the total, and the finished bin or load-out scale for the good tonnes. If you only have one, start with availability and performance and add quality later.
Flush batches between formulas follow your own feed safety rules. For OEE, decide once whether a flush batch is a quality loss or part of the changeover, and keep it that way.
A worked shift on the pellet line
These are example numbers, describing no plant. One shift, 480 planned minutes, two formulas with a die change between them.
Stops add up to 96 minutes: the die change 40, two long die chokes 24, waiting for mash 20, and finished bins full 12. That leaves 384 minutes of run time.
| Example data | Ideal rate | Run time | Through the die | Time earned | Good to bin | Good time earned |
|---|---|---|---|---|---|---|
| Broiler grower, 3 mm die | 20 t/h | 240 min | 72 t | 216 min | 68.4 t | 205.2 min |
| Dairy pellet, 6 mm die | 12.5 t/h | 144 min | 27 t | 129.6 min | 25.65 t | 123.1 min |
| Shift total | 384 min | 99 t | 345.6 min | 94.05 t | 328.3 min |
Time earned is tonnes divided by that formula's ideal rate. 72 tonnes at 20 tonnes per hour is 3.6 hours, or 216 minutes.
Availability is 384 of 480, or 80%. Performance is 345.6 of 384, or 90%, and quality is 328.3 of 345.6, or 95%.
Multiply them: 0.80 x 0.90 x 0.95 = 68.4%. The direct check gives the same: 328.3 good minutes earned of 480 planned is 68.4%.
Now the same shift with one ideal rate of 20 tonnes per hour for everything. In 384 minutes that rate expects 128 tonnes, so 99 tonnes scores 77% performance instead of 90%.
Nothing on the floor changed. The 13 point gap is the dairy formula being judged against a rate it can never reach.
What to check in OEE software for a feed mill
Run these in the demo with every vendor, including us. Bring one real shift with at least two formulas.
- Rate per formula and die. Enter two formulas with different ideal rates. Check the shift performance by hand, as above.
- Tonnes, not pieces. Ask how a scale, flow weigher or PLC totaliser feeds the count, and how often it updates.
- Three units in one place. Batches at the mixer, tonnes at the pellet mill, bags at the bagger. Ask how each gets its own OEE, and what happens if someone averages them.
- Starved and blocked. Ask how "waiting for mash" and "finished bins full" are kept apart from a die choke.
- Short chokes. Ask whether stops under the micro-stop threshold land in availability or performance, and who sets that threshold.
- Total and good tonnes. Ask where each is read, and how returned fines stay out of the good count.
- Stops by formula and die. Ask for the stop list split that way, and exported to a spreadsheet.
For a wider view of the market, see our review of OEE software.
Where Fabrico fits
Fabrico is a cloud-based OEE and light MES platform. It runs on the web, iOS and Android.
- Stops: they come from the machine signal, through the PLC or a Fabrico IoT device. The operator adds the reason on a tablet or phone.
- OEE and downtime: availability, performance and quality by line and by shift. Micro-stops are detected from the machine signal.
- Losses in money: so a choked die and a slow formula can be compared in the same terms.
- Your data: REST API and webhooks, and any list exports to Excel or CSV.
- Camera: the AI camera is an add-on that counts parts. It does not weigh, so tonnes need a scale or totaliser signal. If your bagger gives no usable count, ask us in the demo whether the camera fits your bags.
- Maintenance: a stop reason can be set up to open a maintenance task, for example after a die choke.
- Not in Fabrico today: production planning and scheduling. Formulas and run order stay in your batching system.
The seven checks above apply to us too. Ask us to show how your tonnes signal and your formula rates would be set up.
What people ask next
What is a good OEE for a feed mill?
There is no honest single figure, because formula mix, die sizes and run lengths differ from mill to mill. Compare your own pellet line week to week, with the same rate table and the same planned time rules.
Should a die change count as planned downtime?
It is planned, but it still takes time the line was scheduled to run. Keep it inside planned time as an availability loss, timed from last good pellets to first good pellets, so shorter die changes show up as a gain.
Do fines returned to the pellet mill count as good production?
No, they went through the die and did not reach the finished bin, so they sit in the total count and not in the good count. Good tonnes are measured where product leaves the pelleting line.
Is the mixer or the pellet mill the bottleneck?
In most mills it is the pellet mill, but check with your own stops. If the pellet mill often waits for mash, the constraint has moved upstream to grinding or batching.
Is this different from a kibble plant?
Yes, extruded kibble adds an extruder, a dryer and a coater, with their own losses. That line has its own page: OEE for pet food production.
Want to see your pellet line's lost tonnes by formula? Book a demo or Contact us.
Related articles
Latest from our blog

Real Fabrico tiles, sample data.











