HomeCalculatorsEngineeringUncertainty Propagation Calculator
Engineering calculator

Uncertainty Propagation Calculator

Propagate measurement uncertainty using GUM linear propagation, covariance, uncertainty budgets, or Monte Carlo simulation. Optional correlation ρ and coverage factor k → U. Runs locally in your browser.

Live result
Result

Enter values to calculate.

Inputs
Mode
Formula
Trust summary CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance · Linear GUM: sum, difference, product, quotient, RSS, sensitivity, budget. Correlation matrices must be PSD (singular PSD allowed). O3 mpmath (80 dps) tabulated linear u_c. Monte Carlo: O2-B seeded mulberry32+Box-Muller replay of y_mean/u_c/percentiles (≤2 ULP) for sum, difference, product, quotient, correlated normal, and budget/rectangular; linear_u_c vs first-order GUM.
Input interpretation
Enter values to calculate.
Result
Verified scope
Linear GUM: sum, difference, product, quotient, RSS, sensitivity, budget. Correlation matrices must be PSD (singular PSD allowed). O3 mpmath (80 dps) tabulated linear u_c. Monte Carlo: O2-B seeded mulberry32+Box-Muller replay of y_mean/u_c/percentiles (≤2 ULP) for sum, difference, product, quotient, correlated normal, and budget/rectangular; linear_u_c vs first-order GUM.
Assurance
Engineering
Declared partition coverage
PASS · 9/9 declared partitions (sum, difference, product, quotient, rss, sensitivity, budget, montecarlo, invalid-domain) · Matrix
Deferred
Adaptive MCM, arbitrary PDFs, and the full JCGM 101 validation procedure. Budget sensitivity-coefficient dimensional algebra is not automatically verified. Correlated non-normal MC remains out of O2. O3 does not cover Monte Carlo.
Numerical scope
Published modes: linear GUM (sum, difference, product, quotient, RSS, sensitivity, budget) and seeded Monte Carlo replay of y_mean/u_c/percentiles. Not a full JCGM 101 validation procedure. RNG: mulberry32; normal sampler: Box-Muller. ≤2 ULP vs O3 applies only to the published tabulated linear GUM vectors (sum, difference, ρ=1 difference, product, quotient, RSS, sensitivity, 3×3 PSD, singular PSD, budget). It is not a whole-domain guarantee and does not cover Monte Carlo.
Known limitations
  • Core CVP does not include live graph, viewport, or pointer interaction.
Model
Combined standard uncertainty (optional correlations) and optional expanded U = k·u_c for binary ops, sensitivity, or RSS.
Scope
Default uncorrelated (rho=0); optional correlations when provided.
Verification
Engine tested · Source checked · v1.9.8 · CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance · Linear GUM: sum, difference, product, quotient, RSS, sensitivity, budget. Correlation matrices must be PSD (singular PSD allowed). O3 mpmath (80 dps) tabulated linear u_c. Monte Carlo: O2-B seeded mulberry32+Box-Muller replay of y_mean/u_c/percentiles (≤2 ULP) for sum, difference, product, quotient, correlated normal, and budget/rectangular; linear_u_c vs first-order GUM.· View Manifest · CVP overview · Specification
Versions
Calculation 1.9.8 · CVP protocol 1.0.0-proposed · Evidence 2026-09-16.seeded-mc-o3
Verification revision
2026-09-16.seeded-mc-o3 · 29/29 property · digest 77cad1dafb2f
Legacy regression
88/88 tests · Production surface contract 8/8
Trust layers
Verification VERIFIED · Production CURRENT · overall VERIFIED
Reference
O1 model · O3 expected_values · O3 numerical_behavior · O2 expected_values · O2 numerical_behavior
Interfaces
PASS · UI (SSR) / REST / MCP — ui-ssr is query-result HTML, not a live browser session.
Supplemental domain review
Internal · Pass · metrology-engineer
Named expert review
Not performed
CVP suite
18/18 golden · 47/47 CVP boundary · 29/29 invalid · 29/29 property · 10/10 O3 · 6/6 cross-interface · 8/8 CVP contract · Manifest
Evidence
11 legacy golden · 48 legacy boundary · legacy regression suite · 18/18 oracle-backed golden · 29/29 invalid · Artifact integrity PASS · CalculatorX engineering review
This calculator CURRENT · Public schema 1.9.8 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓
Semantic contract
PASS
Full verification

Manifest identity, reference classes, interfaces, suite, and production records.

Formulas

Core equations used by this calculator.

Sumu_c(a+b) = √(u_a² + u_b² + 2ρ u_a u_b)
Differenceu_c(a−b) = √(u_a² + u_b² − 2ρ u_a u_b)
Productu_c = √((b·u_a)² + (a·u_b)² + 2ρ a b u_a u_b)
Quotientu_c = √((u_a/b)² + (a·u_b/b²)² + 2ρ (1/b)(−a/b²) u_a u_b)
Sensitivityu_c = √[Σ(c_i u_i)² + 2 Σ_{i<j} c_i c_j u_i u_j ρ_ij]
RSSu_c = √Σ u_i²
ExpandedU = k · u_c
νeff (WS)νeff = u_c⁴ / Σ ((cᵢ uᵢ)⁴ / νᵢ)
Student-t kk = t_{(1+p)/2, νeff}; U = k·u_c
iDefault ρ=0 (uncorrelated). Optional binary rho or sensitivity correlations[]. Linear first-order approximation; for significant nonlinearity see JCGM 100 Amd.1:2026 or Monte Carlo (JCGM 101). Optional k → U=k·u_c (not νeff). Relative form u_c/|y| when y ≠ 0.

How to use

1

Choose a mode

Binary ops for two quantities; sensitivity when you know ∂f/∂xᵢ; RSS to combine uncertainties alone.

2

Enter values and standard uncertainties

Use the same units for a value and its u. Uncertainties are ≥ 0. Product allows a=0 or b=0; quotient requires b ≠ 0.

3

Read y and u_c

Relative uncertainty u_rel = |u_c/y| is shown only when y ≠ 0.

Example calculations

Common configurations with formula and result.

ϟ

Sum

a = 100 ± 0.1 · b = 50 ± 0.2

u_c = √(0.1² + 0.2²)
y = 150 · u_c ≈ 0.2236
ϟ

Product

a = 10 ± 0.1 · b = 5 ± 0.05

u_c = √((5·0.1)² + (10·0.05)²)
y = 50 · u_c ≈ 0.7071
ϟ

Product at a = 0

a = 0 ± 0.1 · b = 5 ± 0.05

u_c = |b|·u_a
y = 0 · u_c = 0.5 · u_rel undefined
ϟ

Sensitivity

c = [2, 3] · u = [0.1, 0.2]

u_c = √((2·0.1)² + (3·0.2)²)
u_c ≈ 0.6325
ϟ

RSS

u = [0.3, 0.4]

√(0.3² + 0.4²)
u_c = 0.5

Quick reference

Common values at a glance.

Modeyu_c
suma+b√(ua²+ub²)
differencea−b√(ua²+ub²)
producta·b√((b·ua)²+(a·ub)²)
quotienta/b√((ua/b)²+(a·ub/b²)²)
sensitivity(optional)√Σ(cᵢ·uᵢ)²
rss√Σuᵢ²
budgetΣ cᵢ xᵢ (if x set)√Σ(cᵢ uᵢ)² (+ cov)
montecarlosample meansample std (+ percentiles)
i First-order GUM; optional ρ / correlations. Quotient requires b ≠ 0. Optional units & k→U.

Uncertainty Propagation calculator specification

Version 1.9.8 · Engine tested · Supplemental domain review · Internal · 2026-08-10

Calculation status

Review policy · Evidence · Reviewed by CalculatorX engineering review (metrology-engineer)

Definition
For a measurable y = f(x₁,…,xₙ) with standard uncertainties u(xᵢ), the combined standard uncertainty is u_c(y) = √[Σ (∂f/∂xᵢ · u(xᵢ))² + 2 Σ_{i<j} (∂f/∂xᵢ)(∂f/∂xⱼ) u(xᵢ) u(xⱼ) ρᵢⱼ] (GUM first-order). Optional coverage factor k yields expanded U = k·u_c. Binary shortcuts and RSS are provided for common cases.
What it calculates
Combined standard uncertainty (optional correlations) and optional expanded U = k·u_c for binary ops, sensitivity, or RSS.
Inputs
  • mode: sum|difference|product|quotient|sensitivity|rss|budget|montecarlo
  • Binary: a, ua, b, ub; optional unit_a/unit_b, rho, k, nua/nub, type_a/type_b
  • sensitivity: coefficients[], uncertainties[]; optional correlations, dof[], types[], labels[], y, unit, k
  • rss: uncertainties[]; optional dof[], types[], labels[], y, unit, k (no correlations)
  • budget: components[{name,u,c?,type?,nu?,distribution?,x?}]; optional correlations (index or name), y, unit, k/confidence
  • montecarlo: model sum|difference|product|quotient + a,ua,b,ub[,rho] OR components with x; N, seed; optional confidence/k
Outputs
  • u_c — combined standard uncertainty (machine / raw precision)
  • y — result (binary) or optional y (machine precision)
  • u_rel — |u_c/y| when y ≠ 0; null when y = 0
  • reported — { u_c, y, significant_digits: 2, decimal_places, formatted_y, formatted_u_c, optional k, U, formatted_U } human-facing rounding (strings keep trailing zeros JSON numbers cannot)
  • unit — resolved unit label (optional)
  • rho / correlations — correlation used (when applicable)
  • k, U, k_source, confidence — fixed k or Student-t auto-k from confidence + νeff
  • contributions[], largest — diagonal variance share of u_c²
  • nu_eff / nu_eff_infinite — Welch–Satterthwaite when dof/nua/nub provided
Formula
u_c = √[Σ (c_i u_i)² + 2 Σ cov]; optional U = k·u_c
Assumptions
  • Default uncorrelated (rho=0); optional correlations when provided.
  • Linear propagation assumes a local first-order approximation is adequate. For significant model nonlinearity, consider higher-order treatment (JCGM 100:2008/Amd.1:2026) or Monte Carlo propagation (JCGM 101:2008).
Units
  • Quantity Engine v1.1: SI-prefix labels + electrical derived rewrites
  • sum/difference: same dimension → auto-convert (1000 mV + 2 V → 3 V); different dimension → UNIT_MISMATCH
  • product: V×A → VA; A×Ω → V; other pairs → A·B
  • quotient: V/A → Ω; mV/mA → Ω; same SI dimension → '1'; W/A → V
  • Opaque labels (e.g. LSB) still require exact match for sum/difference
  • Budget component units remain label/metadata for now (c may carry dimension)
  • y / u_c / U are reported in the resolved output unit; a/b echo inputs; quantity.converted when scaled
Boundary conditions
  • Missing required fields → MISSING_REQUIRED_INPUT
  • Negative ua/ub → VALUE_MUST_BE_NON_NEGATIVE
  • Unknown mode → INVALID_MODE
  • Quotient with b=0 → DIVISION_BY_ZERO
  • Product with a=0 or b=0 is allowed (absolute form); u_rel omitted when y=0
  • sum/difference with unit_a ≠ unit_b → UNIT_MISMATCH
  • rho ∉ [-1,1] → VALUE_OUT_OF_RANGE; k≤0 → VALUE_MUST_BE_POSITIVE
  • RSS with correlations → INVALID_INPUT
  • confidence with nonzero ρ/correlations → CORRELATED_DOF_NOT_SUPPORTED
  • Monte Carlo rectangular + correlation → CORRELATED_NON_NORMAL_MC_NOT_SUPPORTED
  • Monte Carlo quotient with >5% near-zero denominator draws → MONTECARLO_UNSTABLE
  • n×n correlation matrix not positive semidefinite → CORRELATION_MATRIX_NOT_PSD (pairwise |ρ|≤1 is not sufficient for 3+ variables; singular PSD is allowed)
  • Duplicate unordered (i,j) pair → DUPLICATE_CORRELATION; conflicting ρ for the same pair → CONFLICTING_CORRELATION
Example
sum, a=100±0.1, b=50±0.2 → y=150, u_c≈0.2236 (reported u_c=0.22)
Validation cases

19 published on this page · 88/88 tests · Production surface contract 8/8 · View evidence

  • sum, 100±0.1, 50±0.2 → y=150, u_c≈0.2236, reported.u_c=0.22
  • product, 10±0.1, 5±0.05 → y=50, u_c≈0.7071
  • product, a=0±0.1, b=5±0.05 → y=0, u_c=0.5
  • quotient, a=0±0.1, b=5±0.05 → y=0, u_c=0.02
  • sensitivity c=[2,3] u=[0.1,0.2] → u_c≈0.6325
  • rss [0.3,0.4] → u_c=0.5
  • quotient b=0 → error DIVISION_BY_ZERO
  • mode=bayesian → error INVALID_MODE
  • montecarlo sum, N=20000, seed=42 → u_c ≈ linear √0.05
  • sum, ρ=1, 100±0.1, 50±0.2 → u_c=0.3
  • sum, k=2 → U≈0.4472, reported.U=0.45
  • sensitivity c=[1,1] u=[0.1,0.2] corr ρ01=1 → u_c=0.3
  • sum, nua=9, nub=∞ → nu_eff=225
  • rss u=[0.1], dof=[9], confidence=0.95 → k≈2.262, k_source=student_t
  • budget Vref±0.002 + drift±0.001 → y=5, u_c≈0.002236
  • sum, 1000 mV + 2 V → y=3 V (Quantity Engine SI-prefix)
  • quotient, 10 V / 2 A → y=5 Ω
  • sensitivity 3×3 ρ=0.9/0.9/−0.9 → error CORRELATION_MATRIX_NOT_PSD
  • sensitivity 3×3 all ρ=1 → u_c=0.3 (singular PSD)
Sources
Last reviewed
2026-08-10
Reviewed by
CalculatorX engineering review (metrology-engineer)
Calculation version
1.9.8

Background

Interpretation and common distinctions.

Propagate standard uncertainties with GUM linear propagation, covariance, uncertainty budgets, or Monte Carlo (JCGM 101) — binary ops, sensitivity/RSS, named budget, or MC sampling (optional correlations, νeff / percentile coverage → U).

Default example (sum): 100 ± 0.1 and 50 ± 0.2 → y = 150, u_c ≈ 0.2236.

Supported and not supported

Supported

  • Binary sum / difference / product / quotient (absolute first-order forms)
  • Optional binary correlation ρ and sensitivity correlations[]
  • Sensitivity-coefficient form with covariance terms
  • Named budget components (Type A/B + optional x → y=Σ c x)
  • Interactive Budget Workspace table (add/remove rows + live contribution ranking)
  • Monte Carlo (normal/rectangular draws; seedable)
  • RSS of uncertainties alone (uncorrelated)
  • Optional coverage factor k, or confidence → Student-t k from nu(eff) → U = k · u_c
  • Diagonal contributions + largest contributor; optional Welch–Satterthwaite nu(eff)
  • Optional Type A/B labels (metadata)
  • Quantity Engine (v1.1): SI-prefix conversion + electrical derived rewrites (1000 mV + 2 V → 3 V; V/A → Ω; A·Ω → V; V×A → VA)
  • API via engineering.uncertainty.propagate

Not supported

  • Adaptive or MCMC samplers; arbitrary PDFs; full JCGM 101 validation procedure
  • Student-t auto-k (confidence) when inputs are correlated — use fixed k
  • Correlated Monte Carlo with non-normal (e.g. rectangular) marginals
  • Quotient Monte Carlo when >5% of draws are near a zero denominator (MONTECARLO_UNSTABLE)
  • Full SI quantity algebra (no temperature offsets, no Budget multi-dimension unit algebra, no custom registries)

Agent / API notes

Capability id: engineering.uncertainty.propagate · tool id: uncertainty-propagate · pin calculation_version: 1.9.8.

Share URLs keep active-mode inputs only (hidden Budget/MC fields are not written; stale keys such as uncMcDist / distribution are cleared). Trust tier is internally reviewed (CalculatorX metrology review), not named external expert verification.

For Budget / Monte Carlo (or audit), use Freeze snapshot linkPOST /api/v1/share/s/{id} immutable envelope (calculation_version + inputs + frozen result).

Public Agent Input Schema (1.9.8): mode-discriminated oneOf; Monte Carlo is nested as binary (model,a,ua,b,ub) or budget (components with x); Budget correlations[].i/j accept index or name; components use canonical u / c / x only (runtime still accepts legacy aliases); nua/nub allow null for ν→∞.

Stable error codes: MISSING_REQUIRED_INPUT, INVALID_NUMBER, VALUE_MUST_BE_NON_NEGATIVE, VALUE_MUST_BE_POSITIVE, VALUE_OUT_OF_RANGE, DIVISION_BY_ZERO, UNIT_MISMATCH, INVALID_MODE, INVALID_INPUT, CORRELATED_DOF_NOT_SUPPORTED, CORRELATED_NON_NORMAL_MC_NOT_SUPPORTED, MONTECARLO_UNSTABLE, CORRELATION_MATRIX_NOT_PSD, DUPLICATE_CORRELATION, CONFLICTING_CORRELATION.

Input schema is mode-discriminated (oneOf): binary modes require a,ua,b,ub (optional rho, k); sensitivity requires coefficients[] + uncertainties[] (optional correlations[{i,j,rho}], k); rss requires uncertainties[] (optional k; rejects correlations).

Optional unit_a / unit_b use Quantity Engine v1.1 (SI-prefix conversion + electrical derived rewrites such as V/A→Ω). Sum/difference of different dimensions still returns UNIT_MISMATCH. When prefixes are converted, quantity.converted is true and y/u_c are in the resolved unit.

API returns machine-precision u_c / y / optional U, plus reported (2 significant digits) for display. JSON numbers cannot keep trailing zeros, so reported.formatted_y / formatted_u_c / decimal_places replay the audit-report strings (e.g. "150.00" / "0.22").

For sensitivity/rss modes, send JSON arrays in the POST body (coefficients, uncertainties, correlations).

Other calculators in this family: Tolerance / Uncertainty Workspace, Ohm's Law, Voltage divider, MOSFET conduction loss .

}

Frequently asked questions

Key distinctions behind the calculation.

What is uncertainty propagation?

It estimates how input standard uncertainties combine into the uncertainty of a calculated result, usually via a linear (GUM) model.

What does GUM mean?

Guide to the Expression of Uncertainty in Measurement — the standard framework for evaluating and combining uncertainties.

When should I use sensitivity mode?

When y = f(xᵢ) and you know (or approximate) the partial derivatives cᵢ = ∂f/∂xᵢ. Then u_c = √Σ (cᵢ·uᵢ)².

Are inputs assumed independent?

By default yes (ρ=0). Binary modes accept optional rho (−1…1). Sensitivity/budget accept correlations: [{i,j,rho}] (budget also allows component names). RSS remains uncorrelated.

What is Monte Carlo mode?

JCGM 101-style sampling: draw inputs from normal or rectangular distributions, evaluate the model N times, and report the sample mean, standard deviation u_c, and percentiles. Optional correlation via Cholesky is supported for normal marginals only (rectangular + correlation → CORRELATED_NON_NORMAL_MC_NOT_SUPPORTED). Use confidence for an empirical coverage interval, or k for U=k·u_c. Seed makes runs reproducible.

What is budget mode?

A named-component form of sensitivity. The Budget Workspace table lets you add/remove rows (name, x, standard uncertainty u, c, Type A/B, ν, distribution). Enter u already as a standard uncertainty (not a raw half-width). Distribution is metadata in linear mode; Monte Carlo uses it for draws. If every component has x, y = Σ cᵢ xᵢ. After calculate, contributions are ranked in-panel. Correlations may use names.

What is νeff?

Optional Welch–Satterthwaite effective degrees of freedom from dof[] (sensitivity/rss) or nua/nub (binary). Infinity/null means ν→∞. Pair with confidence to auto-select Student-t k. Nonzero ρ/correlations omit νeff and reject confidence (CORRELATED_DOF_NOT_SUPPORTED) — use a fixed k.

Does this return expanded uncertainty?

Yes. Provide k > 0, or set confidence (e.g. 0.95) to auto-select Student-t k from νeff (missing/∞ νeff uses the normal quantile). Do not set both k and confidence. Confidence with nonzero ρ/correlations returns CORRELATED_DOF_NOT_SUPPORTED.

Can product or quotient use a zero value?

Product allows a=0 or b=0 (absolute first-order form). Quotient allows a=0 but rejects b=0 with DIVISION_BY_ZERO. Relative uncertainty u_rel is omitted when y=0.

What if mode is unknown?

The API returns INVALID_MODE. Use sum, difference, product, quotient, sensitivity, rss, budget, or montecarlo.