IndPenSim-100 — 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:50
| 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 90 of them. 10 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 90 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 90 batches sit on average 1.5% 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 3 sigma (median)
Batch 2 - recipe driven, Batch 4 - recipe driven, Batch 8 - recipe driven, Batch 10 - recipe driven, Batch 11 - recipe driven, Batch 12 - recipe driven, Batch 14 - recipe driven, Batch 16 - recipe driven, Batch 22 - recipe driven, Batch 24 - recipe driven, Batch 26 - recipe driven, Batch 36 - operator controlled, Batch 38 - operator controlled, Batch 40 - operator controlled, Batch 46 - operator controlled, Batch 52 - operator controlled, Batch 56 - operator controlled, Batch 63 - APC with Raman, Batch 64 - APC with Raman, Batch 72 - APC with Raman, Batch 74 - APC with Raman, Batch 78 - APC with Raman …
3Outside — 5 to 10 sigma
clearly different from the golden batch at some point
63
0 with a recorded fault
worst point 5–9 sigma
sustained 6 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 13 - 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 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 …
4Far from it — over 10 sigma
a different batch altogether - something happened
10
10 with a recorded fault
worst point 14–260 sigma
sustained 39 sigma (median)
Batch 91 - faulty, Batch 92 - faulty, Batch 93 - faulty, Batch 94 - faulty, Batch 95 - faulty, Batch 96 - faulty, Batch 97 - faulty, Batch 98 - faulty, Batch 99 - faulty, Batch 100 - faulty

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 10 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
91faultyyes260 sigmaacid_flow_rate52%2%22.6%
94faultyyes238 sigmaacid_flow_rate44%9%10.6%
100faultyyes238 sigmaacid_flow_rate44%6%5.9%
95faultyyes179 sigmaacid_flow_rate48%10%13.3%
99faultyyes128 sigmasubstrate_conc46%2%15.5%
92faultyyes76 sigmaph69%7%1.1%
98faultyyes67 sigmaph69%13%0.7%
93faultyyes40 sigmatemperature42%1%2.0%
96faultyyes26 sigmatemperature36%33%1.3%
97faultyyes14 sigmasugar_feed_rate40%9%2.6%

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.0
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 249 sigma above the golden batch at 45% 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 311632 against a limit of 337 (925.4x); T² 435 against a limit of 87 (5.0x); 22.6% of the batch sits outside the golden corridor.

Driven by: substrate_conc (66%), acid_flow_rate (30%), dumped_broth_flow (1%), sugar_feed_rate (1%), temperature (0%)

2. Batch 94 - faulty does not look like a golden batchseverity 10.0
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 238 sigma above the golden batch at 44% of the way through; 13 of 23 tags leave the corridor at some point; the first departure is at 9%, almost from the start.

The numbers. SPE 77354 against a limit of 337 (229.7x); T² 237 against a limit of 87 (2.7x); 10.6% of the batch sits outside the golden corridor.

Driven by: acid_flow_rate (74%), temperature (7%), co2_offgas (6%), cool_water_flow (4%), substrate_conc (3%)

3. Batch 100 - faulty does not look like a golden batchseverity 10.0
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. acid_flow_rate carries most of it, running 238 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 75142 against a limit of 337 (223.1x); T² 93 against a limit of 87 (1.1x); 5.9% of the batch sits outside the golden corridor.

Driven by: acid_flow_rate (76%), co2_offgas (9%), substrate_conc (7%), o2_offgas (3%), aeration_rate (1%)

4. Batch 95 - faulty does not look like a golden batchseverity 10.0
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 179 sigma above the golden batch at 48% of the way through; 16 of 23 tags leave the corridor at some point; the first departure is at 10%, early in the batch.

The numbers. SPE 60438 against a limit of 337 (179.5x); T² 190 against a limit of 87 (2.2x); 13.3% of the batch sits outside the golden corridor.

Driven by: acid_flow_rate (92%), sugar_feed_rate (3%), ph (1%), temperature (1%), cool_water_flow (1%)

5. Batch 99 - faulty does not look like a golden batchseverity 10.0
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 128 sigma above the golden batch at 45% of the way through; 21 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 59809 against a limit of 337 (177.6x); T² 260 against a limit of 87 (3.0x); 15.5% of the batch sits outside the golden corridor.

Driven by: substrate_conc (72%), co2_offgas (7%), cool_water_flow (4%), heat_water_flow (4%), temperature (3%)

6. Batch 92 - faulty does not look like a golden batchseverity 10.0
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 76 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 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 12162 against a limit of 337 (36.1x); 1.1% of the batch sits outside the golden corridor.

Driven by: ph (91%), base_flow_rate (2%), temperature (1%), heat_water_flow (1%), acid_flow_rate (1%)

7. Batch 98 - faulty does not look like a golden batchseverity 10.0
faulty · a fault IS 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. ph carries most of it, running 67 sigma below the golden batch at 69% of the way through; 4 of 23 tags leave the corridor at some point; the first departure is at 13%, early in the batch; 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 8936 against a limit of 337 (26.5x); 0.7% of the batch sits outside the golden corridor.

Driven by: ph (91%), heat_water_flow (2%), base_flow_rate (1%), temperature (1%), cool_water_flow (1%)

8. Batch 93 - faulty does not look like a golden batchseverity 10.0
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 40 sigma above the golden batch at 42% of the way through; 10 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 6152 against a limit of 337 (18.3x); 2.0% of the batch sits outside the golden corridor.

Driven by: temperature (74%), generated_heat (6%), cool_water_flow (5%), dumped_broth_flow (2%), base_flow_rate (2%)

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

What the chart shows. temperature carries most of it, running 26 sigma above the golden batch at 36% of the way through; 4 of 23 tags leave the corridor at some point; the first departure is at 33%, 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 2986 against a limit of 337 (8.9x); 1.3% of the batch sits outside the golden corridor.

Driven by: temperature (65%), cool_water_flow (13%), generated_heat (8%), heat_water_flow (4%), ph (1%)

10. Batch 97 - faulty does not look like a golden batchseverity 9.8
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. sugar_feed_rate carries most of it, running 14 sigma below the golden batch at 40% of the way through; 12 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 2467 against a limit of 337 (7.3x); 2.6% of the batch sits outside the golden corridor.

Driven by: sugar_feed_rate (40%), cool_water_flow (11%), base_flow_rate (8%), temperature (7%), acid_flow_rate (6%)

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.71 sigma9 sigma2,912,750 kg0 of 30
operator controlled300.74 sigma9 sigma2,833,113 kg0 of 30
APC with Raman300.63 sigma9 sigma3,484,283 kg0 of 30
faulty101.12 sigma260 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) 260.2 214.1 acid_flow_rate 51.5 22.57 2 435.4 3.116e+05 2.597e+06
Batch 99 - faulty 99 faulty far from it (over 10 sigma) 128.3 84.2 substrate_conc 45.5 15.52 2 259.7 5.981e+04 8.908e+05
Batch 45 - operator controlled 45 operator controlled outside (5-10 sigma) 9.4 9.4 sugar_feed_rate 48.5 13.52 2 86.52 7.6 2.828e+06
Batch 95 - faulty 95 faulty far from it (over 10 sigma) 179.3 40.5 acid_flow_rate 48.5 13.35 10.1 190.4 6.044e+04 1.954e+06
Batch 67 - APC with Raman 67 APC with Raman outside (5-10 sigma) 9.4 9.4 head_pressure 7.1 13.17 2 87.64 2.188 3.413e+06
Batch 94 - faulty 94 faulty far from it (over 10 sigma) 237.8 44.6 acid_flow_rate 44.4 10.57 9.1 237.1 7.735e+04 3.584e+06
Batch 29 - recipe driven 29 recipe driven outside (5-10 sigma) 9.4 9.4 aeration_rate 14.1 9.13 1 86.66 8.515 1.842e+06
Batch 3 - recipe driven 3 recipe driven outside (5-10 sigma) 9.4 9.2 acid_flow_rate 9.1 8.87 1 86.8 5.971 2.675e+06
Batch 9 - recipe driven 9 recipe driven outside (5-10 sigma) 9.4 9.4 acid_flow_rate 47.5 7.43 2 80.8 45.04 4.083e+06
Batch 73 - APC with Raman 73 APC with Raman outside (5-10 sigma) 9.4 8.9 acid_flow_rate 34.3 6.61 5.1 78.66 55.14 3.549e+06
Batch 100 - faulty 100 faulty far from it (over 10 sigma) 237.8 42.5 acid_flow_rate 44.4 5.87 6.1 93.1 7.514e+04 1.555e+06
Batch 15 - recipe driven 15 recipe driven outside (5-10 sigma) 9.4 7.3 substrate_conc 8.1 4.3 2 53.92 237.9 2.853e+06
Batch 5 - recipe driven 5 recipe driven outside (5-10 sigma) 9.4 6.6 sugar_feed_rate 44.4 3.57 2 48.82 275.8 3.563e+06
Batch 75 - APC with Raman 75 APC with Raman outside (5-10 sigma) 9.4 9.1 acid_flow_rate 8.1 3.39 4 82.58 30.17 3.1e+06
Batch 44 - operator controlled 44 operator controlled outside (5-10 sigma) 7.9 5.5 heat_water_flow 39.4 3.35 5.1 47.68 205.5 1.474e+06
Batch 61 - APC with Raman 61 APC with Raman outside (5-10 sigma) 9 7.1 ph 34.3 3.13 4 56.8 184.5 3.063e+06
Batch 35 - operator controlled 35 operator controlled outside (5-10 sigma) 9.4 8.2 dumped_broth_flow 51.5 2.91 1 79.92 48.45 3.538e+06
Batch 17 - recipe driven 17 recipe driven outside (5-10 sigma) 9.4 6.8 acid_flow_rate 53.5 2.91 2 81.51 33.23 3.852e+06
Batch 25 - recipe driven 25 recipe driven outside (5-10 sigma) 7.9 6.2 acid_flow_rate 97 2.74 2 48.54 215.9 3.717e+06
Batch 97 - faulty 97 faulty far from it (over 10 sigma) 14.4 11.6 sugar_feed_rate 40.4 2.61 9.1 34.29 2467 3.894e+06
Batch 33 - operator controlled 33 operator controlled outside (5-10 sigma) 9.4 8.6 acid_flow_rate 81.8 2.48 2 74.36 81.72 3.294e+06
Batch 23 - recipe driven 23 recipe driven outside (5-10 sigma) 7.4 5.3 acid_flow_rate 49.5 2.35 2 60.57 167.1 2.855e+06
Batch 7 - recipe driven 7 recipe driven outside (5-10 sigma) 9.3 9.2 ph 77.8 2.13 43.4 83.26 31.42 3.455e+06
Batch 93 - faulty 93 faulty far from it (over 10 sigma) 39.9 32 temperature 42.4 2.04 1 61.7 6152 4.448e+06
Batch 39 - operator controlled 39 operator controlled outside (5-10 sigma) 9.4 9.4 acid_flow_rate 99 2 18.2 83.1 26.98 2.682e+06
Batch 32 - operator controlled 32 operator controlled outside (5-10 sigma) 7.6 6.1 temperature 37.4 1.96 20.2 41.17 228 4.196e+06
Batch 53 - operator controlled 53 operator controlled outside (5-10 sigma) 5.7 5.4 heat_water_flow 13.1 1.61 1 43.01 246.6 2.858e+06
Batch 31 - operator controlled 31 operator controlled outside (5-10 sigma) 7.5 6.4 heat_water_flow 33.3 1.52 2 67.55 139.8 1.89e+06
Batch 69 - APC with Raman 69 APC with Raman outside (5-10 sigma) 5 4.8 dumped_broth_flow 58.6 1.48 35.4 57.29 144 3.751e+06
Batch 30 - recipe driven 30 recipe driven outside (5-10 sigma) 9.3 4.9 acid_flow_rate 57.6 1.39 55.6 37.82 298.9 3.539e+06
Batch 96 - faulty 96 faulty far from it (over 10 sigma) 26.4 19.1 temperature 36.4 1.3 33.3 39.52 2986 3.595e+06
Batch 59 - operator controlled 59 operator controlled outside (5-10 sigma) 9.3 6.6 acid_flow_rate 84.8 1.3 7.1 52.07 202.6 2.91e+06
Batch 27 - recipe driven 27 recipe driven outside (5-10 sigma) 9.4 6.6 substrate_conc 42.4 1.22 23.2 63.25 142.4 2.176e+06
Batch 41 - operator controlled 41 operator controlled outside (5-10 sigma) 9.4 8.5 acid_flow_rate 94.9 1.09 10.1 82.72 27.41 2.922e+06
Batch 92 - faulty 92 faulty far from it (over 10 sigma) 76.2 37.7 ph 68.7 1.09 7.1 57.81 1.216e+04 1.753e+06
Batch 71 - APC with Raman 71 APC with Raman outside (5-10 sigma) 9.4 6.3 acid_flow_rate 79.8 1.04 6.1 59.89 167.1 2.831e+06
Batch 83 - APC with Raman 83 APC with Raman outside (5-10 sigma) 9.4 6 acid_flow_rate 62.6 1 10.1 48.17 222.3 3.837e+06
Batch 37 - operator controlled 37 operator controlled outside (5-10 sigma) 9.4 7 acid_flow_rate 71.7 1 12.1 51.15 209.5 2.632e+06
Batch 21 - recipe driven 21 recipe driven outside (5-10 sigma) 6.3 5.3 heat_water_flow 18.2 0.96 5.1 52.74 195.6 2.568e+06
Batch 20 - recipe driven 20 recipe driven outside (5-10 sigma) 8.1 6.2 heat_water_flow 46.5 0.96 36.4 48.35 197.7 2.234e+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-100


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