IndPenSim-Golden-Operator — Golden batch and multiway PCA

+------------------------------------------------------------------------------
| Program Name:         step_batch.py
| Program Version:      2026-09-10 18:41:38
| Date:                 2026-09-11
| Time:                 08:50:57
| 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. 66 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
27
0 with a recorded fault
worst point 2–5 sigma
sustained 4 sigma (median)
Batch 4 - recipe driven, Batch 8 - recipe driven, Batch 10 - recipe driven, Batch 16 - recipe driven, Batch 22 - recipe driven, Batch 24 - recipe driven, Batch 31 - operator controlled, Batch 32 - operator controlled, Batch 33 - operator controlled, Batch 34 - operator controlled, Batch 35 - operator controlled, Batch 36 - operator controlled, Batch 37 - operator controlled, Batch 38 - operator controlled, Batch 39 - operator controlled, Batch 40 - operator controlled, Batch 41 - operator controlled, Batch 42 - operator controlled, Batch 43 - operator controlled, Batch 44 - operator controlled, Batch 45 - operator controlled, Batch 46 - operator controlled …
3Outside — 5 to 10 sigma
clearly different from the golden batch at some point
7
0 with a recorded fault
worst point 5–10 sigma
sustained 5 sigma (median)
Batch 2 - recipe driven, Batch 12 - recipe driven, Batch 14 - recipe driven, Batch 20 - recipe driven, Batch 25 - recipe driven, Batch 26 - recipe driven, Batch 54 - operator controlled
4Far from it — over 10 sigma
a different batch altogether - something happened
66
10 with a recorded fault
worst point 10–183 sigma
sustained 36 sigma (median)
Batch 1 - recipe driven, Batch 3 - recipe driven, Batch 5 - recipe driven, Batch 6 - recipe driven, Batch 7 - recipe driven, Batch 9 - recipe driven, Batch 11 - recipe driven, Batch 13 - recipe driven, Batch 15 - recipe driven, Batch 17 - recipe driven, Batch 18 - recipe driven, Batch 19 - recipe driven, Batch 21 - recipe driven, Batch 23 - recipe driven, Batch 27 - recipe driven, Batch 28 - recipe driven, Batch 29 - recipe driven, Batch 30 - recipe driven, Batch 51 - operator controlled, Batch 52 - operator controlled, Batch 53 - operator controlled, Batch 55 - operator controlled …

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 66 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
100faultyyes183 sigmaaeration_rate46%9%5.5%
94faultyyes183 sigmaaeration_rate46%9%7.2%
51operator controlledno178 sigmaacid_flow_rate86%1%1.2%
59operator controlledno172 sigmaacid_flow_rate85%7%2.9%
67APC with Ramanno166 sigmaph48%2%20.0%
97faultyyes162 sigmaacid_flow_rate77%9%4.9%
91faultyyes156 sigmasubstrate_conc46%5%19.5%
9recipe drivenno152 sigmaacid_flow_rate61%10%4.6%
93faultyyes135 sigmatemperature42%1%3.6%
99faultyyes135 sigmaacid_flow_rate77%3%12.3%
95faultyyes115 sigmaacid_flow_rate63%10%12.8%
3recipe drivenno113 sigmaacid_flow_rate98%1%12.0%
92faultyyes111 sigmaph69%7%1.9%
98faultyyes98 sigmaph69%6%1.4%
76APC with Ramanno78 sigmaheat_water_flow15%2%1.8%
7recipe drivenno75 sigmaph86%1%3.2%
15recipe drivenno67 sigmahead_pressure21%2%10.3%
5recipe drivenno67 sigmahead_pressure21%2%10.3%
68APC with Ramanno66 sigmapaa_flow38%2%2.9%
70APC with Ramanno66 sigmapaa_flow38%5%2.7%
29recipe drivenno66 sigmapaa_flow14%1%12.0%
17recipe drivenno65 sigmawater_injection26%2%5.6%
75APC with Ramanno62 sigmaheat_water_flow14%2%10.6%
28recipe drivenno59 sigmaacid_flow_rate78%61%0.7%
23recipe drivenno56 sigmapaa_flow15%3%4.2%
53operator controlledno52 sigmawater_injection38%0%9.8%
64APC with Ramanno47 sigmapaa_flow39%0%2.3%
61APC with Ramanno46 sigmadumped_broth_flow54%3%6.4%
85APC with Ramanno46 sigmadumped_broth_flow76%6%5.6%
55operator controlledno46 sigmadumped_broth_flow46%0%1.0%
1recipe drivenno46 sigmadumped_broth_flow76%0%2.0%
19recipe drivenno46 sigmadumped_broth_flow64%11%1.6%
13recipe drivenno46 sigmadumped_broth_flow46%11%1.5%
27recipe drivenno46 sigmadumped_broth_flow48%11%2.0%
71APC with Ramanno46 sigmadumped_broth_flow48%6%3.2%
81APC with Ramanno46 sigmadumped_broth_flow60%7%2.1%
73APC with Ramanno46 sigmadumped_broth_flow42%5%9.2%
57operator controlledno46 sigmadumped_broth_flow99%34%0.5%
87APC with Ramanno46 sigmadumped_broth_flow46%0%2.6%
83APC with Ramanno46 sigmadumped_broth_flow54%5%3.3%
77APC with Ramanno46 sigmadumped_broth_flow50%10%3.3%
69APC with Ramanno46 sigmadumped_broth_flow59%10%4.2%
65APC with Ramanno41 sigmapaa_flow10%0%1.6%
62APC with Ramanno41 sigmapaa_flow15%10%1.7%
80APC with Ramanno39 sigmapaa_flow15%10%1.9%
74APC with Ramanno39 sigmapaa_flow15%5%1.4%
78APC with Ramanno39 sigmapaa_flow12%1%3.0%
89APC with Ramanno38 sigmapaa_flow39%5%3.6%
90APC with Ramanno38 sigmapaa_flow12%0%1.6%
84APC with Ramanno38 sigmapaa_flow15%0%2.1%
79APC with Ramanno37 sigmapaa_flow15%10%2.0%
82APC with Ramanno36 sigmapaa_flow15%11%1.8%
88APC with Ramanno36 sigmapaa_flow15%3%1.8%
63APC with Ramanno34 sigmapaa_flow15%11%1.9%
86APC with Ramanno34 sigmapaa_flow12%11%1.9%
72APC with Ramanno33 sigmapaa_flow15%10%1.4%
66APC with Ramanno32 sigmapaa_flow12%3%3.5%
96faultyyes30 sigmatemperature36%33%2.0%
30recipe drivenno26 sigmaacid_flow_rate58%1%1.5%
52operator controlledno22 sigmaheat_water_flow20%2%0.6%
21recipe drivenno20 sigmaheat_water_flow5%3%1.8%
11recipe drivenno19 sigmasugar_feed_rate38%6%2.1%
6recipe drivenno14 sigmaacid_flow_rate37%6%2.4%
60operator controlledno12 sigmatemperature24%18%0.4%
18recipe drivenno11 sigmaacid_flow_rate40%17%1.3%
58operator controlledno10 sigmaacid_flow_rate35%5%0.2%

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 67 - APC with Raman does not look like a golden batchseverity 10
APC with Raman · 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. ph carries most of it, running 166 sigma below the golden batch at 47% 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 305387 against a limit of 520 (587.2x); T² 25 against a limit of 18 (1.4x); 20.0% of the batch sits outside the golden corridor.

Driven by: ph (51%), head_pressure (12%), water_injection (11%), oil_flow (9%), aeration_rate (7%)

2. Batch 91 - faulty does not look like a golden batchseverity 10
faulty · a fault IS 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 156 sigma above the golden batch at 45% of the way through; 19 of 23 tags leave the corridor at some point; the first departure is at 5%, almost from the start; a large share of the batch sits outside, so this batch did not recover.

The numbers. SPE 162277 against a limit of 520 (312.0x); T² 36 against a limit of 18 (2.0x); 19.5% of the batch sits outside the golden corridor.

Driven by: substrate_conc (59%), acid_flow_rate (33%), dumped_broth_flow (3%), sugar_feed_rate (2%), temperature (0%)

3. 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. aeration_rate carries most of it, running 183 sigma below the golden batch at 46% of the way through; 14 of 23 tags leave the corridor at some point; the first departure is at 9%, almost from the start.

The numbers. SPE 108798 against a limit of 520 (209.2x); T² 34 against a limit of 18 (1.9x); 7.2% of the batch sits outside the golden corridor.

Driven by: aeration_rate (63%), acid_flow_rate (17%), co2_offgas (6%), cool_water_flow (5%), temperature (3%)

4. Batch 100 - 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. aeration_rate carries most of it, running 183 sigma below the golden batch at 46% of the way through; 16 of 23 tags leave the corridor at some point; the first departure is at 9%, almost from the start.

The numbers. SPE 104893 against a limit of 520 (201.7x); T² 19 against a limit of 18 (1.1x); 5.5% of the batch sits outside the golden corridor.

Driven by: aeration_rate (65%), acid_flow_rate (18%), co2_offgas (9%), o2_offgas (4%), substrate_conc (2%)

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

What the chart shows. acid_flow_rate carries most of it, running 135 sigma above the golden batch at 77% of the way through; 19 of 23 tags leave the corridor at some point; the first departure is at 3%, almost from the start.

The numbers. SPE 89135 against a limit of 520 (171.4x); T² 21 against a limit of 18 (1.2x); 12.3% of the batch sits outside the golden corridor.

Driven by: acid_flow_rate (56%), substrate_conc (20%), co2_offgas (6%), o2_offgas (4%), heat_water_flow (3%)

6. 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 1% of the way through
the same as a picture (for printing)

What the chart shows. acid_flow_rate carries most of it, running 178 sigma above the golden batch at 86% of the way through; 8 of 23 tags leave the corridor at some point; the first departure is at 1%, almost from the start; only a small part of the batch is outside, so this is a short, sharp deviation rather than a batch that ran wrong throughout.

The numbers. SPE 85332 against a limit of 520 (164.1x); 1.2% of the batch sits outside the golden corridor.

Driven by: acid_flow_rate (90%), dumped_broth_flow (8%), ph (1%), sugar_feed_rate (1%), cool_water_flow (0%)

7. Batch 5 - 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. head_pressure carries most of it, running 67 sigma below the golden batch at 21% of the way through; 20 of 23 tags leave the corridor at some point; the first departure is at 2%, almost from the start.

The numbers. SPE 82483 against a limit of 520 (158.6x); 10.3% of the batch sits outside the golden corridor.

Driven by: head_pressure (27%), water_injection (24%), oil_flow (16%), aeration_rate (14%), paa_flow (11%)

8. Batch 15 - 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. water_injection carries most of it, running 65 sigma below the golden batch at 26% of the way through; 22 of 23 tags leave the corridor at some point; the first departure is at 2%, almost from the start.

The numbers. SPE 69122 against a limit of 520 (132.9x); 10.3% of the batch sits outside the golden corridor.

Driven by: water_injection (26%), head_pressure (24%), aeration_rate (15%), oil_flow (14%), paa_flow (6%)

9. Batch 29 - 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. aeration_rate carries most of it, running 50 sigma above the golden batch at 31% of the way through; 21 of 23 tags leave the corridor at some point; the first departure is at 1%, almost from the start.

The numbers. SPE 66864 against a limit of 520 (128.6x); 12.0% of the batch sits outside the golden corridor.

Driven by: aeration_rate (27%), water_injection (26%), head_pressure (15%), paa_flow (14%), dumped_broth_flow (6%)

10. 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. acid_flow_rate carries most of it, running 113 sigma above the golden batch at 98% of the way through; 23 of 23 tags leave the corridor at some point; the first departure is at 1%, almost from the start.

The numbers. SPE 58789 against a limit of 520 (113.0x); 12.0% of the batch sits outside the golden corridor.

Driven by: acid_flow_rate (25%), water_injection (19%), dumped_broth_flow (16%), aeration_rate (12%), head_pressure (12%)

11. 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. acid_flow_rate carries most of it, running 115 sigma above the golden batch at 63% of the way through; 20 of 23 tags leave the corridor at some point; the first departure is at 10%, early in the batch.

The numbers. SPE 49801 against a limit of 520 (95.8x); T² 21 against a limit of 18 (1.2x); 12.8% of the batch sits outside the golden corridor.

Driven by: acid_flow_rate (62%), sugar_feed_rate (24%), dumped_broth_flow (5%), ph (1%), oxygen_uptake (1%)

12. 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 10% of the way through
the same as a picture (for printing)

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

The numbers. SPE 47267 against a limit of 520 (90.9x); 4.6% of the batch sits outside the golden corridor.

Driven by: acid_flow_rate (82%), dumped_broth_flow (14%), ph (1%), paa_flow (1%), heat_water_flow (1%)

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

What the chart shows. ph carries most of it, running 111 sigma below the golden batch at 69% of the way through; 7 of 23 tags leave the corridor at some point; the first departure is at 7%, almost from the start; only a small part of the batch is outside, so this is a short, sharp deviation rather than a batch that ran wrong throughout.

The numbers. SPE 46354 against a limit of 520 (89.1x); 1.9% of the batch sits outside the golden corridor.

Driven by: ph (97%), base_flow_rate (1%), paa_flow (1%), temperature (0%), heat_water_flow (0%)

14. Batch 97 - 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. acid_flow_rate carries most of it, running 162 sigma above the golden batch at 77% of the way through; 16 of 23 tags leave the corridor at some point; the first departure is at 9%, almost from the start.

The numbers. SPE 45875 against a limit of 520 (88.2x); 4.9% of the batch sits outside the golden corridor.

Driven by: acid_flow_rate (66%), dumped_broth_flow (15%), sugar_feed_rate (13%), ph (1%), cool_water_flow (1%)

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

What the chart shows. acid_flow_rate carries most of it, running 172 sigma above the golden batch at 85% of the way through; 16 of 23 tags leave the corridor at some point; the first departure is at 7%, almost from the start; only a small part of the batch is outside, so this is a short, sharp deviation rather than a batch that ran wrong throughout.

The numbers. SPE 42270 against a limit of 520 (81.3x); 2.9% of the batch sits outside the golden corridor.

Driven by: acid_flow_rate (81%), dumped_broth_flow (10%), heat_water_flow (4%), ph (1%), sugar_feed_rate (1%)

16. Batch 17 - 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. water_injection carries most of it, running 65 sigma below the golden batch at 26% of the way through; 20 of 23 tags leave the corridor at some point; the first departure is at 2%, almost from the start.

The numbers. SPE 39735 against a limit of 520 (76.4x); 5.6% of the batch sits outside the golden corridor.

Driven by: water_injection (25%), head_pressure (23%), oil_flow (15%), aeration_rate (13%), paa_flow (7%)

17. Batch 7 - 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. ph carries most of it, running 75 sigma below the golden batch at 86% of the way through; 6 of 23 tags leave the corridor at some point; the first departure is at 1%, almost from the start.

The numbers. SPE 36351 against a limit of 520 (69.9x); 3.2% of the batch sits outside the golden corridor.

Driven by: ph (95%), base_flow_rate (2%), paa_flow (1%), temperature (0%), vessel_volume (0%)

18. Batch 75 - APC with Raman does not look like a golden batchseverity 10
APC with Raman · 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. paa_flow carries most of it, running 32 sigma above the golden batch at 13% of the way through; 21 of 23 tags leave the corridor at some point; the first departure is at 2%, almost from the start.

The numbers. SPE 31381 against a limit of 520 (60.3x); 10.6% of the batch sits outside the golden corridor.

Driven by: paa_flow (30%), heat_water_flow (13%), head_pressure (11%), ph (10%), water_injection (9%)

19. Batch 98 - faulty does not look like a golden batchseverity 10
faulty · a fault IS 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. ph carries most of it, running 98 sigma below the golden batch at 69% of the way through; 6 of 23 tags leave the corridor at some point; the first departure is at 6%, almost from the start; only a small part of the batch is outside, so this is a short, sharp deviation rather than a batch that ran wrong throughout.

The numbers. SPE 25741 against a limit of 520 (49.5x); 1.4% of the batch sits outside the golden corridor.

Driven by: ph (96%), paa_flow (1%), base_flow_rate (1%), generated_heat (1%), temperature (0%)

20. Batch 93 - faulty does not look like a golden batchseverity 10
faulty · a fault IS 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. temperature carries most of it, running 135 sigma above the golden batch at 42% of the way through; 17 of 23 tags leave the corridor at some point; the first departure is at 1%, almost from the start.

The numbers. SPE 23171 against a limit of 520 (44.6x); 3.6% of the batch sits outside the golden corridor.

Driven by: temperature (86%), generated_heat (3%), heat_water_flow (2%), base_flow_rate (1%), cool_water_flow (1%)

21. Batch 71 - APC with Raman does not look like a golden batchseverity 10
APC with Raman · 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. paa_flow carries most of it, running 31 sigma above the golden batch at 12% of the way through; 16 of 23 tags leave the corridor at some point; the first departure is at 6%, almost from the start.

The numbers. SPE 20897 against a limit of 520 (40.2x); 3.2% of the batch sits outside the golden corridor.

Driven by: paa_flow (43%), dumped_broth_flow (41%), heat_water_flow (7%), acid_flow_rate (3%), temperature (1%)

22. Batch 73 - APC with Raman does not look like a golden batchseverity 10
APC with Raman · 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. paa_flow carries most of it, running 36 sigma above the golden batch at 15% of the way through; 9 of 23 tags leave the corridor at some point; the first departure is at 5%, almost from the start.

The numbers. SPE 20597 against a limit of 520 (39.6x); 9.2% of the batch sits outside the golden corridor.

Driven by: paa_flow (41%), dumped_broth_flow (21%), ph (20%), acid_flow_rate (8%), base_flow_rate (3%)

23. Batch 70 - APC with Raman does not look like a golden batchseverity 10
APC with Raman · 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. paa_flow carries most of it, running 66 sigma below the golden batch at 38% of the way through; 7 of 23 tags leave the corridor at some point; the first departure is at 5%, almost from the start; only a small part of the batch is outside, so this is a short, sharp deviation rather than a batch that ran wrong throughout.

The numbers. SPE 19378 against a limit of 520 (37.3x); 2.7% of the batch sits outside the golden corridor.

Driven by: paa_flow (94%), acid_flow_rate (1%), temperature (1%), ph (1%), cool_water_flow (1%)

24. Batch 87 - APC with Raman does not look like a golden batchseverity 10
APC with Raman · 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. paa_flow carries most of it, running 32 sigma above the golden batch at 11% of the way through; 12 of 23 tags leave the corridor at some point; the first departure is at 0%, almost from the start; only a small part of the batch is outside, so this is a short, sharp deviation rather than a batch that ran wrong throughout.

The numbers. SPE 18538 against a limit of 520 (35.6x); 2.6% of the batch sits outside the golden corridor.

Driven by: paa_flow (51%), dumped_broth_flow (40%), sugar_feed_rate (2%), ph (1%), water_injection (1%)

25. Batch 69 - APC with Raman does not look like a golden batchseverity 10
APC with Raman · no fault 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. paa_flow carries most of it, running 35 sigma above the golden batch at 11% of the way through; 10 of 23 tags leave the corridor at some point; the first departure is at 10%, early in the batch.

The numbers. SPE 18507 against a limit of 520 (35.6x); 4.2% of the batch sits outside the golden corridor.

Driven by: paa_flow (48%), dumped_broth_flow (36%), ph (6%), base_flow_rate (3%), sugar_feed_rate (2%)

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 driven300.82 sigma152 sigma2,912,750 kg18 of 30
operator controlled300.73 sigma178 sigma2,833,113 kg8 of 30
APC with Raman300.95 sigma166 sigma3,484,283 kg30 of 30
faulty101.20 sigma183 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 67 - APC with Raman 67 APC with Raman far from it (over 10 sigma) 166 137.3 ph 47.5 20 2 25.36 3.054e+05 3.413e+06
Batch 91 - faulty 91 faulty far from it (over 10 sigma) 155.5 144.7 substrate_conc 45.5 19.52 5.1 36.11 1.623e+05 2.597e+06
Batch 95 - faulty 95 faulty far from it (over 10 sigma) 114.6 75.7 acid_flow_rate 62.6 12.78 10.1 20.92 4.98e+04 1.954e+06
Batch 99 - faulty 99 faulty far from it (over 10 sigma) 134.9 95.9 acid_flow_rate 76.8 12.35 3 21 8.913e+04 8.908e+05
Batch 29 - recipe driven 29 recipe driven far from it (over 10 sigma) 66.1 63.4 paa_flow 14.1 12 1 16.28 6.686e+04 1.842e+06
Batch 3 - recipe driven 3 recipe driven far from it (over 10 sigma) 112.9 61.5 acid_flow_rate 98 11.96 1 17.02 5.879e+04 2.675e+06
Batch 75 - APC with Raman 75 APC with Raman far from it (over 10 sigma) 61.8 51.5 heat_water_flow 14.1 10.61 2 15.48 3.138e+04 3.1e+06
Batch 5 - recipe driven 5 recipe driven far from it (over 10 sigma) 66.7 66.1 head_pressure 21.2 10.35 2 14.12 8.248e+04 3.563e+06
Batch 15 - recipe driven 15 recipe driven far from it (over 10 sigma) 66.7 65.4 head_pressure 21.2 10.35 2 11.76 6.912e+04 2.853e+06
Batch 53 - operator controlled 53 operator controlled far from it (over 10 sigma) 52.3 45.9 water_injection 38.4 9.78 0 18.66 1.705e+04 2.858e+06
Batch 73 - APC with Raman 73 APC with Raman far from it (over 10 sigma) 45.9 38.5 dumped_broth_flow 42.4 9.17 5.1 15.35 2.06e+04 3.549e+06
Batch 94 - faulty 94 faulty far from it (over 10 sigma) 183.3 107.9 aeration_rate 46.5 7.17 9.1 33.99 1.088e+05 3.584e+06
Batch 61 - APC with Raman 61 APC with Raman far from it (over 10 sigma) 45.9 38.9 dumped_broth_flow 54.5 6.39 3 11.63 1.785e+04 3.063e+06
Batch 45 - operator controlled 45 operator controlled similar (2-5 sigma) 4.4 4.4 head_pressure 38.4 6.35 3 17.87 5.032 2.828e+06
Batch 17 - recipe driven 17 recipe driven far from it (over 10 sigma) 65.4 53.5 water_injection 26.3 5.57 2 11.38 3.974e+04 3.852e+06
Batch 85 - APC with Raman 85 APC with Raman far from it (over 10 sigma) 45.9 42.4 dumped_broth_flow 75.8 5.57 6.1 8.867 1.524e+04 4.044e+06
Batch 100 - faulty 100 faulty far from it (over 10 sigma) 183.3 109.2 aeration_rate 46.5 5.52 9.1 18.9 1.049e+05 1.555e+06
Batch 97 - faulty 97 faulty far from it (over 10 sigma) 162.4 50.8 acid_flow_rate 76.8 4.91 9.1 8.151 4.587e+04 3.894e+06
Batch 9 - recipe driven 9 recipe driven far from it (over 10 sigma) 152.1 45.9 acid_flow_rate 60.6 4.57 10.1 10.17 4.727e+04 4.083e+06
Batch 35 - operator controlled 35 operator controlled similar (2-5 sigma) 4.4 4.4 head_pressure 15.2 4.39 1 17.75 9.199 3.538e+06
Batch 23 - recipe driven 23 recipe driven far from it (over 10 sigma) 56.1 39.1 paa_flow 15.2 4.17 3 7.662 1.089e+04 2.855e+06
Batch 69 - APC with Raman 69 APC with Raman far from it (over 10 sigma) 45.9 42.7 dumped_broth_flow 58.6 4.17 10.1 3.815 1.851e+04 3.751e+06
Batch 89 - APC with Raman 89 APC with Raman far from it (over 10 sigma) 38.1 31.9 paa_flow 39.4 3.65 5.1 8.008 1.549e+04 3.291e+06
Batch 93 - faulty 93 faulty far from it (over 10 sigma) 135.2 23.5 temperature 42.4 3.65 1 15.13 2.317e+04 4.448e+06
Batch 66 - APC with Raman 66 APC with Raman far from it (over 10 sigma) 32.4 27.8 paa_flow 12.1 3.48 3 7.151 1.058e+04 3.843e+06
Batch 83 - APC with Raman 83 APC with Raman far from it (over 10 sigma) 45.9 38.1 dumped_broth_flow 54.5 3.26 5.1 7.593 1.742e+04 3.837e+06
Batch 77 - APC with Raman 77 APC with Raman far from it (over 10 sigma) 45.9 37.7 dumped_broth_flow 49.5 3.26 10.1 4.764 1.685e+04 3.812e+06
Batch 7 - recipe driven 7 recipe driven far from it (over 10 sigma) 74.9 65.2 ph 85.9 3.22 1 13.16 3.635e+04 3.455e+06
Batch 71 - APC with Raman 71 APC with Raman far from it (over 10 sigma) 45.9 45.9 dumped_broth_flow 47.5 3.17 6.1 7.535 2.09e+04 2.831e+06
Batch 78 - APC with Raman 78 APC with Raman far from it (over 10 sigma) 38.6 33.9 paa_flow 12.1 3.04 1 6.8 1.146e+04 3.589e+06
Batch 68 - APC with Raman 68 APC with Raman far from it (over 10 sigma) 66.1 39.5 paa_flow 38.4 2.87 2 5.917 1.783e+04 3.573e+06
Batch 59 - operator controlled 59 operator controlled far from it (over 10 sigma) 172 45.9 acid_flow_rate 84.8 2.87 7.1 8.357 4.227e+04 2.91e+06
Batch 70 - APC with Raman 70 APC with Raman far from it (over 10 sigma) 66.1 42.6 paa_flow 38.4 2.7 5.1 6.664 1.938e+04 3.308e+06
Batch 44 - operator controlled 44 operator controlled similar (2-5 sigma) 4.3 3.8 heat_water_flow 39.4 2.65 9.1 12.24 185.8 1.474e+06
Batch 87 - APC with Raman 87 APC with Raman far from it (over 10 sigma) 45.9 42 dumped_broth_flow 45.5 2.61 0 9.026 1.854e+04 3.471e+06
Batch 6 - recipe driven 6 recipe driven far from it (over 10 sigma) 14.5 8.7 acid_flow_rate 37.4 2.43 6.1 7.081 1945 2.389e+06
Batch 64 - APC with Raman 64 APC with Raman far from it (over 10 sigma) 46.7 32.1 paa_flow 39.4 2.3 0 5.027 1.356e+04 3.362e+06
Batch 84 - APC with Raman 84 APC with Raman far from it (over 10 sigma) 37.6 33.6 paa_flow 15.2 2.13 0 7.492 1.071e+04 3.488e+06
Batch 11 - recipe driven 11 recipe driven far from it (over 10 sigma) 19.3 14.3 sugar_feed_rate 38.4 2.13 6.1 6.103 2385 1.965e+06
Batch 81 - APC with Raman 81 APC with Raman far from it (over 10 sigma) 45.9 35.7 dumped_broth_flow 59.6 2.09 7.1 2.378 1.536e+04 3.186e+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-Operator


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