Uncertainty Propagation Calculator
Get the uncertainty of any calculated result, see which measurement contributes most, and read every step.
Runs in your browser. Nothing is uploaded.
Formula and measurements
Use * to multiply and ^ for powers. Functions: sqrt, exp, ln, log10, sin, cos, tan, asin, acos, atan, abs. Constants: pi and e (2.718…).
Read as: g = 4·π²·L/T²
Result g = (9.813 ± 0.051) m/s² Details
Formulas and examples
Worked examples
33 lab formulas. Choosing one fills in the formula and the units; you type your values.
Free text. Units aren’t converted.
Measurements
Decimals with a point or a comma. You can also type 0.95 ± 0.01, 2% or 1.955 s.
Separate them with spaces, commas or new lines.
u(L) = 0.0010 m (0.11% of the value)
Separate them with spaces, commas or new lines.
u(T) = 0.005 s (0.26% of the value)
Fix the formula to update these rows.
Correlation coefficients r from −1 to 1. Leave 0 where two inputs are unrelated.
Rounded coefficients can’t quite all be true at once, so the calculation uses the nearest set that can. No coefficient moves by more than 0.0002.
Result
Copying didn’t work here. Select the link and copy it.
Result with standard uncertainty (k = 1)
g = (9.813 ± 0.051) m/s²
Relative uncertainty 0.52%.
- Expanded, k = 2± 0.10 m/s²About 95% coverage if the result is normally distributed.
- Add percentages± 0.061 m/s²School method: 0.62% of the result, added in full.
- Monte Carlo check± 0.051 m/s²Looks good: within 0.1% of the formula result.
From 0.1 to 10. Usually 2.
The value follows the uncertainty.
Compare with an accepted value
Type the value your result should be compared with.
Uncertainty budget
T contributes 95.9%: measure T more precisely first.
| Input | u(xᵢ) | cᵢ = ∂g/∂xᵢ | |cᵢ|·u(xᵢ) (m/s²) | Share of u(g)² |
|---|---|---|---|---|
| T1.955 su = 0.005 sc = −10.04 m/s² per s | 0.005 s | −10.04m/s² per s | 0.05019 | 95.9% |
| L0.9500 mu = 0.0010 mc = 10.33 m/s² per m | 0.0010 m | 10.33m/s² per m | 0.01033 | 4.1% |
| Combined | 0.05124 |
c is the slope of the result with respect to each input. Shares are of u(g)², so they add up to 100%.
Working and checks
Every step of the calculation, ready for a lab report.
Copying works once there is a result.
Put your values into the formula
g = 4·π²·L/T² L = 0.9500 m, T = 1.955 s g = 4·π²·0.9500/1.955² = 9.81273 m/s²Standard uncertainty of each input
u(L) = 0.0010 m u(T) = 0.005 sThe law of propagation of uncertainty
u(g)² = (∂g/∂L·u(L))² + (∂g/∂T·u(T))²This assumes the inputs are independent (uncorrelated), as in GUM 5.1.2. Inputs with no uncertainty drop out.
Partial derivatives (sensitivity coefficients)
∂g/∂L = 4·π²/T² = 4·π²/1.955² = 10.329 m/s² per m ∂g/∂T = −8·π²·L/T³ = −8·π²·0.9500/1.955³ = −10.039 m/s² per sEach slope is worked out exactly at your values.
Contribution of each input
∂g/∂L·u(L) = 10.329 × 0.0010 = 0.010329 m/s² ∂g/∂T·u(T) = −10.039 × 0.005 = −0.050193 m/s²Square, then add
u(g)² = 0.010329² + (−0.050193)² = 0.00010669 + 0.0025193 = 0.0026260 (m/s²)²Take the square root
u(g) = √0.0026260 = 0.051245 m/s²Check with the percentage rules
Percentage uncertainties: L: 0.0010/0.9500 = 0.105%; T: 0.005/1.955 = 0.256% (power 2) Quadrature rule: %u(g) = √((0.105%)² + (2 × 0.256%)²) = 0.522%, so u(g) = 0.522% × 9.81273 = 0.051 m/s² Add-percentages rule: %u(g) = 0.105% + 2 × 0.256% = 0.617%, so u(g) = 0.617% × 9.81273 = 0.061 m/s²For products, quotients and powers, multiply each percentage uncertainty by its power. The quadrature rule is the standard (GUM) method; adding the percentages is the simpler, more cautious rule many school courses use. Use the one your course asks for.
Round the result
u(g) = 0.051245 m/s² rounds to 0.051 m/s² (2 significant figures). g = 9.8127293 m/s² rounds to the same decimal place: 9.813 m/s². g = (9.813 ± 0.051) m/s² (k = 1)GUM 7.2.6: quote an uncertainty to at most two significant figures, and the value to the same decimal place.
Expanded uncertainty
U = k·u(g) = 2 × 0.051245 = 0.10249 m/s² g = (9.81 ± 0.10) m/s² (k = 2)About 95% coverage if the result is normally distributed.
Monte Carlo check
We draw a random value for every input, put each set through your formula and look at the spread of the results. That is the method of GUM Supplement 1. How it works, further down, lists what is drawn and where this check is simpler. The draws are seeded, so the same inputs always give the same numbers.
| Quantity | Formula method | Monte Carlo |
|---|---|---|
| Value | — | — |
| Standard uncertainty | — | — |
| 95% interval | — | — |
The histogram appears here.
Show the histogram as a table
| Range | Share of draws |
|---|
Make one uncertainty smaller or larger and see what happens to the result. Your inputs above stay as they are.
Uncertainty with these changes
—
Move a slider to try a change.
How to use
- Type your formula with a name for the result, such as
g = 4*pi^2*L/T^2. Or open “Formulas and examples” and pick one of 33 lab formulas. - Enter each measured value, its uncertainty and its unit. Choose the type of uncertainty: ± absolute, % of value, a ±a limit or a resolution step. For a certificate value choose “Expanded ±U ÷ k”, and for repeated readings choose “Readings”.
- Read the result with its standard uncertainty. The budget below it shows which measurement contributes most.
- Open Steps to see every partial derivative and sum written out. Copy them as text or as LaTeX.
- Look at the Monte Carlo tile. If the formula method is off for your formula, the page shows the Monte Carlo result and tells you to quote it.
- Copy the result, download the budget as a CSV file, or copy a link that opens this exact calculation.
Worked example
Input
A pendulum of length L = 0.9500 ± 0.0010 m swings with a period of T = 1.955 ± 0.005 s. The formula is g = 4π²L/T².
Working
∂g/∂L = 4π²/T² = 10.329 s⁻², so L adds 10.329 × 0.0010 = 0.0103 m/s². ∂g/∂T = −8π²L/T³ = −10.039 m s⁻³, so T adds 10.039 × 0.005 = 0.0502 m/s².
Result
u(g) = √(0.0103² + 0.0502²) = 0.0512 m/s², so g = (9.813 ± 0.051) m/s² with k = 1.
The value is g = 4π² × 0.9500 / 1.955² = 9.8127 m/s². T contributes 95.9% of u(g)² and L only 4.1%, so timing is what limits this measurement. Rounded to one significant figure, as many school courses ask, the result is g = (9.81 ± 0.05) m/s². With k = 2 the expanded uncertainty is ± 0.10 m/s².
In the What if? tab, halving u(T) brings u(g) down to 0.027 m/s², while halving u(L) only takes it to 0.050 m/s². Timing 10 swings and dividing by 10 spreads the stopwatch error over ten periods.
The add-percentages method gives 0.105% + 2 × 0.256% = 0.617% of 9.8127, so ± 0.061 m/s². It is larger because it adds the contributions in full instead of combining them in quadrature. The Monte Carlo check with 200,000 draws gives a standard deviation of 0.0513 m/s², so the formula method is fine here.
Open “Compare with an accepted value” and type 9.81. The difference is +0.0027 m/s², which is 0.053 standard uncertainties, so the result agrees with the accepted value.
How it works
The law of propagation of uncertainty
Propagation of uncertainty, also called error propagation, works out how the uncertainties of your measurements carry through a formula to its result.
Your result is y = f(x₁, …, xₙ), and each input xᵢ has a standard uncertainty u(xᵢ). The calculator multiplies each one by its sensitivity coefficient cᵢ = ∂f/∂xᵢ and combines the products in quadrature, as the GUM describes in section 5.1.2:
u(y)² = Σ (∂f/∂xᵢ · u(xᵢ))²
With correlated inputs it adds the cross terms of GUM 5.2.2, where r(xᵢ, xⱼ) is the correlation coefficient of two inputs:
u(y)² = Σ cᵢ² u(xᵢ)² + 2 Σᵢ<ⱼ cᵢ cⱼ r(xᵢ, xⱼ) u(xᵢ) u(xⱼ)
The partial derivatives are exact at your values. The formula is differentiated by automatic differentiation, not by nudging the inputs, and the Steps tab prints each derivative as a formula too.
Shortcuts you may know
- Sums and differences: add the absolute uncertainties in quadrature, u(a + b)² = u(a)² + u(b)².
- Products and quotients: add the relative uncertainties in quadrature, (u(y)/y)² = (u(a)/a)² + (u(b)/b)².
- Powers: y = xⁿ gives u(y)/|y| = |n| · u(x)/|x|.
The general law gives the same answers in these cases, and it also handles sin, ln, sqrt and any mix of them. For a pure product, quotient or power, or a pure sum or difference, the Steps tab also shows these rules at work.
Where the input uncertainties come from
- ± absolute: the number you enter is used as the standard uncertainty u.
- % of value: u = |x| × p/100. You can also type a % sign after any uncertainty.
- Expanded ±U ÷ k: a calibration certificate quotes an expanded uncertainty U with a coverage factor k, usually 2. Then u = U/k (GUM 4.3.3).
- Rectangular ±a (Type B, GUM 4.3.7): any value within ± a is equally likely, so u = a/√3. Use it for a stated tolerance.
- Triangular ±a (GUM 4.3.9): values near the middle are more likely, so u = a/√6.
- Resolution step: a display that moves in steps of δ hides up to half a step either way, so u = δ/√12 (GUM F.2.2.1). For a display showing 9.81 the step is 0.01.
- Readings: s/√n (Type A, GUM 4.2.3): the value is the mean of your n readings, and u = s/√n, where s is their standard deviation. It has n − 1 degrees of freedom. If every reading is the same, s is 0, but the value is not exact. The resolution of the instrument still limits it (GUM F.2.2.1). The page says so and asks for a Resolution step.
- Readings: half range: the value is the mean and u = (max − min)/2. This is a school rule for a handful of readings, not a GUM method. With 2 readings it equals s/√n, so it counts 1 degree of freedom, as s/√n does. From 3 readings on it is taken as it stands, without degrees of freedom. For a result from this input alone, k = 2 covers about 92% with 3 readings and more than 95% from 4 readings on.
Constants and exact numbers
π and e are built in and exact. Here e is Euler’s number, 2.718…, so use another name, such as q_e, for the electron charge. For a constant you look up, type it into the formula as a number, or keep it as a variable with uncertainty 0. If the value you use is rounded, as in g = 9.81 m/s², choose “Resolution step”. Enter the size of the last digit, here 0.01.
Expanded uncertainty and degrees of freedom
The expanded uncertainty is U = k·u (GUM 6.2.1). With k = 2 the interval y ± U covers about 95% of the likely values. That holds if the result is normally distributed and rests on many readings. With k = 3 it covers about 99.7%; the GUM calls that approximately 99% (6.3.3).
When an input is the mean of only a few readings, k = 2 covers less than 95%. The page then works out the effective degrees of freedom with the Welch–Satterthwaite formula (GUM G.4.1). Each input worked out as s/√n from n readings counts n − 1, and so does half the range of 2 readings. It shows the coverage your k really gives and the k that gives 95%, both from Student’s t-distribution. From 200 effective degrees of freedom on, the result is treated as normal, because the difference is under 1%. Inputs joined by a correlation count as one component with the fewest degrees of freedom among them.
Rounding
The uncertainty is rounded to two significant figures by default, the most GUM 7.2.6 recommends, and the value to the same decimal place. You can switch to one significant figure, as many school courses ask. A common lab rule keeps two figures only when the first one is 1. “Unrounded” shows 8 significant figures. The budget, the steps, “Copy steps” and “Copy as LaTeX” show each input with the digits you typed, so 0.9500 keeps its zeros. “Copy table” and “Download CSV” give plain numbers for a spreadsheet.
Add percentages (school method)
Many school courses add percentage uncertainties. For y = a·b/c, the percentage uncertainty of y is the sum of those of a, b and c. A power n counts n times. The calculator does the general version, Σ|cᵢ|·u(xᵢ), which matches that rule for products, quotients and powers. It is never smaller than the quadrature result, and it ignores correlations.
When the simple method fails: the Monte Carlo check
The law of propagation uses straight-line slopes at your values. If the formula bends noticeably within a few uncertainties, as y = x² does near x = 0, it can be far off.
The Monte Carlo check uses the method of GUM Supplement 1 (JCGM 101:2008). It draws a value for every input, puts each set through your formula and looks at the spread of the results. This is what it draws:
- ± absolute, % of value and Expanded ±U ÷ k: a normal distribution with standard deviation u (Supplement 1, 6.4.7).
- Rectangular ±a and Resolution step: a rectangular distribution (6.4.2). Triangular ±a: a triangular one (6.4.5).
- Readings: s/√n: a t-distribution with n − 1 degrees of freedom, centred on the mean and scaled by s/√n (6.4.9). With few readings it is wider than a normal one. With 2 or 3 readings it has no standard deviation, so the page then gives only the 95% interval.
- Readings: half range: a normal distribution with standard deviation (max − min)/2. With 2 readings it is drawn like Readings: s/√n, which it then equals. Supplement 1 has no rule for this school method.
- Correlated inputs are drawn together. For normal inputs this follows Supplement 1 (6.4.8). Correlated readings with the same number of readings share one joint t-distribution with n − 1 degrees of freedom; otherwise each keeps its own. For ±a inputs, each keeps its own shape and r is applied to the normal scores behind the draws. Supplement 1 gives no rule for that case.
The check reports the mean, the standard deviation and the 95% interval from the 2.5th to the 97.5th percentile (7.7). Draws where the formula has no value, such as the square root of a negative number, are left out, and the page says how many.
It is simpler than Supplement 1 in four ways:
- The number of draws is fixed at 200,000 or 1,000,000. Supplement 1 also describes a run that keeps drawing until the numbers are stable (7.9). With 200,000 draws the standard deviation is good to about 1%, or a few percent when an input rests on five or fewer readings. The ends of the interval are good to about 3% of the spread.
- It gives the interval with 2.5% of the draws on each side, not the shortest 95% interval.
- It judges the formula method with a plain rule instead of the validation test in clause 8. The same draws also go through the straight-line version of your formula, which is what the formula method uses. The two agree when three things hold. Their spreads differ by less than 10%. The centre has moved by less than a fifth of the spread. Neither end of the 95% interval has moved by more than 10% of its half-width. With inputs from readings, the spreads compared are the 95% half-widths and the centres are the medians.
- For several quantities read together n times, Supplement 2 (JCGM 102:2011) uses fewer degrees of freedom than n − 1. This page keeps n − 1, as Supplement 1 does for a single quantity.
When the spread or the centre disagrees, the page shows the Monte Carlo result as the one to quote. When only an end of the interval has moved, it keeps the formula result and adds the Monte Carlo interval. It says whether that interval is lopsided, wider or narrower.
When several inputs each rest on a few readings, the Monte Carlo interval is wider than value ± k·u, even for a straight-line formula. Supplement 1 treats the scatter of a few readings more cautiously than the GUM’s degrees-of-freedom formula. The page shows both intervals and says by how much they differ.
Sources
- JCGM 100:2008, Evaluation of measurement data: Guide to the expression of uncertainty in measurement (GUM), BIPM.
- JCGM 101:2008, Supplement 1 to the GUM: Propagation of distributions using a Monte Carlo method, BIPM.
- NIST Technical Note 1297, Guidelines for Evaluating and Expressing the Uncertainty of NIST Measurement Results (1994).
The correlated example uses the five sets of readings in GUM Annex H.2, Table H.2. From them the calculator gives R = (127.732 ± 0.071) Ω, the value and uncertainty printed in Table H.3. With only five sets of readings, 95% coverage needs k = 2.78, which gives ± 0.20 Ω.
FAQ
How do I propagate uncertainty when multiplying or dividing?
Add the relative (percentage) uncertainties in quadrature: for y = a·b or y = a/b, (u(y)/y)² = (u(a)/a)² + (u(b)/b)². In quadrature, 3% and 4% give 5%. If your course adds percentages, as IB and A-level courses do, they give 7%: switch the method to “Add percentages”. A power counts n times, so y = x³ triples the percentage uncertainty of x.
Do I add uncertainties, or add them in quadrature?
In quadrature, when the errors are independent: they rarely all push the same way, so u(a + b) = √(u(a)² + u(b)²). Adding them in full gives a cautious upper limit instead. If your course asks for that, switch the method to “Add percentages”.
What is the uncertainty of the mean of repeated readings?
The standard deviation of the readings divided by √n: u = s/√n (GUM 4.2.3). For 9.8, 9.9, 9.7, 9.8 and 9.9 the mean is 9.82, s = 0.084 and u = 0.037. Choose “Readings: s/√n” as the type and paste your numbers. Some school courses use half the range instead, here (9.9 − 9.7)/2 = 0.1. Choose “Readings: half range” for that.
What does k = 2 or “expanded uncertainty” mean?
The standard uncertainty u is one standard deviation. The expanded uncertainty U = k·u widens it, so that the interval y ± U holds the true value with a stated probability. That is about 95% for k = 2, if the result is normally distributed and rests on many readings (GUM 6.3.3). With few readings the page shows the k that gives 95%. Always say which k you used.
What if my measurements are correlated?
Turn on “Some inputs are correlated” and enter each correlation coefficient r from −1 to 1. The calculator adds the cross terms of GUM 5.2.2 and checks that the correlations can all be true at once. If the inputs come from the same sets of repeated readings, “Work out from the readings” calculates r for you.
Why does the Monte Carlo result differ from the formula result?
The formula method uses straight-line slopes at your values. If the formula curves noticeably within a few uncertainties, it misjudges the spread. For y = x² with x = 0.2 ± 0.5 it gives ± 0.20, while the draws give a standard deviation of 0.41. The page then shows the Monte Carlo result as the one to quote.
Updated