Measurement Errors, Uncertainty & Calibration
No measurement is exact. Learn gross, systematic and random errors, statistics of repeated readings, the GUM method for Type A and Type B uncertainty, combined and expanded uncertainty, propagation of uncertainty, traceability to national standards, calibration procedures (as-found / as-left, 5-point checks), calibration intervals, and test uncertainty ratio — with a real uncertainty budget in Python.
A measurement result is incomplete without a statement of how uncertain it is. '100.11 kPa' means little; '100.11 ± 0.06 kPa (k = 2)' tells an engineer exactly how far to trust it.
Calibration compares an instrument with a more accurate reference that is itself traceable, through an unbroken chain, to national standards (NPL, NIST, PTB). In regulated industries (pharma, food, oil & gas custody transfer) calibration records are legal evidence.
An analogy
Measurement uncertainty is like a weather forecast's 'chance of rain': it does not say you are wrong, it says how confident you can be — and the forecaster (instrument) must itself be checked against reality (calibration) from time to time.
Types of error
Errors fall into three families:
- Gross errors — human mistakes: wrong range, misread scale, wiring error
- Systematic errors — consistent bias: zero offset, wrong calibration, loading, environmental effects (correctable)
- Random errors — unpredictable scatter from noise and small fluctuations (reduced by averaging)
Uncertainty the GUM way
The Guide to the Expression of Uncertainty in Measurement (GUM, JCGM 100) treats every source as a standard uncertainty. Type A comes from statistics of repeated readings; Type B from everything else — calibration certificates, specifications, resolution, temperature effects — converted using an assumed distribution (rectangular: a/√3, triangular: a/√6, normal: a/k). Sources are combined by root-sum-square with sensitivity coefficients, then multiplied by k = 2 for ≈95% confidence.
Calibration procedure
A typical 5-point transmitter calibration:
- Record as-found readings at 0, 25, 50, 75, 100% of span, upscale and downscale
- Compare errors with tolerance; if out of tolerance, investigate the impact on the process since the last calibration
- Adjust zero and span (and sensor trim for smart transmitters)
- Record as-left readings, attach a label and certificate with the reference's traceability
- Adjust the calibration interval using as-found history
Traceability, decision rules and MSA
Traceability requires every reference to have a valid certificate with its uncertainty, back to SI units. A TUR of at least 4:1 keeps false-accept risk low; when it is smaller, guard-banding tightens the acceptance limit (ISO/IEC 17025 decision rules). In manufacturing, measurement system analysis (Gauge R&R) separates instrument and operator variation from process variation.
Formulas
- Mean and standard deviation:
x̄ = Σxᵢ/n; s = √(Σ(xᵢ − x̄)²/(n − 1)) - Type A uncertainty of the mean:
u_A = s / √n - Type B, rectangular distribution:
u_B = a / √3 (±a limits) - Resolution contribution:
u_res = (resolution/2) / √3 - Combined (uncorrelated):
u_c = √(Σ (cᵢ·uᵢ)²), cᵢ = ∂f/∂xᵢ - Expanded uncertainty:
U = k·u_c, k = 2 ≈ 95% coverage - Test uncertainty ratio:
TUR = tolerance of DUT / uncertainty of standard ≥ 4:1
Worked example: Type B from a spec
Given: Calibrator accuracy ±0.05 kPa (rectangular)
Find: Standard uncertainty.
- u = 0.05 / √3
Answer: 0.029 kPa
Worked example: Propagation
Given: Power P = V·I, V = 10 V ± 0.05 V (u), I = 2 A ± 0.01 A (u)
Find: u(P).
- cV = I = 2, cI = V = 10
- u = √((2·0.05)² + (10·0.01)²) = √(0.01 + 0.01)
Answer: u(P) = 0.14 W on 20 W
Worked example: TUR
Given: Transmitter tolerance ±0.25% of span, calibrator uncertainty ±0.05%
Find: TUR.
- 0.25 / 0.05
Answer: 5:1 ✓ (≥ 4:1)
GUM uncertainty budget
import math, statistics
# Type A (repeat readings) + Type B (spec sheet) uncertainty, GUM method
readings = [100.12, 100.08, 100.15, 100.10, 100.09, 100.13, 100.11, 100.07, 100.14, 100.10]
mean = statistics.mean(readings)
s = statistics.stdev(readings)
uA = s / math.sqrt(len(readings)) # standard uncertainty of the mean
uB_acc = 0.05 / math.sqrt(3) # +/-0.05 accuracy, rectangular
uB_res = 0.01 / (2 * math.sqrt(3)) # 0.01 resolution
uc = math.sqrt(uA**2 + uB_acc**2 + uB_res**2)
U = 2 * uc # k = 2, ~95 % coverage
print(f"mean {mean:.3f}, s {s:.4f}, uA {uA:.4f}")
print(f"uB(acc) {uB_acc:.4f}, uB(res) {uB_res:.4f}, uc {uc:.4f}")
print(f"result: {mean:.3f} +/- {U:.3f} (k=2)")
# mean 100.109, s 0.0260, uA 0.0082
# uB(acc) 0.0289, uB(res) 0.0029, uc 0.0302
# result: 100.109 +/- 0.060 (k=2)The instrument's accuracy spec (Type B) dominates here; taking more readings only shrinks u_A. An uncertainty budget shows where to spend money: a better reference would help, more averaging would not.
Common mistakes
- Wrong: Reporting a result with no uncertainty. — Right: Always state U and k.
- Wrong: Adding uncertainties linearly. — Right: Combine independent sources by root-sum-square.
- Wrong: Calibrating with a reference only as good as the DUT. — Right: Aim for TUR ≥ 4:1.
- Wrong: Adjusting before recording as-found data. — Right: As-found data drives interval and impact decisions.
Applications
- Custody transfer: Oil and gas sold by flow measurement with legal uncertainty limits.
- Pharma (GMP): Calibration records audited by regulators.
- Safety systems: Proof tests include sensor calibration checks.
- Research labs: Results reported with expanded uncertainty.
Key takeaways
- Gross, systematic, random errors.
- u_A = s/√n, u_B from specs, RSS to u_c, U = k·u_c.
- Calibration: as-found → adjust → as-left, traceable.
- TUR ≥ 4:1 for reliable pass/fail decisions.
Going further
- Monte Carlo uncertainty (GUM Supplement 1): For non-linear models or non-normal inputs.
- Correlated inputs: Covariance terms added when sources share a reference.
- Calibration interval analysis: Reliability-based intervals from as-found statistics.