Production Scheduling for Precast Concrete Products

Plan and schedule multi-stage precast concrete production from batching through yard dispatch: batch-plant sequencing, parallel casting beds, steam-curing holds, and per-class routing in Schantt.

Precast concrete plants run a multi-stage process from concrete batching through casting, curing, demolding, finishing, and yard dispatch — all sharing a single batch plant, a mix of dedicated and shared casting beds, and schedule-critical curing delays. This guide shows how to model that flow in Schantt, configure per-class routing and changeover-aware machine groups, and build a production schedule that respects curing holds, shift patterns, and material handoffs across four production stages.

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

Industry context

A precast concrete plant producing structural beams, hollow-core slabs, and utility products runs through four distinct production stages connected by material handling delays and curing holds. The process starts at the batch plant, where a single pan mixer produces 3.0 m³ per 8-minute cycle — 22.5 m³ per hour at full capacity. Concrete is transferred via skip hoist and bucket to the casting area, a 10-minute handoff from batching to the first casting bed.

Casting happens on two types of equipment: five long-line prestressing beds (100 m each, shared by beams and hollow-core slabs) and three individual mold stations for utility products. A beam pour consumes 18.5 m³ of concrete over 6 batches, occupying the batch plant for 48 minutes and the casting bed for 120 minutes (90 minutes pour plus 30 minutes consolidation). A hollow-core slab pour takes 2.0 m³ — a single 8-minute batch — with 30 minutes on the casting bed. A utility product pour takes 2.4 m³, one 8-minute batch, and 60 minutes on the mold station (45 minutes pour plus 15 minutes consolidation).

After casting, every piece enters a curing hold. Beams and hollow-core slabs undergo steam curing: 10 hours at 65–75 °C for beams, 8 hours for slabs. Utility products cure at ambient temperature for 18 hours before they reach green strength. These curing delays run continuously — weekends and nights count — and account for 40–55% of the total Casting-to-Dispatch cycle, making them the single largest contributor to lead time.

The Demolding and Finishing stage strips the forms, patches surface defects, and prepares the piece for shipment. Demolding takes 45 minutes and finishing 60 minutes for a beam (105 minutes total). Utility pieces are faster: 30 minutes demolding plus 30 minutes finishing. Hollow-core slabs skip this stage entirely — the extruded surface needs no patching. The finishing area operates a single shift (06:00–14:00), reflecting one dedicated crew across three finishing stations. Finished pieces move by overhead crane to the yard, a 15-minute transfer, and are dispatched from a single yard gate.

Mold changeovers add significant non-productive time. Switching a long-line bed from a beam setup to a hollow-core slab setup takes 90 minutes (clean, oil, reset side rails). The finishing stations need 30 minutes to change from a beam to a utility product configuration. With five long-line beds shared across two product classes and a single batch plant feeding all casting positions, every sequence decision affects downstream capacity and total production time.

Meridian Precast runs 85 people at a 6,200 m² facility, making three product classes across four production stages, scheduled by a two-person planning team.

Process overview

flowchart LR
  CB["Concrete Batching<br/>1 machine, batch"] --> C["Casting<br/>8 machines, batch"]
  C --> D["Demolding & Finishing<br/>3 machines, batch"]
  D --> YD["Yard Dispatch<br/>1 machine, flow"]
  C -.->|"HC slabs & Utility skip Demolding<br/>(shared cure bridge, 1,095 min)"| YD

Products follow class-specific routes: beams through all four stages; hollow-core slabs and utility products both skip Demolding and Finishing via the same shared Casting → Yard Dispatch cure bridge (1,095 minutes).

Beams traverse all four stages. Hollow-core slabs and utility products both skip Demolding and Finishing, bridged directly from Casting to Yard Dispatch by the same shared 1,095-minute cure-hold transfer time — Schantt allows one transfer time per stage pair, so hollow-core slabs' faster 8-hour steam cure is modelled using the same longer, conservative hold applied to utility products' 18-hour ambient cure.

Scheduling challenges and how Schantt handles them

The Meridian Precast scenario is make-to-order: orders arrive 2–6 weeks ahead of the required ship date, and the scheduling team builds a forward-looking plan against a fixed set of customer jobs. Schantt minimizes total production time — the overall completion time across all jobs — scheduling forward from a chosen start date. This guide assumes a practical horizon of one to two weeks of production, covering the typical order book for a mid-market precast plant.

Schantt offers two optimization modes for active scheduling. In Auto mode, the algorithm decides the job sequence, machine assignments, and timing from scratch — best when sequencing freedom is acceptable and the optimizer can cluster similar products to reduce changeovers. In Semi-Auto mode, the planner provides a fixed production order and the algorithm optimises machine assignments within it, preserving the chosen sequence. Both modes respect calendars, changeovers, transfer times, and machine availability.

What Schantt handles well

  • Batch-stage sequencing with a shared upstream bottleneck. The batch plant is modelled as a single batch-stage machine with its cycle duration and batch size. Every pour is sequenced through it — no two pours draw concrete simultaneously, and the schedule reflects the plant's true hourly output.
  • Multi-machine casting with changeover-aware scheduling. Casting beds are grouped as parallel machines within a single casting stage. When a bed switches from one product class to another, the mold cleaning and resetting time is entered as a directional changeover on that machine. The optimizer favours sequences that reduce total changeover time by clustering similar products.
  • Per-class routing with stage skipping. Each product class gets its own routing. Hollow-core slabs skip Demolding and Finishing; utility products skip it too. A stage absent from a class's route produces no operation, no machine assignment, and no Gantt row. A bridging transfer time applies the curing delay across the gap.
  • Inter-stage dwell as a scheduled forward delay. Steam curing (8–14 hours) and ambient initial cure (18 hours) are modelled as transfer times — scheduled forward delays with no machine assigned. The curing gap appears on the timeline, and downstream operations start only after it elapses.
  • Sequence-dependent changeovers as directional per-machine setup times. Mold changeovers vary by product-class pair, and the duration differs with the direction of the switch. Schantt captures each as a directional changeover per machine, so the optimizer accounts for the actual setup time of every transition, not a blanket value.
  • Calendar-aware availability with shift patterns and exceptions. Casting runs two shifts (06:00–22:00), finishing runs one shift (06:00–14:00), and the default calendar applies to batching and yard dispatch. Each area operates on its own calendar, with holidays and maintenance windows subtracted from working time.

How Schantt handles each challenge

1. Shared batch plant sequences every pour, one at a time.

  • The single batch plant supplies concrete to all casting positions. A beam pour requires 6 batches at 8 minutes each — 48 minutes of exclusive batch-plant occupancy — during which no other pour can start. A typical day mixing beams, hollow-core slabs, and utility products can demand 20 or more batches, saturating the plant during the morning pour window.
  • The batch plant is modelled as a dedicated machine on the Concrete Batching stage with a batch capacity of 3.0 m³ per cycle and an 8-minute cycle duration. Every job that needs concrete passes through this stage first, and the schedule sequences each batch in order — no two pours overlap at the mixer. The batch plant's calendar (two shifts, Monday to Friday) ensures batching only runs when the crew is present, and the weekly maintenance downtime removes the first hour of Monday. The Gantt shows each batch as an operation on the batch plant, so the planner can see when the mixer is free for the next pour.

2. Mold changeovers consume hours of productive bed time when products mix on shared beds.

  • Five long-line beds are shared between beams and hollow-core slabs. Every switch from one product class to the other costs 90 minutes for cleaning, oiling, and resetting side rails. A schedule that mixes both classes on the same beds can accumulate 6–10 hours of changeover time per day, directly subtracting from casting capacity.
  • Each shared long-line bed (Bed 01 through Bed 05) gets directional changeover entries: 90 minutes for beam-to-slabs and 90 minutes for slabs-to-beam. The finishing stations get 30-minute entries for beam-to-utility and utility-to-beam. By entering these as per-machine, per-pair durations, the optimizer groups jobs of the same product class together when that produces a shorter overall schedule. The planner can see the avoided changeovers directly in the total production time improvement.

3. Curing dwells add 8–18 hours of passive hold between casting and the next active stage.

  • Steam curing takes 10 hours for beams and 8 hours for hollow-core slabs; ambient initial cure takes 18 hours for utility products. These holds run continuously — weekends and overnight count — yet no machine is working. The curing time alone accounts for 40–55% of the Casting-to-Dispatch cycle, and a pour on Friday evening still finishes curing over the weekend but cannot be demolded until Monday morning (the demolding crew starts at 06:00), adding a 48-hour gap.
  • Each curing regime is modelled as a transfer time between Casting and the destination stage. Beams use a 600-minute (10-hour) transfer to Demolding and Finishing. Hollow-core slabs and utility products share a single 1,095-minute bridge (1,080-minute ambient cure plus 15-minute crane move) from Casting directly to Yard Dispatch, skipping the Demolding stage — because Schantt allows only one transfer time per stage pair, both classes use this conservative 18-hour hold, and hollow-core slabs' faster 8-hour steam cure is modelled with the same longer, shared value. The transfer runs on continuous time — the schedule advances through nights and weekends — so the curing delay is applied in wall-clock minutes, not calendar working time. On the Gantt, the gap between the Casting operation and the downstream stage appears as an unassigned interval; the planner sees exactly when demolding can begin.

4. Single-crew demolding shifts create idle gaps between cure completion and the next operation.

  • The Demolding and Finishing stage runs one shift (06:00–14:00) across three finishing stations. When steam curing completes at 03:00, the piece sits on the bed for three hours until the crew arrives. Across five long-line beds, this idle-crew gap can lose 15 bed-hours per day. The weekend gap is larger: a Friday-evening pour completes curing by Saturday morning, but demolding cannot start until Monday at 06:00.
  • The three finishing stations (Finishing Station 01 through Finishing Station 03) are assigned a dedicated single-shift calendar (Monday to Friday, 06:00–14:00). Because the Demolding and Finishing stage has its own calendar, the schedule does not plan work on these machines outside those hours. The curing transfer time that precedes the stage runs on continuous time, so when a cure completes at 03:00, the downstream operation starts at 06:00 — the schedule correctly accounts for the idle gap without manual adjustment. The planner can see the cure-to-demolding gap on the Gantt as the interval between the end of the transfer and the start of the finishing operation.

What to model in Schantt

The production model for a precast concrete line is built from five first-class entities. The table below shows the counts for the Meridian Precast scenario, each matching the dataset exactly.

Entity Count Notes
Stage 4 Concrete Batching, Casting, Demolding & Finishing, Yard Dispatch
Machine 13 1 batch plant + 5 long-line beds + 3 individual mold stations + 3 finishing stations + 1 yard gate
Product Class 3 Precast Beams, Hollow-core Slabs, Utility Products
Product 3 One representative per class: I-Girder-36M, HC-Slab-12M, Manhole-1200
Calendar 2 Standard (two-shift, default) + Demolding (single-shift)

Step-by-step setup

1. Create the stages in production order, then set the transfer times. Define four stages — Concrete Batching (position 1, batch), Casting (position 2, batch), Demolding and Finishing (position 3, batch), Yard Dispatch (position 4, flow) — in sequence. On each Stage's detail page, set the transfer times between successive stages:

  • Concrete Batching to Casting: 10 minutes (bucket transfer, all product classes)
  • Casting to Demolding and Finishing: 600 minutes (steam cure, beams only)
  • Casting to Yard Dispatch: 1,095 minutes (shared cure bridge for hollow-core slabs and utility products — Schantt allows one facility-level transfer time per stage pair, so both classes use the conservative 18-hour hold; hollow-core slabs' 8-hour steam cure is modelled with this longer shared value)
  • Demolding and Finishing to Yard Dispatch: 15 minutes (crane move, beams)

Curing transfer times run on continuous time (24 hours, 7 days) — no calendar stops them. The skip bridge (Casting to Yard Dispatch) ensures that hollow-core slabs and utility products still have a curing hold applied even though they bypass Demolding and Finishing — both classes share the same 1,095-minute bridge value.

2. Add the machines to each stage. Create the machine list per stage:

  • Concrete Batching: Batch Plant (one machine)
  • Casting: Long-line Bed 01 through Long-line Bed 05 (five machines, shared by beams and hollow-core slabs), plus Individual Mold Station 06 through Individual Mold Station 08 (three machines, for utility products)
  • Demolding and Finishing: Finishing Station 01 through Finishing Station 03 (three machines)
  • Yard Dispatch: Yard Gate (one machine)

3. Create the product classes and define per-class routing. Create three product classes — Precast Beams, Hollow-core Slabs, Utility Products — each with unit set to "piece". On each Product Class detail page, define the routing by selecting the stages the class traverses in position order:

  • Beams: all four stages (Concrete Batching → Casting → Demolding and Finishing → Yard Dispatch)
  • Hollow-core Slabs: Concrete Batching, Casting, Yard Dispatch (skip Demolding and Finishing entirely)
  • Utility Products: Concrete Batching, Casting, Yard Dispatch (skip Demolding and Finishing entirely)

Set partial transfers to off for all routings — each pour is delivered as a full quantity to the next stage.

4. Add one representative product per class. Create three products, each linked to its product class:

  • Beams: I-Girder-36M (Precast Beams class)
  • Hollow-core Slabs: HC-Slab-12M (Hollow-core Slabs class)
  • Utility Products: Manhole-1200 (Utility Products class)

Assign an identifying colour to each (e.g., blue for beams, green for hollow-core slabs, orange for utility products) so the Gantt renders each class in a distinct colour.

5. Set machine capacity parameters and changeovers on each Machine detail page. With the product classes already created, configure processing parameters and directional changeovers:

  • Batch Plant — processing times:
  • Beams: batch size 18,600 kg, cycle duration 48 minutes (6 batches × 8 minutes)
  • Hollow-core Slabs: batch size 5,000 kg, cycle duration 8 minutes
  • Utility Products: batch size 6,000 kg, cycle duration 8 minutes
  • Batch Plant — changeovers (directional, per pair):
  • Beams ↔ Hollow-core Slabs, Beams ↔ Utility Products: 10 minutes each direction
  • Hollow-core Slabs ↔ Utility Products: 5 minutes each direction
  • Long-line Bed 01 through Bed 05 — processing times: 120-minute cycle at 18,600 kg batch size for beams; 30-minute cycle at 5,000 kg for hollow-core slabs
  • Long-line Bed 01 through Bed 05 — changeovers: 90 minutes each direction between beams and hollow-core slabs
  • Individual Mold Station 06 through Station 08 — processing times: 60-minute cycle at 6,000 kg batch size for utility products
  • Finishing Station 01 through Station 03 — processing times: 105-minute cycle at 18,600 kg batch size for beams
  • Finishing Station 01 through Station 03 — changeovers: 30 minutes each direction between beams and utility products
  • Yard Gate — throughputs: 0.5 pieces per hour (beams), 2.0 pieces per hour (hollow-core slabs), 1.0 piece per hour (utility products)

6. Configure calendars, exceptions, and downtimes. Create two calendars:

  • Standard (Two-Shift) — default calendar: Monday to Friday, 06:00–22:00. Apply to Concrete Batching, Casting, and Yard Dispatch (and as the team default).
  • Demolding (Single-Shift): Monday to Friday, 06:00–14:00. Assign to Finishing Station 01 through Finishing Station 03 as a machine-level calendar override.

Add four calendar exceptions for non-working days: New Year's Day (January 1), International Workers' Day (May 1), Christmas Day (December 25), and New Year's Eve (December 31). Set all as non-working.

Add two illustrative downtime entries: a weekly batch-plant maintenance window (Monday 06:00–07:00, for mixer paddle inspection and calibration) and a semi-annual factory-wide bed inspection (06:00–08:00 on June 15, affecting all casting machines).

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

Common mistakes

1. Using one blanket changeover for all product pairs on shared beds. A single changeover value on a long-line bed that covers both beam-to-slabs and slabs-to-beam transitions, or that ignores finishing-station changeovers, degrades the schedule quality because the optimizer cannot differentiate between quick and slow transitions. Fix: Enter directional per-pair changeover durations on each machine that serves multiple product classes. Use the actual times — 90 minutes for bed mold changes, 30 minutes for finishing station switches — not a single midpoint value.

2. Omitting the bridging transfer time for product classes that skip stages. Hollow-core slabs and utility products bypass Demolding and Finishing, but they still need a curing hold applied before reaching Yard Dispatch. Without a bridging transfer time from Casting directly to Yard Dispatch, the schedule places these products at the yard immediately after casting — the curing delay disappears. Fix: On the Stage detail page for Casting, create a single Casting-to-Yard Dispatch transfer time at 1,095 minutes, shared by both classes (Schantt allows one facility-level transfer time per stage pair). The schedule then applies the curing delay even though the intermediate stage is absent — hollow-core slabs' shorter 8-hour steam cure is modelled with the same conservative 18-hour hold used for utility products.

3. Modelling rebar cage prep as a separate stage. Cage preparation feeds the casting line from a parallel upstream process. Adding it as a stage creates a convergence route Schantt does not support — two independent work streams (the cage and the mold) meeting at a single downstream stage. Fix: Absorb cage-preparation timing into the Casting stage's processing window. Assume cages are prepared ahead and staged at the bed; the casting-stage duration for each product already includes the pour and consolidation time on top of the prep window.

4. Setting all machines to the same calendar without accounting for the single-crew demolding shift. If every machine uses the default two-shift calendar, the finishing stations are available from 06:00 to 22:00 — but only one crew runs the Demolding and Finishing area. The schedule schedules operations in the second shift that cannot be staffed. Fix: Assign the Demolding (Single-Shift) calendar to the three finishing stations as a machine-level override. The schedule limits finishing work to 06:00–14:00 and reflects the actual crew constraint.

5. Forgetting to model maintenance downtimes on the batch plant. Without a downtime entry, the weekly Monday-morning mixer inspection appears as available capacity, and the schedule may place a batch at 06:00 on Monday that clashes with the actual maintenance window. Fix: Add a weekly recurring downtime (Monday 06:00–07:00) on the Batch Plant machine. For the semi-annual bed inspection, use a factory-wide downtime entry (no specific machine) covering all casting machines for the 2-hour window.

What a good schedule looks like

A well-configured Schantt schedule for precast concrete production reduces idle time from changeovers and crew gaps, and makes the curing timeline visible.

Before (spreadsheet baseline): The planning team sequences pours manually against a shared spreadsheet, aiming to respect ship dates and bed availability.

  • 6–10 hours per day spent on changeovers across the five shared long-line beds — every product-class switch adds 90 minutes, and mixed-beam-and-slab days accumulate four to five switches
  • 15 bed-hours per day lost to the demolding-crew idle gap — pieces completing cure overnight sit on the bed until the 06:00 crew start
  • Friday-evening pours lose 48 weekend hours waiting for demolding crew availability on Monday morning

After (Schantt Auto mode): With all stages, machines, changeovers, transfer times, and calendars configured, the optimizer builds the schedule from the planner's job list.

  • The optimizer groups beam pours into contiguous blocks on shared beds, reducing daily changeover time from 6–10 hours to 2–3 hours — one or two switches per bed per day
  • The demolding single-shift calendar correctly limits finishing work to 06:00–14:00; overnight and weekend gaps are automatic — the schedule places demolding operations only when the crew is available
  • Batch plant utilisation matches the pour schedule: the optimizer sequences pours so the batch plant runs at a steady cadence without unnecessary idle gaps between jobs
  • The Gantt renders the curing TransferTime as a visible gap between Casting and Demolding (or between Casting and Yard Dispatch for skip routes), so the planner can see exactly when each piece becomes available for the next stage without relying on manual calculations

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