QM Bench

Validation report

Every statistic in QM Bench is calculated by our own engine. To make sure the numbers are right, an automated test compares them with independent calculations in Python (NumPy 2.5.4, SciPy 1.18.1) and with published reference values such as the AIAG MSA example and the ISO 2859-1 sampling tables.

Checks
144
Failures
0
Last run
2026-10-24

A check passes when the relative difference is within the stated tolerance (absolute for values below 1). Tolerances of 1e-9 to 1e-12 mean the results agree to the last printed digit. Looser tolerances are used only where the reference itself is rounded, for example published tables with 3 or 4 digits, or SciPy's numerical optimisers.

The test script validation/validate.py is part of the project and runs before every release. See also the methods.

Special functions

CheckQM BenchReferenceSourceResult
Normal CDF(-8)6.220961e-166.220961e-16SciPyPass
Normal CDF(-3)0.0013498980320.001349898032SciPyPass
Normal CDF(-1)0.15865525390.1586552539SciPyPass
Normal CDF(0)0.50.5SciPyPass
Normal CDF(1.5)0.93319279870.9331927987SciPyPass
Normal CDF(4.5)0.99999660230.9999966023SciPyPass
Normal quantile(1e-12)-7.034483825-7.034483825SciPyPass
Normal quantile(0.001)-3.090232306-3.090232306SciPyPass
Normal quantile(0.2)-0.8416212336-0.8416212336SciPyPass
Normal quantile(0.5)1.391458e-160SciPyPass
Normal quantile(0.975)1.9599639851.959963985SciPyPass
F survival(2.5; 9, 18)0.04682589290.0468258929SciPyPass
F survival(0.5; 2, 20)0.61391325350.6139132535SciPyPass
F survival(7; 4, 30)4.182142e-44.182142e-4SciPyPass
ln Gamma(0.5)0.57236494290.5723649429SciPyPass
ln Gamma(2.5)0.28468287050.2846828705SciPyPass
ln Gamma(7.3)7.1478925237.147892523SciPyPass
Incomplete gamma P(2.5, 1.2)0.20852587940.2085258794SciPyPass
Incomplete gamma P(0.7, 3)0.97444738770.9744473877SciPyPass
Incomplete gamma P(10, 8)0.28337574130.2833757413SciPyPass
Digamma(0.3)-3.502524222-3.502524222SciPyPass
Digamma(2)0.42278433510.4227843351SciPyPass
Digamma(11.5)2.398239132.39823913SciPyPass
Trigamma(0.3)12.2453645512.24536455SciPyPass
Trigamma(2)0.64493406670.6449340668SciPyPass
Trigamma(11.5)0.090846661270.09084666127SciPyPass
t two-sided p(2.1, df 7)0.073871196210.07387119621SciPyPass
t two-sided p(0.4, df 30)0.69199051650.6919905165SciPyPass
t two-sided p(4, df 3)0.028008456010.02800845601SciPyPass
t quantile(0.975, df 10)2.2281388522.228138852SciPyPass
t quantile(0.95, df 4)2.1318467862.131846786SciPyPass
Binomial CDF(2; 20, 0.05)0.92451632620.9245163262SciPyPass
Binomial CDF(0; 80, 0.01)0.44752321380.4475232138SciPyPass
Binomial CDF(7; 125, 0.04)0.87092623980.8709262398SciPyPass
Clopper-Pearson lower(3/50)0.012548587840.01254858784SciPyPass
Clopper-Pearson upper(3/50)0.16548194660.1654819466SciPyPass
Clopper-Pearson lower(0/20)00SciPyPass
Clopper-Pearson upper(0/20)0.1684334710.168433471SciPyPass
Clopper-Pearson lower(20/20)0.8315665290.831566529SciPyPass
Clopper-Pearson upper(20/20)11SciPyPass

Control chart constants

CheckQM BenchReferenceSourceResult
A2 (n=5)0.57680171390.577AIAG SPC manual tablePass
D3 (n=5)00AIAG SPC manual tablePass
D4 (n=5)2.1143594152.114AIAG SPC manual tablePass
D4 (n=2)3.2686170213.267AIAG SPC manual tablePass
c4 (n=5)0.9399856030.94AIAG SPC manual tablePass
c4 (n=10)0.97265927410.9727AIAG SPC manual tablePass
A3 (n=5)1.4272992931.427AIAG SPC manual tablePass
B4 (n=5)2.0889978692.089AIAG SPC manual tablePass

Capability, X-bar R, n=5

CheckQM BenchReferenceSourceResult
Sigma within0.042361708230.04236170823SciPyPass
Sigma overall0.055025964750.05502596475SciPyPass
Cp1.7704668471.770466847SciPyPass
Cpk1.7584171811.758417181SciPyPass
Pp1.3629929131.362992913SciPyPass
Ppk1.3537164841.353716484SciPyPass
Expected PPM overall43.6236386743.62363867SciPyPass
Cpk 95 % CI lower (Bissell)1.5517670341.551767034SciPyPass
Anderson-Darling A²2.2646213842.264621384SciPyPass
Cpm1.2537257741.253725774SciPyPass
UCL X-bar10.0803028610.0803224AIAG constantsPass
UCL R0.20833488110.2082994667AIAG constantsPass
Rule 1 signals (subgroup 18 shifted)truetrueTest designPass

Capability, I-MR

CheckQM BenchReferenceSourceResult
Sigma within1.1324227671.132422767SciPyPass
Sigma overall1.1611746231.161174623SciPyPass
Cp0.066229682210.06622968221SciPyPass
Cpk-11.6923549-11.6923549SciPyPass
Pp0.064589768450.06458976845SciPyPass
Ppk-11.40284039-11.40284039SciPyPass
Expected PPM overall1.000000e+61.000000e+6SciPyPass

Capability, X-bar S, n=12

CheckQM BenchReferenceSourceResult
Sigma within0.81382621490.8138262149SciPyPass
Sigma overall0.80672659710.8067265971SciPyPass
Cp0.092157267270.09215726727SciPyPass
Cpk-36.76128987-36.76128987SciPyPass
Pp0.092968299630.09296829963SciPyPass
Ppk-37.08480853-37.08480853SciPyPass
Expected PPM overall1.000000e+61.000000e+6SciPyPass

Capability, Box-Cox

CheckQM BenchReferenceSourceResult
Box-Cox lambda (MLE)-0.3447324251-0.3447324623SciPyPass

Capability, excluded subgroup

CheckQM BenchReferenceSourceResult
Sigma within without subgroup 180.043113825720.04311382572SciPyPass
Cpk without subgroup 181.6781346451.678134645SciPyPass
Ppk without subgroup 181.6699204641.669920464SciPyPass

Capability, limits from first 15 subgroups

CheckQM BenchReferenceSourceResult
Centre line10.0208810.02088SciPyPass
UCL X-bar10.0729498110.07294981FormulaPass

Capability, variable subgroup sizes

CheckQM BenchReferenceSourceResult
Pooled sigma within0.05283265770.0528326577SciPyPass
Grand mean (weighted)10.0143909110.01439091SciPyPass
UCL of subgroup 110.0790974410.07909744SciPyPass

Gage R&R, ANOVA (AIAG example)

CheckQM BenchReferenceSourceResult
Interaction p-value0.97410640430.9741064043SciPyPass
%Study variation GRR27.8606508827.86065088SciPyPass
ndc44SciPyPass

Gage R&R, average and range method (AIAG example)

CheckQM BenchReferenceSourceResult
EV (repeatability)0.20185666670.20186AIAG MSA 4th ed.Pass
AV (reproducibility)0.22966702910.22967AIAG MSA 4th ed.Pass
GRR0.30576634570.30577AIAG MSA 4th ed.Pass
%GRR26.6780498426.68AIAG MSA 4th ed.Pass

Distribution fit, normal

CheckQM BenchReferenceSourceResult
Mean1.120486251.12048625SciPyPass
Std dev0.68870884550.6887088455SciPyPass
Anderson-Darling A²1.0673413631.067341363SciPyPass

Distribution fit, lognormal

CheckQM BenchReferenceSourceResult
Scale (sigma of ln x)0.71557232860.7155723286SciPyPass
Location (mean of ln x)-0.1011847813-0.1011847813SciPyPass
99.865 % quantile7.7331458117.733145811SciPyPass

Distribution fit, Weibull

CheckQM BenchReferenceSourceResult
Shape (MLE)1.7054511421.705451142SciPyPass
Scale (MLE)1.2580428731.258042873SciPyPass
Shape vs scipy.stats.weibull_min.fit1.7054511421.705443581SciPyPass
0.135 % quantile0.026135087320.02613508732SciPyPass
Anderson-Darling A²0.2167036570.216703657SciPyPass

Distribution fit, gamma

CheckQM BenchReferenceSourceResult
Shape (MLE)2.4800989362.480098936SciPyPass
Scale (MLE)0.45179094830.4517909483SciPyPass
Shape vs scipy.stats.gamma.fit2.4800989362.480098936SciPyPass
0.135 % quantile0.05232772320.0523277232SciPyPass
50 % quantile0.97402105770.9740210577SciPyPass
99.865 % quantile4.459860984.45986098SciPyPass
CDF(0.3)0.070135241050.07013524106SciPyPass
CDF(1.0)0.51568938960.5156893896SciPyPass
CDF(2.5)0.95111645530.9511164553SciPyPass

Distribution fit, exponential

CheckQM BenchReferenceSourceResult
Scale1.120486251.12048625SciPyPass

Type 1 gauge study

CheckQM BenchReferenceSourceResult
Cg3.4862079543.486207954SciPyPass
Cgk2.4431345342.443134534SciPyPass
Bias t-test p-value3.700409e-273.700409e-27SciPyPass

Linearity and bias

CheckQM BenchReferenceSourceResult
Slope0.0018116666670.001811666667SciPyPass
Intercept-0.009636666667-0.009636666667SciPyPass
R²0.18391409850.1839140985SciPyPass
SE of slope5.011004e-45.011004e-4SciPyPass
p-value of slope6.289731e-46.289731e-4SciPyPass
SE of intercept0.0033239238170.003323923817SciPyPass
Average bias0.0012333333330.001233333333SciPyPass

Attribute agreement

CheckQM BenchReferenceSourceResult
Fleiss' kappa0.052218181820.05221818182Formula (Fleiss 1971)Pass
Cohen's kappa0.82798165140.8279816514Formula (Cohen 1960)Pass

Attribute control charts

CheckQM BenchReferenceSourceResult
p chart centre line0.0528759350.052875935FormulaPass
p chart UCL (sample 1)0.09920399060.0992039906FormulaPass
u chart centre line1.3944444441.394444444FormulaPass
u chart UCL (sample 1)2.4625779062.462577906FormulaPass

EWMA and CUSUM

CheckQM BenchReferenceSourceResult
EWMA last value0.95756729510.9575672951Formula (Montgomery)Pass
EWMA UCL at point 300.99999923380.9999992338Formula (Montgomery)Pass
CUSUM C+ last value5.22585.2258Formula (Montgomery)Pass

AQL sampling plans (ISO 2859-1, normal inspection)

CheckQM BenchReferenceSourceResult
Lot 1000, level II, AQL 0.65: J n=80 Ac 1 Re 2J n=80 Ac 1 Re 2J n=80 Ac 1 Re 2ISO 2859-1 Table 2-APass
Lot 1000, level II, AQL 1.0: J n=80 Ac 2 Re 3J n=80 Ac 2 Re 3J n=80 Ac 2 Re 3ISO 2859-1 Table 2-APass
Lot 1000, level II, AQL 2.5: J n=80 Ac 5 Re 6J n=80 Ac 5 Re 6J n=80 Ac 5 Re 6ISO 2859-1 Table 2-APass
Lot 500, level II, AQL 1.0: H n=50 Ac 1 Re 2H n=50 Ac 1 Re 2H n=50 Ac 1 Re 2ISO 2859-1 Table 2-APass
Lot 5000, level II, AQL 0.65: L n=200 Ac 3 Re 4L n=200 Ac 3 Re 4L n=200 Ac 3 Re 4ISO 2859-1 Table 2-APass
Lot 100, level II, AQL 1.0: E n=13 Ac 0 Re 1E n=13 Ac 0 Re 1E n=13 Ac 0 Re 1ISO 2859-1 Table 2-APass
Lot 3000, level II, AQL 4.0: K n=125 Ac 10 Re 11K n=125 Ac 10 Re 11K n=125 Ac 10 Re 11ISO 2859-1 Table 2-APass
Lot 10000, level III, AQL 0.4: M n=315 Ac 3 Re 4M n=315 Ac 3 Re 4M n=315 Ac 3 Re 4ISO 2859-1 Table 2-APass
Lot 200, level II, AQL 0.1: K n=125 Ac 0 Re 1K n=125 Ac 0 Re 1K n=125 Ac 0 Re 1ISO 2859-1 Table 2-APass
Lot 50, level S-2, AQL 4.0: B n=3 Ac 0 Re 1B n=3 Ac 0 Re 1B n=3 Ac 0 Re 1ISO 2859-1 Table 2-APass

Cpk, PPM and sigma level

CheckQM BenchReferenceSourceResult
PPM at Cpk 1.33 (centred)66.0732952666.07329526SciPyPass
Cpk from 63.34 PPM1.3333364261.333336426SciPyPass
Six Sigma long-term PPM3.3976731253.4Six Sigma convention (3.4 DPMO)Pass