Polymr

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.

LOT-B-9912Batch genealogy, B-9912, Reactor 2 pass
Recall trace 0.3 h
Input lots
L-22841
PMR-RAW-118 resin . V-218 . 46%
L-22887
PMR-RAW-118 resin . V-218 . 54%
A-091
PMR-RAW-204 additive . V-244
Reactor pass
B-9912
Reactor 2 . 1840 kg
recipe PMR-PR-12 v3.2
yield 86 percent vs 92 percent target
QA release gate
disposed 23:08 . CFR-11 audit
Output batches
B-9920
pallets P-11211 → P-11218 . SO-44820
B-9921
pallets P-11219 → P-11226 . SO-44823
B-9922
pallets P-11227 → P-11232 . SO-44825
Every output pallet carries both consumed resin lots; recall against L-22887 returns the seven affected pallets in a query, not a 9-hour binder pull.

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.

Plan vs actual, week 22, Reactor 23 SKUs below band
SKUPlan kgActual kgY planY actΔ yieldAttribution
PMR-PR-1224,80022,98092%86%-6 ptsL-22887 feedstock variance
PMR-PR-1818,40018,61089%90%+1 ptson plan
PMR-PR-4416,20014,18088%79%-9 ptsReactor 2 operator drift
PMR-PR-529,2009,32094%95%+1 ptson plan
PMR-PR-6612,40011,25090%82%-8 ptsTank-pair changeover ate 2 h
PMR-PR-44 attribution flips from mix shift to operator drift the same week the variance lands.

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.

MPS-W22-R2Reactor 2 campaign timeline, 7 days
4 campaigns, 2 wash, 1 maint
C-441
CO-58
C-442
CO-59
C-443
MX-04
C-444
Day 1
Day 2
Day 3
Day 4
Day 5
Day 6
Day 7
C-441PMR-PR-12 campaign36 h
CO-58Changeover wash6 h
C-442PMR-PR-18 campaign36 h
CO-59Changeover wash4 h
C-443PMR-PR-44 campaign42 h
MX-04Reactor cap maintenance20 h
C-444PMR-PR-12 campaign24 h
Tank-pair changeover times learned from actuals; CO-58 and CO-59 reflect 6 h and 4 h rather than the ERP default.

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 operators
    Resin 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 latency
    V-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 blindness
    Changeover 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 cascade
    Batch 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 overnight
    B-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 day
    A 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.

Anonymized engagement
Plant manager, specialty chemicals (one site, batch-driven)
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
Outcome · 10 weeks
89%
Weekly batch plan stability
was 62%+27 pts
Illustrative, reflects this specific deployment. Outcomes vary by plant, stack, and scope.