IndPenSim-Golden-APC — Golden batch and multiway PCA

+------------------------------------------------------------------------------
| Program Name:         step_batch.py
| Program Version:      2026-09-10 18:41:38
| Date:                 2026-09-11
| Time:                 08:51:00
| Input 1 - Raw CSV:    indpensim_process.csv  (100 batches, 23 tags)
| Input 2 - Glossary:   indpensim_schema.csv
| Input 3 - Time stamp: aligned onto 100 points of batch progress
+------------------------------------------------------------------------------
In short. 100 batches were compared against a golden batch built from 20 of them. 71 sit more than 10 sigma away at their worst point, and 10 of the 10 batches with a recorded fault were caught.

1. The input data

Where it came from

Three steps, so any number in this report can be traced back to the file it was downloaded from. The links open the file or its folder on this machine.

WhatFile
1. Raw data, as downloaded100_Batches_IndPenSim_V3.csv 2.6 GB
the original, kept on the drive and never edited
/Volumes/YN-4T/WIP/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/IndPenSim
open the folder
2. Program that converted itmake_indpensim.py 8 kB
run this again to rebuild the analysis file
/Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/B-Engines
open the folder
3. Data used for this analysisindpensim_process.csv 19 MB
what the numbers in this report were computed from
/Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/IndPenSim
open the folder
Batch listindpensim_batches.csv 5 kB
/Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/IndPenSim
open the folder
Glossaryindpensim_schema.csv 1 kB
/Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/IndPenSim
open the folder
Data sheetdata-source.md 8 kB
what the dataset is, its licence, and its known quirks
/Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/IndPenSim
open the folder

What it holds

Batches100
Tags used23
Batch length167 to 290 h (median 230 h)
Alignmentevery batch stretched onto 100 points of 0–100% progress, because they run to different lengths
Corridormean ± 3 sigma of the reference batches

How the batches were run

StrategyBatchesMean lengthMean yield
APC with Raman30225 h3,484,283 kg
faulty10230 h2,600,203 kg
operator controlled30229 h2,833,113 kg
recipe driven30229 h2,912,750 kg

Left out of the analysis: agitator_rpm (constant in every batch), paa_conc_offline (offline, 98% blank), nh3_conc_offline (offline, 98% blank), penicillin_offline (offline, 98% blank), biomass_offline (offline, 98% blank), nh3_shots (constant in every batch), viscosity_offline (offline, 98% blank).

2. The golden batch

Built from 20 reference batches. At every one of the 100 points of progress it holds a mean and a spread for each of the 23 tags. Those 20 batches sit on average 1.1% outside their own corridor, which is the noise floor of the method — nothing can score better than that.

The corridor for every tag is drawn in section 6. Here is what the whole set looks like measured against it:

the same as a picture (for printing)

One point per batch. T² across is movement inside the pattern the good batches share; SPE up is what the model cannot explain at all. Both on log scales.

3. Every batch against the golden batch

Each batch is placed by its worst single point — how far from the golden batch it ever got, in sigma. That is the plain reading of "stays within ± so many sigma". The sustained figure beside it is the 99.9th percentile, which ignores one bad sample and says where the batch really lived.

BandBatchesHow farWhich
1Near the golden batch — within 2 sigma0none
2Similar — 2 to 5 sigma
a normal batch: it wandered, but never far
21
0 with a recorded fault
worst point 2–4 sigma
sustained 4 sigma (median)
Batch 61 - APC with Raman, Batch 62 - APC with Raman, Batch 63 - APC with Raman, Batch 64 - APC with Raman, Batch 65 - APC with Raman, Batch 66 - APC with Raman, Batch 67 - APC with Raman, Batch 68 - APC with Raman, Batch 69 - APC with Raman, Batch 70 - APC with Raman, Batch 71 - APC with Raman, Batch 72 - APC with Raman, Batch 73 - APC with Raman, Batch 74 - APC with Raman, Batch 75 - APC with Raman, Batch 76 - APC with Raman, Batch 77 - APC with Raman, Batch 78 - APC with Raman, Batch 79 - APC with Raman, Batch 80 - APC with Raman, Batch 86 - APC with Raman
3Outside — 5 to 10 sigma
clearly different from the golden batch at some point
8
0 with a recorded fault
worst point 7–9 sigma
sustained 8 sigma (median)
Batch 8 - recipe driven, Batch 12 - recipe driven, Batch 16 - recipe driven, Batch 22 - recipe driven, Batch 26 - recipe driven, Batch 82 - APC with Raman, Batch 84 - APC with Raman, Batch 88 - APC with Raman
4Far from it — over 10 sigma
a different batch altogether - something happened
71
10 with a recorded fault
worst point 36–1500 sigma
sustained 236 sigma (median)
Batch 1 - recipe driven, Batch 2 - recipe driven, Batch 3 - recipe driven, Batch 4 - recipe driven, Batch 5 - recipe driven, Batch 6 - recipe driven, Batch 7 - recipe driven, Batch 9 - recipe driven, Batch 10 - recipe driven, Batch 11 - recipe driven, Batch 13 - recipe driven, Batch 14 - recipe driven, Batch 15 - recipe driven, Batch 17 - recipe driven, Batch 18 - recipe driven, Batch 19 - recipe driven, Batch 20 - recipe driven, Batch 21 - recipe driven, Batch 23 - recipe driven, Batch 24 - recipe driven, Batch 25 - recipe driven, Batch 27 - recipe driven …

A batch holds 23 tags x 100 points = 2,300 readings. The largest of that many draws from a normal distribution is about 3.5 sigma by chance alone, so the first band is expected to be thinly populated or empty even for perfect batches. Change the edges in the window if you want bands that split your own data more usefully.

4. What caused the deviation

The 71 batches beyond 10 sigma, worst first. "Worst tag" is the single tag furthest from the golden batch, and "at" is where in the batch that happened.

BatchFault recordedWorst pointWorst tagatfirst lefttime outside
91faultyyes1500 sigmasubstrate_conc100%2%26.5%
99faultyyes1263 sigmasubstrate_conc100%2%23.4%
45operator controlledno1253 sigmasubstrate_conc100%1%23.7%
33operator controlledno1132 sigmasubstrate_conc100%2%17.4%
9recipe drivenno1093 sigmasubstrate_conc100%2%17.9%
95faultyyes1012 sigmasubstrate_conc100%10%21.6%
100faultyyes950 sigmasubstrate_conc100%0%14.7%
30recipe drivenno938 sigmasubstrate_conc100%1%12.4%
94faultyyes923 sigmasubstrate_conc100%9%19.3%
25recipe drivenno857 sigmasubstrate_conc100%1%16.5%
51operator controlledno853 sigmasubstrate_conc100%0%14.7%
43operator controlledno811 sigmasubstrate_conc100%4%8.9%
92faultyyes806 sigmaacid_flow_rate75%10%5.0%
18recipe drivenno801 sigmasubstrate_conc100%6%8.8%
3recipe drivenno739 sigmasubstrate_conc100%1%17.6%
41operator controlledno716 sigmaacid_flow_rate96%2%3.8%
44operator controlledno663 sigmasubstrate_conc100%5%9.9%
59operator controlledno652 sigmaacid_flow_rate85%7%9.0%
97faultyyes615 sigmaacid_flow_rate77%9%6.8%
10recipe drivenno589 sigmaacid_flow_rate84%13%4.0%
34operator controlledno589 sigmaacid_flow_rate84%8%8.0%
28recipe drivenno589 sigmaacid_flow_rate84%13%3.4%
4recipe drivenno589 sigmaacid_flow_rate84%13%7.0%
40operator controlledno589 sigmaacid_flow_rate84%13%6.4%
6recipe drivenno589 sigmaacid_flow_rate84%13%5.1%
96faultyyes589 sigmaacid_flow_rate84%6%4.8%
54operator controlledno589 sigmaacid_flow_rate84%6%6.2%
24recipe drivenno564 sigmasubstrate_conc100%6%5.5%
42operator controlledno542 sigmaacid_flow_rate84%0%7.2%
60operator controlledno541 sigmaacid_flow_rate84%6%6.3%
36operator controlledno541 sigmaacid_flow_rate84%13%12.7%
39operator controlledno533 sigmaacid_flow_rate99%13%5.3%
47operator controlledno530 sigmasubstrate_conc100%12%5.7%
37operator controlledno478 sigmaacid_flow_rate92%7%5.2%
19recipe drivenno473 sigmaacid_flow_rate93%8%4.3%
49operator controlledno469 sigmasubstrate_conc100%6%7.1%
93faultyyes364 sigmaacid_flow_rate1%1%3.4%
50operator controlledno362 sigmasubstrate_conc100%7%5.2%
35operator controlledno330 sigmaacid_flow_rate1%1%5.5%
21recipe drivenno309 sigmaacid_flow_rate93%0%4.1%
56operator controlledno266 sigmasubstrate_conc100%0%4.7%
52operator controlledno246 sigmaacid_flow_rate92%13%4.4%
38operator controlledno220 sigmasubstrate_conc100%1%4.6%
58operator controlledno199 sigmasubstrate_conc100%0%5.2%
7recipe drivenno174 sigmaacid_flow_rate91%13%3.1%
32operator controlledno169 sigmasugar_feed_rate96%13%7.5%
5recipe drivenno164 sigmaacid_flow_rate14%2%6.5%
31operator controlledno161 sigmaacid_flow_rate10%2%6.9%
83APC with Ramanno97 sigmaacid_flow_rate63%2%1.9%
53operator controlledno96 sigmasugar_feed_rate96%0%7.5%
48operator controlledno96 sigmasugar_feed_rate96%5%7.2%
55operator controlledno96 sigmasugar_feed_rate96%13%3.6%
98faultyyes90 sigmaph69%13%1.7%
23recipe drivenno88 sigmaacid_flow_rate50%2%7.2%
20recipe drivenno87 sigmaacid_flow_rate66%0%2.2%
2recipe drivenno87 sigmaacid_flow_rate66%12%1.3%
17recipe drivenno81 sigmaacid_flow_rate54%2%4.1%
14recipe drivenno78 sigmaacid_flow_rate6%6%1.1%
27recipe drivenno72 sigmaheat_water_flow43%12%5.6%
15recipe drivenno68 sigmaacid_flow_rate50%1%9.2%
89APC with Ramanno64 sigmaacid_flow_rate67%34%0.9%
57operator controlledno63 sigmaheat_water_flow34%13%2.9%
13recipe drivenno60 sigmaheat_water_flow13%8%2.5%
29recipe drivenno57 sigmawater_injection18%1%14.6%
11recipe drivenno46 sigmadumped_broth_flow95%7%2.7%
1recipe drivenno46 sigmadumped_broth_flow58%0%2.2%
85APC with Ramanno46 sigmadumped_broth_flow50%1%1.3%
81APC with Ramanno46 sigmadumped_broth_flow60%7%1.1%
87APC with Ramanno46 sigmadumped_broth_flow46%0%1.0%
90APC with Ramanno41 sigmaheat_water_flow19%5%0.1%
46operator controlledno36 sigmasugar_feed_rate52%13%2.5%

The milder bands

Batch by batch

Each chart holds every tag of that batch on one axis, measured in sigma from the golden batch. The green line at zero is the golden trajectory, the dashed red lines are the ±3 sigma corridor. The tags driving the batch are bold, the rest are faint behind them so you can still see whether the whole batch moved or only a few tags.

1. Batch 91 - faulty does not look like a golden batchseverity 10
faulty · a fault IS recorded for this batch · first left the corridor at 2% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 1500 sigma above the golden batch at 100% of the way through; 22 of 23 tags leave the corridor at some point; the first departure is at 2%, almost from the start; a large share of the batch sits outside, so this batch did not recover.

The numbers. SPE 55576720 against a limit of 381 (145714.1x); T² 99 against a limit of 18 (5.5x); 26.5% of the batch sits outside the golden corridor.

Driven by: substrate_conc (97%), acid_flow_rate (3%), aeration_rate (0%), dumped_broth_flow (0%), head_pressure (0%)

2. Batch 99 - faulty does not look like a golden batchseverity 10
faulty · a fault IS recorded for this batch · first left the corridor at 2% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 1263 sigma above the golden batch at 100% of the way through; 23 of 23 tags leave the corridor at some point; the first departure is at 2%, almost from the start; a large share of the batch sits outside, so this batch did not recover.

The numbers. SPE 38063050 against a limit of 381 (99795.8x); T² 61 against a limit of 18 (3.4x); 23.4% of the batch sits outside the golden corridor.

Driven by: substrate_conc (98%), acid_flow_rate (2%), heat_water_flow (0%), aeration_rate (0%), head_pressure (0%)

3. Batch 45 - operator controlled does not look like a golden batchseverity 10
operator controlled · no fault recorded for this batch · first left the corridor at 1% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 1253 sigma above the golden batch at 100% of the way through; 21 of 23 tags leave the corridor at some point; the first departure is at 1%, almost from the start; a large share of the batch sits outside, so this batch did not recover.

The numbers. SPE 25132546 against a limit of 381 (65893.9x); T² 39 against a limit of 18 (2.2x); 23.7% of the batch sits outside the golden corridor.

Driven by: substrate_conc (99%), acid_flow_rate (1%), sugar_feed_rate (0%), aeration_rate (0%), water_injection (0%)

4. Batch 95 - faulty does not look like a golden batchseverity 10
faulty · a fault IS recorded for this batch · first left the corridor at 10% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 1012 sigma above the golden batch at 100% of the way through; 19 of 23 tags leave the corridor at some point; the first departure is at 10%, early in the batch; a large share of the batch sits outside, so this batch did not recover.

The numbers. SPE 22134388 against a limit of 381 (58033.2x); T² 64 against a limit of 18 (3.6x); 21.6% of the batch sits outside the golden corridor.

Driven by: substrate_conc (95%), acid_flow_rate (4%), sugar_feed_rate (1%), dumped_broth_flow (0%), heat_water_flow (0%)

5. Batch 100 - faulty does not look like a golden batchseverity 10
faulty · a fault IS recorded for this batch · first left the corridor at 0% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 950 sigma above the golden batch at 100% of the way through; 15 of 23 tags leave the corridor at some point; the first departure is at 0%, almost from the start.

The numbers. SPE 21871792 against a limit of 381 (57344.7x); T² 22 against a limit of 18 (1.2x); 14.7% of the batch sits outside the golden corridor.

Driven by: substrate_conc (96%), acid_flow_rate (4%), co2_offgas (0%), heat_water_flow (0%), o2_offgas (0%)

6. Batch 9 - recipe driven does not look like a golden batchseverity 10
recipe driven · no fault recorded for this batch · first left the corridor at 2% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 1093 sigma above the golden batch at 100% of the way through; 22 of 23 tags leave the corridor at some point; the first departure is at 2%, almost from the start; a large share of the batch sits outside, so this batch did not recover.

The numbers. SPE 21376420 against a limit of 381 (56045.9x); T² 42 against a limit of 18 (2.3x); 17.9% of the batch sits outside the golden corridor.

Driven by: substrate_conc (99%), acid_flow_rate (1%), head_pressure (0%), aeration_rate (0%), dumped_broth_flow (0%)

7. Batch 94 - faulty does not look like a golden batchseverity 10
faulty · a fault IS recorded for this batch · first left the corridor at 9% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 923 sigma above the golden batch at 100% of the way through; 15 of 23 tags leave the corridor at some point; the first departure is at 9%, almost from the start; a large share of the batch sits outside, so this batch did not recover.

The numbers. SPE 17032606 against a limit of 381 (44657.0x); T² 52 against a limit of 18 (2.9x); 19.3% of the batch sits outside the golden corridor.

Driven by: substrate_conc (91%), acid_flow_rate (9%), temperature (0%), co2_offgas (0%), heat_water_flow (0%)

8. Batch 33 - operator controlled does not look like a golden batchseverity 10
operator controlled · no fault recorded for this batch · first left the corridor at 2% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 1132 sigma above the golden batch at 100% of the way through; 20 of 23 tags leave the corridor at some point; the first departure is at 2%, almost from the start; a large share of the batch sits outside, so this batch did not recover.

The numbers. SPE 15775811 against a limit of 381 (41361.9x); T² 19 against a limit of 18 (1.1x); 17.4% of the batch sits outside the golden corridor.

Driven by: substrate_conc (93%), acid_flow_rate (7%), sugar_feed_rate (0%), aeration_rate (0%), head_pressure (0%)

9. Batch 30 - recipe driven does not look like a golden batchseverity 10
recipe driven · no fault recorded for this batch · first left the corridor at 1% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 938 sigma above the golden batch at 100% of the way through; 14 of 23 tags leave the corridor at some point; the first departure is at 1%, almost from the start.

The numbers. SPE 14441737 against a limit of 381 (37864.1x); T² 25 against a limit of 18 (1.4x); 12.4% of the batch sits outside the golden corridor.

Driven by: substrate_conc (95%), acid_flow_rate (5%), paa_flow (0%), penicillin_conc (0%), heat_water_flow (0%)

10. Batch 51 - operator controlled does not look like a golden batchseverity 10
operator controlled · no fault recorded for this batch · first left the corridor at 0% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 853 sigma above the golden batch at 100% of the way through; 16 of 23 tags leave the corridor at some point; the first departure is at 0%, almost from the start.

The numbers. SPE 11337651 against a limit of 381 (29725.7x); T² 19 against a limit of 18 (1.1x); 14.7% of the batch sits outside the golden corridor.

Driven by: substrate_conc (89%), acid_flow_rate (11%), sugar_feed_rate (0%), paa_flow (0%), penicillin_conc (0%)

11. Batch 25 - recipe driven does not look like a golden batchseverity 10
recipe driven · no fault recorded for this batch · first left the corridor at 1% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 857 sigma above the golden batch at 100% of the way through; 21 of 23 tags leave the corridor at some point; the first departure is at 1%, almost from the start; a large share of the batch sits outside, so this batch did not recover.

The numbers. SPE 10093403 against a limit of 381 (26463.4x); T² 30 against a limit of 18 (1.6x); 16.5% of the batch sits outside the golden corridor.

Driven by: substrate_conc (93%), acid_flow_rate (7%), water_injection (0%), aeration_rate (0%), head_pressure (0%)

12. Batch 18 - recipe driven does not look like a golden batchseverity 10
recipe driven · no fault recorded for this batch · first left the corridor at 6% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 801 sigma above the golden batch at 100% of the way through; 12 of 23 tags leave the corridor at some point; the first departure is at 6%, almost from the start.

The numbers. SPE 9446301 against a limit of 381 (24766.8x); 8.8% of the batch sits outside the golden corridor.

Driven by: substrate_conc (95%), acid_flow_rate (5%), heat_water_flow (0%), paa_flow (0%), penicillin_conc (0%)

13. Batch 43 - operator controlled does not look like a golden batchseverity 10
operator controlled · no fault recorded for this batch · first left the corridor at 4% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 811 sigma above the golden batch at 100% of the way through; 13 of 23 tags leave the corridor at some point; the first departure is at 4%, almost from the start.

The numbers. SPE 8874244 against a limit of 381 (23267.0x); 8.9% of the batch sits outside the golden corridor.

Driven by: substrate_conc (93%), acid_flow_rate (6%), sugar_feed_rate (1%), heat_water_flow (0%), paa_flow (0%)

14. Batch 3 - recipe driven does not look like a golden batchseverity 10
recipe driven · no fault recorded for this batch · first left the corridor at 1% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 739 sigma above the golden batch at 100% of the way through; 23 of 23 tags leave the corridor at some point; the first departure is at 1%, almost from the start; a large share of the batch sits outside, so this batch did not recover.

The numbers. SPE 6203700 against a limit of 381 (16265.2x); T² 20 against a limit of 18 (1.1x); 17.6% of the batch sits outside the golden corridor.

Driven by: substrate_conc (85%), acid_flow_rate (14%), aeration_rate (0%), water_injection (0%), head_pressure (0%)

15. Batch 44 - operator controlled does not look like a golden batchseverity 10
operator controlled · no fault recorded for this batch · first left the corridor at 5% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 663 sigma above the golden batch at 100% of the way through; 12 of 23 tags leave the corridor at some point; the first departure is at 5%, almost from the start.

The numbers. SPE 5591929 against a limit of 381 (14661.2x); T² 21 against a limit of 18 (1.2x); 9.9% of the batch sits outside the golden corridor.

Driven by: substrate_conc (90%), acid_flow_rate (10%), sugar_feed_rate (0%), paa_flow (0%), penicillin_conc (0%)

16. Batch 92 - faulty does not look like a golden batchseverity 10
faulty · a fault IS recorded for this batch · first left the corridor at 10% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 597 sigma above the golden batch at 100% of the way through; 12 of 23 tags leave the corridor at some point; the first departure is at 10%, early in the batch.

The numbers. SPE 5154621 against a limit of 381 (13514.7x); 5.0% of the batch sits outside the golden corridor.

Driven by: substrate_conc (77%), acid_flow_rate (23%), ph (0%), paa_flow (0%), oxygen_uptake (0%)

17. Batch 34 - operator controlled does not look like a golden batchseverity 10
operator controlled · no fault recorded for this batch · first left the corridor at 8% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 556 sigma above the golden batch at 100% of the way through; 12 of 23 tags leave the corridor at some point; the first departure is at 8%, almost from the start.

The numbers. SPE 5064372 against a limit of 381 (13278.1x); 8.0% of the batch sits outside the golden corridor.

Driven by: substrate_conc (89%), acid_flow_rate (10%), sugar_feed_rate (1%), paa_flow (0%), penicillin_conc (0%)

18. Batch 6 - recipe driven does not look like a golden batchseverity 10
recipe driven · no fault recorded for this batch · first left the corridor at 13% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 572 sigma above the golden batch at 100% of the way through; 11 of 23 tags leave the corridor at some point; the first departure is at 13%, early in the batch.

The numbers. SPE 4366606 against a limit of 381 (11448.6x); 5.1% of the batch sits outside the golden corridor.

Driven by: substrate_conc (88%), acid_flow_rate (12%), paa_flow (0%), heat_water_flow (0%), cool_water_flow (0%)

19. Batch 10 - recipe driven does not look like a golden batchseverity 10
recipe driven · no fault recorded for this batch · first left the corridor at 13% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 546 sigma above the golden batch at 100% of the way through; 8 of 23 tags leave the corridor at some point; the first departure is at 13%, early in the batch.

The numbers. SPE 3899527 against a limit of 381 (10224.0x); 4.0% of the batch sits outside the golden corridor.

Driven by: substrate_conc (87%), acid_flow_rate (13%), paa_flow (0%), penicillin_conc (0%), oxygen_uptake (0%)

20. Batch 4 - recipe driven does not look like a golden batchseverity 10
recipe driven · no fault recorded for this batch · first left the corridor at 13% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 559 sigma above the golden batch at 100% of the way through; 12 of 23 tags leave the corridor at some point; the first departure is at 13%, early in the batch.

The numbers. SPE 3842857 against a limit of 381 (10075.4x); 7.0% of the batch sits outside the golden corridor.

Driven by: substrate_conc (86%), acid_flow_rate (14%), paa_flow (0%), oxygen_uptake (0%), o2_offgas (0%)

21. Batch 42 - operator controlled does not look like a golden batchseverity 10
operator controlled · no fault recorded for this batch · first left the corridor at 0% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 525 sigma above the golden batch at 100% of the way through; 14 of 23 tags leave the corridor at some point; the first departure is at 0%, almost from the start.

The numbers. SPE 3703452 against a limit of 381 (9709.9x); 7.2% of the batch sits outside the golden corridor.

Driven by: substrate_conc (86%), acid_flow_rate (13%), sugar_feed_rate (1%), heat_water_flow (0%), paa_flow (0%)

22. Batch 24 - recipe driven does not look like a golden batchseverity 10
recipe driven · no fault recorded for this batch · first left the corridor at 6% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 564 sigma above the golden batch at 100% of the way through; 12 of 23 tags leave the corridor at some point; the first departure is at 6%, almost from the start.

The numbers. SPE 3543513 against a limit of 381 (9290.6x); 5.5% of the batch sits outside the golden corridor.

Driven by: substrate_conc (87%), acid_flow_rate (13%), paa_flow (0%), oxygen_uptake (0%), penicillin_conc (0%)

23. Batch 40 - operator controlled does not look like a golden batchseverity 10
operator controlled · no fault recorded for this batch · first left the corridor at 13% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 522 sigma above the golden batch at 100% of the way through; 9 of 23 tags leave the corridor at some point; the first departure is at 13%, early in the batch.

The numbers. SPE 3180412 against a limit of 381 (8338.6x); 6.4% of the batch sits outside the golden corridor.

Driven by: substrate_conc (83%), acid_flow_rate (16%), sugar_feed_rate (0%), paa_flow (0%), penicillin_conc (0%)

24. Batch 36 - operator controlled does not look like a golden batchseverity 10
operator controlled · no fault recorded for this batch · first left the corridor at 13% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 434 sigma above the golden batch at 100% of the way through; 13 of 23 tags leave the corridor at some point; the first departure is at 13%, early in the batch.

The numbers. SPE 2949482 against a limit of 381 (7733.1x); 12.7% of the batch sits outside the golden corridor.

Driven by: substrate_conc (82%), acid_flow_rate (16%), sugar_feed_rate (2%), paa_flow (0%), penicillin_conc (0%)

25. Batch 47 - operator controlled does not look like a golden batchseverity 10
operator controlled · no fault recorded for this batch · first left the corridor at 12% of the way through
the same as a picture (for printing)

What the chart shows. substrate_conc carries most of it, running 530 sigma above the golden batch at 100% of the way through; 14 of 23 tags leave the corridor at some point; the first departure is at 12%, early in the batch.

The numbers. SPE 2410682 against a limit of 381 (6320.5x); 5.7% of the batch sits outside the golden corridor.

Driven by: substrate_conc (93%), acid_flow_rate (6%), sugar_feed_rate (1%), heat_water_flow (0%), dumped_broth_flow (0%)

5. How each way of running the plant behaves

Each curve is one batch: how far it sits from the golden batch at that point of its progress, taken across all 23 tags at once. The bold line is the middle batch of the group. All four charts share the same scale, so they can be read against each other.

Way of running itBatchesTypical distance from goldenWorst batchMean yieldBeyond 10 sigma
recipe driven301.05 sigma1093 sigma2,912,750 kg25 of 30
operator controlled301.35 sigma1253 sigma2,833,113 kg30 of 30
APC with Raman300.66 sigma97 sigma3,484,283 kg6 of 30
faulty1012.51 sigma1500 sigma2,600,203 kg10 of 10

The four side by side

Only the middle batch of each group, so the four are directly comparable.

the same as a picture (for printing)

recipe driven — 30 batches

the same as a picture (for printing)

operator controlled — 30 batches

the same as a picture (for printing)

APC with Raman — 30 batches

the same as a picture (for printing)

faulty — 10 batches

the same as a picture (for printing)

6. Every batch, ranked

label batch strategy band max_z sustained_z worst_tag worst_at_pct outside_pct first_outside_pct T2 SPE yield_total_kg
Batch 91 - faulty 91 faulty far from it (over 10 sigma) 1500 1429 substrate_conc 100 26.52 2 99.06 5.558e+07 2.597e+06
Batch 45 - operator controlled 45 operator controlled far from it (over 10 sigma) 1253 1168 substrate_conc 100 23.74 1 38.98 2.513e+07 2.828e+06
Batch 99 - faulty 99 faulty far from it (over 10 sigma) 1263 1231 substrate_conc 100 23.39 2 61.21 3.806e+07 8.908e+05
Batch 95 - faulty 95 faulty far from it (over 10 sigma) 1012 1004 substrate_conc 100 21.61 10.1 64.03 2.213e+07 1.954e+06
Batch 94 - faulty 94 faulty far from it (over 10 sigma) 923.4 884.5 substrate_conc 100 19.3 9.1 51.82 1.703e+07 3.584e+06
Batch 9 - recipe driven 9 recipe driven far from it (over 10 sigma) 1093 1044 substrate_conc 100 17.87 2 41.82 2.138e+07 4.083e+06
Batch 3 - recipe driven 3 recipe driven far from it (over 10 sigma) 738.6 670.3 substrate_conc 100 17.65 1 19.65 6.204e+06 2.675e+06
Batch 33 - operator controlled 33 operator controlled far from it (over 10 sigma) 1132 1031 substrate_conc 100 17.43 2 19.28 1.578e+07 3.294e+06
Batch 25 - recipe driven 25 recipe driven far from it (over 10 sigma) 857.2 787.6 substrate_conc 100 16.48 1 29.62 1.009e+07 3.717e+06
Batch 51 - operator controlled 51 operator controlled far from it (over 10 sigma) 852.9 814.6 substrate_conc 100 14.74 0 19.18 1.134e+07 2.918e+06
Batch 100 - faulty 100 faulty far from it (over 10 sigma) 949.8 926.9 substrate_conc 100 14.65 0 22.5 2.187e+07 1.555e+06
Batch 29 - recipe driven 29 recipe driven far from it (over 10 sigma) 57.4 53.9 water_injection 18.2 14.61 1 13.98 7.662e+04 1.842e+06
Batch 36 - operator controlled 36 operator controlled far from it (over 10 sigma) 541.4 420 acid_flow_rate 83.8 12.65 13.1 17.01 2.949e+06 1.754e+06
Batch 30 - recipe driven 30 recipe driven far from it (over 10 sigma) 937.6 895.1 substrate_conc 100 12.39 1 25.21 1.444e+07 3.539e+06
Batch 67 - APC with Raman 67 APC with Raman similar (2-5 sigma) 4.4 4.4 head_pressure 89.9 10.91 2 18.01 0.9129 3.413e+06
Batch 44 - operator controlled 44 operator controlled far from it (over 10 sigma) 663 612.6 substrate_conc 100 9.91 5.1 21 5.592e+06 1.474e+06
Batch 15 - recipe driven 15 recipe driven far from it (over 10 sigma) 68.1 54.6 acid_flow_rate 49.5 9.22 1 14.35 2.018e+04 2.853e+06
Batch 59 - operator controlled 59 operator controlled far from it (over 10 sigma) 651.7 236.2 acid_flow_rate 84.8 9 7.1 15.05 1.098e+06 2.91e+06
Batch 43 - operator controlled 43 operator controlled far from it (over 10 sigma) 811 758.4 substrate_conc 100 8.87 4 6.064 8.874e+06 2.212e+06
Batch 18 - recipe driven 18 recipe driven far from it (over 10 sigma) 801.3 761.3 substrate_conc 100 8.83 6.1 11.13 9.446e+06 2.014e+06
Batch 34 - operator controlled 34 operator controlled far from it (over 10 sigma) 589.4 540 acid_flow_rate 83.8 8 8.1 6.676 5.064e+06 2.066e+06
Batch 53 - operator controlled 53 operator controlled far from it (over 10 sigma) 96.4 96.4 sugar_feed_rate 96 7.52 0 18.53 5.848e+04 2.858e+06
Batch 32 - operator controlled 32 operator controlled far from it (over 10 sigma) 168.7 168.7 sugar_feed_rate 96 7.52 13.1 17.71 1.837e+05 4.196e+06
Batch 42 - operator controlled 42 operator controlled far from it (over 10 sigma) 541.5 506.2 acid_flow_rate 83.8 7.22 0 6.472 3.703e+06 2.358e+06
Batch 48 - operator controlled 48 operator controlled far from it (over 10 sigma) 96.4 96.4 sugar_feed_rate 96 7.17 5.1 12.15 9.266e+04 3.265e+06
Batch 23 - recipe driven 23 recipe driven far from it (over 10 sigma) 88.2 53.9 acid_flow_rate 49.5 7.17 2 9.588 5.328e+04 2.855e+06
Batch 49 - operator controlled 49 operator controlled far from it (over 10 sigma) 468.8 435.1 substrate_conc 100 7.09 6.1 8.211 1.928e+06 2.597e+06
Batch 4 - recipe driven 4 recipe driven far from it (over 10 sigma) 589.3 539.1 acid_flow_rate 83.8 6.96 13.1 14.85 3.843e+06 1.887e+06
Batch 31 - operator controlled 31 operator controlled far from it (over 10 sigma) 160.7 60.3 acid_flow_rate 10.1 6.91 2 5.562 9.225e+04 1.89e+06
Batch 97 - faulty 97 faulty far from it (over 10 sigma) 615.4 378.4 acid_flow_rate 76.8 6.83 9.1 12.15 1.977e+06 3.894e+06
Batch 5 - recipe driven 5 recipe driven far from it (over 10 sigma) 164.1 48.7 acid_flow_rate 14.1 6.52 2 9.567 3.829e+04 3.563e+06
Batch 40 - operator controlled 40 operator controlled far from it (over 10 sigma) 589.2 499.9 acid_flow_rate 83.8 6.39 13.1 3.375 3.18e+06 2.426e+06
Batch 60 - operator controlled 60 operator controlled far from it (over 10 sigma) 541.4 272 acid_flow_rate 83.8 6.26 6.1 8.993 1.046e+06 3.802e+06
Batch 54 - operator controlled 54 operator controlled far from it (over 10 sigma) 588.9 360.3 acid_flow_rate 83.8 6.17 6.1 2.876 1.48e+06 3.184e+06
Batch 47 - operator controlled 47 operator controlled far from it (over 10 sigma) 530.3 488.8 substrate_conc 100 5.7 12.1 4.866 2.411e+06 2.586e+06
Batch 27 - recipe driven 27 recipe driven far from it (over 10 sigma) 72.3 37.8 heat_water_flow 43.4 5.57 12.1 12.41 1.313e+04 2.176e+06
Batch 24 - recipe driven 24 recipe driven far from it (over 10 sigma) 564.3 537.4 substrate_conc 100 5.52 6.1 10.07 3.544e+06 1.958e+06
Batch 35 - operator controlled 35 operator controlled far from it (over 10 sigma) 330.3 100.3 acid_flow_rate 1 5.52 1 10.74 1.772e+05 3.538e+06
Batch 39 - operator controlled 39 operator controlled far from it (over 10 sigma) 532.8 132.6 acid_flow_rate 99 5.3 13.1 79.5 5.318e+05 2.682e+06
Batch 58 - operator controlled 58 operator controlled far from it (over 10 sigma) 199 180.3 substrate_conc 100 5.22 0 4.107 2.849e+05 2.758e+06

first 40 of 100 — the rest are in batch_scores.csv

7. The golden batch, tag by tag

The green band is where a good batch is expected to be at each point of its progress. The worst batches are drawn over it in red, and one reference batch in green for comparison. Drag to zoom, double-click to reset, click a name in the legend to hide it.

aeration_rate

the same as a picture (for printing)

sugar_feed_rate

the same as a picture (for printing)

acid_flow_rate

the same as a picture (for printing)

base_flow_rate

the same as a picture (for printing)

cool_water_flow

the same as a picture (for printing)

heat_water_flow

the same as a picture (for printing)

water_injection

the same as a picture (for printing)

head_pressure

the same as a picture (for printing)

dumped_broth_flow

the same as a picture (for printing)

substrate_conc

the same as a picture (for printing)

dissolved_o2

the same as a picture (for printing)

penicillin_conc

the same as a picture (for printing)

vessel_volume

the same as a picture (for printing)

vessel_weight

the same as a picture (for printing)

ph

the same as a picture (for printing)

temperature

the same as a picture (for printing)

generated_heat

the same as a picture (for printing)

co2_offgas

the same as a picture (for printing)

paa_flow

the same as a picture (for printing)

oil_flow

the same as a picture (for printing)

oxygen_uptake

the same as a picture (for printing)

o2_offgas

the same as a picture (for printing)

carbon_evolution

the same as a picture (for printing)

8. What this cannot tell you

  1. Batches are aligned by percent complete. If a batch is slow because a phase ran long, alignment by phase or by an indicator variable would place it better.
  2. The corridor is only as good as the reference batches. If a bad batch is in the reference set, its behaviour becomes normal.
  3. The bands say how far a batch sat from the golden one. They do not say the deviation mattered: a batch inside the corridor throughout can still be poor if it is late, or if the yield is low for reasons no tag records.
  4. "Worst tag" is where the deviation is largest, which is not always where it started. Use the per-batch charts above to see the order things moved in.

9. Comparing the ways of running the plant

APC with Raman produces the most and is also the most repeatable.
Across all 3 strategies the yields differ: one-way ANOVA F=9.91, p=1.3e-04; Kruskal-Wallis p=5.1e-04 without assuming normality. The spreads differ too: Levene p=5.6e-05.
The 10 faulty batches are excluded from every comparison below. They appear only in the last table, as the thing each strategy's golden batch is asked to detect.

9.1 What each way of running it produced

Way of running itBatchesMean yield (kg)Spread (CV)Worst batchBest batchMean hourskg per hour
recipe driven302,912,75026.4%1,842,4004,083,100228.812,917
operator controlled302,833,11324.0%1,474,1004,196,000229.212,431
APC with Raman303,484,2838.8%2,830,8004,044,300224.715,587

CV is the batch-to-batch spread as a percentage of the mean. In a regulated plant it often matters more than the mean, because it is what lets you promise a delivery date and pass a validation.

9.2 Is the difference real, or is it noise?

ComparisonDifferenceWelch pMann-Whitney pCohen dSignificant
recipe driven vs operator controlled+79,637 kg+2.8%6.7e-018.9e-01+0.11no
recipe driven vs APC with Raman-571,533 kg-16.4%5.3e-041.1e-02-0.98yes
operator controlled vs APC with Raman-651,170 kg-18.7%2.3e-054.4e-05-1.23yes

Two tests because one assumes normality and the other does not; they should agree. Cohen d is the size of the gap in standard deviations: 0.2 is small, 0.5 medium, 0.8 large. A difference can be statistically significant and still too small to act on, so read the size as well as the p-value.

9.3 The golden batch of each way of running it

One real batch per strategy, chosen on two criteria at once: high yield and close to that group's own mean trajectory. The highest-yielding batch is often a lucky outlier that ran unlike anything else, and the most typical batch is often mediocre. These are both.

Way of running itGolden batchYieldYield rankCloseness rank
recipe drivenBatch 26 - recipe driven3,886,800 kg4 of 302 of 30
operator controlledBatch 60 - operator controlled3,802,300 kg3 of 305 of 30
APC with RamanBatch 79 - APC with Raman3,825,600 kg5 of 302 of 30

9.4 Does each way of running it actually look different?

A golden batch is built from one strategy, holding back some of its own batches, and every group is then scored against it. The figure is the median batch's typical distance, in sigma. The shaded cell on the diagonal is that strategy's own held-back batches — the fair self-comparison, and it should be the lowest number in its row.

Golden built fromrecipe drivenoperator controlledAPC with Ramanfaulty
recipe driven0.771.071.081.11
operator controlled0.820.740.951.20
APC with Raman1.051.350.6612.51
Golden built fromIts own held-back batchesThe other strategiesHow much furtherFault detection power
recipe driven0.771.071.40x1.4x
operator controlled0.740.891.20x1.6x
APC with Raman0.661.201.82x19.0x

"How much further" says how distinctive that way of running the plant is. "Fault detection power" is how far the faulty batches sit compared with its own good ones — a tighter normal is a more sensitive detector, which is a reason to run a strategy quite separate from what it yields.

9.5 What this comparison cannot settle

  1. Do not rank strategies by distance from the main golden batch in section 2. That golden is built from all the good batches, so it is a blend of every strategy, and each is being measured against an average that contains itself. Section 9.4 avoids that by giving each strategy its own golden.
  2. These are the batches that were run, not a designed experiment. If the strategies were used in different periods, on different feedstock or by different crews, that difference is inside the numbers and cannot be separated out.
  3. Yield is the only outcome recorded here. Cost, energy, operator effort and the price of the instrumentation are not, and a strategy that yields more can still lose on all four.
  4. Sample size is 30 to 30 batches per strategy. Enough to see a large difference, not enough to see a small one.

Folder: /Volumes/YN-4T/WIP/CTRL-Designer/B-CDL-Data-Analysis/E-Batch/IndPenSim-Golden-APC


© 2026 CTRL Designer LLC. All rights reserved.
Yahya Nazer · info@ctrlDesigner.com