Beer bottling and canning operations run some of the most time-sensitive packaging lines in beverage manufacturing — where a bright beer conditioning tank with a multi-day dwell feeds parallel filler lines running at different speeds, and format changeovers, planned CIP windows, and seasonal volume swings all compete for the same working hours. Schantt models the packaging hall from the bright beer tank forward, scheduling conditioning batches, parallel can and bottle filler assignments, and planned downtime blocks within the same production plan so planners can see the full week before committing any job to a line.
This guide follows a fictional composite company built from industry research on beer bottling and canning; all names, parameters, and figures are illustrative.
Industry context
Beer packaging operations at craft-to-mid-scale breweries begin after fermentation and maturation are complete — the bright beer tank holds clarified, carbonated beer ready for packaging. At this scale, filling lines typically run at 2,000–10,000 cans per hour for canning operations and 800–5,000 bottles per hour for bottle lines, with a keg filling station handling a smaller volume of draft product alongside the primary runs. The scheduling pressure starts at the conditioning tank: because dwell times differ by beer style and each tank holds a fixed volume, the planner must pace tank releases to match filler capacity and prevent idle time between conditioning completion and fill start. This guide covers ales and fast-conditioned lagers with conditioning windows of three days or less; breweries producing long-lagering styles require a separate scheduling approach for those products.
Most packaging halls at this scale operate through five or six production stages — container preparation, filling, labeling, case packing, and palletizing — with multiple machines at the filling stage providing the primary source of parallel capacity. Format changeovers between cans and bottles require physical adjustments on shared downstream equipment, and planned cleaning cycles at each filler must be allocated without displacing scheduled fill time. Seasonal demand swings — a summer peak that typically requires additional shifts and weekend production — drive shift-expansion decisions that materially change the available daily capacity the schedule can fill.
Irongate Brewing Co. runs approximately 65 employees at a packaging facility targeting 90,000 hl annual capacity, producing across three product classes through six production stages, scheduled by a two-person planning team. Typical annual throughput runs near 75,000 hl, with the remaining headroom held for peak weeks in summer.
Process overview
flowchart LR
A["Bright Beer Conditioning"]
B["Container Prep / Depalletizing"]
C[Filling]
D[Labeling]
E["Case Packing"]
F[Palletizing]
A --> B --> C
A -.->|Kegs| C
C --> D --> E --> F
C -.->|Cans| E
C -.->|Kegs| F
Beer packaging flows forward from bright beer conditioning through filling and downstream packaging stages to palletizing, with each product class following its own path through the stages it requires.
Routing note: Cans skip the labeling stage — pre-printed can bodies require no label application. Keg products bypass container prep, labeling, and case packing entirely, routing from the bright beer conditioning tank directly to the keg station, then to palletizing. Breweries using tunnel pasteurization add a flow stage between filling and labeling for bottles and cans, which would be modeled as an additional stage in Schantt.
Scheduling challenges and how Schantt handles them
Demand inputs for this guide follow a representative weekly order list — quantities by product and target fill week — provided to the planner by the sales team. Planners whose actual driver is a rolling order book or a demand forecast rather than a fixed weekly list apply the same setup approach, adjusting the quantity and sequence inputs at schedule creation time. Schantt schedules production forward from a chosen start date with the goal of minimizing total production time across all jobs in the plan. This guide assumes a two-to-four-week rolling planning horizon, which keeps conditioning batches, filling runs, and downstream packaging in the same scheduling window. In Auto mode, Schantt decides job sequence and machine assignment; in Semi-Auto mode, the planner fixes the production order and Schantt optimizes machine selection within that sequence.
What Schantt handles well
- Parallel filler lines. A canning line and a bottling line are two machines at the same filling stage. Schantt's Auto mode explores machine assignment across both lines to compress total fill time, and Semi-Auto holds the planner's run order while optimizing machine selection.
- Sequence-dependent changeovers. Format and style changeovers between product classes on shared machines — including asymmetric durations where a dark-to-light flush takes longer than a light-to-dark transition — are entered once per machine as a directional changeover matrix; the optimizer favors sequences that cluster compatible runs.
- Planned CIP windows. A cleaning block entered as a planned downtime window on a filler machine is automatically respected by the schedule; work routes around it without manual rescheduling.
- Mixed batch-and-flow pipeline. The bright beer conditioning tank runs as a batch stage with a fixed tank volume and a fixed dwell per style; all downstream packaging stages run as flow stages with continuous line speeds. Both stage types coexist in one route without workaround.
- Seasonal shift calendars. Different working-hour patterns for the off-peak single-shift period and the summer two-shift period are assigned to date ranges within the same schedule; one-off overtime days or facility shutdowns are handled as calendar exceptions, with no calendar rebuild needed.
How Schantt handles each challenge
1. Multi-day conditioning with style-dependent dwell.
- Each bright beer tank holds a fixed volume per batch, and the conditioning dwell differs by beer style — Pale Ale and IPA condition for 48 hours while Amber Ale requires 72 hours. The schedule must respect these minimums before releasing a tank to the filler, and tank releases must align with filler availability to prevent idle time on the packaging line.
- Each BBT is modeled as a machine at the batch conditioning stage, with a fixed batch cycle time per product class. The Pale Ale and IPA cycle time is configured at 52 hours (48 hours of conditioning plus a 4-hour fixed quality buffer for the sensory and turbidity check); Amber Ale runs 76 hours (72 hours of conditioning plus the same 4-hour buffer). The conditioning completion event in the schedule is a production timing event — the quality decision to release a batch to the filler is a separate process that happens outside Schantt. The optimizer sequences conditioning batches so tank releases align with filler availability, minimizing idle time between the two stages.
2. Parallel filler lines with format-specific routing.
- The Can Filler Line runs at 12,000 cans per hour; the Bottle Filler Line runs at 6,000 bottles per hour; the Keg Station handles 80 kegs per hour. Each product class routes exclusively to its own machine at the filling stage, so Cans always go to the Can Filler Line, Bottles to the Bottle Filler Line, and Kegs to the Keg Station. Because the three fillers have different speeds, mixing formats in a single day requires careful sequencing to avoid underloading one line while the other runs at capacity.
- Because the three filler machines sit at the same stage, Schantt can schedule Cans and Bottles in parallel when the production order allows it. In Auto mode, the optimizer assigns products to machines and sequences runs to minimize total completion time across both lines. In Semi-Auto mode, the planner sequences Cans and Bottles independently and the optimizer handles machine selection within those constraints.
3. Planned CIP downtime on filler machines.
- Each filler line requires a cleaning cycle before the first fill of a day or after an extended idle period: a full CIP on the Can Filler Line takes 90 minutes; the Bottle Filler Line takes 75 minutes; and the Keg Station wash cycle takes 45 minutes. These windows must appear in the schedule so jobs do not run into them.
- The planner enters a planned downtime block on each relevant machine for the day's CIP window before running the weekly schedule; the optimizer then routes fill jobs around those blocks automatically. If two filler lines share a single cleaning skid, the planner reviews the resulting schedule after entering both downtime windows to confirm the blocks do not overlap — Schantt schedules each machine's window independently. In this guide's scenario, the Can Filler Line and Bottle Filler Line have independent cleaning circuits, so no stagger review is required.
4. Sequence-dependent format changeovers on shared downstream equipment.
- The Case Packer and the Palletizer serve both Cans and Bottles. Switching between formats on these machines requires physical adjustments — tray guides and container-height stops on the Case Packer, pallet layer patterns and conveyor guides on the Palletizer — that take a fixed amount of time in each direction.
- Changeover times are entered per machine as a directional matrix between product classes. On the Case Packer, a Cans-to-Bottles or Bottles-to-Cans switch takes 20 minutes in either direction. On the Palletizer, the same format switch takes 15 minutes. The optimizer uses these entries to favor run sequences that cluster same-format jobs and reduce total changeover time across the week's schedule.
5. Seasonal shift expansion.
- Summer demand peaks above the off-peak baseline, requiring extended shift hours and Saturday production for several months. Applying a single fixed calendar across the entire year under-schedules peak months and over-schedules quiet ones, and manually rebuilding the schedule template for each seasonal transition is error-prone.
- Schantt lets the planner assign different working calendars to specific date ranges within a schedule. The Off-Peak Calendar runs Monday–Friday, 07:00–15:30; the Summer Peak Calendar runs Monday–Friday 07:00–23:00 and Saturday 07:00–15:30. The planner assigns the summer calendar to the April–August date range as a schedule calendar period at the start of the season, keeping both patterns in the same plan without rebuilding it from scratch. One-off changes — a public holiday, an unplanned overtime Saturday — are handled as calendar exceptions. You set the shift hours for each period; the algorithm schedules jobs within those windows.
What to model in Schantt
Irongate's packaging hall maps to the following first-class entities in Schantt; each count below matches the dataset for this guide.
| Entity | Count | Notes |
|---|---|---|
| Stage | 6 | Bright Beer Conditioning (batch) plus five flow stages: Container Prep / Depalletizing, Filling, Labeling, Case Packing, Palletizing |
| Machine | 12 | 3 BBTs, 2 depalletizers, 3 fillers (Can Filler Line, Bottle Filler Line, Keg Station), 1 Labeler, 1 Case Packer, 2 palletizers |
| Product Class | 3 | Cans (355 ml), Bottles (330 ml), Kegs (50 L) |
| Product | 3 | One representative SKU per class |
| Calendar | 2 | Off-Peak (weekday single shift) and Summer Peak (extended weekday plus Saturday) |
Step-by-step setup
1. Create the six production stages in position order.
Add each stage with its production type: Bright Beer Conditioning as a batch stage at position 1, then Container Prep / Depalletizing, Filling, Labeling, Case Packing, and Palletizing as flow stages at positions 2 through 6. On each stage's detail page, set the transfer times to the next stage:
- Bright Beer Conditioning → Container Prep / Depalletizing: 15 minutes (pressurized transfer line from the tank room to the packaging hall)
- Container Prep / Depalletizing → Filling: 5 minutes (conveyor to filler infeed)
- Filling → Labeling: 5 minutes (inline conveyor, bottles only)
- Labeling → Case Packing: 5 minutes (conveyor to case packer infeed)
- Case Packing → Palletizing: 8 minutes (conveyor to layer palletizer)
Also add the bridging transfer times for product classes that skip stages. Schantt uses these whenever a class bypasses one or more intermediate stages:
- Bright Beer Conditioning → Filling: 15 minutes (keg pressurized pipeline, bypassing Container Prep / Depalletizing)
- Filling → Case Packing: 5 minutes (can inline conveyor, bypassing Labeling)
- Filling → Palletizing: 10 minutes (keg hand-truck to pallet-building area, bypassing Labeling and Case Packing)
2. Add the twelve machines to their stages.
At Bright Beer Conditioning: BBT-1 (12,120 kg per batch / 120 hl), BBT-2 (12,120 kg / 120 hl), and BBT-3 (8,080 kg / 80 hl). At Container Prep / Depalletizing: Can Depalletizer and Bottle Depalletizer. At Filling: Can Filler Line, Bottle Filler Line, and Keg Station. At Labeling: Labeler. At Case Packing: Case Packer. At Palletizing: Palletizer (the layer machine for cans and bottles) and Keg Manual Stacking Station — a nominal entry whose throughput is sized to match the keg station's output rate, closing the route for keg jobs in the schedule without implying a mechanical pallet line for kegs.
3. Create the three product classes and define their per-class routings.
Add Cans (355 ml), Bottles (330 ml), and Kegs (50 L). On each class's detail page, assign the stages it passes through:
- Cans: Bright Beer Conditioning → Container Prep / Depalletizing → Filling → Case Packing → Palletizing (skips Labeling)
- Bottles: Bright Beer Conditioning → Container Prep / Depalletizing → Filling → Labeling → Case Packing → Palletizing (full six-stage path)
- Kegs: Bright Beer Conditioning → Filling → Palletizing (skips Container Prep / Depalletizing, Labeling, and Case Packing)
Breweries running both light and dark styles on the same canning line can extend this model by creating a second Cans product class — for example, Dark Cans — and entering a directional changeover on the Can Filler Line from Dark Cans to Light Cans to represent the style-driven flush. In this guide's scenario, Irongate runs a single Cans class, so no filler-stage changeovers are encoded for this example.
4. Add one representative product per class.
Enter Irongate Pale Ale — 355 ml Can (Cans class), Irongate Amber Ale — 330 ml Bottle (Bottles class), and Irongate IPA — 50 L Keg (Kegs class). One product per class is sufficient to represent each routing and to run schedules; additional SKUs within the same class are added as further products under that class without reconfiguring routing or machines.
5. Set machine capacity parameters and changeovers on each machine's detail page.
Bright Beer Conditioning — batch parameters: Set the batch cycle time and batch size for each product class routed to each BBT.
- BBT-1 serves Cans and Bottles: Cans at 3,120 min cycle time, 12,120 kg batch size; Bottles at 4,560 min, 12,120 kg.
- BBT-2 serves all three classes: Cans at 3,120 min, 12,120 kg; Bottles at 4,560 min, 12,120 kg; Kegs at 3,120 min, 12,120 kg.
- BBT-3 serves all three classes: Cans at 3,120 min, 8,080 kg; Bottles at 4,560 min, 8,080 kg; Kegs at 3,120 min, 8,080 kg.
The 3,120-minute cycle time for Cans and Kegs comprises 48 hours of conditioning plus a 4-hour fixed quality buffer. The 4,560-minute cycle time for Bottles comprises 72 hours of conditioning plus the same 4-hour buffer. On BBT-2 and BBT-3, which handle all three classes, enter the inter-batch changeover matrix: Cans ↔ Bottles takes 60 minutes in each direction; any transition involving Kegs takes 90 minutes in each direction. On BBT-1, which handles Cans and Bottles only, enter 60 minutes in each direction.
Flow stage line speeds: Set the throughput for each product class on each machine it uses.
- Can Depalletizer: 12,000 cans/hr (Cans)
- Bottle Depalletizer: 6,000 bottles/hr (Bottles)
- Can Filler Line: 12,000 cans/hr (Cans)
- Bottle Filler Line: 6,000 bottles/hr (Bottles)
- Keg Station: 80 kegs/hr (Kegs)
- Labeler: 6,000 bottles/hr (Bottles)
- Case Packer: 12,000 cans/hr (Cans); 6,000 bottles/hr (Bottles)
- Palletizer: 12,000 cans/hr (Cans); 6,000 bottles/hr (Bottles)
- Keg Manual Stacking Station: 80 kegs/hr (Kegs)
Enter changeovers on the machines shared by Cans and Bottles: Case Packer — 20 minutes in each direction; Palletizer — 15 minutes in each direction.
6. Configure calendars, exceptions, and downtime windows.
Create two calendars. The Off-Peak Calendar (set as default) runs Monday–Friday, 07:00–15:30. The Summer Peak Calendar runs Monday–Friday 07:00–23:00 and Saturday 07:00–15:30. Add the four calendar exceptions, all non-working:
- 1 January — New Year's Day
- 1 May — International Workers' Day
- 30 December — Year-end shutdown
- 31 December — Year-end shutdown
Enter the two pre-planned machine downtime windows:
- Can Filler Line, 15 March 07:00–09:30 — planned spring maintenance CIP and mechanical inspection ahead of the summer volume ramp
- Factory-wide (all machines), 28 December 06:00 – 29 December 22:00 — annual year-end deep clean and equipment check
Daily operational CIP windows — the 90-minute Can Filler Line cleaning block, the 75-minute Bottle Filler Line cleaning block, and the 45-minute Keg Station wash — are entered by the planner as additional downtime windows on the relevant machine each time a weekly schedule is built, before the optimizer runs. They are not pre-loaded in the standing configuration.
For step-by-step instructions on configuring each of these in Schantt, see the Schantt documentation.
Common mistakes
1. Using a single product class for all three container formats.
Cans, bottles, and kegs follow entirely different stage paths through the packaging hall. Collapsing them into one class eliminates the routing divergence and produces schedules that send kegs through a labeling stage they never physically touch, or that skip depalletizing for a class that actually needs it.
Fix: Create a separate product class for each container format and define the correct stage routing on each class's detail page before building any schedule.
2. Entering a single flat changeover value on shared BBTs.
BBT-2 and BBT-3 serve all three product classes and require asymmetric changeover times: 60 minutes for a Cans-to-Bottles or Bottles-to-Cans transition, and 90 minutes for any transition involving Kegs. Entering a single flat value — or omitting the changeover entry on one tank while adding it to another — leaves the optimizer free to sequence class changes that require significantly more inter-batch preparation than the planner expects.
Fix: Enter the full directional changeover matrix on every machine that is shared by two or more product classes, including both directions, and configure each machine at that stage separately.
3. Omitting bridging transfer times for skip-routing classes.
When a product class bypasses one or more stages, it creates a stage pair for which no consecutive transfer time exists. If you configure only the standard consecutive-stage transfers — Bright Beer Conditioning to Container Prep / Depalletizing, then Container Prep / Depalletizing to Filling — the keg path from Bright Beer Conditioning directly to Filling has no transfer time entry and the schedule cannot compute the correct handoff delay.
Fix: Add a bridging transfer time for every stage-skip pair used by any product class: Bright Beer Conditioning → Filling for kegs, Filling → Case Packing for cans, and Filling → Palletizing for kegs.
4. Treating daily CIP blocks as pre-loaded in the standing configuration.
The two machine downtime entries in the standing configuration cover annual events — the spring maintenance CIP on the Can Filler Line and the year-end deep clean. The daily CIP window at shift start is a per-session entry the planner adds manually before building each weekly schedule. If it is omitted, the optimizer books fill jobs into that cleaning window and the resulting schedule conflicts with operational reality.
Fix: Before running the optimizer for each weekly schedule, add a planned downtime block on each filler machine for its CIP window at shift start. The spring maintenance entry in the dataset is an example of how to pre-enter a known annual event; daily CIP blocks follow the same approach applied per session.
5. Leaving the off-peak calendar active for summer production.
The Off-Peak Calendar (Monday–Friday, 07:00–15:30) is accurate for the quiet season but under-represents available capacity from April through August. Running the optimizer with this calendar during the peak period produces schedules that compress jobs into a shorter window than the packaging hall actually operates, missing Saturday shifts and late-shift hours entirely.
Fix: Set a schedule calendar period to apply the Summer Peak Calendar (Monday–Friday 07:00–23:00, Saturday 07:00–15:30) for the April–August date range each time a peak-season schedule is built. Revert to the Off-Peak Calendar when volume returns to baseline.
What a good schedule looks like
A well-configured Schantt schedule for a craft-to-mid-scale brewery packaging hall removes the most time-consuming planning iteration loop: manually aligning conditioning tank releases with filler windows while accounting for format changeovers and CIP blocks across a two-week horizon.
Before (manual spreadsheet planning):
- Conditioning releases are scheduled with large conservative idle buffers because the planner cannot easily visualize how a 52-hour tank dwell maps against a shifting filler queue — so tanks often sit complete and waiting while the filler is already available.
- Format changeover sequences on the Case Packer and Palletizer are chosen by feel, sometimes alternating Cans and Bottles within the same day and incurring two changeover delays rather than clustering same-format runs.
- Daily CIP windows are mentally subtracted from available shift time; oversights result in schedule overruns into the cleaning window, delayed fill starts, and unplanned overtime.
- The summer calendar switch is applied imprecisely, with available hours adjusted cell by cell each week as the planning spreadsheet rolls forward into peak season.
After (Schantt Semi-Auto mode):
- The planner sets the conditioning run sequence and the optimizer aligns tank releases to filler windows, producing conditioning start times that deliver beer to the filler with minimal idle gap between tank completion and fill start.
- The directional changeover matrix on the Case Packer and Palletizer causes the optimizer to favor same-format clusters, reducing the number of format switches per week without the planner having to manually enforce the sequencing rule.
- Planned CIP downtime blocks appear on the schedule as reserved windows on the relevant machines; fill jobs are placed after each cleaning block with no manual margin calculation.
- The Summer Peak Calendar period extends available hours from April through August within the same schedule template; the planner applies it once at the start of the season rather than rebuilding the plan for each weekly cycle.
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