Active pharmaceutical ingredient (API) batch synthesis is one of the most schedule-intensive production environments in pharmaceutical manufacturing — a planner managing multi-stage campaigns across shared reactor trains must sequence reactor drops, fit QC hold gates between every critical step, and keep incompatible chemistries and high-potency containment on separate equipment paths. Schantt models the full API synthesis train as a hybrid-flowshop scheduling problem: sequential batch and flow stages, parallel reactors differentiated by material of construction, campaign-cleaning changeovers, and shift-aware calendars that restrict hazardous reactions to day-shift hours.
This guide follows a fictional composite company built from industry research on active pharmaceutical ingredient discrete batch synthesis; all names, parameters, and figures are illustrative.
Industry context
Discrete batch API synthesis produces drug substances through a defined sequence of chemical reactions and purification steps, each carried out in separate vessels. A typical SMB plant runs 2–4 reaction stages followed by crystallisation, filtration, drying, and finishing operations, using 1–3 parallel vessels per stage to build campaign throughput. The scheduling challenge is fundamentally a flowshop problem: every batch of the same product follows the same route, but the plant's reactor trains must switch between products with different routes, different batch sizes, and different cleaning requirements between campaigns.
Meridian Active Ingredients runs 85 people at a 3 200 m² facility, producing approximately 12 registered drug substances (6–8 actively produced) across three product classes — atorvastatin-type, metformin-type, and HPAPI-type — for an annual output of roughly 40–60 t of finished API. Atorvastatin-type products follow a full 9-stage synthesis train: Reaction Stage 1 → Reaction Stage 2 → Reaction Stage 3 → Crystallisation → Filtration → Drying → Milling → Blending → Drum-off. Atorvastatin campaigns run twice per year at 8 batches per campaign (300 kg API per batch). Metformin-type products skip Reaction Stage 2 under a telescoped synthesis; they run three campaigns per year at 12 batches per campaign (600 kg per batch). HPAPI-type products, made under high-potency containment, skip both Reaction Stage 2 and Milling, running two campaigns per year at 5 batches per campaign (25 kg per batch). A 2-person planning team currently manages the schedule with spreadsheet-based Gantt charts.
Each product class uses a specific material of construction (MoC) — glass-lined reactor (GLR) for atorvastatin-type and HPAPI-type, stainless steel (SS) for metformin-type — and the changeover between incompatible chemistries on a shared vessel consumes 8 hours of cleaning, while compatible in-class cleaning takes 4 hours. HPAPI transitions impose far longer windows: 48 hours to set up a vessel for HPAPI service and 72 hours to decontaminate it back to non-HPAPI duty. Batch cycle durations range from 4 hours (filtration) to 24 hours (drying), and the three QC intermediate-process-control (IPC) hold gates — after Reaction Stage 3, after Crystallisation, and after Drying — each add 8 hours of release testing before the next stage can begin.
Process overview
flowchart LR
S1["Reaction Stage 1"] --> S2["Reaction Stage 2"]
S2 --> S3["Reaction Stage 3"]
S3 --> S4["Crystallisation"]
S4 --> S5["Filtration"]
S5 --> S6["Drying"]
S6 --> S7["Milling"]
S7 --> S8["Blending"]
S8 --> S9["Drum-off"]
Nine-stage API batch synthesis train from starting materials through three reaction stages, crystallisation, filtration, drying, milling, blending, and drum-off, with 8-hour IPC hold gates after the final reaction stage, crystallisation, and drying.
Routing variations. Metformin-type products skip Reaction Stage 2 (telescoped synthesis). HPAPI-type products skip both Reaction Stage 2 and Milling, using dedicated high-potency equipment throughout.
Scheduling challenges and how Schantt handles them
The scheduling scenario assumes the planning team works from a firm demand pipeline — the confirmed orders and supply-agreement volumes that drive the next 3–12 months of campaigns. For readers whose demand pipeline arrives differently, the same model and setup apply; the campaign quantities and timing change, but the stage, machine, and routing structure stays identical.
Schantt's scheduling algorithm minimizes total production time — the overall span from the first campaign's start through the last batch's drum-off — and schedules each job forward from a user-chosen start date. For this guide, the practical horizon is a 12-month rolling schedule covering the year's planned campaigns across all three product classes.
Schantt offers two optimisation modes. Auto mode decides both job sequence and machine assignments from scratch, suited for make-to-stock and contract campaigns where sequencing freedom is acceptable. Semi-Auto mode preserves the planner's fixed production order and optimises machine assignments within it, used for regulatory-locked supply-agreement campaigns where the batch sequence is specified in the quality dossier and cannot be reordered.
What Schantt handles well
- Sequential multi-stage production — Schantt chains each downstream stage to start only after its upstream stage completes plus a material handoff delay, producing the correct stage-by-stage execution plan for a full 9-stage API synthesis train with transfer times that model IPC hold gates.
- Multi-machine stages with capability-restricted assignment — Each stage has parallel reactors differentiated by material of construction, and Schantt restricts machine assignment to those with configured processing parameters for the product class at that stage, enforcing GLR/SS/HPE compatibility without a separate attribute flag.
- Multi-product routing with stage skipping — Telescoped syntheses that skip interior reaction stages and HPAPI routes that skip milling are handled by per-class routing; a stage absent from a class's routing produces no operation or machine assignment for that product.
- Sequence-dependent changeovers (campaign cleaning) — Directional changeover entries per machine capture the dominant scheduling overhead: compatible chemistry cleaning (4 h), incompatible chemistry cleaning (8 h), and HPAPI setup/teardown (48 h / 72 h). The optimiser favours sequences that cluster compatible products.
- Shift-aware availability (working-time windows) — Hazardous high-exothermic reactions assigned to day-shift-only calendars clamp start times into working windows and split operations that span shift boundaries, so the schedule respects safety protocols without manual clipping.
- Dedicated equipment for HPAPI containment — High-potency vessels are dedicated by configuring processing parameters only on those machines for the HPAPI class; the optimiser never assigns HPAPI work to standard equipment and never routes standard work through HPAPI-dedicated vessels.
How Schantt handles each challenge
1. Campaign-to-campaign cleaning overhead.
- Directional changeover times between product classes on a shared vessel range from 4 hours (same chemistry) to 8 hours (incompatible GLR-to-SS or SS-to-GLR chemistry) and up to 72 hours for HPAPI decontamination. In a year running campaigns across all three classes, these changeovers represent tens of calendar days where vessels are being cleaned rather than producing.
- Schantt models changeover time as a directional, per-machine matrix entered by the planner from plant cleaning-validation data. When the system evaluates candidate schedules, the changeover between consecutive jobs on the same machine is folded into each operation's start time and thus into total production time. Auto mode reorders jobs to find a lower-changeover sequence; Semi-Auto mode holds the regulatory-locked order fixed and manages changeovers by moving jobs across parallel machines where possible.
2. QC hold gates that break the flow.
- After the final reaction stage, after crystallisation, and after drying, each batch must wait 8 hours for IPC release testing (typically HPLC or residual-solvent analysis) before material can move to the next stage. An atorvastatin campaign with 8 batches and 3 holds each accumulates 192 hours — 8 calendar days — of non-productive hold time that must be visible in the schedule.
- Schantt models each IPC hold as a fixed-duration transfer time between the relevant stage pair — 510 minutes per gate (30 minutes physical transfer plus 480 minutes hold). This means the schedule automatically inserts the mandatory waiting period between those stages for every batch. The Gantt shows the hold as part of the gap between the completing stage and the next stage's start, keeping the QC constraint visible without requiring the planner to insert manual buffer rows.
3. Shared reactors with incompatible chemistries.
- The reactor fleet is split roughly 60 % GLR and 40 % SS. Atorvastatin-type products must run on GLR vessels; metformin-type products run on SS vessels. Two 150 kW chillers each provide cooling for two reactors simultaneously — when three batches overlap on cooling ramps, the cooling rate slows by roughly 40 %, extending ramp duration by 3–5 hours. Volume fit, agitation compatibility, pressure rating, and thermal limits are assessed by the planner independently; Schantt models per-class processing parameters on each machine but does not enforce vessel-specific engineering limits.
- Schantt restricts machine assignment by per-class processing parameters. GLR-only products (atorvastatin-type, HPAPI-type) have configured batch parameters only on GLR-equipped machines; metformin-type products have parameters only on SS machines. The optimiser never assigns a product to a reactor of incompatible construction. For shared-utility contention (chilled water), the planner manually staggers reaction start times as a scheduling practice — Schantt does not detect shared-resource overlap automatically, but the stagger is entered as a per-job earliest-start constraint in Semi-Auto mode.
4. Hazardous reactions restricted to day shifts.
- One dedicated reactor in Reaction Stage 3 runs high-exothermic couplings that require full daylight supervision. While the plant's standard calendar is 24/7 continuous operations, this machine operates only Monday–Friday 07:00–19:00 and Saturday 07:00–12:00, reducing its available throughput to roughly 60 % of a 24/7 reactor.
- Schantt assigns a day-shift-only calendar to that machine. The scheduler clamps every operation's start time into the machine's working windows and splits any operation that would span a shift boundary, resuming it at the next window opening. Batch cycle times on a day-shift machine are computed using only working minutes, producing a realistic duration that reflects the available operating window rather than assuming continuous processing.
5. HPAPI campaign dedication and decontamination overhead.
- High-potency campaigns occupy dedicated equipment for approximately 10 working days of processing per campaign. On top of that, each HPAPI campaign requires 48 hours of containment setup before the first batch and 72 hours of decontamination after the last batch — 120 hours of non-productive time per campaign that no other product can use.
- Schantt dedicates HPAPI equipment — one reactor in Reaction Stage 3 and one vacuum dryer in Drying — by entering batch parameters for the HPAPI class only on those machines. No other product class has processing entries on those machines, so the scheduler never assigns standard work to them. The 48-hour HPAPI setup and 72-hour decontamination are entered as directional changeover times from non-HPAPI to HPAPI and back. A standard campaign following an HPAPI campaign automatically inherits the 72-hour decontamination window on those machines before its first batch can begin.
What to model in Schantt
The plant's scheduling model in Schantt is built from five first-class entities:
| Entity | Count | Notes |
|---|---|---|
| Stage | 9 | Reaction Stage 1 through Drum-off, in sequential order |
| Machine | 18 | 3 reactors in Stage 1, 2 in Stage 2, 3 in Stage 3, 2 crystallisers, 2 filters, 3 dryers, 1 mill, 1 blender, 1 drum-off station |
| Product Class | 3 | Atorvastatin-type, Metformin-type, HPAPI-type — each with a different route |
| Product | 3 | One representative SKU per class |
| Calendar | 2 | Continuous Operations (24/7) for standard production; Day Operations (Mon–Fri 07:00–19:00, Sat 07:00–12:00) for hazardous reactions and finishing stages |
Step-by-step setup
1. Create the stages. Add nine stages in plant order: Reaction Stage 1 through Reaction Stage 3, then Crystallisation, Filtration, Drying, Milling, Blending, and Drum-off. Stage 7 (Milling) and Stage 9 (Drum-off) are flow stages; the rest are batch stages.
On each stage's detail page, set the inter-stage transfer times. The critical entries are:
| From stage | To stage | Duration | Notes |
|---|---|---|---|
| Reaction Stage 3 | Crystallisation | 510 min | 30 min transfer + 480 min IPC hold |
| Crystallisation | Filtration | 510 min | 30 min transfer + 480 min IPC hold |
| Drying | Milling | 540 min | Cool-down + drum transfer + 480 min IPC hold |
| Drying | Blending | 540 min | Skip-bridge for HPAPI (bypasses Milling) |
Also add the skip-bridge from Reaction Stage 1 directly to Reaction Stage 3 at 30 minutes to handle the telescoped metformin route. The skip-bridge from Drying to Blending at 540 minutes covers the same IPC hold for HPAPI batches that bypass Milling.
2. Add the machines to each stage. Add 18 machines:
- Reaction Stage 1: R-101 (GLR), R-102 (GLR), R-103 (SS)
- Reaction Stage 2: R-201 (GLR), R-202 (SS)
- Reaction Stage 3: R-301 (GLR, day-shift calendar), R-201 transferred from Stage 2 (GLR), R-202 transferred from Stage 2 (SS)
- Crystallisation: C-101, C-102
- Filtration: F-101 (agitated filter-dryer / AFD), F-102 (centrifuge)
- Drying: D-101 (tray dryer), D-102 (HPAPI vacuum dryer, day-shift calendar), F-101 repurposed for AFD drying
- Milling: M-101
- Blending: B-101
- Drum-off: P-101
Note that F-101 serves dual duty — it filters as an AFD in the Filtration stage, then stays in place for in-place drying in the Drying stage. The transfer time between filtration and drying on this machine is effectively zero because the material never leaves the vessel.
3. Create the product classes and define their routings. Create three product classes — Atorvastatin-type, Metformin-type, and HPAPI-type. For each, define the per-class routing by selecting only the stages that class actually requires:
- Atorvastatin-type: All 9 stages (full route)
- Metformin-type: 8 stages — skips Reaction Stage 2 (the telescoped synthesis bridge)
- HPAPI-type: 7 stages — skips Reaction Stage 2 and Milling
4. Add one product per class. Create three products: Atorvastatin Calcium (300 kg batch size, assigned to Atorvastatin-type class), Metformin HCl (600 kg batch size, Metformin-type), and Enzalutamide (25 kg batch size, HPAPI-type). Each inherits its class's routing and changeover configuration.
5. Set machine capacity parameters and changeovers. On each machine's detail page, enter the batch cycle duration and batch size for every product class that runs on that machine:
- Reaction Stage 1 (R-101, R-102, R-103): 720 min cycle duration — 300 kg batch on GLR (R-101, R-102) for atorvastatin-type and 25 kg for HPAPI-type on R-101; 600 kg on SS (R-103) for metformin-type
- Reaction Stage 2 (R-201): 960 min cycle, 300 kg for atorvastatin-type only
- Reaction Stage 3: 840 min cycle — 300 kg on R-201/202 (GLR/SS) for atorvastatin-type; 600 kg on R-202 for metformin-type; 25 kg on R-301 (dedicated GLR) for HPAPI-type
- Crystallisation (C-101, C-102): 600 min cycle, class-dependent batch sizes
- Filtration (F-101, F-102): 240 min cycle
- Drying: D-101 at 1 440 min (24 h) for atorvastatin-type and metformin-type (600 kg); D-102 at 1 440 min for HPAPI-type only (25 kg); F-101 (AFD drying) at 1 440 min. Actual drying time varies with solvent residual, cake thickness, and vacuum level — the 24 h duration is a nominal minimum under standard operating conditions
- Milling (M-101): 200 kg/h throughput — no HPAPI entry (HPAPI skips milling)
- Blending (B-101): 30 min cycle for atorvastatin-type and HPAPI-type; 60 min for metformin-type (larger batch)
- Drum-off (P-101): 500 kg/h throughput for all three classes
For changeovers, enter the directional per-machine times. Same-class cleaning takes 4 hours (240 min). Incompatible-chemistry transitions (GLR-to-SS or SS-to-GLR) take 8 hours (480 min) in both directions. HPAPI setup (non-HPAPI → HPAPI) takes 48 hours (2 880 min) and HPAPI decontamination (HPAPI → non-HPAPI) takes 72 hours (4 320 min) in both directions. These durations represent cleaning-validation minimums; actual cleaning may take longer if batch residues exceed expected soil levels.
6. Configure calendars and downtimes (optional, last). Set Continuous Operations (24/7) as the default calendar. Create a Day Operations calendar (Mon–Fri 07:00–19:00, Sat 07:00–12:00) and assign it to R-301 (hazardous reactions), D-102 (HPAPI drying), M-101, B-101, and P-101 (finishing stages on limited shift coverage). Add New Year's Day and International Workers' Day as non-working calendar exceptions. Add a year-end full-site shutdown (24 December 17:00 through 1 January 07:00) and a semi-annual reactor inspection on R-101 (five days in June) as machine downtimes.
For step-by-step instructions on configuring each of these in Schantt, see the Schantt documentation.
Common mistakes
1. One blanket changeover time instead of directional per-pair values. A single "campaign cleaning" value applied to all transitions ignores the difference between a 4-hour compatible-class cleanout, an 8-hour incompatible-chemistry changeover, and a 48- or 72-hour HPAPI setup or decontamination. The schedule will either underestimate cleaning overhead on HPAPI transitions or overestimate it on compatible runs. Fix: Enter directional durations per product-class pair on each shared machine, using the actual cleaning-validation data for each chemistry combination.
2. Defining a single product class for both standard and HPAPI routes. If atorvastatin-type and HPAPI-type share a class, the scheduler cannot enforce GLR-only and HPAPI-dedicated equipment separately — it sees all reactors as equally eligible and may assign an HPAPI batch to a standard GLR vessel or, worse, assign a standard batch to an HPAPI-dedicated vacuum dryer. Fix: Create separate product classes for standard, SS-route, and HPAPI products, each with its own per-stage machine eligibility.
3. Omitting the skip-bridge transfer times for telescoped routings. Metformin-type products skip Reaction Stage 2, but without the skip-bridge transfer time from Reaction Stage 1 → Reaction Stage 3, the schedule has no material-handoff delay between those stages and may schedule them with an unrealistically tight succession. Fix: Add the 30-minute skip-bridge transfer time from Reaction Stage 1 to Reaction Stage 3, and the 540-minute skip-bridge from Drying to Blending for HPAPI products.
4. Forgetting the dual-purpose machine. F-101 appears in both Filtration and Drying. If the planner creates it as two independent machines, the schedule may assign filtration to one and drying to the other simultaneously, which is physically impossible. Fix: Create F-101 once in Filtration and F-101 (AFD drying) as a separate machine in Drying, with a 0-minute transfer time between them on that route to reflect the in-place processing.
5. Setting the same calendar on all machines without accounting for day-shift restrictions. R-301 (hazardous exothermic reactions) and the finishing-stage machines (milling, blending, drum-off, HPAPI drying) must respect limited operating hours. A 24/7 calendar on these machines produces operations that start overnight or span into unsafe hours. Fix: Assign the Day Operations calendar to R-301, D-102, M-101, B-101, and P-101. The scheduler then clamps their start times into the correct working windows.
What a good schedule looks like
A well-configured schedule makes campaign-to-campaign cleaning overhead, QC hold gates, and equipment dedication visible and minimises the total production time across the year's campaigns.
Before (spreadsheet-based manual planning): The planning team maintains separate spreadsheet tabs per campaign, manually staggering campaign starts to avoid conflicts. Common symptoms include:
- Misaligned HPAPI decontamination windows: a standard campaign scheduled to start the day after an HPAPI campaign finishes, with the 72-hour decontamination not accounted for
- Silent reactor conflicts: two campaigns assigned to the same GLR vessel on overlapping dates, caught only during the weekly planning review
- Inconsistent IPC hold insertion: some campaigns have the 8-hour QC holds manually added, while others omit them, producing optimistic completion dates that need re-baselining
After (Schantt Semi-Auto mode for atorvastatin campaigns, Auto mode for metformin and HPAPI): The Schantt schedule chains every batch through its correct routing with all IPC hold gates enforced, changeover times included between campaigns, and day-shift machines operating only within their allowed hours. Concrete gains:
- The drying-to-milling IPC hold (480 min per batch) is automatically inserted for every atorvastatin batch — no manual gate placement needed
- HPAPI campaigns block out 48 hours of machine time before the first batch and 72 hours after the last batch, and the scheduler automatically refuses to book standard work into those windows
- The year-end shutdown and the June reactor inspection are reflected as unavailable machine time, preventing campaigns from being planned into those weeks
- Atorvastatin campaigns scheduled in Semi-Auto mode preserve the dossiers' regulatory-locked batch sequence while the system optimises machine selection across the three parallel reactors in each stage
- Metformin and HPAPI campaigns scheduled in Auto mode let the system find a sequence that minimises total changeover time across the shared reactors, typically reducing inter-campaign gaps by clustering compatible runs
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