Improving Dairy Logistics by 5–8% Through Optimization

Dynes Transport Milk Tankers, CC-SA-20, image by John Welsh
A dairy-logistics software company engaged me to add optimization to a platform that already tracked the chemistry and continuous product flow among farms, processing plants, and tanker trucks. The client hoped to reduce transportation cost by more efficiently allocating trucks.

Matching and Routing

Producers and processors were interspersed across the map. Raw milk was not completely interchangeable: butterfat, protein, and other solids mattered because processors made different products. A fluid-milk plant, cheese plant, and butter plant could place different values on the same producer’s load.

Suppose a processor paying a premium needed six truckloads that day, while the network was moving 300 loads. Once that processor received six, its demand was satisfied and it ceased to be an option for the other 294. The problem was not simply to find the six farms closest to that plant. Assigning one of those six slots to a particular producer changed the remaining destinations, miles, premiums, and capacity available to every other load.

Problem Scope and Parameters

The tankers did not run partially loaded, combine milk from different producers, or blend multiple farms into one shipment. A truck arrived at a producer and filled with that producer’s milk. The decision was where that full load should go.

Each processor had limited daily demand. Some paid more for particular milk characteristics; others were cheaper to reach. A high-paying destination might justify a longer trip for one producer but not another. Yet using its limited capacity for that load could force a different load to travel much farther. The least-cost destination for any one truck therefore depended on the assignments made for all the others.

This created a fiendish combinatorics problem (my specialty). With hundreds of full loads and capacity-limited processors, even a modest number of possible destinations produced an enormous number of complete daily assignment plans. A greedy rule, such as “send each next load to its cheapest currently available processor”, could consume scarce capacity too early and leave an expensive remainder.

From Tracking Milk to Optimizing It

The client’s platform had already replaced much of the industry’s manual recordkeeping. It captured information from drivers, sensors, and operating systems: when milk was collected, how much was loaded, its characteristics, and where it was going. That solved the information problem, but knowing where everything was did not answer the next question: Where should each full load go?

I built an optimization layer using producer output, milk characteristics, processor demand and premiums, travel distances, transportation costs, truck availability, collection deadlines, and compatibility rules. It gave dispatchers a quantitatively stronger starting plan and the ability to recalculate when a truck broke down, a processor changed demand, or production differed from forecast.

Bottom Line 5-8% Savings

We measured a 5–8% reduction in transportation costs, which exceeded the client’s 2–3% target. Applied across thousands of truckloads, those percentages became a meaningful operating advantage. The cows produced the same milk, processors made the same products, and every tanker still carried one producer’s full load. The gain came from allocating scarce processor capacity better across the entire network.

See other Agribusiness: Sugar · Livestock Feed · Enzymes · Orange Juice

See other Logistics: Appliances

Skills

Posted on

June 1st, 2025