AssayIndex
Detection

Anomaly rules

12 rules, each with its literal predicate published, each with a page saying what it is not, and each linked to every record it flagged. 1,753 of 6,584 records carry at least one flag — 26.6 % of the index.

12 rules1,753 records flagged1,091 specification failures
RuleWhat it detectsSeverityPredicateFlaggedRate
AX-R01Mass accuracy outside class limitHIGHabs(ppmError) > compound.class.specPpm2463.74%
AX-R02Declared impurity arithmetic does not closeMEDIUMcoa.purity != null && coa.totalImpurities != null && abs(coa.purity + coa.totalImpurities - 100) > 0.152043.10%
AX-R03Declared largest single impurity exceeds declared totalHIGHcoa.largestSingle != null && coa.totalImpurities != null && coa.largestSingle > coa.totalImpurities + 0.02931.41%
AX-R04Digit preference in declared purityLOWcoa.purity != null && (coa.purity * 10) % 5 === 0 && supplierRoundCount >= 34677.09%
AX-R05COA purity diverges from independent medianHIGHbatch.independentN >= 2 && coa.purity - median(batch.independentPurity) > 1.5260.39%
AX-R06Recovered mass outside label claim toleranceMEDIUMrecoveredMg / labelClaimMg < 0.90 || recoveredMg / labelClaimMg > 1.103094.69%
AX-R07Declared gravimetric mass balance does not closeMEDIUMcoa.water != null && coa.counterIon != null && coa.peptideContent != null && abs(coa.water + coa.counterIon + coa.peptideContent + coa.residual - 100) > 1.01151.75%
AX-R08Endotoxin above index specificationHIGHendotoxinEuPerMg > compound.class.specEndotoxin450.68%
AX-R09Impurity fingerprint shared across suppliersLOWfingerprintMatch(batchA, batchB) && batchA.supplier !== batchB.supplier2523.83%
AX-R10Supplier-supplied sample reads high against buyer-sourcedMEDIUMbatch.hasBoth && median(batch.supplierSupplied) - median(batch.buyerSourced) > 0.8450.68%
AX-R11Retention time outside compound windowMEDIUMabs(observedRt - normalisedRt(compound.rt, lab.gradient)) > compound.rtWin2073.14%
AX-R12Peak asymmetry above the integration limitMEDIUMasymmetry > 1.5070.11%