Production Scheduling for Ready-to-Drink Cocktails & Hard Seltzers

Production scheduling for RTD cocktails and hard seltzers: model multi-machine filling lines, sequence-dependent flavor changeovers, divergent routing, and seasonal calendars. See how Schantt optimizes your timeline across blending, carbonation, filling, pasteurization, and packaging.

Production scheduling for ready-to-drink cocktails and hard seltzers means sequencing blending batches, carbonation dwell, filler runs, and packaging line formats across multiple product classes with divergent routes. This guide shows production planners how to model a two-line beverage facility in Schantt — from blend tanks and filler changeovers to seasonal calendars — and let the algorithm find the optimal sequence that minimises total production time.

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

Industry context

Ready-to-drink cocktails and hard seltzers move through a hybrid batch-and-flow pipeline: blending (batch), optional carbonation (continuous flow), filling (continuous flow — the dominant bottleneck), optional pasteurisation (continuous flow), labelling, packaging, and palletising. Carbonated seltzers traverse the full route; still cocktails skip carbonation; high-ABV premium cocktails skip both carbonation and pasteurisation. Each product class follows its own routing, with blending-to-filling partial transfer enabling the filler to start before a blend batch fully completes.

Filler throughput (measured in units per hour on can and bottle lines) is the capacity bottleneck — flavour changeovers between runs consume 15 to 45 minutes per transition depending on flavour compatibility, driven by clean-in-place (CIP) chemistry. Blending operates asynchronously from filling: batch tanks produce discrete volumes (500–1,000 kg), while fillers consume continuously. A single CIP skid serves both filling lines, preventing simultaneous cleaning. Calendar availability shifts seasonally: summer peak runs two shifts six days, winter standard runs one shift five days.

A two-line facility running a can line (9,000 units per hour) and a bottle line (6,000 units per hour) produces roughly 8–10 million units annually across three product classes — hard seltzers in 355 mL slim cans, still cocktails in 375 mL bottles, and premium high-ABV cocktails in 375 mL bottles with smaller pack formats. Six seltzer flavours and six cocktail flavours cycle through a shared case packer with format changeovers (15 minutes between can and bottle trays) and a common palletiser. Annual production runs through seven stages with 12 machines, two seasonal calendars, and recurring maintenance windows for weekly CIP on each filler.

Bayside Craft Beverage Co. runs about 85 people at a 3,500 m² facility, making three product classes across seven production stages, scheduled by a two-person planning team.

Process overview

flowchart LR
  B["Blending"] --> C["Carbonation"] --> F["Filling"]
  F --> P["Pasteurisation"] --> L["Labelling"]
  L --> K["Packaging"] --> R["Palletising"]
  C -.->|"Still & Premium Cocktails"| F
  P -.->|"Premium Cocktail"| L

Seven-stage process flow for RTD cocktails and hard seltzers. Solid arrows show the full route for hard seltzers; dashed arrows show bypass routes for products that skip stages.

Hard seltzers traverse all seven stages. Still cocktails bypass carbonation. Premium cocktails bypass both carbonation and pasteurisation.

Scheduling challenges and how Schantt handles them

The schedule in this guide assumes you know the production quantities needed for each product — from sales orders or a forecast — and enter them as orders to schedule. If your facility is driven by a different demand signal (such as a make-to-stock target), the same modelling approach applies; your order set simply represents that target. Schantt optimises the sequence to minimise total production time, scheduling forward from a chosen start date over a practical planning horizon (the guide assumes a weekly to monthly window, though the same model works for longer or shorter horizons). Two optimisation modes are available: Auto mode assigns both the job sequence and the machine for each operation, searching across combinations to find the arrangement that completes the work fastest. Semi-Auto mode preserves your chosen sequence and optimises only the machine assignments around it — useful when you have a preferred production order but want the algorithm to decide which filler should run which product. Both modes respect every modelled capacity, changeover, transfer time, and calendar constraint, so the resulting Gantt is immediately actionable.

What Schantt handles well

  • Multi-machine filling stages — The filling stage has multiple machines (can filler, bottle filler) running in parallel. Schantt treats each machine as belonging to one stage, so it explores which machine a job should land on and chooses the combination that minimises total production time. In Auto mode the system also sequences jobs across the bottleneck; in Semi-Auto it preserves the planner's order while optimising machine assignments around it.

  • Sequence-dependent flavour changeovers — Flavour-to-flavour changeovers depend on direction — citrus to berry takes less time than citrus to dark spirit. Schantt models this as directional per-machine changeover times between product classes. Plans that cluster similar flavours score better because shorter changeovers reduce total production time.

  • Mixed batch-and-flow pipelines — Blending is a batch stage with fixed batch sizes and cycle durations; filling, labelling, and packaging are flow stages running at a throughput rate. Schantt lets one product class route through both types in the same path. The simulation feeds downstream stages from upstream completions, and when material runs short it emits a "wait material" pause visible on the Gantt. Partial transfer at the blending-to-filling handoff lets filling begin on the first usable portion before blending finishes.

  • Multi-product routing with stage skipping — Not every product uses every stage — still products skip carbonation, high-ABV products skip pasteurisation. Schantt handles this with per-class routing: a product class specifies exactly the stages it requires. Stages absent from that set produce no operation and no Gantt row. Bridging transfer times maintain the correct handoff delay across the skipped span.

  • Shift-aware seasonal calendars — Peak season runs two shifts with Saturday work; off-peak runs one shift weekdays. Schantt models this with named calendars assigned to date ranges via calendar-period records. Operations advance through working time only, split across shift boundaries, and visible as separate processing bars per shift on the Gantt. Calendar exceptions and machine downtimes add further control for holidays, overtime, and planned maintenance.

How Schantt handles each challenge

1. Filler bottleneck and line assignment.

  • The can filler (9,000 units per hour) and bottle filler (6,000 units per hour) together define the facility's maximum output. During summer peak, filler utilisation exceeds 90% and any unscheduled idle time — from poorly sequenced changeovers or mismatched line assignments — pushes orders past their target completion dates.
  • Schantt treats both fillers as parallel machines under a single filling stage. In Auto mode it sequences jobs and assigns each to the machine that minimises total production time, accounting for each filler's throughput and the flavour changeover durations on that specific machine. In Semi-Auto mode, the planner keeps control of the run order while Schantt still optimises which filler handles each job.

2. Flavour changeovers and CIP sequencing.

  • Switching from a citrus cocktail to a dark-spirit cocktail on the bottle filler requires 45 minutes of cleaning, while compatible transitions within the same product class take much less. A single CIP skid serves both fillers — overlapping cleaning windows are impossible.
  • Schantt models directional changeover times per product-class pair on each filler. The algorithm naturally clusters compatible flavours to minimise total changeover time. The planner sets each duration based on their own CIP policy and staggers the windows manually, reviewing the Gantt to confirm no overlap.

3. Batch blending feeding continuous filling.

  • Blending produces discrete 1,000 kg or 500 kg batches while filling consumes liquid continuously. Without coordination, the filler stalls waiting for the next batch. Three blend tanks (two large, one small) serve both lines.
  • Schantt models blending as a batch stage with batch size and cycle duration, and filling as a flow stage with throughput. Partial transfer from blending to filling lets the filler start on the first usable portion (200 kg) before blending finishes. The "wait material" pause is visible on the Gantt.

4. Divergent routing across product classes.

  • Hard seltzers traverse seven stages, still cocktails six (skip carbonation), premium cocktails five (skip carbonation and pasteurisation). Manually maintaining three routing templates is error-prone; a pasteuriser failure cannot be worked around quickly.
  • Each product class defines its own ordered stage list; stages absent from that set produce no operations. Bridging transfer times maintain handoff delays across skipped spans. To simulate a pasteuriser outage, the planner temporarily reroutes affected products by removing pasteurisation from their routing — a per-class change.

5. Seasonal capacity pressure.

  • The shift from Winter Standard (one shift, five days, 45 hours per week) to Summer Peak (two shifts, six days, 96 hours per week) doubles available working time. The planner manually recalculates quantities and sequences at each transition.
  • Schantt supports multiple calendars assigned to date ranges. The schedule advances through the active calendar's working time, automatically extending to longer shifts during summer and shortening for winter. Calendar exceptions handle holidays; the planner re-runs the schedule when the regime changes.

What to model in Schantt

For this scenario, you will configure the following production entities in Schantt.

Entity Count Notes
Stage 7 Blending (batch), Carbonation (flow), Filling (flow), Pasteurisation (flow), Labelling (flow), Packaging (flow), Palletising (flow)
Machine 12 3 blend tanks, 1 carbonator, 2 fillers, 2 pasteurisation machines, 2 labelers, 1 case packer, 1 palletiser
Product Class 3 Hard Seltzer (canned, carbonated), Still Cocktail (bottled, hot-fill), Premium Cocktail (bottled, high-ABV)
Product 3 One representative per class: Grapefruit Seltzer, Old Fashioned, Negroni
Calendar 2 Winter Standard (Oct–Apr, 1 shift, Mon–Fri), Summer Peak (May–Sep, 2 shifts, Mon–Sat)

Step-by-step setup

Configure your production capability in this order — each step builds on the entities created before it.

  1. Create the stages in order, then set transfer times. Create seven stages in positional order: Blending (batch), Carbonation (flow), Filling (flow), Pasteurisation (flow), Labelling (flow), Packaging (flow), Palletising (flow). On each stage's detail page, configure the transfer times to the next stage.

Transfer times to configure:
- Blending → Carbonation: 5 min (pump transfer)
- Blending → Filling: 10 min (bridge for products skipping carbonation)
- Carbonation → Filling: 5 min (carbonation stabilisation buffer)
- Filling → Pasteurisation: 2 min (conveyor-linked)
- Filling → Labelling: 5 min (bridge for products skipping pasteurisation)
- Pasteurisation → Labelling: 15 min (cool-down buffer)
- Labelling → Packaging: 3 min (conveyor transfer)
- Packaging → Palletising: 3 min (conveyor transfer)

  1. Add the machines to each stage. Add the following machines to their respective stages.

Blending: Blend Tank 1, Blend Tank 2, Blend Tank 3
Carbonation: Inline Carbonator
Filling: Can Filler (integrated seamer), Bottle Filler (integrated capper)
Pasteurisation: Tunnel Pasteuriser, Hot-fill Hold Conveyor
Labelling: Can Labeler, Bottle Labeler
Packaging: Case Packer (shared)
Palletising: Palletiser (shared)

  1. Create the product classes and define each class's routing. Create three product classes. For each, define its ordered stage list. Enable partial transfer at the blending stage for all three classes with a transfer quantity of 200 kg — this lets the filler begin processing the first usable portion while blending continues on the remaining volume.

Hard Seltzer: Blend → Carbonate → Fill → Pasteurise → Label → Pack → Palletise (full route, no stages skipped)
Still Cocktail: Blend → Fill → Pasteurise → Label → Pack → Palletise (skips carbonation)
Premium Cocktail: Blend → Fill → Label → Pack → Palletise (skips carbonation and pasteurisation)

  1. Add the products, one representative per class. Create one product per class: Grapefruit Seltzer (Hard Seltzer), Old Fashioned (Still Cocktail), and Negroni (Premium Cocktail). Each product inherits routing, processing parameters, and changeovers from its class. A real facility with the full flavour list can add all products here; the guide uses one per class for clarity.

  2. Set machine capacity parameters and changeovers on each machine's detail page. On each Machine detail page, configure per-class parameters and directional changeovers. These need the product classes from step 3 to exist first.

Batch parameters (Blending stage):
- Blend Tank 1 (Hard Seltzer): batch size 1,000 kg, cycle 45 min
- Blend Tank 2 (Hard Seltzer): batch size 1,000 kg, cycle 45 min
- Blend Tank 3 (Still Cocktail): batch size 500 kg, cycle 35 min
- Blend Tank 3 (Premium Cocktail): batch size 500 kg, cycle 35 min

Throughput parameters (flow stages):
- Inline Carbonator (Hard Seltzer): 9,000 units/hour
- Can Filler (Hard Seltzer): 9,000 units/hour
- Bottle Filler (Still Cocktail): 6,000 units/hour
- Bottle Filler (Premium Cocktail): 6,000 units/hour
- Tunnel Pasteuriser (Hard Seltzer): 9,000 units/hour
- Hot-fill Hold Conveyor (Still Cocktail): 6,000 units/hour
- Can Labeler (Hard Seltzer): 9,000 units/hour
- Bottle Labeler (Still Cocktail): 6,000 units/hour
- Bottle Labeler (Premium Cocktail): 6,000 units/hour
- Case Packer (Hard Seltzer): 43,200 units/hour
- Case Packer (Still Cocktail): 43,200 units/hour
- Case Packer (Premium Cocktail): 21,600 units/hour
- Palletiser (Hard Seltzer): 43,200 units/hour
- Palletiser (Still Cocktail): 43,200 units/hour
- Palletiser (Premium Cocktail): 21,600 units/hour

Changeover times (Bottle Filler): Still Cocktail ↔ Premium Cocktail = 45 min each way
Changeover times (Blend Tank 3): Still Cocktail ↔ Premium Cocktail = 15 min each way
Changeover times (Bottle Labeler): Still Cocktail ↔ Premium Cocktail = 10 min each way
Changeover times (Case Packer): Hard Seltzer ↔ Still Cocktail = 15 min; Hard Seltzer ↔ Premium Cocktail = 15 min

  1. Configure calendars, exceptions, and downtimes (optional, last). Create two calendars: Winter Standard (October–April, default, 08:00–17:00 weekdays) and Summer Peak (May–September, 06:00–22:00 Monday–Saturday). Add calendar exceptions for New Year's Day (1 January), International Workers' Day (1 May), and a year-end shutdown (26–27 December). Add machine-specific downtimes for weekly deep CIP on each filler (Can Filler: Tuesday 06:00–08:00; Bottle Filler: Wednesday 06:00–08:00) and an annual plant-wide shutdown (24–31 December).

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

Common mistakes

  1. Using a single blanket changeover for all flavour transitions. The algorithm cannot distinguish between a quick citrus-to-citrus rinse and a full CIP from a dark spirit to a light seltzer. It will overestimate changeover time on compatible transitions and underestimate on incompatible ones, producing an unrealistic schedule.
    Fix: Create directional changeover times for each product-class pair on the filler machines. Compatible flavours in the same class get a short duration; cross-class transitions get the longer cleaning time that matches your CIP policy.

  2. Modelling all products as a single class with one routing. Every product would go through carbonation and pasteurisation, even though still cocktails and high-ABV premium cocktails skip those stages. The schedule would show unnecessary operations on those stages and produce an incorrect Gantt.
    Fix: Create three product classes, each with exactly the stages its products actually traverse. Use bridging transfer times from blending directly to filling for products that skip carbonation, and from filling to labelling for products that skip pasteurisation.

  3. Forgetting to enable partial transfer from blending to filling. The filler waits for the entire blend batch to complete before starting, adding a full batch cycle (35–45 min) of idle time to every production run. The "wait material" pause on the Gantt is avoidable.
    Fix: On each product class's routing, enable partial transfer at the blending stage with a transfer quantity of 200 kg. This lets the filler begin processing the first usable portion while blending continues on the remaining volume.

  4. Modelling the cool-down buffer and carbonation stabilisation as separate stages. You end up with more stages than the physical layout has — cool-down conveyors and stabilisation sections are passive buffers, not active production stages. The Gantt fills with extra rows that do not correspond to real equipment decisions.
    Fix: Model these as transfer times between the relevant stages: 15 min from pasteurisation to labelling for cool-down, 5 min from carbonation to filling for stabilisation. No extra stages needed.

  5. Assigning the same calendar to both lines without accounting for their CIP downtime. The weekly two-hour CIP on each filler is not reflected in the schedule, so the algorithm may schedule production during a cleaning window. The planner discovers the conflict only when the filler cannot be started.
    Fix: Add each filler's weekly CIP as a recurring machine downtime (Can Filler: Tuesday 06:00–08:00; Bottle Filler: Wednesday 06:00–08:00). The schedule will automatically avoid placing operations during those windows.

What a good schedule looks like

Here is what changes when production scheduling moves from manual spreadsheets to Schantt for a two-line RTD cocktail and hard seltzer facility.

Before (manual spreadsheet scheduling): The planner sequences filler runs by hand, staggers CIP windows visually, and recalculates seasonal calendars in a spreadsheet that cannot detect conflicts or optimise sequence.
- Filler run sequence is driven by planner memory of which flavours change over quickly, not by a systematic comparison; changeover time not minimised.
- CIP overlap between can and bottle fillers goes undetected until a filler cannot start on time.
- Batch-to-filler coordination is approximate — the planner inserts blanket buffer time between blending and filling on every run, wasting capacity even when tanks are ready.
- Routing changes (for example, a pasteuriser outage) require manually editing three separate routing templates and propagating the change across affected products.
- Seasonal transition from winter to summer shifts requires manual recalculation of all run quantities, line assignments, and shift calendars — a multi-hour exercise repeated twice a year.

After (Schantt Auto mode): The scheduler models the facility once, then Schantt's algorithm optimises the production sequence across all stages, respecting machine capacities, changeover durations, transfer buffers, and calendar windows. The same model works for both peak and off-peak seasons — the only change is which calendar is active.
- Filler assignments and run sequences are optimised to minimise total production time, accounting for every directional changeover pair across all machines — not just the ones the planner remembers from experience.
- Flavour clusters emerge naturally: compatible flavours run consecutively, reducing total changeover time across the schedule without manual staging.
- Partial transfer from blending to filling eliminates the blanket buffer — fillers start as soon as the first usable portion (200 kg) is ready, recovering 35–45 minutes of idle time per batch.
- Changing a product class's routing takes one edit on its detail page — adding or removing a stage updates the Gantt automatically without manual template propagation.
- Calendar transitions are handled by date-range assignments: the schedule automatically respects Summer Peak hours in May and Winter Standard hours in October without manual recalculation of run quantities or shift patterns.

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