Open Tools · Coverfactor
Coverfactor user guide
The Coverfactor user guide: writing the measurement function, describing inputs, correlations, GUM and Monte Carlo results, validation, files and limits. To use the tool itself, open Coverfactor.
Professional use. Results are for education and preliminary design. They must be checked by a qualified professional, and they are not a substitute for code-compliant design or licensed engineering judgement.
Coverfactor builds a measurement uncertainty budget from a measurement function you write and the information you have about each input. It evaluates the budget with the GUM uncertainty framework (sensitivity coefficients, combined standard uncertainty, effective degrees of freedom, coverage factor and expanded uncertainty) and, side by side, with the Monte Carlo method of GUM Supplement 1, then tells you whether the two agree. Everything runs in your browser; your data is not uploaded.
Start in two minutes
- Open Examples and load one. The first five reproduce worked examples from JCGM 100 (the GUM) and JCGM 101 (its Monte Carlo supplement), so you can compare with the published numbers.
- In Model, write each output as a function of the inputs, for example
m/(V + dV). - In Inputs, describe what you know about each input: a certificate, repeated indications, limits, or a value with a standard uncertainty.
- In Correlation, add correlation coefficients if two input estimates are correlated.
- In Settings, choose the coverage probability and the Monte Carlo options.
- Read the reported result, the Budget (table and contribution chart), the Monte Carlo histogram, the Compare table with the validation verdict, and the step-by-step Report.
Writing the measurement function
Each output is an explicit expression. Operators are + - * / ^ (also **), with the usual precedence; -x^2 means -(x^2). Functions: sqrt, exp, ln, log10, sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, abs, atan2, pow. The constant pi is available; write exp(1) for Euler's number. log is refused because it is ambiguous: use ln or log10.
Names start with a letter or underscore and use letters, digits and underscores (m_R, dT2). An output may use outputs defined above it, which is convenient for intermediate quantities. Renaming an input updates every expression and correlation that uses it.
Units are labels: Coverfactor does not convert units, so write the function in a consistent set of units (for example nanometres throughout, or scale explicitly as in 1000*V/I for volts over milliamperes).
Describing the inputs
Choose the statement that matches your information. Coverfactor turns it into a best estimate x, a standard uncertainty u and degrees of freedom nu for the GUM framework, and into a probability distribution for the Monte Carlo method.
| Information | GUM framework | Monte Carlo |
|---|---|---|
| Estimate and standard uncertainty | u as given | Gaussian |
| Certificate: U and k | u = U/k | Gaussian |
| t: scale s and nu | u = s, nu | scaled and shifted t (standard deviation s·sqrt(nu/(nu-2))) |
| Certificate: U, k and nu_eff | u = U/k, nu_eff | scaled and shifted t |
| Repeated indications (Type A) | mean, u = s/sqrt(n), nu = n - 1 | scaled and shifted t with nu = n - 1 |
| Rectangular limits ± a | u = a/sqrt(3) | rectangular |
| Triangular ± a | u = a/sqrt(6) | triangular |
| U-shaped (arc sine) ± a | u = a/sqrt(2) | arc sine |
| Rectangular with inexact limits ± a, d | u = a/sqrt(3), nu = 0.5 (d/a)^-2 | curvilinear trapezoid |
| Constant | u = 0 | fixed value |
The two methods treat t inputs and inexact limits differently on purpose: this is how JCGM 100 and JCGM 101 each describe the same information, and it is why their standard uncertainties can differ even for a linear model. A pooled standard deviation s_p with its degrees of freedom can replace s for repeated indications.
For Gaussian, rectangular, triangular and U-shaped inputs you can state the degrees of freedom: infinite (the default, u exactly known), a value, or the relative reliability of u, which gives nu = 0.5 (Δu/u)^-2 (GUM G.4.2: 25 % gives 8). A relative uncertainty above 70.7 %, or inexact limits with d/a above 0.707, would give fewer than 1 degree of freedom and is refused.
Correlated inputs
Enter a correlation coefficient r for each correlated pair. For two series of simultaneous indications of the same length, From paired indications computes r from the data (GUM 5.2.3).
The coefficients must be mutually consistent: Coverfactor refuses a set that would allow a negative variance. The GUM framework accepts correlations between any inputs. The Monte Carlo method samples correlated inputs only when both are Gaussian, because GUM Supplement 1 defines joint sampling only for the multivariate Gaussian distribution; otherwise it stops and says why. The Welch-Satterthwaite formula is for uncorrelated components, so correlated inputs are combined into one component. When they are means of the same n simultaneous indications that component has n - 1 degrees of freedom (GUM H.2.4, approach 2). Otherwise its degrees of freedom are a heuristic (no GUM rule exists): the Welch-Satterthwaite value of the members without their covariances, never below the smallest or above the summed member degrees of freedom, labelled as such next to every result together with the k and U that the smallest degrees of freedom would give.
GUM framework results
- Sensitivity coefficients c_i are exact partial derivatives at the estimates. The Report prints each derivative. Optionally use the GUM finite difference over ± u(x_i) instead; the budget always shows both, and a warning appears when they differ by more than 5 % of u_c, a sign that the model is not linear over the input's spread.
- Combined standard uncertainty u_c includes the correlation terms. The budget lists each input's u_i(y) = |c_i| u(x_i) and its share of u_c², plus rows for correlation and higher-order terms, so the shares add to 100 %.
- Higher-order terms (Settings): the GUM 5.1.2 note adds second- and third-derivative terms for uncorrelated inputs. They matter when the model is strongly non-linear at the estimates, for example when a first-order sensitivity is zero.
- Effective degrees of freedom by Welch-Satterthwaite, with the Type A and Type B parts reported separately.
- Coverage factor: k = t_p(nu_eff) with nu_eff truncated to the next lower integer (the GUM's usual rule) or used as is, the normal-distribution value, or a k you state. With higher-order terms nu_eff stays the first-order value and only u_c grows (as in GUM H.1.6 to H.1.7). The coverage statement next to every result says which basis was used; with a stated k no coverage probability is claimed.
- The reported result follows GUM 7.2: the expanded uncertainty with two significant digits and the estimate to the same decimal place.
Monte Carlo results
The Monte Carlo method draws M sets of input values from their distributions, evaluates the model for each, and summarises the M output values: the mean and standard deviation, and a coverage interval that contains a fraction p of them (probabilistically symmetric, or the shortest).
- Fixed M from 1,000 to 1,000,000. Coverfactor refuses fewer than 100/(1 - p) trials and notes when M is below the 10^4/(1 - p) that GUM Supplement 1 suggests.
- Adaptive: batches of max(100/(1 - p), 10 000) trials until twice the standard deviation of the batch estimates of y, u(y) and both interval ends is within the numerical tolerance for the number of significant digits you ask for in u(y) (or a fifth of it when validating the GUM framework). It stops, and says it did not stabilise, after 4,000,000 trials.
- Seed: the same model, inputs and seed always give exactly the same numbers. The generator is the one recommended by GUM Supplement 1; change the seed (1 to 2,147,483,646) to see the sampling spread.
- When the model is undefined for some sampled inputs (a square root of a negative number, a division by zero), Coverfactor stops instead of silently discarding those trials.
- The shortest interval is well defined in length but, for nearly symmetric outputs, not in position: the Monte Carlo view shows the band of positions of all intervals that are statistically as short.
Is the GUM framework good enough here?
GUM Supplement 1 (8.1) compares the two methods: express the Monte Carlo u(y) with the number of significant digits you consider meaningful, take the numerical tolerance δ as half a unit in the last digit, and check whether both ends of the GUM interval y ± U are within δ of the Monte Carlo interval ends. Compare shows d_low, d_high, δ and the verdict. If the GUM framework is not validated, report the Monte Carlo result. The verdict applies to the chosen coverage probability only.
Files, exports and autosave
- Save downloads the project as JSON (format
coverfactor-project, with a schema version). Open reads it back and upgrades files from earlier schema versions; files from a newer version are refused rather than misread. - Export gives the budget as CSV (all outputs, full precision), the Monte Carlo summary with a 1001-level quantile table as CSV, the shown chart as SVG or PNG, and a printable report. Exports are made from the current results only; while a calculation is running they wait.
- The workspace is saved in this browser as you work, in the same versioned format. A damaged or newer autosave is set aside, not overwritten.
Keyboard shortcuts
| Keys | Action |
|---|---|
| Ctrl/Cmd + Z | Undo |
| Ctrl/Cmd + Shift + Z, Ctrl/Cmd + Y | Redo |
| Ctrl/Cmd + S | Save |
| Ctrl/Cmd + O | Open |
| 1 to 4 | Model, Inputs, Correlation, Settings |
| [ and ] | Previous and next result view |
| ? | This list |
| Esc | Close a dialog |
Limits and limitations
| Item | Limit |
|---|---|
| Inputs | 100 |
| Outputs | 6 |
| Expression length | 2,000 characters |
| Indications per input | 10,000 |
| Higher-order terms | up to 40 uncertain inputs per output, uncorrelated |
| Coverage probability | 50 % to 99.99 % |
| Monte Carlo trials | 1,000 to 1,000,000 fixed; adaptive up to 4,000,000 |
Not covered: implicit models and least-squares calibration curves, complex-valued quantities, multivariate Monte Carlo outputs (GUM Supplement 2), correlated non-Gaussian inputs in the Monte Carlo method, and conformity decisions.
How we verify Coverfactor
The Verify page re-runs 36 reference cases (189 individual checks) in your browser, the same list the automated tests run. 21 compare with numbers published in the worked examples of JCGM 100 (end-gauge calibration, resistance and reactance, the Welch-Satterthwaite example, Table G.2) and JCGM 101 (additive model, mass calibration, comparison loss, gauge block); 15 compare with closed-form results, hand derivations and an independent implementation. Monte Carlo checks use fixed seeds; each tolerance states its basis (half a unit of the published digit plus four standard errors of the Monte Carlo estimate). The badge appears only after every case passes.
Sources
- JCGM 100:2008, Evaluation of measurement data: Guide to the expression of uncertainty in measurement (GUM 1995 with minor corrections), BIPM. Free download from bipm.org.
- JCGM 101:2008, Evaluation of measurement data, Supplement 1 to the GUM: Propagation of distributions using a Monte Carlo method, BIPM. Free download from bipm.org.
- NIST Digital Library of Mathematical Functions, for the gamma, incomplete beta and incomplete gamma functions behind the coverage factors.
Coverfactor's text and code are original; the documents above are cited, not reproduced.
Professional use
For education and preliminary evaluation only. An uncertainty budget is only as good as the model and the input information you supply; results must be reviewed by a qualified metrologist and are not a certificate of calibration or an accreditation claim.