Trend Analysis validation
Free Mann-Kendall and Seasonal Mann-Kendall trend tests with Theil-Sen slope estimation for groundwater monitoring time series.
- Scenarios
- 16
- Values agreeing
- 318
- Values differing
- 2
- Validated against
- R EnvStats / nortest, GWSDAT, USEPA ProUCL, pymannkendall
Configured for this tool but not run in this pass: GSI Mann-Kendall Toolkit (not included in this comparison run)
Four reference implementations are compared: R EnvStats, GWSDAT, USEPA ProUCL and the GSI Mann-Kendall Toolkit. They agree on the Mann-Kendall statistic, its variance, z and p across all scenarios, including tied data, seasonal data and the smallest and largest series the tools accept. The GSI Confidence Factor comparison identified a defect in this toolkit: where repeated results place Kendall's S between two values covered by the exact probability table, it read the adjacent table entry. It now interpolates between the two, matching the GSI Toolkit including on the worked example in GSI's documentation.
Scenarios
- Every result identical - S = 0 and var(S) fully tie-correctedBoundary case
- Monthly data, twelve seasons over three yearsTypical use
- Quarterly data with a clear declineTypical use
- Six quarterly results with a clear downward trendTypical use
- GSI's own published benzene exampleSpecial case
- A strong seasonal cycle with no underlying trendBoundary case
- Forty sampling events - the last size the GSI workbook acceptsBoundary case
- Forty-one sampling events - one past the GSI workbook's capacityBoundary case
- Four points - the smallest series the toolkit will testBoundary case
- Heavy ties around a weak rising trendBoundary case
- Repeated values exercise the tie correction in var(S)Boundary case
- Seasons that trend in opposite directionsBoundary case
- The same question at ten resultsBoundary case
- Ties inside every seasonBoundary case
- Ties producing a Kendall S the untied distribution cannot reachBoundary case
- Two seasons, the fewest the test allowsBoundary case
Every result identical - S = 0 and var(S) fully tie-corrected
Boundary caseInput
8 points
| x | value |
|---|---|
| 1 | 5 |
| 2 | 5 |
| 3 | 5 |
| 4 | 5 |
| 5 | 5 |
| 6 | 5 |
| 7 | 5 |
| 8 | 5 |
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 0 | 0 | 0 | exact match | Agree |
| Variance of S varS | 0 | 0 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | NaN | 0 | - | within 0.000001 relative | Differs |
| Why these differ: With no variation at all the Mann-Kendall variance is zero, so z is 0/0 and the test is formally undefined. The four engines split: this toolkit reports z = 0 and p = 1; GWSDAT's Kendall routine also returns p = 1, while raising its own internal fault code for the degenerate input; R's EnvStats returns NaN; ProUCL returns no statistic at all. So a third package agrees with the number reported here, and the two that decline are declining rather than disagreeing. S and the variance - the quantities that are actually defined for a flat record - agree exactly across all four. | |||||
| p-value pValue | NaN | 1 | - | within 1e-9 | Differs |
| Why these differ: Same reason as z. Reporting p = 1 says 'no evidence of a trend', which is the honest reading of a series that never moves, and GWSDAT reports the same. The result carries a note saying the test is undefined here, so the number is a stated convention rather than a silent one. | |||||
| Theil-Sen slope theilSenSlope | 0 | 0 | 0 | within 0.000001 relative | Agree |
| Intercept intercept | 5 | 5 | 0 | within 0.000001 relative | Agree |
Against GWSDAT (GWSDAT 3.3.0, R 4.6.1)
| Value | GWSDAT | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 0 | 0 | 0 | exact match | Agree |
| Variance of S varS | 0 | 0 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 1 | 1 | 0 | within 0.00001 relative, or 1e-12 absolute | Agree |
Against USEPA ProUCL (ProUCL 5.2.0)
| Value | USEPA ProUCL | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 0 | 0 | 0 | exact match | Agree |
| Variance of S varS | 0 | 0 | 0 | within 1e-9 relative | Agree |
Against pymannkendall (pymannkendall 1.4.3)
| Value | pymannkendall | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 0 | 0 | 0 | exact match | Agree |
| Variance of S varS | 0 | 0 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 0 | 0 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 1 | 1 | 0 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | 0 | 0 | 0 | within 0.000001 relative | Agree |
| Trend direction direction | No trend | No trend | - | exact match | Agree |
Not run for this scenario
- GSI Mann-Kendall Toolkit - not included in this comparison run
Monthly data, twelve seasons over three years
Typical useInput
36 points
| x | value | season |
|---|---|---|
| 1 | 12 | 0 |
| 2 | 11 | 1 |
| 3 | 13 | 2 |
| 4 | 10 | 3 |
| 5 | 9 | 4 |
| 6 | 8 | 5 |
| 7 | 7 | 6 |
| 8 | 6 | 7 |
| 9 | 8 | 8 |
| 10 | 9 | 9 |
| 11 | 11 | 10 |
| 12 | 12 | 11 |
| 13 | 11 | 0 |
| 14 | 10 | 1 |
| 15 | 12 | 2 |
| 16 | 9 | 3 |
| 17 | 8 | 4 |
| 18 | 7 | 5 |
| 19 | 6 | 6 |
| 20 | 5 | 7 |
| 21 | 7 | 8 |
| 22 | 8 | 9 |
| 23 | 10 | 10 |
| 24 | 11 | 11 |
| 25 | 10 | 0 |
| 26 | 9 | 1 |
| 27 | 11 | 2 |
| 28 | 8 | 3 |
| 29 | 7 | 4 |
| 30 | 6 | 5 |
| 31 | 5 | 6 |
| 32 | 4 | 7 |
| 33 | 6 | 8 |
| 34 | 7 | 9 |
| 35 | 9 | 10 |
| 36 | 10 | 11 |
Settings: seasonPeriod = 12
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 36 | 36 | 0 | exact match | Agree |
| Mann-Kendall S s | -36 | -36 | 0 | exact match | Agree |
| Variance of S varS | 43.99999999999999 | 43.99999999999999 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -5.276448530110864 | -5.276448530110864 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 1.31711483891223e-7 | 1.31711483941643e-7 | 5.04e-17 | within 1e-9 | Agree |
| season.0.s season.0.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.0.varS season.0.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.1.s season.1.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.1.varS season.1.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.2.s season.2.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.2.varS season.2.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.3.s season.3.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.3.varS season.3.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.4.s season.4.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.4.varS season.4.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.5.s season.5.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.5.varS season.5.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.6.s season.6.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.6.varS season.6.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.7.s season.7.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.7.varS season.7.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.8.s season.8.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.8.varS season.8.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.9.s season.9.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.9.varS season.9.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.10.s season.10.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.10.varS season.10.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| season.11.s season.11.s | -3 | -3 | 0 | within 0.000001 relative | Agree |
| season.11.varS season.11.varS | 3.6666666666666665 | 3.6666666666666665 | 0 | within 0.000001 relative | Agree |
| Theil-Sen slope theilSenSlope | -0.08333333333333333 | -0.08333333333333333 | 0 | within 0.000001 relative | Agree |
Not run for this scenario
- USEPA ProUCL - ProUCL does not implement the seasonal Mann-Kendall test, so these scenarios are compared against R EnvStats, which does.
- GWSDAT - GWSDAT has no seasonal Mann-Kendall; nothing to compare
Quarterly data with a clear decline
Typical useInput
16 points
| x | value | season |
|---|---|---|
| 1 | 10 | 0 |
| 2 | 14 | 1 |
| 3 | 9 | 2 |
| 4 | 6 | 3 |
| 5 | 11 | 0 |
| 6 | 15 | 1 |
| 7 | 10 | 2 |
| 8 | 7 | 3 |
| 9 | 9 | 0 |
| 10 | 13 | 1 |
| 11 | 8 | 2 |
| 12 | 5 | 3 |
| 13 | 8 | 0 |
| 14 | 12 | 1 |
| 15 | 7 | 2 |
| 16 | 4 | 3 |
Settings: seasonPeriod = 4
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 16 | 16 | 0 | exact match | Agree |
| Mann-Kendall S s | -16 | -16 | 0 | exact match | Agree |
| Variance of S varS | 34.666666666666664 | 34.666666666666664 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -2.5476233268253408 | -2.5476233268253408 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.010845950917060448 | 0.01084595091660101 | 4.59e-13 | within 1e-9 | Agree |
| season.0.s season.0.s | -4 | -4 | 0 | within 0.000001 relative | Agree |
| season.0.varS season.0.varS | 8.666666666666666 | 8.666666666666666 | 0 | within 0.000001 relative | Agree |
| season.1.s season.1.s | -4 | -4 | 0 | within 0.000001 relative | Agree |
| season.1.varS season.1.varS | 8.666666666666666 | 8.666666666666666 | 0 | within 0.000001 relative | Agree |
| season.2.s season.2.s | -4 | -4 | 0 | within 0.000001 relative | Agree |
| season.2.varS season.2.varS | 8.666666666666666 | 8.666666666666666 | 0 | within 0.000001 relative | Agree |
| season.3.s season.3.s | -4 | -4 | 0 | within 0.000001 relative | Agree |
| season.3.varS season.3.varS | 8.666666666666666 | 8.666666666666666 | 0 | within 0.000001 relative | Agree |
| Theil-Sen slope theilSenSlope | -0.20833333333333331 | -0.20833333333333331 | 0 | within 0.000001 relative | Agree |
Not run for this scenario
- USEPA ProUCL - ProUCL does not implement the seasonal Mann-Kendall test, so these scenarios are compared against R EnvStats, which does.
- GWSDAT - GWSDAT has no seasonal Mann-Kendall; nothing to compare
Six quarterly results with a clear downward trend
Typical useInput
6 points
| x | value |
|---|---|
| 1 | 10 |
| 2 | 9 |
| 3 | 7 |
| 4 | 8 |
| 5 | 5 |
| 6 | 4 |
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 6 | 6 | 0 | exact match | Agree |
| Mann-Kendall S s | -13 | -13 | 0 | exact match | Agree |
| Variance of S varS | 28.333333333333332 | 28.333333333333332 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -2.2544074479065386 | -2.2544074479065386 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.024170547174545247 | 0.024170547173495427 | 1.05e-12 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | -1.2 | -1.2 | 0 | within 0.000001 relative | Agree |
| Intercept intercept | 11.7 | 11.7 | 0 | within 0.000001 relative | Agree |
Against GWSDAT (GWSDAT 3.3.0, R 4.6.1)
| Value | GWSDAT | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 6 | 6 | 0 | exact match | Agree |
| Mann-Kendall S s | -13 | -13 | 0 | exact match | Agree |
| Variance of S varS | 28.33333396911621 | 28.333333333333332 | 6.36e-7 | within 0.000001 relative | Agree |
| p-value pValue | 0.02417055144906044 | 0.024170547173495427 | 4.28e-9 | within 0.00001 relative, or 1e-12 absolute | Agree |
Against USEPA ProUCL (ProUCL 5.2.0)
| Value | USEPA ProUCL | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 6 | 6 | 0 | exact match | Agree |
| Mann-Kendall S s | -13 | -13 | 0 | exact match | Agree |
| Variance of S varS | 28.33333333333333 | 28.333333333333332 | 3.55e-15 | within 1e-9 relative | Agree |
| Standard normal z z | -2.2544074479065386 | -2.2544074479065386 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.024170547174454805 | 0.024170547173495427 | 9.59e-13 | within 1e-9 | Agree |
Against pymannkendall (pymannkendall 1.4.3)
| Value | pymannkendall | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 6 | 6 | 0 | exact match | Agree |
| Mann-Kendall S s | -13 | -13 | 0 | exact match | Agree |
| Variance of S varS | 28.333333333333332 | 28.333333333333332 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -2.2544074479065386 | -2.2544074479065386 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.024170547174545254 | 0.024170547173495427 | 1.05e-12 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | -1.2 | -1.2 | 0 | within 0.000001 relative | Agree |
| Trend direction direction | Decreasing | Decreasing | - | exact match | Agree |
Not run for this scenario
- GSI Mann-Kendall Toolkit - not included in this comparison run
GSI's own published benzene example
Special caseInput
7 points
| x | value |
|---|---|
| 1 | 2190 |
| 2 | 384 |
| 3 | 357 |
| 4 | 19 |
| 5 | 1 |
| 6 | 1 |
| 7 | 1 |
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 7 | 7 | 0 | exact match | Agree |
| Mann-Kendall S s | -18 | -18 | 0 | exact match | Agree |
| Variance of S varS | 40.666666666666664 | 40.666666666666664 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -2.665812704795515 | -2.665812704795515 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.007680246786159427 | 0.007680246785836786 | 3.23e-13 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | -118.66666666666667 | -118.66666666666667 | 0 | within 0.000001 relative | Agree |
| Intercept intercept | 493.6666666666667 | 493.6666666666667 | 0 | within 0.000001 relative | Agree |
Against USEPA ProUCL (ProUCL 5.2.0)
| Value | USEPA ProUCL | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 7 | 7 | 0 | exact match | Agree |
| Mann-Kendall S s | -18 | -18 | 0 | exact match | Agree |
| Variance of S varS | 40.666666666666664 | 40.666666666666664 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -2.665812704795515 | -2.665812704795515 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.007680246785861419 | 0.007680246785836786 | 2.46e-14 | within 1e-9 | Agree |
Against GWSDAT (GWSDAT 3.3.0, R 4.6.1)
| Value | GWSDAT | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 7 | 7 | 0 | exact match | Agree |
| Mann-Kendall S s | -18 | -18 | 0 | exact match | Agree |
| Variance of S varS | 40.66666793823242 | 40.666666666666664 | 1.27e-6 | within 0.000001 relative | Agree |
| p-value pValue | 0.007680247072130442 | 0.007680246785836786 | 2.86e-10 | within 0.00001 relative, or 1e-12 absolute | Agree |
Against pymannkendall (pymannkendall 1.4.3)
| Value | pymannkendall | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 7 | 7 | 0 | exact match | Agree |
| Mann-Kendall S s | -18 | -18 | 0 | exact match | Agree |
| Variance of S varS | 40.666666666666664 | 40.666666666666664 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -2.665812704795515 | -2.665812704795515 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.007680246786159417 | 0.007680246785836786 | 3.23e-13 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | -118.66666666666667 | -118.66666666666667 | 0 | within 0.000001 relative | Agree |
| Trend direction direction | Decreasing | Decreasing | - | exact match | Agree |
Not run for this scenario
- GSI Mann-Kendall Toolkit - not included in this comparison run
A strong seasonal cycle with no underlying trend
Boundary caseInput
16 points
| x | value | season |
|---|---|---|
| 1 | 5 | 0 |
| 2 | 20 | 1 |
| 3 | 12 | 2 |
| 4 | 3 | 3 |
| 5 | 6 | 0 |
| 6 | 19 | 1 |
| 7 | 13 | 2 |
| 8 | 2 | 3 |
| 9 | 4 | 0 |
| 10 | 21 | 1 |
| 11 | 11 | 2 |
| 12 | 4 | 3 |
| 13 | 6 | 0 |
| 14 | 19 | 1 |
| 15 | 12 | 2 |
| 16 | 3 | 3 |
Settings: seasonPeriod = 4
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 16 | 16 | 0 | exact match | Agree |
| Mann-Kendall S s | 0 | 0 | 0 | exact match | Agree |
| Variance of S varS | 30.666666666666668 | 30.666666666666668 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 0 | 0 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 1 | 1 | 0 | within 1e-9 | Agree |
| season.0.s season.0.s | 1 | 1 | 0 | within 0.000001 relative | Agree |
| season.0.varS season.0.varS | 7.666666666666667 | 7.666666666666667 | 0 | within 0.000001 relative | Agree |
| season.1.s season.1.s | -1 | -1 | 0 | within 0.000001 relative | Agree |
| season.1.varS season.1.varS | 7.666666666666667 | 7.666666666666667 | 0 | within 0.000001 relative | Agree |
| season.2.s season.2.s | -1 | -1 | 0 | within 0.000001 relative | Agree |
| season.2.varS season.2.varS | 7.666666666666667 | 7.666666666666667 | 0 | within 0.000001 relative | Agree |
| season.3.s season.3.s | 1 | 1 | 0 | within 0.000001 relative | Agree |
| season.3.varS season.3.varS | 7.666666666666667 | 7.666666666666667 | 0 | within 0.000001 relative | Agree |
| Theil-Sen slope theilSenSlope | 0 | 0 | 0 | within 0.000001 relative | Agree |
Not run for this scenario
- USEPA ProUCL - ProUCL does not implement the seasonal Mann-Kendall test, so these scenarios are compared against R EnvStats, which does.
- GWSDAT - GWSDAT has no seasonal Mann-Kendall; nothing to compare
Forty sampling events - the last size the GSI workbook accepts
Boundary caseInput
40 points
| x | value |
|---|---|
| 1 | 20.8 |
| 2 | 19.3 |
| 3 | 19 |
| 4 | 19.9 |
| 5 | 18.4 |
| 6 | 18.1 |
| 7 | 19 |
| 8 | 17.5 |
| 9 | 17.2 |
| 10 | 18.1 |
| 11 | 16.6 |
| 12 | 16.3 |
| 13 | 17.2 |
| 14 | 15.7 |
| 15 | 15.4 |
| 16 | 16.3 |
| 17 | 14.8 |
| 18 | 14.5 |
| 19 | 15.4 |
| 20 | 13.9 |
| 21 | 13.6 |
| 22 | 14.5 |
| 23 | 13 |
| 24 | 12.7 |
| 25 | 13.6 |
| 26 | 12.1 |
| 27 | 11.8 |
| 28 | 12.7 |
| 29 | 11.2 |
| 30 | 10.9 |
| 31 | 11.8 |
| 32 | 10.3 |
| 33 | 10 |
| 34 | 10.9 |
| 35 | 9.4 |
| 36 | 9.1 |
| 37 | 10 |
| 38 | 8.5 |
| 39 | 8.2 |
| 40 | 9.1 |
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 40 | 40 | 0 | exact match | Agree |
| Mann-Kendall S s | -716 | -716 | 0 | exact match | Agree |
| Variance of S varS | 7354.666666666667 | 7354.666666666667 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -8.337283025803837 | -8.337283025803837 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 7.60169612913962e-17 | 0 | 7.60e-17 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | -0.3 | -0.3 | 0 | within 0.000001 relative | Agree |
| Intercept intercept | 20.349999999999998 | 20.349999999999998 | 0 | within 0.000001 relative | Agree |
Against GWSDAT (GWSDAT 3.3.0, R 4.6.1)
| Value | GWSDAT | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 40 | 40 | 0 | exact match | Agree |
| Mann-Kendall S s | -716 | -716 | 0 | exact match | Agree |
| Variance of S varS | 7354.66650390625 | 7354.666666666667 | 0.000163 | within 0.000001 relative | Agree |
| p-value pValue | 7.60168130326596e-17 | 0 | 7.60e-17 | within 0.00001 relative, or 1e-12 absolute | Agree |
Against USEPA ProUCL (ProUCL 5.2.0)
| Value | USEPA ProUCL | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 40 | 40 | 0 | exact match | Agree |
| Mann-Kendall S s | -716 | -716 | 0 | exact match | Agree |
| Variance of S varS | 7354.666666666668 | 7354.666666666667 | 9.09e-13 | within 1e-9 relative | Agree |
| Standard normal z z | -8.337283025803837 | -8.337283025803837 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 7.60169612933010e-17 | 0 | 7.60e-17 | within 1e-9 | Agree |
Against pymannkendall (pymannkendall 1.4.3)
| Value | pymannkendall | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 40 | 40 | 0 | exact match | Agree |
| Mann-Kendall S s | -716 | -716 | 0 | exact match | Agree |
| Variance of S varS | 7354.666666666667 | 7354.666666666667 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -8.337283025803837 | -8.337283025803837 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0 | 0 | 0 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | -0.3 | -0.3 | 0 | within 0.000001 relative | Agree |
| Trend direction direction | Decreasing | Decreasing | - | exact match | Agree |
Not run for this scenario
- GSI Mann-Kendall Toolkit - not included in this comparison run
Forty-one sampling events - one past the GSI workbook's capacity
Boundary caseInput
41 points
| x | value |
|---|---|
| 1 | 20.8 |
| 2 | 19.3 |
| 3 | 19 |
| 4 | 19.9 |
| 5 | 18.4 |
| 6 | 18.1 |
| 7 | 19 |
| 8 | 17.5 |
| 9 | 17.2 |
| 10 | 18.1 |
| 11 | 16.6 |
| 12 | 16.3 |
| 13 | 17.2 |
| 14 | 15.7 |
| 15 | 15.4 |
| 16 | 16.3 |
| 17 | 14.8 |
| 18 | 14.5 |
| 19 | 15.4 |
| 20 | 13.9 |
| 21 | 13.6 |
| 22 | 14.5 |
| 23 | 13 |
| 24 | 12.7 |
| 25 | 13.6 |
| 26 | 12.1 |
| 27 | 11.8 |
| 28 | 12.7 |
| 29 | 11.2 |
| 30 | 10.9 |
| 31 | 11.8 |
| 32 | 10.3 |
| 33 | 10 |
| 34 | 10.9 |
| 35 | 9.4 |
| 36 | 9.1 |
| 37 | 10 |
| 38 | 8.5 |
| 39 | 8.2 |
| 40 | 9.1 |
| 41 | 7.6 |
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 41 | 41 | 0 | exact match | Agree |
| Mann-Kendall S s | -756 | -756 | 0 | exact match | Agree |
| Variance of S varS | 7914.666666666667 | 7914.666666666667 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -8.486539504580369 | -8.486539504580369 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 2.12881316104394e-17 | 0 | 2.13e-17 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | -0.3 | -0.3 | 0 | within 0.000001 relative | Agree |
| Intercept intercept | 20.2 | 20.2 | 0 | within 0.000001 relative | Agree |
Against GWSDAT (GWSDAT 3.3.0, R 4.6.1)
| Value | GWSDAT | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 41 | 41 | 0 | exact match | Agree |
| Mann-Kendall S s | -756 | -756 | 0 | exact match | Agree |
| Variance of S varS | 7914.66650390625 | 7914.666666666667 | 0.000163 | within 0.000001 relative | Agree |
| p-value pValue | 2.12881117951504e-17 | 0 | 2.13e-17 | within 0.00001 relative, or 1e-12 absolute | Agree |
Against USEPA ProUCL (ProUCL 5.2.0)
| Value | USEPA ProUCL | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 41 | 41 | 0 | exact match | Agree |
| Mann-Kendall S s | -756 | -756 | 0 | exact match | Agree |
| Variance of S varS | 7914.666666666667 | 7914.666666666667 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -8.486539504580369 | -8.486539504580369 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 2.1288131610894e-17 | 0 | 2.13e-17 | within 1e-9 | Agree |
Against pymannkendall (pymannkendall 1.4.3)
| Value | pymannkendall | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 41 | 41 | 0 | exact match | Agree |
| Mann-Kendall S s | -756 | -756 | 0 | exact match | Agree |
| Variance of S varS | 7914.666666666667 | 7914.666666666667 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -8.486539504580369 | -8.486539504580369 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0 | 0 | 0 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | -0.3 | -0.3 | 0 | within 0.000001 relative | Agree |
| Trend direction direction | Decreasing | Decreasing | - | exact match | Agree |
Not run for this scenario
- GSI Mann-Kendall Toolkit - not included in this comparison run
Four points - the smallest series the toolkit will test
Boundary caseInput
4 points
| x | value |
|---|---|
| 1 | 12 |
| 2 | 9.5 |
| 3 | 8.1 |
| 4 | 6 |
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 4 | 4 | 0 | exact match | Agree |
| Mann-Kendall S s | -6 | -6 | 0 | exact match | Agree |
| Variance of S varS | 8.666666666666666 | 8.666666666666666 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -1.6984155512168937 | -1.6984155512168937 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.08942935902899354 | 0.08942935903273863 | 3.75e-12 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | -1.975 | -1.975 | 0 | within 0.000001 relative | Agree |
| Intercept intercept | 13.7375 | 13.7375 | 0 | within 0.000001 relative | Agree |
Against USEPA ProUCL (ProUCL 5.2.0)
| Value | USEPA ProUCL | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 4 | 4 | 0 | exact match | Agree |
| Mann-Kendall S s | -6 | -6 | 0 | exact match | Agree |
| Variance of S varS | 8.666666666666666 | 8.666666666666666 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -1.6984155512168937 | -1.6984155512168937 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.08942935902767497 | 0.08942935903273863 | 5.06e-12 | within 1e-9 | Agree |
Against pymannkendall (pymannkendall 1.4.3)
| Value | pymannkendall | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 4 | 4 | 0 | exact match | Agree |
| Mann-Kendall S s | -6 | -6 | 0 | exact match | Agree |
| Variance of S varS | 8.666666666666666 | 8.666666666666666 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -1.6984155512168937 | -1.6984155512168937 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.08942935902899363 | 0.08942935903273863 | 3.75e-12 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | -1.975 | -1.975 | 0 | within 0.000001 relative | Agree |
| Trend direction direction | No trend | No trend | - | exact match | Agree |
Not run for this scenario
- GSI Mann-Kendall Toolkit - not included in this comparison run
Heavy ties around a weak rising trend
Boundary caseInput
8 points
| x | value |
|---|---|
| 1 | 3 |
| 2 | 3 |
| 3 | 3 |
| 4 | 3 |
| 5 | 2 |
| 6 | 4 |
| 7 | 3 |
| 8 | 5 |
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 8 | 8 | 0 | exact match | Agree |
| Variance of S varS | 48.666666666666664 | 48.666666666666664 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 1.0034188133917428 | 1.0034188133917428 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.3156588305734086 | 0.31565883060042355 | 2.70e-11 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | 0 | 0 | 0 | within 0.000001 relative | Agree |
| Intercept intercept | 3 | 3 | 0 | within 0.000001 relative | Agree |
Against USEPA ProUCL (ProUCL 5.2.0)
| Value | USEPA ProUCL | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 8 | 8 | 0 | exact match | Agree |
| Variance of S varS | 48.66666666666667 | 48.666666666666664 | 7.11e-15 | within 1e-9 relative | Agree |
| Standard normal z z | 1.003418813391743 | 1.0034188133917428 | 2.22e-16 | within 0.000001 relative | Agree |
| p-value pValue | 0.315658830566905 | 0.31565883060042355 | 3.35e-11 | within 1e-9 | Agree |
Against GWSDAT (GWSDAT 3.3.0, R 4.6.1)
| Value | GWSDAT | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 8 | 8 | 0 | exact match | Agree |
| Variance of S varS | 48.66666793823242 | 48.666666666666664 | 1.27e-6 | within 0.000001 relative | Agree |
| p-value pValue | 0.3156588077545166 | 0.31565883060042355 | 2.28e-8 | within 0.00001 relative, or 1e-12 absolute | Agree |
Against pymannkendall (pymannkendall 1.4.3)
| Value | pymannkendall | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 8 | 8 | 0 | exact match | Agree |
| Variance of S varS | 48.666666666666664 | 48.666666666666664 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 1.0034188133917428 | 1.0034188133917428 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.3156588305734087 | 0.31565883060042355 | 2.70e-11 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | 0 | 0 | 0 | within 0.000001 relative | Agree |
| Trend direction direction | No trend | No trend | - | exact match | Agree |
Not run for this scenario
- GSI Mann-Kendall Toolkit - not included in this comparison run
Repeated values exercise the tie correction in var(S)
Boundary caseInput
8 points
| x | value |
|---|---|
| 1 | 5 |
| 2 | 5 |
| 3 | 5 |
| 4 | 7 |
| 5 | 7 |
| 6 | 9 |
| 7 | 9 |
| 8 | 12 |
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 23 | 23 | 0 | exact match | Agree |
| Variance of S varS | 59.666666666666664 | 59.666666666666664 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 2.8481102232138804 | 2.8481102232138804 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.004397968961524268 | 0.004397968961341592 | 1.83e-13 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | 1 | 1 | 0 | within 0.000001 relative | Agree |
| Intercept intercept | 2.5 | 2.5 | 0 | within 0.000001 relative | Agree |
Against GWSDAT (GWSDAT 3.3.0, R 4.6.1)
| Value | GWSDAT | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 23 | 23 | 0 | exact match | Agree |
| Variance of S varS | 59.66666793823242 | 59.666666666666664 | 1.27e-6 | within 0.000001 relative | Agree |
| p-value pValue | 0.004397988319396973 | 0.004397968961341592 | 1.94e-8 | within 0.00001 relative, or 1e-12 absolute | Agree |
Against USEPA ProUCL (ProUCL 5.2.0)
| Value | USEPA ProUCL | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 23 | 23 | 0 | exact match | Agree |
| Variance of S varS | 59.666666666666664 | 59.666666666666664 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 2.8481102232138804 | 2.8481102232138804 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.004397968961424414 | 0.004397968961341592 | 8.28e-14 | within 1e-9 | Agree |
Against pymannkendall (pymannkendall 1.4.3)
| Value | pymannkendall | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 23 | 23 | 0 | exact match | Agree |
| Variance of S varS | 59.666666666666664 | 59.666666666666664 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 2.8481102232138804 | 2.8481102232138804 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.00439796896152433 | 0.004397968961341592 | 1.83e-13 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | 1 | 1 | 0 | within 0.000001 relative | Agree |
| Trend direction direction | Increasing | Increasing | - | exact match | Agree |
Not run for this scenario
- GSI Mann-Kendall Toolkit - not included in this comparison run
Seasons that trend in opposite directions
Boundary caseInput
16 points
| x | value | season |
|---|---|---|
| 1 | 10 | 0 |
| 2 | 10 | 1 |
| 3 | 10 | 2 |
| 4 | 10 | 3 |
| 5 | 11 | 0 |
| 6 | 9 | 1 |
| 7 | 11 | 2 |
| 8 | 9 | 3 |
| 9 | 12 | 0 |
| 10 | 8 | 1 |
| 11 | 12 | 2 |
| 12 | 8 | 3 |
| 13 | 13 | 0 |
| 14 | 7 | 1 |
| 15 | 13 | 2 |
| 16 | 7 | 3 |
Settings: seasonPeriod = 4
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 16 | 16 | 0 | exact match | Agree |
| Mann-Kendall S s | 0 | 0 | 0 | exact match | Agree |
| Variance of S varS | 34.666666666666664 | 34.666666666666664 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 0 | 0 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 1 | 1 | 0 | within 1e-9 | Agree |
| season.0.s season.0.s | 6 | 6 | 0 | within 0.000001 relative | Agree |
| season.0.varS season.0.varS | 8.666666666666666 | 8.666666666666666 | 0 | within 0.000001 relative | Agree |
| season.1.s season.1.s | -6 | -6 | 0 | within 0.000001 relative | Agree |
| season.1.varS season.1.varS | 8.666666666666666 | 8.666666666666666 | 0 | within 0.000001 relative | Agree |
| season.2.s season.2.s | 6 | 6 | 0 | within 0.000001 relative | Agree |
| season.2.varS season.2.varS | 8.666666666666666 | 8.666666666666666 | 0 | within 0.000001 relative | Agree |
| season.3.s season.3.s | -6 | -6 | 0 | within 0.000001 relative | Agree |
| season.3.varS season.3.varS | 8.666666666666666 | 8.666666666666666 | 0 | within 0.000001 relative | Agree |
| Theil-Sen slope theilSenSlope | 0 | 0 | 0 | within 0.000001 relative | Agree |
Not run for this scenario
- USEPA ProUCL - ProUCL does not implement the seasonal Mann-Kendall test, so these scenarios are compared against R EnvStats, which does.
- GWSDAT - GWSDAT has no seasonal Mann-Kendall; nothing to compare
The same question at ten results
Boundary caseInput
10 points
| x | value |
|---|---|
| 1 | 1 |
| 2 | 5 |
| 3 | 2 |
| 4 | 5 |
| 5 | 5 |
| 6 | 5 |
| 7 | 1 |
| 8 | 5 |
| 9 | 5 |
| 10 | 5 |
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 10 | 10 | 0 | exact match | Agree |
| Mann-Kendall S s | 11 | 11 | 0 | exact match | Agree |
| Variance of S varS | 79.66666666666667 | 79.66666666666667 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 1.1203705304599068 | 1.1203705304599068 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.26255589762985626 | 0.2625558976426787 | 1.28e-11 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | 0 | 0 | 0 | within 0.000001 relative | Agree |
| Intercept intercept | 5 | 5 | 0 | within 0.000001 relative | Agree |
Against USEPA ProUCL (ProUCL 5.2.0)
| Value | USEPA ProUCL | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 10 | 10 | 0 | exact match | Agree |
| Mann-Kendall S s | 11 | 11 | 0 | exact match | Agree |
| Variance of S varS | 79.66666666666666 | 79.66666666666667 | 1.42e-14 | within 1e-9 relative | Agree |
| Standard normal z z | 1.1203705304599068 | 1.1203705304599068 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.2625558976241922 | 0.2625558976426787 | 1.85e-11 | within 1e-9 | Agree |
Against GWSDAT (GWSDAT 3.3.0, R 4.6.1)
| Value | GWSDAT | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 10 | 10 | 0 | exact match | Agree |
| Mann-Kendall S s | 11 | 11 | 0 | exact match | Agree |
| Variance of S varS | 79.66666412353516 | 79.66666666666667 | 2.54e-6 | within 0.000001 relative | Agree |
| p-value pValue | 0.2625558376312256 | 0.2625558976426787 | 6.00e-8 | within 0.00001 relative, or 1e-12 absolute | Agree |
Against pymannkendall (pymannkendall 1.4.3)
| Value | pymannkendall | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 10 | 10 | 0 | exact match | Agree |
| Mann-Kendall S s | 11 | 11 | 0 | exact match | Agree |
| Variance of S varS | 79.66666666666667 | 79.66666666666667 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 1.1203705304599068 | 1.1203705304599068 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.2625558976298561 | 0.2625558976426787 | 1.28e-11 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | 0 | 0 | 0 | within 0.000001 relative | Agree |
| Trend direction direction | No trend | No trend | - | exact match | Agree |
Not run for this scenario
- GSI Mann-Kendall Toolkit - not included in this comparison run
Ties inside every season
Boundary caseInput
16 points
| x | value | season |
|---|---|---|
| 1 | 9 | 0 |
| 2 | 9 | 1 |
| 3 | 5 | 2 |
| 4 | 5 | 3 |
| 5 | 9 | 0 |
| 6 | 7 | 1 |
| 7 | 5 | 2 |
| 8 | 3 | 3 |
| 9 | 7 | 0 |
| 10 | 7 | 1 |
| 11 | 3 | 2 |
| 12 | 3 | 3 |
| 13 | 7 | 0 |
| 14 | 5 | 1 |
| 15 | 3 | 2 |
| 16 | 1 | 3 |
Settings: seasonPeriod = 4
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 16 | 16 | 0 | exact match | Agree |
| Mann-Kendall S s | -18 | -18 | 0 | exact match | Agree |
| Variance of S varS | 28.666666666666668 | 28.666666666666668 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -3.175121312459921 | -3.175121312459921 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.00149773871335081 | 0.00149773871328951 | 6.13e-14 | within 1e-9 | Agree |
| season.0.s season.0.s | -4 | -4 | 0 | within 0.000001 relative | Agree |
| season.0.varS season.0.varS | 6.666666666666667 | 6.666666666666667 | 0 | within 0.000001 relative | Agree |
| season.1.s season.1.s | -5 | -5 | 0 | within 0.000001 relative | Agree |
| season.1.varS season.1.varS | 7.666666666666667 | 7.666666666666667 | 0 | within 0.000001 relative | Agree |
| season.2.s season.2.s | -4 | -4 | 0 | within 0.000001 relative | Agree |
| season.2.varS season.2.varS | 6.666666666666667 | 6.666666666666667 | 0 | within 0.000001 relative | Agree |
| season.3.s season.3.s | -5 | -5 | 0 | within 0.000001 relative | Agree |
| season.3.varS season.3.varS | 7.666666666666667 | 7.666666666666667 | 0 | within 0.000001 relative | Agree |
| Theil-Sen slope theilSenSlope | -0.25 | -0.25 | 0 | within 0.000001 relative | Agree |
Not run for this scenario
- USEPA ProUCL - ProUCL does not implement the seasonal Mann-Kendall test, so these scenarios are compared against R EnvStats, which does.
- GWSDAT - GWSDAT has no seasonal Mann-Kendall; nothing to compare
Ties producing a Kendall S the untied distribution cannot reach
Boundary caseInput
8 points
| x | value |
|---|---|
| 1 | 2 |
| 2 | 4 |
| 3 | 3 |
| 4 | 3 |
| 5 | 3 |
| 6 | 3 |
| 7 | 3 |
| 8 | 3 |
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 1 | 1 | 0 | exact match | Agree |
| Variance of S varS | 37 | 37 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 0 | 0 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 1 | 1 | 0 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | 0 | 0 | 0 | within 0.000001 relative | Agree |
| Intercept intercept | 3 | 3 | 0 | within 0.000001 relative | Agree |
Against USEPA ProUCL (ProUCL 5.2.0)
| Value | USEPA ProUCL | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 1 | 1 | 0 | exact match | Agree |
| Variance of S varS | 36.99999999999999 | 37 | 7.11e-15 | within 1e-9 relative | Agree |
| Standard normal z z | 0 | 0 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 1 | 1 | 0 | within 1e-9 | Agree |
Against GWSDAT (GWSDAT 3.3.0, R 4.6.1)
| Value | GWSDAT | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 1 | 1 | 0 | exact match | Agree |
| Variance of S varS | 37 | 37 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 1 | 1 | 0 | within 0.00001 relative, or 1e-12 absolute | Agree |
Against pymannkendall (pymannkendall 1.4.3)
| Value | pymannkendall | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 8 | 8 | 0 | exact match | Agree |
| Mann-Kendall S s | 1 | 1 | 0 | exact match | Agree |
| Variance of S varS | 37 | 37 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | 0 | 0 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 1 | 1 | 0 | within 1e-9 | Agree |
| Theil-Sen slope theilSenSlope | 0 | 0 | 0 | within 0.000001 relative | Agree |
| Trend direction direction | No trend | No trend | - | exact match | Agree |
Not run for this scenario
- GSI Mann-Kendall Toolkit - not included in this comparison run
Two seasons, the fewest the test allows
Boundary caseInput
10 points
| x | value | season |
|---|---|---|
| 1 | 8 | 0 |
| 2 | 14 | 1 |
| 3 | 7 | 0 |
| 4 | 13 | 1 |
| 5 | 6 | 0 |
| 6 | 12 | 1 |
| 7 | 5 | 0 |
| 8 | 11 | 1 |
| 9 | 4 | 0 |
| 10 | 10 | 1 |
Settings: seasonPeriod = 2
Against R EnvStats / nortest (EnvStats 3.1.0, nortest 1.0-4, R 4.6.1)
| Value | R EnvStats / nortest | EnviroAutomate | Difference | Agreement band | Verdict |
|---|---|---|---|---|---|
| Sample size (n) n | 10 | 10 | 0 | exact match | Agree |
| Mann-Kendall S s | -20 | -20 | 0 | exact match | Agree |
| Variance of S varS | 33.333333333333336 | 33.333333333333336 | 0 | within 1e-9 relative | Agree |
| Standard normal z z | -3.2908965343808667 | -3.2908965343808667 | 0 | within 0.000001 relative | Agree |
| p-value pValue | 0.000998686379180259 | 0.00099868637926237 | 8.21e-14 | within 1e-9 | Agree |
| season.0.s season.0.s | -10 | -10 | 0 | within 0.000001 relative | Agree |
| season.0.varS season.0.varS | 16.666666666666668 | 16.666666666666668 | 0 | within 0.000001 relative | Agree |
| season.1.s season.1.s | -10 | -10 | 0 | within 0.000001 relative | Agree |
| season.1.varS season.1.varS | 16.666666666666668 | 16.666666666666668 | 0 | within 0.000001 relative | Agree |
| Theil-Sen slope theilSenSlope | -0.5 | -0.5 | 0 | within 0.000001 relative | Agree |
Not run for this scenario
- USEPA ProUCL - ProUCL does not implement the seasonal Mann-Kendall test, so these scenarios are compared against R EnvStats, which does.
- GWSDAT - GWSDAT has no seasonal Mann-Kendall; nothing to compare
Evidence generated 2026-08-26 from a full comparison run against the versions named above.
