Batches, not units. Lots, not parts. Yield, not throughput.
Process plants do not make units, they make batches. A finished pallet is the output of a recipe applied to multiple raw lots inside a reactor pass, gated by a certificate of analysis and a regulated release step. Polymr keeps lot genealogy, COA ingestion, recipe substitution, and release gating live against the operating reality of cGMP rooms, FDA 21 CFR Part 11 audit trails, and FSMA-adjacent recordkeeping.
Built for the process shape.
Polymr parses continuous-process recipe sheets into batch-window optimization. Recipe v7 with its four feed streams, two assay holds, and cure profile lands as a typed batch template that the scheduler reads alongside the live reactor calendar. The optimizer fits the next campaign against the open windows, the wash cycles, and the operator coverage on second shift.
Campaign scheduling reads against changeover and wash cycles directly. A black-to-natural transition does not block on the planner re-reading the SOP; the wash envelope and the purge volume are first-class inputs. Plan-versus-actual yield attribution lands per SKU per batch (feedstock variance, operator drift, changeover-time slip) so the controller does not chase the plant for the why at month-end.
Two raw lots in, one reactor pass, three batches out. Trace runs both directions in a query.
The genealogy panel below makes the full lot graph for B-9912 explicit. Two PMR-RAW-118 lots co-fed the Reactor 2 pass, the additive lot A-091 entered at 8 percent, the in-process assay surfaced a 0.6 pt deviation from spec, QA disposed the batch, three downstream batches inherit both consumed resin lots. A recall query against L-22887 resolves in 0.3 hours instead of nine, because the consumption events are first-class rows rather than paper binder entries.
Yield variance attributed at the row, not the slide.
Five SKUs through Reactor 2 in week 22. PMR-PR-12 ran 6 points under yield because of feedstock variance on L-22887. PMR-PR-44 ran 9 points under because of operator drift on the additive valve, not the mix-shift footnote the finance roll-up would file under. PMR-PR-66 ran 8 points under because the tank-pair changeover wash ate two hours of reactor time the schedule did not see.
Three distinct causes, three distinct attribution paths, one screen the planning lead and the operations VP read off the same. The quarterly slide that blames mix shift becomes a Monday morning attribution.
| SKU | Plan kg | Actual kg | Y plan | Y act | Δ yield | Attribution |
|---|---|---|---|---|---|---|
| PMR-PR-12 | 24,800 | 22,980 | 92% | 86% | -6 pts | L-22887 feedstock variance |
| PMR-PR-18 | 18,400 | 18,610 | 89% | 90% | +1 pts | on plan |
| PMR-PR-44 | 16,200 | 14,180 | 88% | 79% | -9 pts | Reactor 2 operator drift |
| PMR-PR-52 | 9,200 | 9,320 | 94% | 95% | +1 pts | on plan |
| PMR-PR-66 | 12,400 | 11,250 | 90% | 82% | -8 pts | Tank-pair changeover ate 2 h |
A reactor week is campaigns, washes, and a maintenance block.
Reactor 2 runs four product campaigns over seven days with two changeover washes between them and a reactor cap maintenance block in the middle. The wash blocks reflect the learned product-pair time (PMR-PR-12 to PMR-PR-18 is 6 h, PMR-PR-44 to PMR-PR-12 is 4 h) rather than the ERP default 4 h flat. The campaign view replaces the discrete work-order Gantt with the continuous-process abstraction the planner actually thinks in.
Seven failure modes that a batch-driven plant lives with weekly.
Each is what a plant manager, QA director, or planning lead will name in the first half-hour of conversation when asked why this week's batch plan got rewritten three times and why yesterday's pallets are still sitting on the dock.
- Lot trace, two operatorsResin lots L-22841 and L-22887 co-fed batch B-9912 and the binder genealogy split
Batch B-9912 yielded 86 percent against a 92 percent target. Two operators logged consumption hours into two different supervisor binders during the swap. The MES wrote one consumed lot. Three weeks later the recall query against L-22887 misses the seven downstream pallets that actually touched it.
- COA-to-assay latencyV-218 sends the COA as a PDF, the lab logs the assay four hours later
Vendor 218 emails the certificate of analysis for PMR-RAW-118 (resin) at 09:14. The lab tech opens the PDF, reads the assay row, and types it into the LIMS at 13:30. The batch is already running. If the assay flagged out of spec, four hours of reactor time has been spent on the wrong feedstock.
- Tank-pair changeover blindnessChangeover from PMR-PR-12 to PMR-PR-18 takes six hours the schedule does not see
Cleaning protocol for the next product depends on the previous product (residual hydrolysis matters). SAP S/4 PP-PI carries setup times per operation, not per product-pair. The planner assumes a four-hour wash, the floor needs six, every back-to-back tank changeover on that reactor pair eats two hours of run time.
- In-process reblend cascadeBatch B-9914 reblends because the in-process assay flagged 0.6 pts below spec
The reblend pulls feedstock from the next two scheduled batches. Three downstream batch tickets shift by one shift. The customer commit on the third downstream pallet was already a tight one. Nobody on the planning side hears about the cascade until the morning standup the next day.
- Release gate held overnightB-9918 sat 11 hours past release-ready because QA was not paged
The batch came off line at 22:40. The on-call QA reviewer was not notified that release gate state had flipped to awaiting-disposition. The next-shift QA opened it at 09:30. Eleven hours of finished-goods inventory was unshippable and the truck slot for V-244 outbound was missed.
- Genealogy query takes a dayA recall trace on raw lot L-22841 takes nine hours of binder pulling
When a supplier flags a recall on a raw lot the QA team has to enumerate every finished pallet that consumed it. Binder pulls, MES queries, paper batch records. The published 24-hour FDA trace SLA exists. The actual time is nine hours of senior QA labor that produces a spreadsheet nobody trusts.
What this looked like at a single-site specialty chemicals plant.
- Situation
- The site ran 14–18 batches per week across three reactors. Yield variance per batch ran 2–5% depending on raw input lot, ambient conditions, and operator routing.
- What was breaking
- A raw material lot that expired mid-batch broke lot genealogy in the ERP. Margin and yield were quarterly finance exercises rather than live signal. A 3-day inbound slip from a single-source resin vendor reshaped the next 9 batch plans by hand.
- Planning + purchasing
- Delay recovery
- Margin and bottleneck analysis
Three siblings that share the same operating shape.
- Specialty chemicals
Regulated cousin. COA-gated release, hazardous-material handling, lot-level customer commits. The release-gate disposition surface is shared near-verbatim.
- Food and beverage
FSMA-adjacent recordkeeping, recall-trace SLAs, pallet-level genealogy. The lot-to-pallet flow graph is the same primitive applied against pallet codes rather than batch tickets.
- Industrial, multi-site
When a process plant runs four sites, the cross-plant batch genealogy and consolidated supplier negotiation patterns from the industrial page apply.
