\documentclass[11pt]{article}
\usepackage{graphicx,amsmath,amssymb,booktabs,multirow,geometry}
\geometry{margin=1in}
% The tables were authored for Springer sn-jnl, which defines \botrule; booktabs
% (used here in the standalone supplement) provides \bottomrule instead.
\providecommand{\botrule}{\bottomrule}
\renewcommand{\thetable}{S\arabic{table}}
\renewcommand{\thefigure}{S\arabic{figure}}
\title{Supplementary Information\\[4pt]\large Matched-Calibration of Changepoint Detectors for Biopharmaceutical Quality Monitoring}
\author{}\date{}
\begin{document}\maketitle

These eight analyses support, but are not required by, the conclusions of the main
text. Each was cited there at the point where it bears on the argument.

\section{Persistence of the Effect at Larger $n$}\label{sec-extended-n}

The self-normalization argument of the main text explains why Classical BIC leads under heavy tails at small $n$ but is silent on the large-$n$ limit, where the minimum segment length increasingly bounds how much a single outlier can inflate $\max_t \Delta C(t)$. We therefore extended the bisection-calibrated heavy-tailed comparison to $n=2000$, $5000$, and $10{,}000$ (Table~S1).

\begin{table}[htbp]
\caption{Power (\%, mean across 30 seeds) at bisection-matched 5\% false-positive rate, Student's $t_3$ noise. The SE of the difference is approximately 0.2 to 0.4 points, so every gap below is statistically resolved.}\label{tbl-extended}
\begin{tabular*}{\textwidth}{@{\extracolsep\fill}lrrrr@{}}
\toprule%
& $n=2000$ & $n=5000$ & $n=10000$ & (cf.\ $n=1000$) \\
\midrule
Classical BIC & 64.0 & 60.4 & 61.7 & 64.7 \\
ROBIN & 61.3 & 58.0 & 60.5 & 58.0 \\
Difference (BIC$-$ROBIN) & $+$2.8 & $+$2.4 & $+$1.2 & $+$6.7 \\
\botrule
\end{tabular*}
\footnotesize Differences are computed from unrounded per-seed means and can therefore differ by up to 0.1 points from subtracting the rounded columns shown (e.g., $n=2000$: $64.0-61.3=2.7$ from the rounded values above versus $+2.8$ from the unrounded means).
\end{table}

The heavy-tailed advantage shrinks monotonically with $n$ (from 6.7 points at $n=1000$ to 1.2 at $n=10{,}000$) but stays positive and statistically resolved throughout: Classical BIC never falls behind ROBIN at matched false-positive rate at any sample size we tested. This is consistent with the self-normalization mechanism weakening, but not disappearing, as $h$ increasingly caps outlier influence at large $n$.

We flag a calibration-precision lesson from producing this section, because it is easy to repeat. A coarse 15-point calibration grid, and separately a bisection run using only a single calibration seed at these large sample sizes, both produced spurious sign flips in the difference (ROBIN appearing to overtake at some $n$) that vanish once the calibration is precise and the estimate is averaged over enough seeds. At these sample sizes the penalty of ROBIN is dominated by its $\sqrt n$ term, so the achieved false-positive rate is very sensitive to the tuning parameter, and a small residual calibration error translates directly into a power difference. Any extension of this work should calibrate by bisection rather than a fixed grid and should not trust a single surprising large-$n$ comparison without a higher-precision re-run.

\section{The Finding Is Not Specific to $t_3$}\label{sec-generalization}

Student's $t_3$ has infinite kurtosis, an extreme heavy tail that a reader could suspect is doing more work than a realistic assay-noise model would. We checked two milder alternatives at $n\in\{50,200,1000\}$, matched-FPR calibrated: $t_5$ (finite kurtosis) and a contaminated-normal mixture (95\% $N(0,1)$, 5\% $N(0,9)$, re-standardized to unit variance), the latter a common model for occasional gross outliers on otherwise Gaussian noise (Table~S2).

\begin{table}[htbp]
\caption{Power (\%, mean $\pm$ SD across 15 seeds) at matched 5\% false-positive rate, $t_5$ and contaminated-normal noise.}\label{tbl-generalization}
\begin{tabular*}{\textwidth}{@{\extracolsep\fill}lrrr@{}}
\toprule%
& $n=50$ & $n=200$ & $n=1000$ \\
\midrule
$t_5$: Classical BIC & 68.8$\pm$1.9 & 68.4$\pm$2.7 & 70.3$\pm$1.7 \\
$t_5$: ROBIN & 41.6$\pm$2.4 & 64.7$\pm$2.5 & 59.0$\pm$2.1 \\
Contaminated normal: Classical BIC & 55.7$\pm$2.5 & 67.8$\pm$2.4 & 72.9$\pm$2.2 \\
Contaminated normal: ROBIN & 26.6$\pm$2.2 & 59.3$\pm$2.6 & 55.0$\pm$2.4 \\
\botrule
\end{tabular*}
\end{table}

The pattern is the same as under $t_3$: Classical BIC leads at every sample size under both models, by a wide margin at $n=50$ (27 and 29 points) and $n=1000$ (11 and 18 points), and by a smaller but still statistically clear margin at $n=200$ (3.7 and 8.5 points, both several times the approximately 1-point SE of the difference). The self-normalization mechanism does not depend on how extreme the tail is, only on the insensitivity of the denominator to the observations that inflate the numerator, so finding the same direction under $t_5$ and a contaminated-normal mixture is what it predicts and confirms that the result of Table~2 of the main text is not an artifact of the unusually extreme tail of $t_3$.

\section{A Check Against an Established Robust Method}\label{sec-huber}

Both ROBIN and windowed ROBIN are constructions specific to this paper. To check whether the pattern extends to an established robust approach, we implemented Huber-loss segmentation: the segment cost is the total Huber loss \cite{huber1964} (with the standard tuning constant $\delta=1.345$, giving 95\% efficiency under Gaussian errors) of residuals from each segment's own M-estimate of location, standardized by the same global MAD-based scale used elsewhere. Fearnhead and Rigaill \cite{fearnhead2019} develop penalized-cost changepoint segmentation with exactly this family of alternative loss functions, but their own Theorem~2.1 shows that an \emph{unbounded} loss, which includes Huber's because it still grows linearly rather than saturating, cannot prevent a single sufficiently extreme observation from being assigned its own spurious segment, and they recommend the bounded biweight loss for that reason. We use Huber's loss here because it is the more familiar default in the general M-estimation tradition, not because it implements their preferred construction. That is a real limitation of this check rather than an incidental choice: the robust loss their own theory favors is the one we did not test, so this section cannot rule out that a bounded-loss segmentation would narrow, or even close, the gap we report against Classical BIC. We built unrestricted and windowed versions of Huber-loss segmentation, calibrated as for the other methods, and leave a biweight implementation to future work.

The per-candidate M-estimation of the unrestricted Huber method is substantially more expensive than the SSE-based cost, which uses $O(1)$ candidate-split evaluation via prefix sums; the cost of Huber's loss does not admit the same shortcut. We therefore evaluated it at $n=25, 200, 1000$ with a coarser calibration grid (5 candidate multipliers) and fewer replications (4 seeds $\times$ 40 to 50) than the rest of the paper. This coarser grid produced visibly worse false-positive matching (achieved rates from 0\% to 26\% against a 5\% target in some cells), so we report this check qualitatively.

With that caveat, the windowed Huber method shows the same large improvement from windowing that windowed BIC and windowed ROBIN show: power rose from 43.0\% to 87.5\% (Gaussian), from 30.5\% to 97.5\% ($t_3$), and from 61.0\% to 97.5\% (log-normal) between $n=25$ and $n=1000$, comparable in magnitude despite an entirely different, independently motivated robust cost. This is the useful result from the check: a third, established construction shows the same windowing benefit as our two purpose-built ones, evidence that the benefit is a general property of restricting the search rather than an artifact of either penalty. Its reduced precision does not support a quantitative claim about whether Huber loss out- or under-performs the other methods; a full-precision comparison would require a faster Huber implementation. Because Huber's loss is itself the unbounded family that Fearnhead and Rigaill caution against, this check is best read as evidence that the windowing benefit generalizes beyond ROBIN, not as evidence about how a bounded-loss robust method would fare against Classical BIC at matched false-positive rate; that comparison, using biweight loss specifically, remains open.

\section{Window-Size Sensitivity}\label{sec-windowsize}

The comparisons above fix $W=20$. We swept $W\in\{10,15,20,30,50,75,100,150,200\}$ at $n=100, 400, 1000$, recalibrating each method at each $(n, W, \text{noise})$ combination (5 seeds $\times$ 200 replications). Figure~S1 shows windowed BIC (windowed ROBIN is qualitatively the same). The differences that this sweep is built to detect, tens of points between the peak and the tails, are large enough that this replication count is adequate.

\begin{figure}[tbp]
\centering
\includegraphics[width=0.95\textwidth]{../figures/Fig_S1.pdf}
\caption{Detection power versus search window $W$, windowed Classical BIC, at matched $\approx$5\% false-positive rate. Power peaks close to the true 15-observation shift window (dotted line) and declines as $W$ grows past it; the decline from over-widening is much steeper at $n=100$ than at $n=1000$. Because $W$ cannot exceed $n$, the $n=100$ curve stops at $W=100$.}\label{fig-window-size}
\end{figure}

Power peaks at or just above the true 15-observation shift window in every distribution and sample size and declines in both directions: a window narrower than the shift ($W=10$) misses part of the signal, and a wider one pays an avoidable multiple-testing cost for splits that cannot contain the shift. This validates $W=20$, which was chosen in advance to exceed the true window with a small margin rather than tuned, and gives a general recommendation: set $W$ close to the shortest practically relevant recency horizon rather than conservatively wide. The cost of over-widening is not uniform: for windowed BIC at $n=100$, heavy-tailed power falls from approximately 89\% at $W=15$ to $20$ to approximately 65\% at $W=100$, whereas at $n=1000$ the decline is much shallower (approximately 91\% to 71\%). Over-widening is therefore a bigger mistake at small $n$ than at large $n$, matching the intuition that a fixed-size window is a larger share of a short series' information. Deriving an optimal $W$ as a function of $n$ and the noise distribution analytically is a natural next step given how systematic the pattern is.

\section{Effect-Size Sensitivity}\label{sec-effect-size}

The main comparison uses $\delta=1\sigma$. We ran the matched-FPR comparison at $\delta\in\{0.5,1.0,2.0\}$ and $n=50,200,1000$ (15 seeds $\times$ 400 replications; Table~S3).

\begin{table}[htbp]
\caption{Power (\%, mean $\pm$ SD across 15 seeds) at matched 5\% false-positive rate, three effect sizes.}\label{tbl-effect-size}
\begin{tabular*}{\textwidth}{@{\extracolsep\fill}lrrrrrr@{}}
\toprule%
& \multicolumn{2}{@{}c@{}}{$\delta=0.5$} & \multicolumn{2}{@{}c@{}}{$\delta=1.0$} & \multicolumn{2}{@{}c@{}}{$\delta=2.0$} \\\cmidrule{2-3}\cmidrule{4-5}\cmidrule{6-7}%
Noise ($n=50$) & BIC & ROBIN & BIC & ROBIN & BIC & ROBIN \\
\midrule
Gaussian & 17.7$\pm$2.2 & 14.6$\pm$2.3 & 66.4$\pm$1.7 & 59.2$\pm$2.7 & 99.5$\pm$0.3 & 99.5$\pm$0.3 \\
Student's $t_3$ & 12.0$\pm$1.2 & 2.4$\pm$0.6 & 63.9$\pm$2.6 & 9.9$\pm$1.2 & 97.9$\pm$0.6 & 58.2$\pm$2.6 \\
Log-normal & 12.1$\pm$1.5 & 13.5$\pm$1.7 & 55.1$\pm$2.4 & 41.8$\pm$2.3 & 98.8$\pm$0.6 & 89.9$\pm$1.6 \\
\midrule
Noise ($n=200$) & BIC & ROBIN & BIC & ROBIN & BIC & ROBIN \\
\midrule
Gaussian & 11.8$\pm$1.2 & 14.6$\pm$1.2 & 68.0$\pm$1.6 & 71.8$\pm$1.7 & 99.6$\pm$0.2 & 99.6$\pm$0.2 \\
Student's $t_3$ & 7.1$\pm$1.6 & 5.0$\pm$0.9 & 61.0$\pm$2.4 & 51.1$\pm$2.6 & 98.9$\pm$0.4 & 99.6$\pm$0.2 \\
Log-normal & 12.8$\pm$1.1 & 8.2$\pm$1.2 & 64.6$\pm$1.9 & 49.0$\pm$2.5 & 99.2$\pm$0.4 & 99.1$\pm$0.4 \\
\midrule
Noise ($n=1000$) & BIC & ROBIN & BIC & ROBIN & BIC & ROBIN \\
\midrule
Gaussian & 11.9$\pm$1.4 & 6.7$\pm$0.7 & 71.3$\pm$1.9 & 61.0$\pm$2.0 & 99.6$\pm$0.3 & 99.6$\pm$0.3 \\
Student's $t_3$ & 11.8$\pm$2.1 & 5.5$\pm$1.5 & 73.7$\pm$2.0 & 61.5$\pm$2.5 & 99.2$\pm$0.4 & 99.5$\pm$0.3 \\
Log-normal & 12.4$\pm$1.2 & 9.5$\pm$1.5 & 67.2$\pm$1.9 & 59.0$\pm$1.8 & 99.3$\pm$0.5 & 99.3$\pm$0.5 \\
\botrule
\end{tabular*}
\end{table}

Three patterns are clear. First, the overall ranking, with Classical BIC leading ROBIN, often substantially, in every cell where power is not saturated, is invariant to effect size. Second, at $\delta=2.0$ power saturates near 100\% for both methods under Gaussian and log-normal noise at all $n$, and the only remaining gap is under heavy-tailed noise at $n=50$ (97.9\% versus 58.2\%). Third, at $\delta=0.5$ power under $t_3$ never exceeds 12\% for either method regardless of $n$, a direct consequence of the bounded-noncentrality argument of the main text: with only 15 post-change observations, a half-standard-deviation shift does not provide enough signal for reliable detection at any sample size. This last point is the most practically relevant: a program that needs to detect shifts smaller than roughly $0.5\sigma$ within a 15-observation horizon should not expect reliable detection from any method here and should either widen the detection window (at the power cost that Supplementary Section~S4 documents) or accept a longer monitoring horizon.

\section{ROBIN Penalty-Form Sensitivity}\label{sec-robin-lambda}

The penalty form of ROBIN was not derived from an optimality argument, and we fixed $\lambda=0.5$ throughout. At a fixed $n$, however, $\lambda$ and $k$ are not separately identifiable once ROBIN is calibrated to a target false-positive rate: the decision rule depends on $\lambda$ and $k$ only through the product $T=k\,g(n)$ in the ROBIN penalty of the main text, and because $g(n)=\lambda\log n+(1-\lambda)\sqrt n$ is a single fixed number at fixed $n$, any two $(\lambda,k)$ pairs that give the same $T$ define the identical decision rule and therefore the identical false-positive rate and power. Under exact per-cell calibration, the three $\lambda$ columns of Table~S4 should coincide; the differences we in fact observe are consequently a property of how precisely $k$ was calibrated at each $\lambda$, not evidence that the growth-rate mixture itself changes detection ability at a fixed $n$. We swept $\lambda\in\{0.0,0.5,1.0\}$, namely pure $\sqrt n$, the equal mixture, and pure $\log n$, at $n\in\{50,100,200,400,600,1000\}$, matched-FPR calibrated at each cell with a coarser per-cell search (15 seeds $\times$ 400 replications) than the bisection procedure of the matched false-positive-rate comparison of the main text, so we report the sweep as a calibration-sensitivity diagnostic rather than as a demonstrated effect of $\lambda$. Table~S4 shows representative cells.

\begin{table}[htbp]
\caption{Power (\%, mean across 15 seeds) at matched 5\% false-positive rate, ROBIN at three $\lambda$ values versus Classical BIC.}\label{tbl-robin-lambda}
\begin{tabular*}{\textwidth}{@{\extracolsep\fill}lrrrr@{}}
\toprule%
& \multicolumn{3}{@{}c@{}}{ROBIN} & Classical \\\cmidrule{2-4}%
Noise ($n$) & $\lambda{=}0.0$ & $\lambda{=}0.5$ & $\lambda{=}1.0$ & BIC \\
\midrule
Gaussian, $n=50$ & 55.2 & 57.7 & 51.1 & 66.2 \\
Gaussian, $n=200$ & 70.9 & 71.8 & 68.1 & 68.8 \\
Gaussian, $n=400$ & 73.4 & 76.4 & 64.5 & 74.9 \\
\midrule
$t_3$, $n=50$ & 30.5 & 28.2 & 15.0 & 63.9 \\
$t_3$, $n=200$ & 54.4 & 52.0 & 52.1 & 72.1 \\
$t_3$, $n=400$ & 67.4 & 51.2 & 50.0 & 68.4 \\
\midrule
Log-normal, $n=50$ & 25.2 & 29.6 & 32.6 & 66.6 \\
Log-normal, $n=200$ & 53.8 & 62.6 & 61.7 & 65.5 \\
Log-normal, $n=400$ & 53.1 & 62.6 & 59.1 & 60.7 \\
\botrule
\end{tabular*}
\end{table}

Two observations follow from reading the table in this light. First, the largest apparent spread sits under heavy-tailed noise, where the effective threshold $T=k\,g(n)$ is most sensitive to the calibrated $k$: at $n=400$, $t_3$, hitting 5\% false-positive rate requires $k=1.3$ under $\lambda=0.0$ (pure $\sqrt n$) but $k=5.5$ under $\lambda=1.0$ (pure $\log n$), so a small residual error in the bisection search moves $T$, and hence power, by more than it would where the required $k$ is smaller. This is the same calibration-precision issue that Supplementary Section~S1 documents at large $n$, here appearing across $\lambda$ at fixed $n$ instead of across $n$ at fixed $\lambda$; it is a diagnostic of how exacting ROBIN's calibration must be when its growth rate is $\sqrt n$-dominated, not a finding that a particular growth-rate mixture detects shifts better. Second, under Gaussian noise the three $\lambda$ columns are close to each other and to Classical BIC, consistent with the confound: with less curvature in the calibration search, residual error is smaller and the columns sit nearer the theoretical identity. We therefore do not recommend a specific $\lambda$, and the sweep does not support treating $\lambda$ as an independently tunable degree of freedom once $k$ is calibrated per sample size, exactly as it was here. This $T=k\,g(n)$ non-identifiability is a fixed-$n$, per-cell-calibration statement and does not automatically transfer to the windowed comparison of the windowed search defined in the main text, where a single calibration is carried across $n$ at fixed $W$. Full results, including achieved false-positive rates and calibrated $k$ values, are in the supplementary material.

\section{Scoring-Rule Symmetry Check}\label{sec-scoring-symmetry}

The main comparison scores windowed methods by ``any detection in the window'' but unrestricted methods by ``within tolerance of the true changepoint.'' We measured the power of all methods under both rules at $n\in\{50,200,1000\}$ (10 seeds $\times$ 400 replications, matched-FPR calibrated). The ``any'' rule inflates the power of unrestricted methods by 5 to 11 points (for example, Classical BIC at $n=200$, Gaussian: 87.5\% under ``any'' versus 76.6\% under tolerance), whereas the same inflation for windowed methods is 2 to 3 points. But even under identical tolerance scoring, windowed methods still lead by 10 to 20 points (for example, Classical BIC at $n=200$, $t_3$: windowed 88.0\% versus unrestricted 72.8\%). The scoring asymmetry accounts for at most 3 to 7 points of the windowed advantage in Figure~2 of the main text; the remainder is a genuine detection benefit from restricting the search.

\section{Minimum Segment Length Sensitivity}\label{sec-h-sensitivity}

The main comparison fixes $h=3$. We swept $h\in\{3,5,8,10\}$ at $n\in\{50,200,1000\}$ with matched-FPR calibration (15 seeds $\times$ 400 replications). The power of Classical BIC is nearly invariant to $h$ (at $n=200$, $t_3$: 72.1\% at $h=3$, 72.8\% at $h=8$). That of ROBIN improves with larger $h$, most between $h=3$ and $h=5$ (at $n=200$, $t_3$: from 52.0\% to 64.9\%, then stable). The mechanism is that a larger $h$ prevents the extreme observations that inflate the numerator of ROBIN from forming the very short (3-observation) segments that produce the largest outlier-driven excursions, the same self-normalization mismatch identified in the main text, now partly mitigable by a stricter minimum segment length rather than only by windowing. At $n=1000$, $t_3$, $h=8$, ROBIN (74.3\%) and Classical BIC (74.0\%) are essentially tied even without windowing. For biopharmaceutical practice, where flagging a shift on 2 to 3 observations is rarely acceptable, $h\geq 5$ is both more defensible and improves the power of the robust method; we recommend $h=5$ or $h=8$, noting that the candidate-split range of the windowed search defined in the main text requires $W\geq 2h$ to admit any split at all (with $W=15$ and $h=8$, no splits remain because $2h=16>W$), so $W$ must be widened accordingly whenever a larger $h$ is adopted.

\section{Power on Empirical AR(1) Noise}
The detections reported in the main text tell us that the methods find a real event, but not what they cost each other on noise of the kind these series carry. For each of the six offline variables we took its in-control stretch, estimated its lag-1 autocorrelation $\hat\phi$ and residual variance, generated AR(1) surrogates with those parameters, calibrated every formula-based method to an exact 5\% false-positive rate on shift-free surrogates, and measured power against an injected $1\sigma$ step.
\begin{table}[htbp]
\caption{Power on empirical AR(1) noise, all six offline variables and all five detectors. For each variable the lag-1 autocorrelation $\hat\phi$ and residual variance are estimated from its in-control stretch (batches 1--89; 1--59 for NH$_3$), AR(1) surrogates are generated with those parameters, and a $1\sigma$ step is injected into the final 15 observations, matching the fixed end-window design of the main text. Every formula-based method is calibrated to an exact 5\% false-positive rate on shift-free surrogates of the same AR(1) null (5,000 replications for calibration, 1,500 for power). The permutation test \emph{cannot} be calibrated this way, because it self-calibrates by permuting and permutation destroys the autocorrelation; its achieved false-positive rate is therefore given in parentheses and its power is \emph{not} comparable with the calibrated columns. Note that its apparent advantage on PAA is bought at a 24\% false-positive rate.}\label{tbl-empirical-power}
\centering
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lr cc cc c@{\extracolsep{\fill}}}
\toprule
& & \multicolumn{2}{@{}c@{}}{Unrestricted} & \multicolumn{2}{@{}c@{}}{Windowed} & Permutation \\\cmidrule{3-4}\cmidrule{5-6}\cmidrule{7-7}%
Variable & $\hat\phi$ & BIC & ROBIN & BIC & ROBIN & power (achieved FPR) \\
\midrule
Final biomass & $-0.094$ & 80.9 & 78.1 & 94.4 & 93.2 & 77.7 \ (1.5\%) \\
Viscosity & $-0.026$ & 72.5 & 68.6 & 90.3 & 87.9 & 68.0 \ (4.2\%) \\
Final NH$_3$ & $-0.011$ & 71.7 & 68.3 & 88.9 & 87.4 & 72.7 \ (4.5\%) \\
Final penicillin (assay) & 0.108 & 61.3 & 57.0 & 80.1 & 77.6 & 72.0 \ (10.8\%) \\
Final penicillin (process) & 0.111 & 61.7 & 55.9 & 81.3 & 80.1 & 66.3 \ (8.2\%) \\
PAA & 0.293 & 40.9 & 36.8 & 63.4 & 62.4 & 64.3 \ (24.0\%) \\
\botrule
\end{tabular*}
\footnotesize Rows are ordered by $\hat\phi$. Power falls essentially monotonically as $\hat\phi$ rises for every calibrated method, and the permutation test's achieved false-positive rate rises with it.
\end{table}

\section{The Plant-Wide Channel Sweep, and Two Screening Lessons}\label{sec-plantwide}
The main text reports that every detector fires on the large majority of the 2,224
measurement channels IndPenSim records at batch end, and warns that this count is not a
measure of how broadly the batch-90 event reaches. Two screening problems, both of which
we had to fix before that sweep could be interpreted, generalize beyond this dataset.

First, nine of the recorded channels are \emph{design} variables rather than
measurements, and a detection on them at a regime boundary is circular: the
fault-reference channel \emph{is} the event whose location we are trying to recover, and
the batch counter is a monotone ramp on which a mean-shift statistic will always find a
split. We excluded all nine. A screen that simply feeds every recorded column to a
detector will report these as confirmations.

Second, one channel (air head pressure) takes exactly one distinct value across all 100
batches, so that its range is zero and its standard deviation is $4.5\times10^{-16}$,
the residue of floating-point arithmetic; two detectors nonetheless fired on it. The
reason is structural rather than a coding error: every threshold in this paper is scaled
by an estimate of the noise, and a threshold proportional to $\hat\sigma$ cannot
distinguish a series whose $\hat\sigma$ is genuinely small from one whose $\hat\sigma$ is
round-off. Screening on $\hat\sigma > 0$ does not catch it, because the round-off residue
is positive. We screen instead on the range and the coefficient of variation, excluding
any channel with zero range or a coefficient of variation below $10^{-9}$. Any pipeline
that scales a detection threshold by an estimated scale needs a degeneracy screen of this
kind ahead of it.

After both screens the sweep runs on 2,224 channels, of which 2,198 are Raman wavenumber
bins, 20 are physically distinct process sensors, and 6 are the offline assays analysed
in the main text. The full per-channel results, and the redundancy analysis that
motivates reporting them by class rather than by count, accompany this supplement.

\section{Why ROBIN's Detection Margin Is Larger, and Why That Is Not an Advantage}\label{sec-snr-rank}
On every one of the six IndPenSim offline variables, ROBIN clears its threshold by a
wider relative margin than Classical BIC does. Read naively this looks like the robust
penalty detecting the batch-90 event more decisively. It is the opposite: it is the same
self-normalization asymmetry that costs ROBIN power on the null, seen from the
alternative side.

The margin, $\text{SNR}=(\text{test statistic})/(\text{threshold})$, is measured on a
series that already contains the shift. A large step inflates the numerator for every
method, but it also inflates the \emph{variance} denominator that Classical BIC uses,
which the MAD denominator resists. Classical BIC therefore partially normalizes away its
own signal, while ROBIN does not.

That account predicts more than a direction. If ROBIN's margin is nothing but its
denominator's refusal to move, then its size on each variable should be governed by how
far the MAD sits below the standard deviation on that variable, that is by the ratio
$\hat\sigma/\hat\sigma_{\text{MAD}}$. It is, exactly:

\begin{center}
\begin{tabular}{lrr}
\toprule
Variable & $\hat\sigma/\hat\sigma_{\text{MAD}}$ & ROBIN SNR \\
\midrule
Final penicillin (process channel) & 1.18 & 1.99 \\
Final penicillin (offline assay)   & 1.19 & 2.02 \\
Viscosity                          & 1.27 & 2.78 \\
Final biomass                      & 1.30 & 3.23 \\
NH$_3$ (nitrogen source)           & 1.95 & 4.31 \\
PAA (precursor)                    & 2.38 & 6.20 \\
\bottomrule
\end{tabular}
\end{center}

The two orderings are identical. PAA tops both for a reason that is visible in the raw
data: under advanced process control the controller pins it to a 1200 g/L setpoint with a
standard deviation of 1.1 g/L across batches 61--90, against 2623 before and 2859 after,
and that pinned segment compresses the MAD far more than it compresses the standard
deviation. One feature of the series explains both its extreme scale ratio and its
extreme margin.

The practical consequence is that a detection margin must not be compared across methods
whose denominators differ. It is not a power comparison, and here it runs in the opposite
direction to the one that matters.

\section{Cross-Calibration: What a Wrong Noise Assumption Costs}\label{sec-cross-calib}
The matched-false-positive-rate comparison of the main text calibrates each method in
every $(n,\text{noise})$ cell. That is an \emph{oracle} calibration: it assumes the
practitioner knows the noise distribution. This section drops that assumption, which is
the situation of anyone who calibrates once, on the distribution they believe they have,
and then leaves the setting in place.

We calibrated both formula-based methods on Gaussian null data only, then applied those
parameters unchanged to heavy-tailed and log-normal noise (20 seeds $\times$ 400
replications; calibration on 500 Gaussian null sequences per $n$).

\begin{table}[htbp]
\caption{False-positive rate (\%) when calibrated on Gaussian noise and applied to each
target distribution. Bold marks the rates that would make a monitoring programme
unusable.}\label{tbl-cross-calib}
\centering
\begin{tabular*}{\textwidth}{@{\extracolsep\fill}lrrrrrr@{}}
\toprule%
& \multicolumn{2}{@{}c@{}}{$n=50$} & \multicolumn{2}{@{}c@{}}{$n=200$} & \multicolumn{2}{@{}c@{}}{$n=1000$} \\\cmidrule{2-3}\cmidrule{4-5}\cmidrule{6-7}%
Target noise & BIC & ROBIN & BIC & ROBIN & BIC & ROBIN \\
\midrule
Gaussian (calibration) & 2.1 & 2.9 & 3.3 & 5.7 & 3.6 & 7.7 \\
Student's $t_3$ & 3.5 & \textbf{24.9} & 6.4 & \textbf{43.1} & 8.2 & \textbf{59.9} \\
Log-normal & 3.4 & \textbf{13.3} & 5.1 & \textbf{24.4} & 6.4 & \textbf{32.9} \\
\botrule
\end{tabular*}
\end{table}

Classical BIC keeps its false-positive rate under roughly 8\% across every distribution
and sample size, a range of 2.1\% to 8.2\%. ROBIN does not: its rate reaches 24.9\% at
$n=50$ under $t_3$, 43.1\% at $n=200$ and 59.9\% at $n=1000$, a twelvefold inflation over
nominal, at which the method would flag a nonexistent drift on the majority of in-control
series.

The mechanism is the self-normalization mismatch of the main text, now operating on the
calibration rather than on the power. The MAD-based denominator of ROBIN stays
insensitive to the extreme observations that inflate the numerator under heavy tails, so
the ratio it thresholds has a distribution that changes shape completely when the noise
does, and a threshold fitted on Gaussian nulls no longer describes it. The variance-based
denominator of Classical BIC is inflated by those same observations, so its ratio, and
hence its false-positive rate, stays approximately calibrated even though the calibration
was performed on the wrong null.

The practical reading is direct. If the noise distribution is unknown and the penalty
must be calibrated once, a variance-based penalty is far safer than a MAD-scaled robust
one; and the permutation test, which requires no distributional calibration at all, is
safer than either, at the power cost quantified in the main text.

\section{What the Permutation Test Costs in Power}\label{sec-perm-power}
The permutation test requires no distributional calibration, which is what makes it the
safe default when the noise distribution is unknown. This section gives the full power
figures behind the summary in the main text.

\begin{table}[htbp]
\caption{Power (\%, mean $\pm$ SD across 30 seeds) of the permutation test, scored as in
the matched-false-positive-rate table of the main text, with the Classical BIC and ROBIN
values repeated for reference. The permutation test achieves a 3.8\% to 4.1\%
false-positive rate rather than 5\%, a consequence of the $B=99$ discreteness, so it is
compared here at a slightly \emph{stricter} operating point than the other two and its
power is correspondingly a mild underestimate.}\label{tbl-perm-power}
\centering
\begin{tabular*}{\textwidth}{@{\extracolsep\fill}lrrrrrr@{}}
\toprule%
& \multicolumn{3}{@{}c@{}}{$n=50$} & \multicolumn{3}{@{}c@{}}{$n=1000$} \\\cmidrule{2-4}\cmidrule{5-7}%
Noise & Perm. & (BIC) & (ROBIN) & Perm. & (BIC) & (ROBIN) \\
\midrule
Gaussian & 59.6$\pm$2.6 & 65.5 & 55.9 & 69.6$\pm$2.3 & 72.1 & 71.9 \\
Student's $t_3$ & 65.2$\pm$2.1 & 67.9 & 16.3 & 54.9$\pm$2.1 & 64.7 & 58.0 \\
Log-normal & 58.3$\pm$2.7 & 60.6 & 24.0 & 57.0$\pm$2.6 & 62.8 & 59.8 \\
\botrule
\end{tabular*}
\end{table}

Two features of the table carry the argument of the main text. First, at $n=50$ the cost
of distribution-freeness is small against Classical BIC (2 to 6 points) and hugely
negative against ROBIN, which the conventional recommendation would have selected: 65.2\%
against 16.3\% under $t_3$, and 58.3\% against 24.0\% under log-normal. A practitioner
with a short, possibly heavy-tailed series gives up very little by refusing to assume a
distribution.

Second, the cost grows with $n$ and grows fastest where the tail is heaviest: at
$n=1000$ the deficit against Classical BIC is 2.5 points under Gaussian noise, 5.8 under
log-normal and 9.8 under $t_3$. That ordering tracks tail weight exactly, which is what
the self-normalization mechanism predicts. The permutation test thresholds the raw cost
reduction rather than a studentized one, so it does not inherit the self-normalization
that protects Classical BIC when a single extreme observation inflates the numerator; it
pays for its distribution-freeness in the same currency as the robust penalty, though not
to the same degree.

\section{Restoring Calibration Under Autocorrelation: A Prewhitening Proof of Concept}\label{sec-prewhiten}
The main text identifies autocorrelation as the single largest threat to every method
and argues that, for the formula-based detectors, the damage is a symptom of an
\emph{unverified} i.i.d.\ assumption rather than an irreparable defect. This section
tests that argument directly. We ask whether two standard remedies restore the 5\%
false-positive rate on autocorrelated nulls, using the same single-split detectors and
the same exact-quantile calibration as the main text.

We generated AR(1) Gaussian null series (no changepoint, so every detection is a false
positive) with $\phi\in\{0,0.15,0.3,0.45,0.6\}$, at $n=200$ and $n=1000$. Classical BIC
was calibrated once to an exact 5\% rate on i.i.d.\ Gaussian nulls ($\phi=0$) and that
calibration was then applied three ways: (i) \emph{naive}, to the raw AR(1) series;
(ii) \emph{prewhitened}, to residuals $e_t=y_t-\hat\phi\,y_{t-1}$ after a per-series
lag-1 AR(1) fit; and (iii) \emph{AR-calibrated}, recalibrating the threshold on
shift-free AR(1) surrogates carrying the same $\phi$. The permutation test was run naive
and on the same prewhitened residuals. False-positive rates use 8{,}000 replications for
the formula-based methods and 4{,}000 for the permutation test ($B=199$).

\begin{table}[htbp]
\caption{Achieved false-positive rate (\%) on AR(1) nulls. ``BIC naive'' reproduces the
main-text failure; ``BIC prewhitened'' and ``BIC AR-calibrated'' are the two remedies;
the last two columns are the permutation test run on the raw series and on prewhitened
residuals. Both remedies return the rate to near the 5\% target at every $\phi$, and the
prewhitening fix tightens as $n$ grows because $\hat\phi$ is then better
estimated.}\label{tbl-prewhiten}
\centering
\small
\begin{tabular*}{\textwidth}{@{\extracolsep\fill}r ccc cc@{}}
\toprule
& \multicolumn{3}{@{}c@{}}{Classical BIC} & \multicolumn{2}{@{}c@{}}{Permutation} \\\cmidrule{2-4}\cmidrule{5-6}%
$\phi$ & naive & prewhitened & AR-calibrated & naive & prewhitened \\
\midrule
\multicolumn{6}{@{}l}{\emph{$n=200$}}\\
0.00 & 4.7 & 4.5 & 4.9 & 4.8 & 4.0 \\
0.15 & 13.6 & 4.7 & 5.4 & 12.6 & 4.2 \\
0.30 & 28.7 & 4.1 & 4.4 & 26.0 & 3.8 \\
0.45 & 50.1 & 3.9 & 5.2 & 47.1 & 3.3 \\
0.60 & 72.6 & 3.7 & 5.2 & 71.0 & 3.4 \\
\midrule
\multicolumn{6}{@{}l}{\emph{$n=1000$}}\\
0.00 & 5.4 & 5.1 & 5.5 & 4.8 & 4.5 \\
0.15 & 15.1 & 4.6 & 4.7 & 14.6 & 4.4 \\
0.30 & 34.6 & 4.6 & 4.7 & 31.7 & 4.4 \\
0.45 & 60.0 & 4.9 & 5.3 & 57.0 & 3.9 \\
0.60 & 84.1 & 4.7 & 5.2 & 82.3 & 3.2 \\
\botrule
\end{tabular*}
\end{table}

The result is unambiguous (Table~\ref{tbl-prewhiten}). Left uncorrected, the false-positive
rate of Classical BIC climbs from 5\% to 73\% at $n=200$ and 84\% at $n=1000$ as $\phi$
rises to $0.6$, reproducing the failure of the main text. Prewhitening removes almost all
of that inflation at a stroke: the rate stays between roughly 4\% and 5\% across every
$\phi$, running slightly conservative at the largest $\phi$ because a single degree of
freedom is spent estimating $\hat\phi$ and the lag-1 fit does not perfectly whiten the
residuals. That residual conservatism shrinks at $n=1000$ (4.7\% at $\phi=0.6$ against
3.7\% at $n=200$), exactly as expected when $\hat\phi$ is estimated from more data.
Recalibrating the threshold on AR(1) surrogates is tighter still, holding the rate close
to 5\% throughout (4.4\% to 5.5\%), at the cost of assuming the AR(1) model class. The
permutation test, structurally broken on raw autocorrelated series (naive rate up to
82\%), is likewise repaired by running it on prewhitened residuals, where its rate falls
back to a conservative 3\% to 5\%, the conservatism reflecting both the imperfect
exchangeability of estimated residuals and the $B=199$ discreteness. Every value in
Table~\ref{tbl-prewhiten} is regenerated by \texttt{code/reproduce\_ar1.py} in the code
supplement, from a single fixed seed.

This is a proof of concept, not a full validation: it fixes the effect size, the AR(1)
noise class and the single-changepoint model of the main text, and it does not re-measure
power after correction. It nonetheless answers the question the main-text result raises,
that the dominant threat we document is remediable by established means, and it isolates
the one quantity a practitioner must estimate well for the formula-based fix to work,
namely $\hat\phi$ from a possibly short in-control record.

\bibliographystyle{unsrt}
\bibliography{bibliography}

\end{document}