EnviroAutomate
← All validation

Background Threshold validation

Free upper background limit calculations for environmental datasets: UCL, UPL, UTL and USL with distribution selection and non-detect handling.

Scenarios
9
Values agreeing
40
Values differing
2
Validated against
USEPA ProUCL, R EnvStats / nortest

Open Background Threshold

Prediction, tolerance and simultaneous limits are compared against USEPA ProUCL at three sample sizes. Prediction and tolerance limits are also compared against R EnvStats. Tolerance factors follow ProUCL's published table up to thirty results and the Natrella approximation above it; EnvStats computes the exact non-central t factor, which differs by about 0.1 per cent above thirty results. The censored-data estimators are shared with Descriptive Statistics.

Scenarios

Upper tolerance limit covering 95% of the population at 95% confidence (N10)

Boundary case

Input

10 values

value
4.2
5.1
6.3
7.8
9.1
11.4
3.3
8.8
12.1
6.6

Settings: limitType = utl, distribution = normal, confidence = 0.95, coverage = 0.95

Against USEPA ProUCL (ProUCL 5.2.0)

ValueUSEPA ProUCLEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n10100exact matchAgree
Limit limitValue15.99795489331019715.9979548933101970within 0.000001 relativeAgree

Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)

ValueR EnvStats / nortestEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n10100exact matchAgree
Mean mean7.477.4699999999999998.88e-16within 0.000001 relativeAgree
Standard deviation sd2.9295619695328742.92956196953287454.44e-16within 0.000001 relativeAgree
Limit limitValue15.99784770966381215.9979548933101970.000107within 0.000001 relativeDiffers
Why these differ: EnvStats computes the tolerance factor exactly, from the non-central t distribution. This toolkit uses the factor ProUCL uses - a published table up to thirty results, and the Natrella approximation above it - because we assume a reviewer checking this limit will be checking it against ProUCL, and the two agree here to the last digit. Below thirty results the table and the exact value are within a rounding of each other. Above it the approximation is about a tenth of a percent low against the exact figure, which is the difference visible on this row. Adopting the table was itself a correction: the approximation alone gave 2.8748 at ten results where the table gives 2.911, and that 1.2% error understated a background threshold.

Upper tolerance limit covering 95% of the population at 95% confidence (N50)

Boundary case

Input

50 values

value
6.64
10.98
8.53
12.87
10.42
7.97
12.31
9.86
7.41
11.75
9.3
6.85
11.19
8.74
13.08
10.63
8.18
12.52
10.07
7.62
11.96
9.51
7.06
11.4
8.95
13.29
10.84
8.39
12.73
10.28
7.83
12.17
9.72
7.27
11.61
9.16
6.71
11.05
8.6
12.94
10.49
8.04
12.38
9.93
7.48
11.82
9.37
6.92
11.26
8.81

Settings: limitType = utl, distribution = normal, confidence = 0.95, coverage = 0.95

Against USEPA ProUCL (ProUCL 5.2.0)

ValueUSEPA ProUCLEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n50500exact matchAgree
Limit limitValue13.97996800880623913.9799680059718872.83e-9within 0.000001 relativeAgree

Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)

ValueR EnvStats / nortestEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n50500exact matchAgree
Mean mean9.89789.8978000000000021.78e-15within 0.000001 relativeAgree
Standard deviation sd1.98308900455829321.98308900455829274.44e-16within 0.000001 relativeAgree
Limit limitValue13.99286574121709513.9799680059718870.0129within 0.000001 relativeDiffers
Why these differ: EnvStats computes the tolerance factor exactly, from the non-central t distribution. This toolkit uses the factor ProUCL uses - a published table up to thirty results, and the Natrella approximation above it - because we assume a reviewer checking this limit will be checking it against ProUCL, and the two agree here to the last digit. Below thirty results the table and the exact value are within a rounding of each other. Above it the approximation is about a tenth of a percent low against the exact figure, which is the difference visible on this row. Adopting the table was itself a correction: the approximation alone gave 2.8748 at ten results where the table gives 2.911, and that 1.2% error understated a background threshold.

Upper prediction limit for a single future result (N10)

Typical use

Input

10 values

value
4.2
5.1
6.3
7.8
9.1
11.4
3.3
8.8
12.1
6.6

Settings: limitType = upl, distribution = normal, confidence = 0.95, coverage = 0.95

Against USEPA ProUCL (ProUCL 5.2.0)

ValueUSEPA ProUCLEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n10100exact matchAgree
Limit limitValue13.10233212415854413.1023320851189973.90e-8within 0.000001 relativeAgree

Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)

ValueR EnvStats / nortestEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n10100exact matchAgree
Mean mean7.477.4699999999999998.88e-16within 0.000001 relativeAgree
Standard deviation sd2.9295619695328742.92956196953287454.44e-16within 0.000001 relativeAgree
Limit limitValue13.10233208511913.1023320851189973.55e-15within 0.000001 relativeAgree

Upper prediction limit for a single future result (N20)

Typical use

Input

20 values

value
9.8
10.4
11.2
9.1
10.8
12
8.7
10.1
11.6
9.5
10.9
10.3
10
9.9
10.6
11
9.4
10.2
10.7
9.7

Settings: limitType = upl, distribution = normal, confidence = 0.95, coverage = 0.95

Against USEPA ProUCL (ProUCL 5.2.0)

ValueUSEPA ProUCLEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n20200exact matchAgree
Limit limitValue11.76676769953480311.7667676912839338.25e-9within 0.000001 relativeAgree

Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)

ValueR EnvStats / nortestEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n20200exact matchAgree
Mean mean10.29510.2949999999999981.78e-15within 0.000001 relativeAgree
Standard deviation sd0.83064654589694540.83064654589694540within 0.000001 relativeAgree
Limit limitValue11.76676769128394911.7667676912839331.60e-14within 0.000001 relativeAgree

Upper prediction limit for a single future result (N50)

Typical use

Input

50 values

value
6.64
10.98
8.53
12.87
10.42
7.97
12.31
9.86
7.41
11.75
9.3
6.85
11.19
8.74
13.08
10.63
8.18
12.52
10.07
7.62
11.96
9.51
7.06
11.4
8.95
13.29
10.84
8.39
12.73
10.28
7.83
12.17
9.72
7.27
11.61
9.16
6.71
11.05
8.6
12.94
10.49
8.04
12.38
9.93
7.48
11.82
9.37
6.92
11.26
8.81

Settings: limitType = upl, distribution = normal, confidence = 0.95, coverage = 0.95

Against USEPA ProUCL (ProUCL 5.2.0)

ValueUSEPA ProUCLEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n50500exact matchAgree
Limit limitValue13.25563232424509313.2556325415395942.17e-7within 0.000001 relativeAgree

Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)

ValueR EnvStats / nortestEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n50500exact matchAgree
Mean mean9.89789.8978000000000021.78e-15within 0.000001 relativeAgree
Standard deviation sd1.98308900455829321.98308900455829274.44e-16within 0.000001 relativeAgree
Limit limitValue13.25563254153790113.2556325415395941.69e-12within 0.000001 relativeAgree

Upper simultaneous limit bounding every observation at once (N10)

Typical use

Input

10 values

value
4.2
5.1
6.3
7.8
9.1
11.4
3.3
8.8
12.1
6.6

Settings: limitType = usl, distribution = normal, confidence = 0.95, coverage = 0.95

Against USEPA ProUCL (ProUCL 5.2.0)

ValueUSEPA ProUCLEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n10100exact matchAgree
Limit limitValue13.84492724837363513.8449272107338643.76e-8within 0.000001 relativeAgree

Not run for this scenario

  • R EnvStats / nortest - This limit is a Bonferroni bound over the sample, which EnvStats does not offer; it is checked against ProUCL.

Upper simultaneous limit bounding every observation at once (N20)

Typical use

Input

20 values

value
9.8
10.4
11.2
9.1
10.8
12
8.7
10.1
11.6
9.5
10.9
10.3
10
9.9
10.6
11
9.4
10.2
10.7
9.7

Settings: limitType = usl, distribution = normal, confidence = 0.95, coverage = 0.95

Against USEPA ProUCL (ProUCL 5.2.0)

ValueUSEPA ProUCLEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n20200exact matchAgree
Limit limitValue12.41861543983820812.4186154548010071.50e-8within 0.000001 relativeAgree

Not run for this scenario

  • R EnvStats / nortest - This limit is a Bonferroni bound over the sample, which EnvStats does not offer; it is checked against ProUCL.

Upper simultaneous limit bounding every observation at once (N50)

Typical use

Input

50 values

value
6.64
10.98
8.53
12.87
10.42
7.97
12.31
9.86
7.41
11.75
9.3
6.85
11.19
8.74
13.08
10.63
8.18
12.52
10.07
7.62
11.96
9.51
7.06
11.4
8.95
13.29
10.84
8.39
12.73
10.28
7.83
12.17
9.72
7.27
11.61
9.16
6.71
11.05
8.6
12.94
10.49
8.04
12.38
9.93
7.48
11.82
9.37
6.92
11.26
8.81

Settings: limitType = usl, distribution = normal, confidence = 0.95, coverage = 0.95

Against USEPA ProUCL (ProUCL 5.2.0)

ValueUSEPA ProUCLEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n50500exact matchAgree
Limit limitValue15.76174430133643915.7617443061376614.80e-9within 0.000001 relativeAgree

Not run for this scenario

  • R EnvStats / nortest - This limit is a Bonferroni bound over the sample, which EnvStats does not offer; it is checked against ProUCL.

Upper tolerance limit covering 95% of the population at 95% confidence (N20)

Boundary case

Input

20 values

value
9.8
10.4
11.2
9.1
10.8
12
8.7
10.1
11.6
9.5
10.9
10.3
10
9.9
10.6
11
9.4
10.2
10.7
9.7

Settings: limitType = utl, distribution = normal, confidence = 0.95, coverage = 0.95

Against USEPA ProUCL (ProUCL 5.2.0)

ValueUSEPA ProUCLEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n20200exact matchAgree
Limit limitValue12.2852291239690812.285229123969080within 0.000001 relativeAgree

Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)

ValueR EnvStats / nortestEnviroAutomateDifferenceAgreement bandVerdict
Sample size (n) n20200exact matchAgree
Mean mean10.29510.2949999999999981.78e-15within 0.000001 relativeAgree
Standard deviation sd0.83064654589694540.83064654589694540within 0.000001 relativeAgree
Limit limitValue12.28523052257328312.285229123969081.40e-6within 0.000001 relativeAgree

Evidence generated 2026-08-26 from a full comparison run against the versions named above.