+------------------------------------------------------------------------------ | Program Name: step_batch.py | Program Version: 2026-09-10 18:41:38 | Date: 2026-09-11 | Time: 08:50:54 | 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 +------------------------------------------------------------------------------
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.
| What | File | |
|---|---|---|
| 1. Raw data, as downloaded | 100_Batches_IndPenSim_V3.csv /Volumes/YN-4T/WIP/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/IndPenSim | open the folder |
| 2. Program that converted it | make_indpensim.py /Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/B-Engines | open the folder |
| 3. Data used for this analysis | indpensim_process.csv /Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/IndPenSim | open the folder |
| Batch list | indpensim_batches.csv /Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/IndPenSim | open the folder |
| Glossary | indpensim_schema.csv /Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/IndPenSim | open the folder |
| Data sheet | data-source.md /Users/yahyanazer/Dropbox/__C_2026_Work/CTRL-Designer/B-CDL-Data-Analysis/A-Raw-Data/IndPenSim | open the folder |
| Batches | 100 |
|---|---|
| Tags used | 23 |
| Batch length | 167 to 290 h (median 230 h) |
| Alignment | every batch stretched onto 100 points of 0–100% progress, because they run to different lengths |
| Corridor | mean ± 3 sigma of the reference batches |
| Strategy | Batches | Mean length | Mean yield |
|---|---|---|---|
| APC with Raman | 30 | 225 h | 3,484,283 kg |
| faulty | 10 | 230 h | 2,600,203 kg |
| operator controlled | 30 | 229 h | 2,833,113 kg |
| recipe driven | 30 | 229 h | 2,912,750 kg |
The corridor for every tag is drawn in section 6. Here is what the whole set looks like measured against it:

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.
| Band | Batches | How far | Which | |
|---|---|---|---|---|
| 1 | Near the golden batch — within 2 sigma | 0 | none | |
| 2 | Similar — 2 to 5 sigma | 21 | worst point 2–4 sigma sustained 4 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 8 - recipe driven, Batch 9 - recipe driven, Batch 10 - recipe driven, Batch 11 - recipe driven, Batch 12 - recipe driven, Batch 13 - recipe driven, Batch 14 - recipe driven, Batch 15 - recipe driven, Batch 16 - recipe driven, Batch 17 - recipe driven, Batch 18 - recipe driven, Batch 19 - recipe driven, Batch 20 - recipe driven, Batch 24 - recipe driven |
| 3 | Outside — 5 to 10 sigma | 2 | worst point 6–7 sigma sustained 4 sigma (median) | Batch 22 - recipe driven, Batch 26 - recipe driven |
| 4 | Far from it — over 10 sigma | 77 | worst point 10–300 sigma sustained 42 sigma (median) | Batch 21 - recipe driven, Batch 23 - recipe driven, Batch 25 - recipe driven, Batch 27 - recipe driven, Batch 28 - recipe driven, Batch 29 - recipe driven, Batch 30 - 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 … |
The 77 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.
| Batch | Fault recorded | Worst point | Worst tag | at | first left | time outside | |
|---|---|---|---|---|---|---|---|
| 91 | faulty | yes | 300 sigma | substrate_conc | 48% | 5% | 22.0% |
| 41 | operator controlled | no | 250 sigma | acid_flow_rate | 96% | 10% | 3.3% |
| 51 | operator controlled | no | 235 sigma | acid_flow_rate | 86% | 0% | 3.0% |
| 59 | operator controlled | no | 227 sigma | acid_flow_rate | 85% | 7% | 3.6% |
| 25 | recipe driven | no | 225 sigma | acid_flow_rate | 97% | 5% | 3.4% |
| 97 | faulty | yes | 215 sigma | acid_flow_rate | 77% | 9% | 2.8% |
| 95 | faulty | yes | 190 sigma | acid_flow_rate | 82% | 10% | 12.7% |
| 39 | operator controlled | no | 186 sigma | acid_flow_rate | 99% | 15% | 5.7% |
| 33 | operator controlled | no | 181 sigma | acid_flow_rate | 82% | 5% | 5.2% |
| 99 | faulty | yes | 178 sigma | acid_flow_rate | 77% | 3% | 14.3% |
| 94 | faulty | yes | 178 sigma | acid_flow_rate | 44% | 9% | 9.4% |
| 100 | faulty | yes | 178 sigma | acid_flow_rate | 44% | 6% | 5.8% |
| 30 | recipe driven | no | 159 sigma | acid_flow_rate | 58% | 11% | 0.8% |
| 45 | operator controlled | no | 152 sigma | acid_flow_rate | 50% | 5% | 14.8% |
| 32 | operator controlled | no | 147 sigma | sugar_feed_rate | 90% | 11% | 3.7% |
| 93 | faulty | yes | 127 sigma | acid_flow_rate | 1% | 0% | 2.6% |
| 50 | operator controlled | no | 115 sigma | sugar_feed_rate | 96% | 7% | 4.0% |
| 35 | operator controlled | no | 115 sigma | acid_flow_rate | 1% | 1% | 3.6% |
| 52 | operator controlled | no | 105 sigma | sugar_feed_rate | 90% | 17% | 3.0% |
| 67 | APC with Raman | no | 104 sigma | ph | 42% | 7% | 11.9% |
| 48 | operator controlled | no | 90 sigma | heat_water_flow | 8% | 5% | 3.8% |
| 92 | faulty | yes | 87 sigma | acid_flow_rate | 74% | 7% | 1.3% |
| 55 | operator controlled | no | 84 sigma | sugar_feed_rate | 90% | 0% | 2.6% |
| 53 | operator controlled | no | 84 sigma | sugar_feed_rate | 94% | 1% | 1.9% |
| 43 | operator controlled | no | 84 sigma | sugar_feed_rate | 90% | 4% | 4.7% |
| 84 | APC with Raman | no | 82 sigma | heat_water_flow | 5% | 5% | 2.3% |
| 28 | recipe driven | no | 78 sigma | acid_flow_rate | 78% | 78% | 0.0% |
| 76 | APC with Raman | no | 74 sigma | heat_water_flow | 21% | 4% | 2.4% |
| 34 | operator controlled | no | 73 sigma | sugar_feed_rate | 90% | 10% | 3.0% |
| 36 | operator controlled | no | 73 sigma | sugar_feed_rate | 90% | 36% | 2.6% |
| 60 | operator controlled | no | 73 sigma | sugar_feed_rate | 96% | 16% | 2.2% |
| 58 | operator controlled | no | 73 sigma | sugar_feed_rate | 96% | 27% | 2.6% |
| 38 | operator controlled | no | 73 sigma | sugar_feed_rate | 96% | 1% | 1.9% |
| 70 | APC with Raman | no | 67 sigma | acid_flow_rate | 38% | 5% | 2.8% |
| 85 | APC with Raman | no | 67 sigma | heat_water_flow | 25% | 12% | 1.7% |
| 75 | APC with Raman | no | 66 sigma | acid_flow_rate | 13% | 8% | 5.0% |
| 31 | operator controlled | no | 59 sigma | heat_water_flow | 33% | 5% | 4.3% |
| 73 | APC with Raman | no | 58 sigma | ph | 29% | 4% | 10.3% |
| 98 | faulty | yes | 57 sigma | ph | 69% | 7% | 1.1% |
| 21 | recipe driven | no | 57 sigma | heat_water_flow | 5% | 0% | 1.3% |
| 68 | APC with Raman | no | 56 sigma | heat_water_flow | 38% | 5% | 2.6% |
| 47 | operator controlled | no | 52 sigma | sugar_feed_rate | 90% | 35% | 2.1% |
| 23 | recipe driven | no | 46 sigma | dumped_broth_flow | 38% | 3% | 2.2% |
| 61 | APC with Raman | no | 46 sigma | dumped_broth_flow | 63% | 3% | 6.8% |
| 37 | operator controlled | no | 46 sigma | dumped_broth_flow | 63% | 11% | 2.5% |
| 81 | APC with Raman | no | 46 sigma | dumped_broth_flow | 78% | 0% | 2.3% |
| 79 | APC with Raman | no | 46 sigma | dumped_broth_flow | 90% | 10% | 2.1% |
| 29 | recipe driven | no | 46 sigma | dumped_broth_flow | 46% | 1% | 8.8% |
| 87 | APC with Raman | no | 46 sigma | dumped_broth_flow | 46% | 0% | 2.6% |
| 83 | APC with Raman | no | 46 sigma | dumped_broth_flow | 63% | 10% | 3.6% |
| 57 | operator controlled | no | 46 sigma | dumped_broth_flow | 82% | 0% | 2.9% |
| 69 | APC with Raman | no | 46 sigma | dumped_broth_flow | 59% | 11% | 3.4% |
| 27 | recipe driven | no | 46 sigma | dumped_broth_flow | 72% | 4% | 1.6% |
| 71 | APC with Raman | no | 46 sigma | dumped_broth_flow | 71% | 4% | 3.1% |
| 42 | operator controlled | no | 42 sigma | sugar_feed_rate | 90% | 7% | 3.4% |
| 88 | APC with Raman | no | 39 sigma | heat_water_flow | 5% | 4% | 2.4% |
| 96 | faulty | yes | 36 sigma | temperature | 36% | 6% | 1.4% |
| 77 | APC with Raman | no | 35 sigma | heat_water_flow | 25% | 11% | 3.1% |
| 72 | APC with Raman | no | 34 sigma | paa_flow | 71% | 10% | 1.6% |
| 44 | operator controlled | no | 34 sigma | acid_flow_rate | 38% | 5% | 4.4% |
| 64 | APC with Raman | no | 32 sigma | paa_flow | 39% | 0% | 2.5% |
| 90 | APC with Raman | no | 32 sigma | acid_flow_rate | 5% | 0% | 2.3% |
| 46 | operator controlled | no | 31 sigma | sugar_feed_rate | 52% | 4% | 1.6% |
| 56 | operator controlled | no | 31 sigma | sugar_feed_rate | 52% | 7% | 2.4% |
| 54 | operator controlled | no | 31 sigma | sugar_feed_rate | 52% | 6% | 2.2% |
| 86 | APC with Raman | no | 30 sigma | paa_flow | 71% | 11% | 2.0% |
| 62 | APC with Raman | no | 30 sigma | paa_flow | 71% | 10% | 2.4% |
| 78 | APC with Raman | no | 30 sigma | paa_flow | 71% | 3% | 2.8% |
| 66 | APC with Raman | no | 30 sigma | paa_flow | 71% | 0% | 3.1% |
| 65 | APC with Raman | no | 30 sigma | acid_flow_rate | 57% | 4% | 2.1% |
| 89 | APC with Raman | no | 30 sigma | acid_flow_rate | 57% | 4% | 3.2% |
| 82 | APC with Raman | no | 29 sigma | paa_flow | 71% | 11% | 2.8% |
| 74 | APC with Raman | no | 28 sigma | paa_flow | 71% | 11% | 1.9% |
| 63 | APC with Raman | no | 28 sigma | paa_flow | 71% | 11% | 2.4% |
| 80 | APC with Raman | no | 27 sigma | paa_flow | 14% | 6% | 2.7% |
| 49 | operator controlled | no | 21 sigma | sugar_feed_rate | 95% | 6% | 3.1% |
| 40 | operator controlled | no | 10 sigma | sugar_feed_rate | 90% | 35% | 2.2% |
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.

What the chart shows. substrate_conc carries most of it, running 300 sigma above the golden batch at 47% of the way through; 21 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 485849 against a limit of 387 (1256.2x); T² 61 against a limit of 18 (3.4x); 22.0% of the batch sits outside the golden corridor.
Driven by: substrate_conc (81%), acid_flow_rate (15%), dumped_broth_flow (2%), sugar_feed_rate (0%), heat_water_flow (0%)

What the chart shows. sugar_feed_rate carries most of it, running 115 sigma above the golden batch at 94% of the way through; 13 of 23 tags leave the corridor at some point; the first departure is at 15%, early in the batch.
The numbers. SPE 274218 against a limit of 387 (709.0x); T² 23 against a limit of 18 (1.3x); 5.7% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (47%), ph (37%), acid_flow_rate (13%), dumped_broth_flow (1%), paa_flow (0%)

What the chart shows. sugar_feed_rate carries most of it, running 147 sigma above the golden batch at 90% of the way through; 8 of 23 tags leave the corridor at some point; the first departure is at 11%, early in the batch.
The numbers. SPE 248635 against a limit of 387 (642.9x); 3.7% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (99%), temperature (0%), paa_flow (0%), ph (0%), cool_water_flow (0%)

What the chart shows. sugar_feed_rate carries most of it, running 126 sigma below the golden batch at 95% of the way through; 18 of 23 tags leave the corridor at some point; the first departure is at 10%, early in the batch.
The numbers. SPE 193869 against a limit of 387 (501.3x); T² 30 against a limit of 18 (1.7x); 12.7% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (50%), acid_flow_rate (47%), dumped_broth_flow (1%), temperature (0%), heat_water_flow (0%)

What the chart shows. sugar_feed_rate carries most of it, running 105 sigma below the golden batch at 90% of the way through; 10 of 23 tags leave the corridor at some point; the first departure is at 7%, almost from the start.
The numbers. SPE 172216 against a limit of 387 (445.3x); 3.6% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (64%), acid_flow_rate (34%), heat_water_flow (1%), dumped_broth_flow (0%), ph (0%)

What the chart shows. sugar_feed_rate carries most of it, running 115 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 5%, almost from the start.
The numbers. SPE 164931 against a limit of 387 (426.4x); 14.8% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (60%), acid_flow_rate (31%), heat_water_flow (3%), dumped_broth_flow (3%), substrate_conc (1%)

What the chart shows. ph carries most of it, running 104 sigma below the golden batch at 42% of the way through; 20 of 23 tags leave the corridor at some point; the first departure is at 7%, almost from the start.
The numbers. SPE 162559 against a limit of 387 (420.3x); T² 48 against a limit of 18 (2.7x); 11.9% of the batch sits outside the golden corridor.
Driven by: ph (67%), sugar_feed_rate (6%), heat_water_flow (6%), head_pressure (5%), water_injection (4%)

What the chart shows. acid_flow_rate carries most of it, running 235 sigma above the golden batch at 86% of the way through; 9 of 23 tags leave the corridor at some point; the first departure is at 0%, almost from the start.
The numbers. SPE 161545 against a limit of 387 (417.7x); 3.0% of the batch sits outside the golden corridor.
Driven by: acid_flow_rate (92%), sugar_feed_rate (5%), dumped_broth_flow (2%), ph (0%), paa_flow (0%)

What the chart shows. acid_flow_rate carries most of it, running 181 sigma above the golden batch at 82% of the way through; 13 of 23 tags leave the corridor at some point; the first departure is at 5%, almost from the start.
The numbers. SPE 156250 against a limit of 387 (404.0x); 5.2% of the batch sits outside the golden corridor.
Driven by: acid_flow_rate (53%), sugar_feed_rate (44%), paa_flow (1%), ph (0%), dumped_broth_flow (0%)

What the chart shows. sugar_feed_rate carries most of it, running 126 sigma below the golden batch at 90% of the way through; 13 of 23 tags leave the corridor at some point; the first departure is at 9%, 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 154293 against a limit of 387 (398.9x); 2.8% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (63%), acid_flow_rate (34%), dumped_broth_flow (2%), base_flow_rate (0%), ph (0%)

What the chart shows. acid_flow_rate carries most of it, running 178 sigma above the golden batch at 44% 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 143932 against a limit of 387 (372.1x); T² 19 against a limit of 18 (1.1x); 9.4% of the batch sits outside the golden corridor.
Driven by: acid_flow_rate (51%), temperature (31%), cool_water_flow (8%), substrate_conc (5%), co2_offgas (2%)

What the chart shows. substrate_conc carries most of it, running 168 sigma above the golden batch at 47% of the way through; 21 of 23 tags leave the corridor at some point; the first departure is at 3%, almost from the start.
The numbers. SPE 141947 against a limit of 387 (367.0x); T² 41 against a limit of 18 (2.3x); 14.3% of the batch sits outside the golden corridor.
Driven by: substrate_conc (64%), acid_flow_rate (23%), co2_offgas (3%), heat_water_flow (3%), cool_water_flow (2%)

What the chart shows. sugar_feed_rate carries most of it, running 105 sigma below the golden batch at 90% of the way through; 5 of 23 tags leave the corridor at some point; the first departure is at 17%, early in the batch.
The numbers. SPE 128815 against a limit of 387 (333.1x); 3.0% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (95%), heat_water_flow (3%), temperature (1%), paa_flow (1%), cool_water_flow (0%)

What the chart shows. sugar_feed_rate carries most of it, running 115 sigma above the golden batch at 96% of the way through; 8 of 23 tags leave the corridor at some point; the first departure is at 7%, almost from the start.
The numbers. SPE 123077 against a limit of 387 (318.2x); 4.0% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (90%), acid_flow_rate (7%), heat_water_flow (1%), paa_flow (1%), temperature (1%)

What the chart shows. acid_flow_rate carries most of it, running 225 sigma above the golden batch at 97% of the way through; 19 of 23 tags leave the corridor at some point; the first departure is at 5%, almost from the start.
The numbers. SPE 95820 against a limit of 387 (247.7x); 3.4% of the batch sits outside the golden corridor.
Driven by: acid_flow_rate (95%), dumped_broth_flow (2%), water_injection (0%), heat_water_flow (0%), ph (0%)

What the chart shows. sugar_feed_rate carries most of it, running 84 sigma above the golden batch at 90% of the way through; 9 of 23 tags leave the corridor at some point; the first departure is at 4%, almost from the start.
The numbers. SPE 93913 against a limit of 387 (242.8x); 4.7% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (89%), heat_water_flow (6%), temperature (1%), paa_flow (1%), acid_flow_rate (1%)

What the chart shows. acid_flow_rate carries most of it, running 250 sigma above the golden batch at 96% of the way through; 13 of 23 tags leave the corridor at some point; the first departure is at 10%, early in the batch.
The numbers. SPE 92678 against a limit of 387 (239.6x); 3.3% of the batch sits outside the golden corridor.
Driven by: acid_flow_rate (69%), sugar_feed_rate (19%), dumped_broth_flow (7%), heat_water_flow (2%), temperature (1%)

What the chart shows. sugar_feed_rate carries most of it, running 84 sigma above the golden batch at 90% of the way through; 9 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 87893 against a limit of 387 (227.2x); 2.6% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (89%), dumped_broth_flow (8%), heat_water_flow (2%), paa_flow (0%), ph (0%)

What the chart shows. acid_flow_rate carries most of it, running 178 sigma above the golden batch at 44% of the way through; 15 of 23 tags leave the corridor at some point; the first departure is at 6%, almost from the start.
The numbers. SPE 84601 against a limit of 387 (218.7x); 5.8% of the batch sits outside the golden corridor.
Driven by: acid_flow_rate (67%), substrate_conc (16%), co2_offgas (6%), o2_offgas (3%), heat_water_flow (2%)

What the chart shows. sugar_feed_rate carries most of it, running 84 sigma above the golden batch at 96% of the way through; 7 of 23 tags leave the corridor at some point; the first departure is at 5%, almost from the start.
The numbers. SPE 70329 against a limit of 387 (181.8x); 3.8% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (84%), heat_water_flow (13%), paa_flow (1%), temperature (1%), cool_water_flow (0%)

What the chart shows. sugar_feed_rate carries most of it, running 84 sigma above the golden batch at 94% of the way through; 7 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 68411 against a limit of 387 (176.9x); 1.9% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (89%), dumped_broth_flow (8%), acid_flow_rate (1%), generated_heat (0%), water_injection (0%)

What the chart shows. sugar_feed_rate carries most of it, running 84 sigma above the golden batch at 90% of the way through; 10 of 23 tags leave the corridor at some point; the first departure is at 1%, almost from the start.
The numbers. SPE 67721 against a limit of 387 (175.1x); 3.6% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (59%), acid_flow_rate (21%), dumped_broth_flow (10%), heat_water_flow (7%), temperature (1%)

What the chart shows. sugar_feed_rate carries most of it, running 73 sigma below the golden batch at 90% of the way through; 7 of 23 tags leave the corridor at some point; the first departure is at 10%, early in the batch.
The numbers. SPE 63743 against a limit of 387 (164.8x); 3.0% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (94%), paa_flow (3%), acid_flow_rate (1%), temperature (1%), cool_water_flow (0%)

What the chart shows. sugar_feed_rate carries most of it, running 73 sigma below the golden batch at 90% of the way through; 4 of 23 tags leave the corridor at some point; the first departure is at 36%, around the middle; 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 62754 against a limit of 387 (162.3x); 2.6% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (97%), paa_flow (2%), heat_water_flow (0%), cool_water_flow (0%), temperature (0%)

What the chart shows. sugar_feed_rate carries most of it, running 52 sigma above the golden batch at 90% of the way through; 16 of 23 tags leave the corridor at some point; the first departure is at 5%, almost from the start.
The numbers. SPE 44829 against a limit of 387 (115.9x); 4.3% of the batch sits outside the golden corridor.
Driven by: sugar_feed_rate (73%), heat_water_flow (12%), dumped_broth_flow (10%), temperature (1%), cool_water_flow (1%)
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 it | Batches | Typical distance from golden | Worst batch | Mean yield | Beyond 10 sigma |
|---|---|---|---|---|---|
| recipe driven | 30 | 0.71 sigma | 225 sigma | 2,912,750 kg | 7 of 30 |
| operator controlled | 30 | 1.07 sigma | 250 sigma | 2,833,113 kg | 30 of 30 |
| APC with Raman | 30 | 1.08 sigma | 104 sigma | 3,484,283 kg | 30 of 30 |
| faulty | 10 | 1.11 sigma | 300 sigma | 2,600,203 kg | 10 of 10 |
Only the middle batch of each group, so the four are directly comparable.





| 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) | 299.7 | 238.6 | substrate_conc | 47.5 | 21.96 | 5.1 | 60.68 | 4.858e+05 | 2.597e+06 |
| Batch 45 - operator controlled | 45 | operator controlled | far from it (over 10 sigma) | 152 | 104.7 | acid_flow_rate | 50.5 | 14.83 | 5.1 | 15.47 | 1.649e+05 | 2.828e+06 |
| Batch 99 - faulty | 99 | faulty | far from it (over 10 sigma) | 178.2 | 141.2 | acid_flow_rate | 76.8 | 14.3 | 3 | 40.71 | 1.419e+05 | 8.908e+05 |
| Batch 95 - faulty | 95 | faulty | far from it (over 10 sigma) | 189.8 | 125.8 | acid_flow_rate | 81.8 | 12.74 | 10.1 | 30.28 | 1.939e+05 | 1.954e+06 |
| Batch 67 - APC with Raman | 67 | APC with Raman | far from it (over 10 sigma) | 103.7 | 97.9 | ph | 42.4 | 11.91 | 7.1 | 48.37 | 1.626e+05 | 3.413e+06 |
| Batch 73 - APC with Raman | 73 | APC with Raman | far from it (over 10 sigma) | 58.3 | 44.5 | ph | 29.3 | 10.35 | 4 | 23.14 | 2.803e+04 | 3.549e+06 |
| Batch 94 - faulty | 94 | faulty | far from it (over 10 sigma) | 177.7 | 145.8 | acid_flow_rate | 44.4 | 9.43 | 9.1 | 19.46 | 1.439e+05 | 3.584e+06 |
| Batch 29 - recipe driven | 29 | recipe driven | far from it (over 10 sigma) | 45.9 | 43.2 | dumped_broth_flow | 45.5 | 8.78 | 1 | 14.69 | 1.992e+04 | 1.842e+06 |
| Batch 61 - APC with Raman | 61 | APC with Raman | far from it (over 10 sigma) | 45.9 | 45 | dumped_broth_flow | 62.6 | 6.78 | 3 | 13.76 | 2.105e+04 | 3.063e+06 |
| Batch 3 - recipe driven | 3 | recipe driven | similar (2-5 sigma) | 4.4 | 4.4 | head_pressure | 9.1 | 5.91 | 1 | 17.93 | 3.305 | 2.675e+06 |
| Batch 100 - faulty | 100 | faulty | far from it (over 10 sigma) | 177.7 | 69.9 | acid_flow_rate | 44.4 | 5.83 | 6.1 | 16.49 | 8.46e+04 | 1.555e+06 |
| Batch 39 - operator controlled | 39 | operator controlled | far from it (over 10 sigma) | 185.9 | 138.9 | acid_flow_rate | 99 | 5.7 | 15.2 | 23.24 | 2.742e+05 | 2.682e+06 |
| Batch 33 - operator controlled | 33 | operator controlled | far from it (over 10 sigma) | 180.7 | 110.8 | acid_flow_rate | 81.8 | 5.22 | 5.1 | 11.14 | 1.563e+05 | 3.294e+06 |
| Batch 75 - APC with Raman | 75 | APC with Raman | far from it (over 10 sigma) | 65.7 | 59.4 | acid_flow_rate | 13.1 | 5 | 8.1 | 9 | 3.115e+04 | 3.1e+06 |
| Batch 9 - recipe driven | 9 | recipe driven | similar (2-5 sigma) | 4.4 | 4.4 | acid_flow_rate | 10.1 | 4.83 | 5.1 | 17.66 | 10.68 | 4.083e+06 |
| Batch 43 - operator controlled | 43 | operator controlled | far from it (over 10 sigma) | 83.9 | 83.9 | sugar_feed_rate | 89.9 | 4.65 | 4 | 4.361 | 9.391e+04 | 2.212e+06 |
| Batch 44 - operator controlled | 44 | operator controlled | far from it (over 10 sigma) | 33.8 | 23.1 | acid_flow_rate | 38.4 | 4.43 | 5.1 | 9.541 | 7926 | 1.474e+06 |
| Batch 31 - operator controlled | 31 | operator controlled | far from it (over 10 sigma) | 58.9 | 52.4 | heat_water_flow | 33.3 | 4.35 | 5.1 | 6.621 | 4.483e+04 | 1.89e+06 |
| Batch 50 - operator controlled | 50 | operator controlled | far from it (over 10 sigma) | 115.3 | 115.3 | sugar_feed_rate | 96 | 3.96 | 7.1 | 2.066 | 1.231e+05 | 3.065e+06 |
| Batch 48 - operator controlled | 48 | operator controlled | far from it (over 10 sigma) | 90.1 | 83.9 | heat_water_flow | 8.1 | 3.83 | 5.1 | 4.032 | 7.033e+04 | 3.265e+06 |
| Batch 32 - operator controlled | 32 | operator controlled | far from it (over 10 sigma) | 146.8 | 146.8 | sugar_feed_rate | 89.9 | 3.7 | 11.1 | 7.225 | 2.486e+05 | 4.196e+06 |
| Batch 83 - APC with Raman | 83 | APC with Raman | far from it (over 10 sigma) | 45.9 | 43.8 | dumped_broth_flow | 62.6 | 3.65 | 10.1 | 1.504 | 2.345e+04 | 3.837e+06 |
| Batch 35 - operator controlled | 35 | operator controlled | far from it (over 10 sigma) | 115.2 | 76.1 | acid_flow_rate | 1 | 3.65 | 1 | 7.662 | 6.772e+04 | 3.538e+06 |
| Batch 59 - operator controlled | 59 | operator controlled | far from it (over 10 sigma) | 227.2 | 104.8 | acid_flow_rate | 84.8 | 3.61 | 7.1 | 5.894 | 1.722e+05 | 2.91e+06 |
| Batch 42 - operator controlled | 42 | operator controlled | far from it (over 10 sigma) | 41.9 | 41.9 | sugar_feed_rate | 89.9 | 3.43 | 7.1 | 6.258 | 2.695e+04 | 2.358e+06 |
| Batch 69 - APC with Raman | 69 | APC with Raman | far from it (over 10 sigma) | 45.9 | 21.6 | dumped_broth_flow | 58.6 | 3.43 | 11.1 | 3.059 | 9439 | 3.751e+06 |
| Batch 25 - recipe driven | 25 | recipe driven | far from it (over 10 sigma) | 225.2 | 96.8 | acid_flow_rate | 97 | 3.35 | 5.1 | 9.636 | 9.582e+04 | 3.717e+06 |
| Batch 41 - operator controlled | 41 | operator controlled | far from it (over 10 sigma) | 249.5 | 50.5 | acid_flow_rate | 96 | 3.3 | 10.1 | 3.003 | 9.268e+04 | 2.922e+06 |
| Batch 89 - APC with Raman | 89 | APC with Raman | far from it (over 10 sigma) | 29.5 | 26.2 | acid_flow_rate | 56.6 | 3.22 | 4 | 1.535 | 1.412e+04 | 3.291e+06 |
| Batch 49 - operator controlled | 49 | operator controlled | far from it (over 10 sigma) | 21 | 21 | sugar_feed_rate | 94.9 | 3.13 | 6.1 | 4.372 | 5618 | 2.597e+06 |
| Batch 66 - APC with Raman | 66 | APC with Raman | far from it (over 10 sigma) | 29.9 | 21.4 | paa_flow | 70.7 | 3.13 | 0 | 2.397 | 9379 | 3.843e+06 |
| Batch 71 - APC with Raman | 71 | APC with Raman | far from it (over 10 sigma) | 45.9 | 41.4 | dumped_broth_flow | 70.7 | 3.13 | 4 | 5.331 | 1.423e+04 | 2.831e+06 |
| Batch 77 - APC with Raman | 77 | APC with Raman | far from it (over 10 sigma) | 35.3 | 25.6 | heat_water_flow | 25.3 | 3.09 | 11.1 | 3.773 | 9028 | 3.812e+06 |
| Batch 52 - operator controlled | 52 | operator controlled | far from it (over 10 sigma) | 104.8 | 104.8 | sugar_feed_rate | 89.9 | 3.04 | 17.2 | 2.704 | 1.288e+05 | 3.758e+06 |
| Batch 34 - operator controlled | 34 | operator controlled | far from it (over 10 sigma) | 73.4 | 73.4 | sugar_feed_rate | 89.9 | 3.04 | 10.1 | 2.725 | 6.374e+04 | 2.066e+06 |
| Batch 51 - operator controlled | 51 | operator controlled | far from it (over 10 sigma) | 234.7 | 138.9 | acid_flow_rate | 85.9 | 3 | 0 | 6.508 | 1.615e+05 | 2.918e+06 |
| Batch 57 - operator controlled | 57 | operator controlled | far from it (over 10 sigma) | 45.9 | 41.6 | dumped_broth_flow | 81.8 | 2.87 | 0 | 1.733 | 1.813e+04 | 4.059e+06 |
| Batch 70 - APC with Raman | 70 | APC with Raman | far from it (over 10 sigma) | 67.3 | 31.4 | acid_flow_rate | 38.4 | 2.83 | 5.1 | 2.325 | 1.834e+04 | 3.308e+06 |
| Batch 78 - APC with Raman | 78 | APC with Raman | far from it (over 10 sigma) | 30 | 23.5 | paa_flow | 70.7 | 2.78 | 3 | 1.914 | 8238 | 3.589e+06 |
| Batch 97 - faulty | 97 | faulty | far from it (over 10 sigma) | 214.6 | 125.8 | acid_flow_rate | 76.8 | 2.78 | 9.1 | 6.446 | 1.543e+05 | 3.894e+06 |
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.























| Way of running it | Batches | Mean yield (kg) | Spread (CV) | Worst batch | Best batch | Mean hours | kg per hour |
|---|---|---|---|---|---|---|---|
| recipe driven | 30 | 2,912,750 | 26.4% | 1,842,400 | 4,083,100 | 228.8 | 12,917 |
| operator controlled | 30 | 2,833,113 | 24.0% | 1,474,100 | 4,196,000 | 229.2 | 12,431 |
| APC with Raman | 30 | 3,484,283 | 8.8% | 2,830,800 | 4,044,300 | 224.7 | 15,587 |
| Comparison | Difference | Welch p | Mann-Whitney p | Cohen d | Significant | |
|---|---|---|---|---|---|---|
| recipe driven vs operator controlled | +79,637 kg | +2.8% | 6.7e-01 | 8.9e-01 | +0.11 | no |
| recipe driven vs APC with Raman | -571,533 kg | -16.4% | 5.3e-04 | 1.1e-02 | -0.98 | yes |
| operator controlled vs APC with Raman | -651,170 kg | -18.7% | 2.3e-05 | 4.4e-05 | -1.23 | yes |
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 it | Golden batch | Yield | Yield rank | Closeness rank |
|---|---|---|---|---|
| recipe driven | Batch 26 - recipe driven | 3,886,800 kg | 4 of 30 | 2 of 30 |
| operator controlled | Batch 60 - operator controlled | 3,802,300 kg | 3 of 30 | 5 of 30 |
| APC with Raman | Batch 79 - APC with Raman | 3,825,600 kg | 5 of 30 | 2 of 30 |
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 from | recipe driven | operator controlled | APC with Raman | faulty |
|---|---|---|---|---|
| recipe driven | 0.77 | 1.07 | 1.08 | 1.11 |
| operator controlled | 0.82 | 0.74 | 0.95 | 1.20 |
| APC with Raman | 1.05 | 1.35 | 0.66 | 12.51 |
| Golden built from | Its own held-back batches | The other strategies | How much further | Fault detection power |
|---|---|---|---|---|
| recipe driven | 0.77 | 1.07 | 1.40x | 1.4x |
| operator controlled | 0.74 | 0.89 | 1.20x | 1.6x |
| APC with Raman | 0.66 | 1.20 | 1.82x | 19.0x |
Folder: /Volumes/YN-4T/WIP/CTRL-Designer/B-CDL-Data-Analysis/E-Batch/IndPenSim-Golden-Recipe
© 2026 CTRL Designer LLC. All rights reserved.
Yahya Nazer · info@ctrlDesigner.com