Production Scheduling for Wet Pet Food

Learn how to schedule a wet pet food production line — batch cooking, continuous filling, parallel retorts, and flavor-based changeovers — with Schantt.

This guide is for production planners and operations managers scheduling wet pet food lines — batch cooking kettles, continuous fillers, parallel retorts, and flavor-driven changeovers — and shows how to model your facility in Schantt to build optimized production schedules that respect every stage of the process.

This guide follows a fictional composite company built from industry research on wet pet food; all names, parameters, and figures are illustrative.

Industry context

Wet pet food manufacturing is a five-stage hybrid flowshop. Raw frozen protein blocks are ground and blended into a meat slurry, cooked in steam-jacketed kettles to sterilise and texturise, filled into cans or pouches, sterilised again in batch retorts under pressure and heat, then labelled and case-packed for shipment. The process mixes batch operations — grinding, cooking, and retorting — with continuous flow stages — filling and packaging — creating a pipeline where timing discipline across every handoff determines throughput.

Three product classes are typical: pâté (a smooth, homogenous emulsion), chunks in gravy (formed pieces in sauce), and shreds (shredded protein, usually in pouches). Each class follows a different cooking profile — pâté cycles faster at 25 minutes per 1,000 kg batch, shreds take 30 minutes, and chunks in gravy require the longest cook at 40 minutes — and a different filling path. Cans run on a dedicated filler capable of 18,000 units per hour for pâté and 12,000 units per hour for chunks in gravy; pouches run on a separate filler at 9,000 units per hour for shreds. The four batch retorts, each with a 400 kg basket capacity, operate on 24/7 rotating shifts to keep pace with the day-shift filling lines; retort cycles range from 35 minutes (pâté) to 50 minutes (chunks in gravy). Transfer times between stages are 10, 10, 15, and 20 minutes — grinding to cooking, cooking to filling, filling to retorting, and retorting to packaging.

Flavor-driven changeovers define the scheduling complexity. With five protein flavors across three product classes, every transition between classes on a shared kettle or filler incurs a directional time penalty — from 30 to 70 minutes — determined by the pair and the sequence direction. Asymmetric cleaning means a transition from a mild protein to a strong one takes longer than the reverse, and salmon transitions are the most intensive. The facility runs one 10-hour day shift, Monday through Friday, for grinding, cooking, filling, and packaging, while the retort hall runs around the clock.

TruePaw Kitchen runs approximately 85 people at a 2,800 m² single-level facility, making 3 product classes across 5 production stages, scheduled by a small planning team.

Process overview

flowchart LR
    GM["Grinding/Mixing<br/>Batch"] --> CO["Cooking<br/>Batch · 2 kettles"] --> FI["Filling<br/>Flow · Cans &amp; Pouches"] --> RE["Retorting<br/>Batch · 4 retorts<br/>24/7"] --> PA["Packaging<br/>Flow"]

Five-stage hybrid flowshop: batch grinding/mixing and cooking feed a continuous filler, batch retorts sterilise sealed containers under 24/7 operation, and a flow packaging line completes the route.

All three product classes route through every stage. Routing variation is at the machine level within the filling stage — cans versus pouches — not stage-skipping.

Scheduling challenges and how Schantt handles them

The schedule is driven by a demand forecast that sets daily production quantities per product class. For planners whose primary constraint is material availability rather than demand, the same model applies — Schantt schedules forward from the earliest available start date against whichever trigger generates the work order. The scheduling algorithm minimises total production time across the full order set, running forward from a start date you define. This guide assumes a practical 10-day rolling horizon.

Schantt offers two scheduling modes. Auto mode optimises both the sequence of jobs and the assignment of jobs to machines. Semi-Auto mode holds your job sequence fixed and optimises machine assignments only.

What Schantt handles well

  • Sequential multi-stage production with transfer times — Five-stage linear route with per-class routing and stage-to-stage handoff delays for pumping, conveying, basket loading, and cooling.
  • Multi-machine stages (parallel retort bank) — Four retort machines on a single batch stage, each with its own calendar; the algorithm assigns jobs across available retorts in Auto and Semi-Auto modes.
  • Mixed batch-and-flow pipelines — Batch stages (cooking, retorting) and flow stages (filling, packaging) in one route, with automatic wait pauses where a flow filler outruns its upstream batch supply.
  • Sequence-dependent changeovers (flavor transitions) — Directional per-machine changeover times from one product class to another; the optimizer favours sequences that cluster similar flavours to reduce total changeover time.
  • Partial transfer (dribble-feeding) — Cooking kettles can release the first portion of a batch to the filler before the full cooking cycle completes, reducing filler idle time.
  • Shift-aware availability with machine-level overrides — Retorts on 24/7 rotating shifts; other stages on Monday-through-Friday day shifts, each modelled as distinct machine-level calendar assignments.

How Schantt handles each challenge

1. Flavor-driven changeover losses.

  • With five protein flavors across three product classes and asymmetric cleaning times that vary by direction, a typical week sees around 10 flavor changes on shared kettles, consuming 5 to 7 hours in changeover time across the cooking and filling stages. An estimated 3 to 4 hours per week are avoidable through better sequencing.
  • You enter directional changeover times on each machine as a per-pair matrix — the cleaning time from one product class to another on that specific kettle or filler, where the duration going from pâté to chunks in gravy can differ from chunks in gravy to pâté. In Auto mode, the scheduling algorithm evaluates job sequences and favours those that cluster similar product classes, reducing the total changeover time embedded in the plan. Where allergen protocols mandate strict ordering — fish-based products last, for example — Semi-Auto mode locks your sequence and still optimises machine assignments around it, so the fixed order is preserved while changeover time is still managed.

2. Filler supply starvation from batch-to-flow handoff.

  • The cooking stage produces batches of 1,000 kg on a 25-to-40-minute cycle, while the can filler runs at 12,000 to 18,000 units per hour. The filler can empty a full cooked batch in 5 to 12 minutes, then waits for the next batch to finish cooking — resulting in 1.5 to 2 hours of idle filler time per shift.
  • Each product class's routing from cooking to filling is configured with partial transfer enabled and a minimum release quantity set — in this scenario, the first 25% of a cooked batch is released to the filler as soon as it is ready, while the remainder finishes cooking. The filler begins running on that partial quantity instead of waiting for the full 1,000 kg batch, so the supply gap between consecutive batches is substantially narrowed. The partial quantity and the batch cycle time are both parameters you set per product class and per machine.

3. Retort bottleneck and 24/7 capacity utilisation.

  • The four retorts are the throughput bottleneck: the facility is retort-bound approximately 70% of operating time. Because filling and retorting run on different calendars — fillers on a 10-hour day shift, retorts on continuous 24/7 — the front end can produce more sealed containers in a day than the retorts can process, and 2 to 3 retort heat-up cycles per week are potentially eliminated with tighter scheduling.
  • The four retorts are modelled as four separate machines on a single batch stage, each with its own cycle duration (35 minutes for pâté, 40 minutes for shreds, 50 minutes for chunks in gravy), basket capacity of 400 kg, and its own calendar override set to the 24/7 rotating schedule. In Auto mode, the algorithm assigns incoming filled baskets across all available retorts and sequences them to minimise idle gaps, keeping utilisation high across the continuous operating window. Semi-Auto mode lets you fix the retort sequence — for example, dedicating one retort to the longest cycle — while still balancing load across the remaining machines.

4. Format-switch coordination on filling and packaging.

  • Switching between can and pouch formats on the filling and packaging stages requires approximately 30 minutes of coordination overhead per change — changeover on the can filler when moving between pâté and chunks in gravy, and a separate configuration change on the packaging line when the container format changes. Under rushed format switches, pouch damage rates rise from approximately 0.5% to approximately 2.5%, representing 80 to 120 pouches lost per shift.
  • The two filling machines — can filler and pouch filler — sit on the same filling stage, each with its own per-class throughput rate and its own changeover matrix. The can filler carries directional changeover times between pâté and chunks in gravy (30 minutes each way); the pouch filler serves shreds only and has no class changeovers. On the packaging stage, the single packaging line has per-class throughput rates (12,000 units per hour for cans, 7,200 units per hour for pouches) that account for the format-handling difference. Because throughput rates are set at a conservative value for fragile pouch formats, the schedule naturally spaces pouch runs with realistic timing. Format switches are visible on the Gantt as labelled changeover segments between operations.

5. Shelf-life priority across product runs.

  • Retail customers require a minimum of 18 months of remaining shelf life upon delivery, which means production runs closer to the end of that window must be scheduled earlier. The production date relative to the expiry window creates an implicit priority that spreadsheets struggle to honour consistently across a 42-SKU product range.
  • In Semi-Auto mode, you arrange the job sequence to place earlier-expiry production first, and the algorithm optimises machine assignments within that fixed order. The resulting schedule is displayed on the Gantt, where you can verify that high-priority runs complete within their required window before releasing the plan. The ordering constraint is applied at the sequence level — Schantt does not enforce a hard latest-finish deadline — so the planner reviews the Gantt as the final check.

What to model in Schantt

The 14-day quality-control incubation hold after retorting is managed outside Schantt as a manual post-production buffer — the schedule horizon accounts for it, but the schedule does not control it. These are the entities you create in Schantt:

Entity Count Notes
Stages 5 Grinding/Mixing (batch), Cooking (batch), Filling (flow), Retorting (batch), Packaging (flow)
Machines 10 1 grinder, 2 steam-jacketed kettles, 2 fillers (cans + pouches), 4 retorts, 1 packaging line
Product Classes 3 Pâté, Chunks in Gravy, Shreds
Products 3 One representative product per class
Calendars 2 Monday–Friday day shift (06:00–16:00) and 24/7 rotating

Step-by-step setup

1. Create the stages in order and set the transfer times. Define the five stages from grinding/mixing through packaging, with their production types — batch for grinding/mixing, cooking, and retorting; flow for filling and packaging. On each stage's detail page, set the transfer time to the next stage in the route:

  • Grinding/Mixing → Cooking: 10 minutes
  • Cooking → Filling: 10 minutes
  • Filling → Retorting: 15 minutes
  • Retorting → Packaging: 20 minutes

2. Add the machines to each stage. For each stage, create the machines that operate on it:

  • Grinding/Mixing: 1 frozen-block grinder
  • Cooking: 2 steam-jacketed kettles
  • Filling: 2 machines — a can filler with seamer and a pouch filler
  • Retorting: 4 batch retorts
  • Packaging: 1 integrated labeler and case-packer

3. Create the product classes and define per-class routing. Set up three product classes — Pâté, Chunks in Gravy, and Shreds. Each class routes through all five stages, so no stage is skipped. On the product class detail page, enable partial transfer for the cooking-to-filling handoff at a minimum release quantity of 250 kg for all three classes.

4. Add one representative product per class. Create one product for each class:

  • Chicken Pâté 156 g can (Pâté class)
  • Beef Chunks in Gravy 156 g can (Chunks in Gravy class)
  • Salmon Shreds 85 g pouch (Shreds class)

5. Set machine capacity parameters and changeovers. On each machine's detail page, enter the batch cycle durations and batch sizes for batch-stage machines, and throughput rates for flow-stage machines. Then enter the directional changeover times between product classes on the shared machines.

Cooking kettles (both machines, per-class batch parameters):

  • Pâté: 25-minute cycle, 1,000 kg batch
  • Chunks in Gravy: 40-minute cycle, 1,000 kg batch
  • Shreds: 30-minute cycle, 1,000 kg batch

Cooking kettle changeover matrix (same on both kettles, directional, in minutes):

From \ To Pâté Chunks in Gravy Shreds
Pâté 40 50
Chunks in Gravy 35 45
Shreds 70 65

Can filler changeover (Pâté ↔ Chunks in Gravy, 30 minutes each direction): the can filler handles Pâté and Chunks in Gravy; the pouch filler handles Shreds only and has no product class changeovers.

Retorts (all four, per-class batch parameters):

  • Pâté: 35-minute cycle, 400 kg basket
  • Chunks in Gravy: 50-minute cycle, 400 kg basket
  • Shreds: 40-minute cycle, 400 kg basket

Filling stage throughput rates:

  • Can filler: 18,000 units/hour (Pâté), 12,000 units/hour (Chunks in Gravy)
  • Pouch filler: 9,000 units/hour (Shreds)

Packaging line throughput rates:

  • Pâté: 12,000 units/hour
  • Chunks in Gravy: 12,000 units/hour
  • Shreds: 7,200 units/hour

6. Configure calendars, exceptions, and downtimes. Create two calendars: a day-shift calendar (Monday through Friday, 06:00 to 16:00) assigned to all machines except the retorts, and a 24/7 rotating calendar assigned to the four retorts. Add calendar exceptions for the facility's non-working days — New Year's Day, International Workers' Day, and a year-end shutdown starting December 24. Finally, enter planned downtime windows: annual preventive maintenance on retort 1 (mid-June), a piston-seal and seamer-head overhaul on the can filler (mid-March), and a plant-wide electrical shutdown (early August).

For step-by-step instructions on configuring each of these in Schantt, see the Schantt documentation.

Common mistakes

1. Using a single blanket changeover time instead of per-pair directional values. Changeover times in wet pet food are not symmetric — cleaning a kettle from shreds to pâté takes 70 minutes, while the reverse takes 50 minutes. A single average value hides the asymmetry that drives good sequencing decisions. Fix: Enter every directional pair on each machine that handles multiple product classes, using the actual cleaning times for each transition direction.

2. Modeling all three product classes as a single class with a common route. Pâté, chunks in gravy, and shreds follow different cooking durations and use different filling machines. Collapsing them into one class forces a single cooking profile and a single filler assignment, losing the machine-level routing variation that defines the real process. Fix: Create one product class per product family, each with its own per-stage routing and its own machine assignments on the filling stage.

3. Treating the four retorts as one machine with four times the capacity. Retorts run independently — each has its own cycle, basket, and availability. A single combined machine would schedule only one basket at a time and miss the parallel processing that the real floor depends on. Fix: Create four separate retort machines on the retorting stage, each with its own batch size and cycle duration.

4. Not setting machine-level calendar overrides for the retorts. Without a calendar override, retorts inherit the team default (day shift only) and stop scheduling work every evening and weekend, stranding filled baskets and wasting 24/7 capacity. Fix: Assign the 24/7 rotating calendar to each retort machine individually so the algorithm fills every available hour.

5. Omitting changeover times on the can filler between pâté and chunks in gravy. Even though the can filler handles only two classes, the transition between them consumes 30 minutes. Without that entry, the scheduler treats the switch as instantaneous and produces an unrealistically tight plan that the floor cannot execute. Fix: Enter the 30-minute directional changeover in both directions on the can filler.

What a good schedule looks like

A well-configured Schantt schedule replaces manual, stage-by-stage sequencing with an optimised plan that respects every handoff, changeover, and calendar constraint across the full 10-day horizon. The difference is visible in both the structure of the plan and the utilisation of each stage.

Before (spreadsheet/manual):

  • Flavor sequences are chosen by experience, not systematically, leaving 3 to 4 hours per week of avoidable changeover time on the table
  • The filler starves for 1.5 to 2 hours per shift waiting for the next cooked batch, because the full-batch handoff creates a gap between supply and demand
  • Retort utilisation lags — without visibility into which retorts are free and when, a heat-up cycle is started even when partial capacity is available on an already-hot retort
  • Format switches between cans and pouches are coordinated on the fly, leading to rushed changeovers that inflate the pouch damage rate

After (Schantt Auto mode):

  • The algorithm sequences jobs to cluster similar product classes, reducing total changeover time across the planning horizon and recovering a portion of the avoidable weekly changeover hours
  • Partial transfers from cooking to filling keep the filler running between batch completions, cutting idle time substantially per shift
  • Jobs are distributed across the four retorts automatically, with the algorithm filling every available machine as sealed baskets arrive — fewer unnecessary heat-up cycles and higher retort utilisation
  • Every changeover — on kettles and fillers alike — is scheduled with its full directional duration and appears as a labelled segment on the Gantt, so the format switch is a planned event with accurate timing rather than a scramble

Ready to schedule your own facility?

Try Schantt free — no credit card required. Go from spreadsheet to optimized Gantt chart in 60 minutes.

Try Schantt Free