# ISO 17025 Measurement Uncertainty

> Estimate measurement uncertainty per ISO/IEC 17025:2017 Clause 7.6 using GUM (JCGM 100:2008) methodology. Builds uncertainty budgets with Type A/B component identification, distribution divisors, sensitivity coefficients, law of propagation of uncertainty, Welch-Satterthwaite for effective degrees of freedom, and coverage factor justification per ILAC P14:01/2020. Validates budget completeness and Clause 7.8.3/7.8.4 reporting compliance including decision rules and guard-band methods for conformity statements.



Tags: ISO 17025, Measurement Uncertainty, GUM, JCGM 100, Clause 7.6, Metrology, Type A, Type B, ILAC P14, EA-4/02, Calibration


## Example Prompts

- Build a measurement uncertainty budget for our tensile strength testing method
- Estimate uncertainty for our pH calibration procedure using GUM methodology
- Validate our uncertainty budget for completeness before accreditation audit
- Create an uncertainty reporting template that meets Clause 7.8.4 requirements for calibration certificates
- Help me apply Welch-Satterthwaite to determine the correct coverage factor when my Type A component is based on only 6 replicates

URL: https://rakenne.app/skills/iso17025-measurement-uncertainty/index.md

Try this skill: https://rakenne.app/a/?skill=iso17025-measurement-uncertainty


## Overview

Measurement uncertainty is the single most technically challenging requirement in ISO/IEC 17025:2017. Clause 7.6 requires every laboratory to identify the contributions to measurement uncertainty, evaluate each one, and combine them into an expanded uncertainty that accompanies reported results. The GUM (Guide to the Expression of Uncertainty in Measurement, JCGM 100:2008) provides the framework, but translating its abstract formalism into a working budget for a specific analytical method is where most laboratories struggle.

This skill walks through the entire GUM methodology step by step: defining the measurand and measurement model, identifying uncertainty sources via cause-and-effect analysis, classifying components as Type A (statistical) or Type B (non-statistical), assigning probability distributions with correct divisors, calculating sensitivity coefficients from the model equation, propagating uncertainties via RSS or the full correlated formula, and determining the coverage factor with proper justification. When Type A components are based on small sample sizes, it applies the Welch-Satterthwaite formula to determine effective degrees of freedom rather than blindly defaulting to k=2.

The reporting side is equally important. Testing laboratories (Clause 7.8.3) must report uncertainty when it is relevant to the validity of results or when a customer requests it. Calibration laboratories (Clause 7.8.4) must always include uncertainty on certificates. When results are compared to specification limits, a decision rule per Clause 7.8.6 is mandatory -- the skill helps define guard-band methods per ILAC G8:09/2019.

### What It Covers

- **Measurand definition** -- precisely stating what is measured, its unit, matrix, and range per GUM terminology
- **Measurement model** -- the functional relationship Y = f(X1, X2, ..., Xn) relating input quantities to the output
- **Source identification** -- cause-and-effect (Ishikawa) analysis covering instrument, CRM, repeatability, environment, operator, and sampling contributions
- **Type A evaluation** -- standard deviation of the mean from repeated observations (u = s/sqrt(n))
- **Type B evaluation** -- calibration certificates (U/k), specifications, drift data, expert judgment
- **Distribution assignment** -- rectangular (sqrt(3)), triangular (sqrt(6)), U-shaped (sqrt(2)), normal (stated k)
- **Sensitivity coefficients** -- partial derivatives from the measurement model to convert input uncertainties to measurand units
- **Correlation assessment** -- identifying shared sources and including cross-terms when inputs are correlated
- **Combined standard uncertainty** -- law of propagation via RSS (uncorrelated) or full formula with cross-terms
- **Welch-Satterthwaite** -- effective degrees of freedom when Type A components have small n, with t-distribution coverage factor
- **Coverage factor justification** -- k=2 only when justified (approximately normal, sufficient degrees of freedom); otherwise k from t-table
- **Expanded uncertainty** -- U = k * u_c(y) with stated confidence level
- **Decision rules** -- guard-band methods for conformity statements per Clause 7.8.6 and ILAC G8:09/2019
- **Budget table format** -- standardized columns: Source, Type A/B, Distribution, Divisor, Standard u(xi), Sensitivity ci, Contribution ui, Degrees of freedom

## Example Conversation

> **You:** I need to build an uncertainty budget for our EPA 200.8 metals analysis at LabTech Analytical. We measure cadmium in drinking water by ICP-MS -- that's a good one to start with because cadmium has a tight MCL at 5 ug/L and our clients need conformity statements.
>
> **Agent:** Cadmium by ICP-MS is a great first budget because it is straightforward enough to follow the GUM steps clearly but has real consequences for the conformity statement. Let me start building the model.
>
> **Measurand**: Concentration of cadmium (Cd) in drinking water, expressed in ug/L, over the range 0.5--50 ug/L.
>
> **Measurement model**: C_Cd = (I_sample - I_blank) / S * D * V_final / V_sample
>
> Where I = instrument response, S = calibration sensitivity, D = dilution factor, V = volume factors.
>
> For the uncertainty sources, I need to know:
> 1. How many calibration points do you use, and what is your calibration certificate uncertainty for the Cd standard?
> 2. What is your typical repeatability -- do you have replicate data from your validation study?
> 3. What volumetric equipment do you use (auto-pipettes, volumetric flasks)?
>
> **You:** 5-point cal from 0.5 to 50 ug/L using Inorganic Ventures CRM (cert says U = 0.5% at k=2). Repeatability from our verification study: 7 reps of NIST 1643f gave mean 6.47 ug/L vs certified 6.568 ug/L, SD = 0.18 ug/L. We use Eppendorf Research Plus pipettes (cal cert says U = 0.8% at k=2) and class A volumetric flasks.
>
> **Agent:** Good data. Here are the uncertainty sources I've identified:
>
> | Source | Type | Input |
> |--------|------|-------|
> | Repeatability (7 reps, s = 0.18 ug/L) | A | u = s/sqrt(7) = 0.068 ug/L, 6 df |
> | CRM standard (U = 0.5%, k=2) | B, Normal | u = 0.5%/2 = 0.25% relative |
> | Calibration curve fit (residual SD) | A | Need your cal data |
> | Pipette volume (U = 0.8%, k=2) | B, Normal | u = 0.8%/2 = 0.4% relative |
> | Volumetric flask (Class A, 100 mL, tol = +/- 0.08 mL) | B, Rectangular | u = 0.08/sqrt(3) = 0.046 mL |
> | Temperature effect on volume (lab at 22 +/- 3 C) | B, Rectangular | u = 3 * 2.1e-4 / sqrt(3) |
> | Bias (mean vs NIST certified value) | B | Potential correction or added component |
>
> One key question: your repeatability is based on only 7 observations, so the degrees of freedom is 6. That means we cannot assume k=2 gives 95% confidence. I will apply Welch-Satterthwaite to determine the effective degrees of freedom and read k from the t-table.
>
> **You:** I didn't realize that mattered. What difference does it make?
>
> **Agent:** With 6 degrees of freedom for a dominant Type A component, the t-value at 95% confidence is 2.45 rather than 2.00. If your Type A component contributes significantly to the combined uncertainty, the coverage factor will be higher than 2, giving a wider uncertainty interval. ILAC P14 specifically prohibits using k=2 without justification.
>
> I've completed the budget. Running `uncertainty_budget_validator`...
>
> Result: **PASS-WITH-WARNINGS**
> - WARNING: Budget table may be missing column: divisor
>
> I'll add the explicit divisor column. After correction -- running again: **PASS**.
>
> Now running `mu_reporting_checker` on the reporting section...
>
> Result: **PASS**. Decision rule defined (simple acceptance with guard band per ILAC G8 w4 method -- customer bears the risk of false acceptance). Cadmium at 4.8 ug/L +/- 0.7 ug/L: the upper bound of the uncertainty interval (5.5 ug/L) exceeds the 5 ug/L MCL, so under the stated decision rule, the result is reported as "does not conform."
>
> Budget and reporting procedure saved to `output/`.

## Sample Output Excerpt

The skill produces a measurement uncertainty procedure and a budget template with a worked example. Here is a representative excerpt from the cadmium uncertainty budget.

---

## Uncertainty Budget: Cadmium (Cd) in Drinking Water by ICP-MS (EPA 200.8)

### Measurand

Concentration of cadmium (Cd) in drinking water, expressed in ug/L. Measurement model:

C_Cd = ((I_sample - I_blank) / S) * D * (V_final / V_sample)

### Budget Table

| Source | Type | Distribution | Divisor | Value | Standard u(xi) | Sensitivity ci | Contribution ui (ug/L) | df |
|--------|------|-------------|---------|-------|---------------|---------------|----------------------|-----|
| Repeatability (n=7, s=0.18) | A | Normal | sqrt(7) | 0.18 ug/L | 0.068 ug/L | 1 | 0.068 | 6 |
| CRM standard purity | B | Normal | k=2 | 0.5% rel | 0.25% rel | C_Cd | 0.016 | inf |
| Calibration curve fit | A | Normal | sqrt(5) | 0.12 ug/L (residual) | 0.054 ug/L | 1 | 0.054 | 3 |
| Pipette volume (100 uL) | B | Normal | k=2 | 0.8% rel | 0.40% rel | C_Cd | 0.026 | inf |
| Flask volume (100 mL, Class A) | B | Rectangular | sqrt(3) | 0.08 mL | 0.046 mL | C_Cd/V | 0.003 | inf |
| Temperature (22 +/- 3 C) | B | Rectangular | sqrt(3) | 3.7e-4 rel | 2.1e-4 rel | C_Cd | 0.001 | inf |
| Bias (NIST 1643f) | B | Rectangular | sqrt(3) | 0.098 ug/L | 0.057 ug/L | 1 | 0.057 | inf |

### Combined and Expanded Uncertainty

- Combined standard uncertainty: u_c = sqrt(0.068^2 + 0.016^2 + 0.054^2 + 0.026^2 + 0.003^2 + 0.001^2 + 0.057^2) = 0.108 ug/L
- Effective degrees of freedom (Welch-Satterthwaite): v_eff = 18
- Coverage factor: k = t_95(18) = 2.10
- **Expanded uncertainty: U = 2.10 * 0.108 = 0.23 ug/L** (at approximately 95% confidence)

### Reporting Statement

"The reported cadmium concentration is 6.47 +/- 0.23 ug/L, where the expanded uncertainty U is calculated using a coverage factor k = 2.10 (based on v_eff = 18, t-distribution at approximately 95% confidence level)."

<!-- /excerpt -->

## Extension Tools

### `uncertainty_budget_validator`

Validates the measurement uncertainty budget document for all required GUM elements. Checks structural completeness of the budget.

| Check | What It Validates | Severity |
|-------|-------------------|----------|
| **Measurand definition** | Quantity, unit, matrix, range stated per GUM terminology | ERROR if absent |
| **Measurement model** | Functional relationship Y = f(X1, X2, ...) present | ERROR if absent |
| **Lab type** | Testing vs. calibration identified (drives reporting clause) | WARNING if unclear |
| **Uncertainty sources** | At least 4 source categories identified | ERROR if fewer than 4 |
| **Type A components** | Statistical evaluation from repeated observations present | ERROR if absent |
| **Type B components** | Non-statistical evaluation from certificates/specs present | ERROR if absent |
| **Distribution types** | Probability distributions assigned with divisors | ERROR if absent |
| **Divisors** | Correct divisors shown (sqrt(3), sqrt(6), sqrt(2), k) | ERROR if absent |
| **Standard uncertainties** | u(xi) values quantified for each component | ERROR if absent |
| **Sensitivity coefficients** | Partial derivatives ci from the model | ERROR if absent |
| **Correlation assumption** | Correlated or uncorrelated stated with justification | ERROR if absent |
| **Combined uncertainty** | u_c(y) calculated via law of propagation | ERROR if absent |
| **Degrees of freedom** | Per-component df and effective df (Welch-Satterthwaite) | WARNING if absent |
| **Coverage factor** | k value stated with justification | ERROR if absent |
| **k=2 justification** | If k=2 used, normal distribution basis documented | WARNING if unjustified |
| **Expanded uncertainty** | U = k * u_c(y) calculated | ERROR if absent |
| **Traceability** | Calibration certificate traceability chain referenced | ERROR if absent |
| **Budget table columns** | Source, Distribution, Divisor, Sensitivity present | WARNING if missing columns |

### `mu_reporting_checker`

Validates that measurement uncertainty reporting meets Clause 7.8.3/7.8.4 requirements and ILAC P14:01/2020.

| Check | What It Validates | Severity |
|-------|-------------------|----------|
| **Coverage factor** | k stated in report/certificate | ERROR if absent |
| **Confidence level** | Coverage probability stated (e.g., approximately 95%) | ERROR if absent |
| **k=2 justification** | Normal distribution basis documented in reporting | WARNING if unjustified |
| **Expanded uncertainty format** | Standard expression with +/- and units | ERROR if absent |
| **Units** | Uncertainty in same units as measurand | WARNING if unclear |
| **Significant figures** | Guidance on rounding (max 2 sig figs on U) | WARNING if absent |
| **Report type distinction** | Test report (Cl.7.8.3) vs. calibration certificate (Cl.7.8.4) | ERROR if ambiguous |
| **Decision rules (Cl.7.8.6)** | Defined when conformity statements are made | ERROR if absent |
| **Guard-band method** | ILAC G8 method cited when conformity statements used | ERROR if conformity without guard band |
| **Customer communication** | How MU is communicated to customers | WARNING if absent |
| **Traceability** | SI traceability referenced in reporting section | WARNING if absent |

## Getting Started

Start by activating the *ISO 17025 Measurement Uncertainty* skill. The agent will ask which method and measurand you want to build the budget for, then walk through the GUM methodology step by step.

Have this information ready:
- The test method and measurand (e.g., cadmium in drinking water by ICP-MS)
- Repeatability data from your method validation (replicate measurements with mean and standard deviation)
- Calibration certificate uncertainties for your reference standards and CRMs
- Volumetric equipment tolerances and calibration certificates
- Environmental condition ranges in your laboratory (temperature, humidity)
- Calibration curve data (number of points, residual standard deviation)
- Whether you make conformity statements (pass/fail against specification limits)
- Your laboratory type (testing, calibration, or both)

If you have already completed the **ISO 17025 Method Validation** skill, the agent will use your precision and bias data directly as uncertainty inputs. The validation skill explicitly identifies these values as Clause 7.6 feeds, so the handoff is seamless.



---

Back to [Skill Library](https://rakenne.app/skills/index.md)
