Software engineers and metrology researchers have released pt13528, an open-source Python library implementing the statistical evaluation procedures of ISO 13528:2022 with Amendment 1:2026 for proficiency testing schemes. In external quality assessment and interlaboratory comparisons, proficiency testing evaluates laboratory competence by comparing measurement results against peer data or reference values under ISO/IEC 17025 and ISO/IEC 17043. While international metrological standards specify mathematical procedures for assigning consensus values, evaluating dispersion, and generating performance scores, previous software solutions were predominantly closed-source commercial platforms, unreleased proprietary code, or fragmented statistical packages. By integrating fifty-two functions across eight dedicated modules tied directly to clauses of the standard and verifying them against 255 printed values, the new open package provides a transparent computational engine that can be independently audited and reproduced by accreditation bodies and proficiency testing providers.
The ISO 13528 standard governs the statistical treatment of proficiency testing data, providing mathematical definitions for assigned values, standard uncertainties, proficiency assessment standard deviations, and participant performance metrics. Within this framework, outlier-resistant robust estimators are central to preventing aberrant measurements from skewing consensus evaluations. However, recent scientific literature highlights that differences in estimator choice, algorithmic implementations, and stopping criteria can directly alter the performance scores assigned to participating laboratories. ISO/IEC 17043 and ISO 13528 explicitly require proficiency testing providers to ensure that their statistical software is rigorously validated, and accreditation assessors require verifiable evidence. Despite these mandates, earlier benchmark studies comparing estimators such as Algorithm A and the Q/Hampel method relied on private in-house programs written in C# or MATLAB without publicly released source code.
Designed as a lightweight, state-free computational library without a user interface, pt13528 addresses this validation gap by translating ISO 13528:2022 with Amendment 1:2026 into modular Python code. The software was engineered as an open-source re-implementation of the calculation engine from LAKSiS, a commercial proficiency testing platform written in PHP that remains operational in production. Requiring Python 3.10 or higher alongside NumPy and SciPy, the architecture organizes fifty-two public functions across eight distinct modules. Seven of these modules mirror the formal structural divisions of the ISO standard, handling assigned values, standard deviations for proficiency assessment, performance scores, graphical methods, ordinal quantities, homogeneity and stability testing, and robust estimators. The eighth module, designated as record, acts as a coordinator by aggregating calculations from assigned value and scoring components into structured round summaries. Across the codebase, all public functions operate strictly on numbers or sequences without persistent state, input-output side effects, or external calls, with every docstring explicitly documenting its corresponding clause or formula.
The scope of pt13528 encompasses the major robust estimators detailed in Annex C of the standard, alongside screening and testing routines. The library implements Algorithm A and Algorithm S, which are also standardized within ISO 5725-5 for precision evaluation. In particular, Algorithm A represents Huber’s proposal 2 M-estimator with a standard tuning constant of 1.5 recommended by the Analytical Methods Committee. For computationally intensive evaluations, Clause C.5 provides the Q method, the Hampel estimator, and the Qn scale estimator. The library offers the Hampel estimate through both iterative reweighting and a deterministic finite-step algorithm that yields a unique numerical result. Beyond location and dispersion, the package supports bootstrap standard errors for consensus value uncertainty, Grubbs and Cochran outlier tests referenced through ISO 5725-2, small-sample dispersion procedures, and the modified Horwitz model formulated by Thompson for establishing target standard deviations. Homogeneity and stability checks outlined in Annex B are fully supported for arbitrary replicate counts, incorporating expanded criteria for repeatability and sampling error.
Where the underlying international standard leaves computational discretion to implementers, pt13528 makes these algorithmic choices explicit through parameterization while setting reproducible defaults. For iterative estimators such as Algorithm A and Algorithm S, the library defaults to iterating until full numerical convergence with a relative tolerance of 10⁻¹⁰, while retaining the standard’s legacy three-significant-figure stopping rule as an optional setting. The implementation employs the exact consistency factors printed in the standard—specifically 1.134 for Algorithm A and the tabular coefficients of Table C.1 for Algorithm S—allowing exact reproduction of printed examples. For median uncertainty calculations, the library defaults to normalized interquartile ranges derived via linear quartile interpolation in NumPy, reproducing the worked values of Annex E Table E.5. Furthermore, in implementing the Qn estimator, the codebase incorporates the formal updates of Amendment 1:2026, utilizing the authorial order statistic definition and the corrected scaling constant of 2.2191 rather than the historical typographical error of 2.2219 that persisted in earlier standard printings.
The integrity of the codebase rests on an automated testing suite comprising 176 test routines that achieve 95 percent statement coverage and 88 percent branch coverage. Central to this testing infrastructure is an open ledger of 255 reference values directly transcribed from the printed text of ISO 13528:2022. The library successfully reproduces all 255 values to within half a unit of the last printed decimal digit. Within this verification ledger, 227 figures originate from worked examples across Annex E—including examples E.1 through E.7, E.9, E.10, E.12, and E.13—while 28 values represent critical factors for homogeneity testing derived from chi-squared and F distributions. Mutation testing executed with mutmut across 2,885 mutants yielded an initial mutation kill rate of 73 percent, prompting the inclusion of boundary and signal tests in subsequent versions that increased the mutation score to 79 percent.
To substantiate computational reliability beyond internal consistency checks, the developers benchmarked pt13528 against established independent statistical packages across Python, R, and Go. When evaluated with exact theoretical consistency factors, Algorithm A and Algorithm S matched the implementations in the R package metRology within 10⁻¹³ across 200 synthetic datasets, while deviations remained under 0.25 percent when using the standard’s three-decimal rounded factors. Algorithm A similarly achieved numerical agreement to within 10⁻⁹ with Huber’s proposal 2 in statsmodels across 300 datasets. The Qn scale estimator concurred with R’s robustbase package within 7 × 10⁻⁵, corresponding to the limits imposed by rounded tabular constants. When compared against Robusto, an independent Go library, the Hampel estimator matched across 600 test cases to within 10⁻¹⁰ times the robust standard deviation.
The systematic verification protocol revealed two substantial discrepancies in the printed reference examples of ISO 13528:2022 that have not yet been formally acknowledged by the drafting committee. In Table E.1, the robust mean for the third dataset column is printed as 23.95, whereas applying the standard’s three-figure stopping criterion yields 23.9601 and full iterative convergence yields 23.9585. Systematic exploration across 324 algorithmic variations demonstrated that no combination of starting values, constants, and rounding rules generates the printed value, suggesting the printed figure resulted from post-convergence truncation after the second decimal place rather than standard rounding. More critically, the performance z scores printed in Table E.10 of example E.12 are explicitly labeled in the text and notes as being derived from robust estimators. However, exhaustive combinatorial evaluation of 35 location and scale pairings proved that the printed z scores match only the arithmetic mean and sample standard deviation, exhibiting classical properties of zero mean and unit variance. A validation attempting to reproduce Table E.10 using Algorithm A obtains a mean of 11.17 instead of the printed 11.54.
Beyond isolated discrepancies, the authors conducted an empirical investigation into the standard’s permitted stopping rule for Algorithm A, which allows iterative termination when the third significant digits of location and scale cease to change. Evaluating this rule across 5,200 simulated rounds showed that the iteration halted after a median of 6 iterations compared to 28 required for full numerical convergence. Consequently, the resulting robust standard deviation s* differed from its converged counterpart in 50 percent of datasets, causing action or warning signals of z scores to alter in 34 out of 120,754 participant evaluations. Because significant digits depend on measurement units, scaling inputs by 25.4 altered the resulting standard deviation in 4,164 datasets and shifted 43 participant signals. Even more dramatically, if the starting median and scaled median absolute deviation are treated as an initial iteration step, updating kelvin measurements compared against degrees Celsius produced extreme shifts in estimated scale, yielding four false action signals. These sensitivities demonstrate why the developers recommend full convergence over premature significant-digit cutoffs.
Despite its comprehensive clause mapping, the authors outline clear boundaries regarding the current release of pt13528. The software functions strictly as a calculation engine without administrative decision logic; proficiency testing coordinators remain responsible for selecting appropriate estimators, target standard deviations, and scoring formulas. Furthermore, certain non-procedural clauses of ISO 13528—such as expert consensus under Clause 7.6, combined scoring without explicit formulae under Clause 9.9, and specific plotting routines under Clause 10—remain unaddressed. While the core algorithmic routines have undergone extensive synthetic benchmarking, real-world data validation remains primarily anchored in printed reference sets like the mercury-in-feed interlaboratory comparison IMEP-111, alongside small preliminary geotechnical trial rounds. Released under the open-source LGPL-3.0-or-later license, the package has not yet accumulated extensive adoption outside its authoring team. As future milestones, the research group plans to develop external reporting utilities, expand coverage of graphical diagnostic tools, and formally submit their empirical findings regarding printed tabular discrepancies and stopping-rule instabilities to the relevant ISO technical committee.
Subject of Research: Open-source Python implementation and computational verification of ISO 13528 proficiency testing statistics
Article Title: pt13528: An open-source Python library for proficiency testing statistics according to ISO 13528
Article References: Sert, M., Yağan, M. K., Aydın, A., Heidarizadeh, M., Tilki, E., Selek, A. E., & Mete Sert, A. (2026). pt13528: An open-source Python library for proficiency testing statistics according to ISO 13528. SoftwareX, 36, Article 103224. https://doi.org/10.1016/j.softx.2026.103224
Image Credits: AI Generated
DOI: 10.1016/j.softx.2026.103224
Keywords: ISO 13528, proficiency testing, robust statistics, Algorithm A, Algorithm S, Hampel estimator, Qn estimator, Q method, interlaboratory comparisons, ISO/IEC 17043, ISO/IEC 17025, pt13528, z scores, software verification, homogeneity testing, Huber proposal 2, mutation testing
News Source: Denise Maddox. (November 14, 2026). Open-Source Python Library pt13528 Verifies ISO Proficiency Statistics and Exposes Discrepancies. Scienmag.



