Production Scheduling for Hot-Fill Juices, Teas & Isotonics

Learn how to model and schedule hot-fill juice and tea production lines using Schantt. Covers hybrid-flowshop scheduling with CIP changeovers, parallel filler lines, batch blending, cooling tunnels, and seasonal capacity.

Hot-fill beverage bottling combines batch blending, high-temperature pasteurisation, and continuous-flow filling, cooling, labelling, and packaging — a classic hybrid flowshop where CIP-driven changeovers, parallel filler assignment, and shifting seasonal demand make every schedule a tradeoff. This guide shows production planners and plant managers how to model and schedule a hot-fill beverage line in Schantt, capturing the real constraints that determine whether a weekly plan works on the floor.

This guide follows a fictional composite company built from industry research on hot-fill beverage bottling; all names, parameters, and figures are illustrative.

Industry context

Hot-fill bottling is the dominant shelf-stable packaging method for acidic beverages such as fruit juices, teas, and isotonic sports drinks. The product is pasteurised at 88–93 °C and filled hot into heat-set PET bottles, which creates a vacuum seal as the contents cool and contract. Unlike aseptic processing, hot-fill relies on the product's own temperature to sterilise both the container and the closure — so the timing from pasteurisation through to capping and the start of cooling is critical to seal integrity and shelf life.

The production route is a six-stage hybrid flowshop. Blending runs as a batch operation in stainless steel tanks, while pasteurisation, filling, cooling, labelling, and packaging all run as continuous-flow stages fed sequentially through the same line. Between each pair of consecutive stages, a fixed transfer time accounts for piping, pumping, or conveyor movement — 15 minutes from blending to pasteurisation, 10 minutes from pasteurisation to filling, 2 minutes from filling to cooling, 5 minutes from cooling to labelling, and a further 5 minutes from labelling to packaging.

Product changeovers at the filling stage are the dominant source of downtime: cleaning durations differ dramatically by product pair. A rinse-only changeover between clear flavours takes 15 minutes, but switching from a dark tea to a clear juice demands a full caustic-and-acid CIP cycle lasting up to 90 minutes. These directional changeover times, combined with multiple parallel machines at several stages and a pronounced summer demand peak, make manual scheduling both time-consuming and a significant drain on throughput. A typical week sees roughly 35 product changes across the three filler lines, consuming 15–25 hours of what would otherwise be productive line time.

A typical SMB-to-mid-market hot-fill beverage plant runs two blending tanks (10,000 L each, 60-minute batch cycle), two pasteurisers (a plate heat exchanger and a tubular heat exchanger), three parallel hot-fill filler–capper lines (Line-1 and Line-2 at 12,000 bottles per hour each, Line-3 at 10,000 bottles per hour with open-gap valves for pulp products), three multi-zone spray cooling tunnels, two labellers, and two packaging machines. On each of these machines, the planner enters per-class throughput rates, changeover times, and shift calendars. The default working week is Monday to Friday, 06:00–22:00 (two 8-hour shifts with a 2-hour overlap), with a summer extension adding Saturday shifts.

Crestline Beverage Company runs approximately 85 people at a 9,000 m² facility making three product classes — Clear Juices, Pulp Juices, and Teas — across six production stages, scheduled by a two-person planning team.

Process overview

flowchart LR
    B["Blending<br/><i>Batch</i>"]
    P["Pasteurisation<br/><i>Flow</i>"]
    F["Filling<br/><i>Flow</i>"]
    C["Cooling<br/><i>Flow</i>"]
    L["Labelling<br/><i>Flow</i>"]
    K["Packaging<br/><i>Flow</i>"]
    B -->|"15 min"| P
    P -->|"10 min"| F
    F -->|"2 min"| C
    C -->|"5 min"| L
    L -->|"5 min"| K

Crestline's six-stage hot-fill production process: batch blending upstream feeds five continuous-flow stages downstream, with transfer times linking each handoff.

All three product classes visit every stage — no skip-routing applies — but machine-level divergence occurs within stages. Pulp Juices route through the tubular heat exchanger (THE-1) and the open-gap filler (Line-3); Teas see a reduced cooling throughput of 9,000 bottles per hour per tunnel versus 12,000 for Clear Juices.

Scheduling challenges and how Schantt handles them

In this hot-fill scenario, the schedule is driven by a demand plan — a set of jobs with product, quantity, and a target start week. For readers whose primary driver is a different input (such as bulk tanker arrivals or harvest windows), the modeling approach is the same: the key is to encode the machine capacities, changeover durations, and calendar constraints that the algorithm uses to build the forward schedule.

The scheduling algorithm minimises total production time — the completion time of the last operation — by exploring job sequences, machine assignments, and changeover order. It schedules forward from the planner's chosen start date. For a typical weekly production horizon of 5–7 days, Schantt operates in one of two optimisation modes: Auto mode explores both the job sequence and the machine assignment across every stage to find the fastest overall plan; Semi-Auto mode lets the planner fix the job order while the system optimises which machine runs each operation.

What Schantt handles well

  • Hybrid flowshop with batch and flow stages — blending runs as a batch operation while filling and packaging run as continuous flow, all in a single routing path.
  • Parallel machines at each production step — multiple filler lines, pasteurisers, labelling stations, and packaging lines, with the system choosing the best machine assignment.
  • Directional changeover times by product class — CIP durations differ by the product pair and direction (Tea→Clear 90 minutes vs. Clear→Tea 60 minutes), and the schedule accounts for every transition.
  • Mixed batch-and-flow pipelines with supply tracking — batch blending feeds flow filling, and the schedule shows when downstream consumption outruns upstream supply as wait material pauses.
  • Shift-aware calendars with exceptions and downtimes — working windows, holidays, seasonal overtime, and maintenance outages are all modeled and reflected in timing.
  • Seasonal calendar switching — different shift patterns for winter and summer peak, with exceptions for overtime Saturdays, all within a single schedule.

How Schantt handles each challenge

1. CIP-driven changeover downtime.
- A typical week sees around 35 product changes across three filler lines, with CIP durations ranging from 15 minutes (Clear→Clear rinse) to 90 minutes (Tea→Clear full caustic-and-acid cycle). These transitions consume 15–25 hours of line capacity per week, and the order in which products run determines whether a deep or shallow clean is needed.
- Schantt models each changeover as a directional duration per product-class pair on each machine. The scheduling algorithm considers the transition time between every consecutive pair of jobs and favours sequences that group products of the same class — turning deep CIP cycles into quick rinse-only changes wherever possible. The planner sets the per-pair durations on the Machine detail page; the schedule then reflects every one of the ~35 transitions automatically, rather than the planner having to think through each one by hand.

2. Parallel filler-line assignment.
- With three filler lines of different capabilities — Line-1 and Line-2 handle Clear Juices and Teas at 12,000 bottles per hour, while Line-3 alone handles Pulp Juices at 10,000 bottles per hour — the planner must decide which product runs on which line to avoid overloading a single bottleneck. Manual assignment often leaves one line idle while another is overloaded.
- Schantt's algorithm treats each filler line as a machine within the Filling stage, aware of per-class throughput rates and the class-specific routing restrictions (Pulp Juices routed to Line-3 only). In Auto mode, the system explores every feasible machine assignment across all three lines simultaneously, balancing the load so that no single line becomes a bottleneck while others sit idle. The planner sees the chosen assignment on each operation's tooltip and can regroup the Gantt by machine to review the distribution.

3. Batch-prep synchronisation.
- Blending is a batch operation producing 10,000 L per 60-minute cycle, while each filler consumes that batch as a continuous flow. A single batch feeds approximately 50 minutes of fill time on a 12,000-bottles-per-hour line at 1 L per bottle. If the next batch is not ready when the filler tank runs low, the line starves — costing roughly 6 hours per week of lost capacity between buffer supply gaps and safety padding. But starting the batch too early risks holding the blended product too long before pasteurisation.
- Schantt models the Blending stage as a batch stage and the Filling stage as a flow stage within the same routing, with partial transfer enabled at the Pasteurisation→Filling handoff. The upstream batch completion triggers a 10,000 L partial transfer, letting the filler begin as soon as the product arrives through the pasteuriser. The schedule shows each operation's timing precisely, including any wait material pauses when downstream consumption outpaces upstream supply, so the planner can see whether their batch-timing assumptions hold.

4. Seasonal demand swings.
- In a plausible scenario for this facility, summer demand can reach 2.5 times the winter trough, requiring a shift from the Standard calendar to the Summer calendar with Saturday overtime. Manually adjusting every calendar entry for each line is time-consuming and error-prone.
- Schantt supports multiple named calendars and a seasonal switching mechanism via the calendar's working-day exceptions. The planner creates a Standard calendar (Monday–Friday 06:00–22:00) and a Summer calendar (Monday–Saturday 06:00–22:00), then applies the Summer calendar through the peak period using calendar exceptions. All machines inherit the shift pattern, and the schedule automatically extends into the additional hours without manual line-by-line updates.

5. Cooling-tunnel bottleneck.
- Teas require a longer cooling dwell than Clear Juices, reducing effective cooling throughput from 12,000 to 9,000 bottles per hour per tunnel. When tea runs are scheduled back-to-back on a fast filler, the cooling tunnel can become the bottleneck, forcing the filler to pace below its rated speed.
- Each cooling tunnel is modeled as a machine in the Cooling flow stage with a per-class throughput rate. The scheduling algorithm respects the lower tea throughput when assigning the tunnel, so the downstream stage never receives bottles faster than it can cool them. The planner sets the tunnel throughput on the Machine detail page for each product class, and the algorithm accounts for the constraint automatically across every job in the schedule.

What to model in Schantt

Modeling this scenario begins with six first-class entities that mirror the production line's physical and organisational structure.

Entity Count Notes
Stage 6 Blending (batch), Pasteurisation (flow), Filling (flow), Cooling (flow), Labelling (flow), Packaging (flow)
Machine 14 Tank-A, Tank-B (Blending); PHE-1, THE-1 (Pasteurisation); Line-1, Line-2, Line-3 (Filling); Tunnel-1, Tunnel-2, Tunnel-3 (Cooling); Label-A, Label-B (Labelling); Pack-1, Pack-2 (Packaging)
Product Class 3 Clear Juices, Pulp Juices, Teas
Product 3 Crisp Apple (Clear Juices), Sunrise Mango (Pulp Juices), Mist Lemon (Teas)
Calendar 2 Standard (Monday–Friday 06:00–22:00), Summer (Monday–Saturday 06:00–22:00)

Step-by-step setup

1. Create the stages in order.
Add the six stages in their production sequence, each with its production type. Open Schantt's Stage page and create:
- Stages: Blending (batch), Pasteurisation (flow), Filling (flow), Cooling (flow), Labelling (flow), Packaging (flow).
- On each Stage detail page, enter the transfer time to the next stage in sequence. These represent physical handoff delays — piping transfer through the pasteuriser, conveyor travel to the cooling tunnel, and surface air-dry time before labelling:
- Blending → Pasteurisation: 15 minutes
- Pasteurisation → Filling: 10 minutes
- Filling → Cooling: 2 minutes
- Cooling → Labelling: 5 minutes
- Labelling → Packaging: 5 minutes

2. Add the machines to each stage.
- Blending: Tank-A, Tank-B
- Pasteurisation: PHE-1, THE-1
- Filling: Line-1, Line-2, Line-3
- Cooling: Tunnel-1, Tunnel-2, Tunnel-3
- Labelling: Label-A, Label-B
- Packaging: Pack-1, Pack-2

3. Create the product classes and define per-class routing.
Add three product classes: Clear Juices, Pulp Juices, Teas. For each class, define its routing through all six stages. On the routing leg for the Pasteurisation→Filling handoff, enable partial transfer with a quantity of 10,000 L — this lets the filler start as soon as the first usable portion arrives from the pasteuriser rather than waiting for the entire blend batch to transfer.

4. Add one representative product per class.
- Clear Juices: Crisp Apple
- Pulp Juices: Sunrise Mango
- Teas: Mist Lemon

Each product inherits its routing and capacity parameters from its class. The guide models one product per class; in practice, you would add every active SKU under its class.

5. Set each machine's capacity parameters and changeovers on the Machine detail page.
- Batch stages (Blending): Set the batch size to 10,000 L and cycle duration to 60 minutes for both tanks, for every product class they process.
- Flow stages: Enter the per-class throughput for each machine. Key settings:
- Line-1 and Line-2: 12,000 bottles per hour for Clear Juices and Teas
- Line-3: 10,000 bottles per hour for Clear Juices, Pulp Juices, and Teas; Pulp Juices routed exclusively to Line-3
- Cooling tunnels: 12,000 bottles per hour for Clear Juices, 10,000 bottles per hour for Pulp Juices, 9,000 bottles per hour for Teas
- Packaging machines: Pack-1 at 12,000 bottles per hour, Pack-2 at 10,000 bottles per hour
- Changeovers: On each filler line, enter the directional durations between product classes. Illustrative parameters include:
- Clear→Clear: 15 minutes (rinse only)
- Clear→Teas: 60 minutes
- Teas→Clear: 90 minutes
- Pulp→Clear: 60 minutes
- Clear→Pulp on Line-3: 45 minutes
- Tank changeovers (Blending): Teas→Clear at 60 minutes, Clear→Pulp at 15 minutes
- Packaging changeovers: Clear→Pulp at 12 minutes per machine
- Recurring pre-warming: Add a 5–15 minute recurring downtime per filler at the start of each shift to account for bottle pre-warming on cold startup.

6. Configure calendars, exceptions, and downtimes.
Create the Standard calendar (Monday–Friday 06:00–22:00) as the default, then add the Summer calendar (Monday–Saturday 06:00–22:00) for seasonal peak periods. Add calendar exceptions for New Year's Day and International Workers' Day. Schedule the year-end factory shutdown (December 24–January 2) and the Line-1 planned annual overhaul (July 15–17) as machine downtimes.

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

Common mistakes

1. Using a single blanket changeover duration.
If you enter one changeover time for all product transitions on a filler, the schedule cannot distinguish between a 15-minute rinse-only switch and a 90-minute full CIP cycle. The algorithm will optimise on the wrong figure and may produce a sequence that looks efficient on paper but causes a line standstill when the deep clean is actually needed.
Fix: Enter directional durations for every product-class pair on each machine. Use illustrative industry-typical values (rinse-only, caustic, full CIP) and adjust when you have plant-specific data. Include both directions — Clear→Teas and Teas→Clear can differ significantly and both need to be set.

2. Modeling all products under a single product class.
Products with different filling restrictions — such as Clear Juices that can run on any filler versus Pulp Juices restricted to Line-3 — must belong to separate product classes so the routing and machine capabilities diverge. A single class cannot encode different routing paths or machine assignments.
Fix: Create one product class per routing group. For this scenario, Clear Juices, Pulp Juices, and Teas each need their own class.

3. Setting the wrong machine count at a stage.
If you model only two cooling tunnels when the plant has three, the schedule will show a bottleneck that does not exist on the floor — or worse, you may plan to run tea products through a cooler that is already occupied when another is free.
Fix: Create every physical machine at each stage. The algorithm's machine assignment works best when every available resource is represented.

4. Forgetting to enable partial transfer at the batch-to-flow handoff.
Without partial transfer on the Pasteurisation→Filling routing leg, the filler waits for the entire blend batch to complete its transfer before it can start. In reality the product becomes available gradually through the pasteuriser, and the filler can begin as soon as the first usable portion arrives.
Fix: On the product class's routing, enable partial transfer with a quantity of 10,000 L for every class at the Pasteurisation→Filling leg.

5. Not configuring the seasonal calendar switch.
If you model only one calendar year-round, summer jobs will schedule into the same Monday–Friday window as winter jobs — either overloading the available hours or forcing manual rescheduling of every shift extension.
Fix: Create a Summer calendar with Saturday overtime and use calendar exceptions to switch between winter and summer patterns at the appropriate dates.

What a good schedule looks like

When the hot-fill line is configured correctly and optimised with Schantt's scheduling algorithm, the weekly plan shifts from a manual firefight to a repeatable, machine-readable process.

Before (manual scheduling):
- The planner manually sequences ~35 changeovers each week, often grouping by intuition, resulting in deep CIP cycles scattered through the week rather than consolidated.
- Average weekly changeover time: 20–22 hours across the three filler lines.
- Buffer padding between batch blending and filler supply adds approximately 6 hours of non-productive time per week from safety buffers and missed handoffs.
- Total non-productive time: ~26 hours per 80-hour week (33 %), constraining what the plant can ship in peak periods.

After (Schantt Semi-Auto mode with optimised sequence):
- The algorithm groups products by class to minimise deep CIP transitions: Clear Juices run consecutively on each line, Teas are batched together, and Pulp Juices are scheduled as a single block on Line-3.
- Changeover time drops to approximately 15 hours per week — a reduction of roughly 30 % through better sequencing alone.
- Partial transfer at the Pasteurisation→Filling handoff synchronises batch supply with filler demand, reducing buffer waste by roughly 25 % compared to fixed safety padding.
- Total non-productive time: ~19.5 hours per week (~24 %). The recovered ~6.5 hours per week translates to most of a full shift of additional production capacity — available for seasonal peaks or reduced overtime.

In Auto mode, where the algorithm also optimises machine assignment, the same product mix schedules into a similar total time window with less manual review needed, since the system balances load across Line-1, Line-2, and Line-3 automatically. The planner stays in control of which calendar regime applies — the seasonal switch is a planner decision, not a system forecast — and reviews the resulting Gantt to check that pasteurisation-to-fill timing and shared-resource overlaps remain feasible under the optimised plan.

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