Decision rules & conformity
How Open Gauge decides pass/fail once measurement uncertainty is in the picture — simple acceptance, guard-banding, and shared risk.
ISO/IEC 17025 §7.1.3 and §7.8.6 require that whenever a lab issues a pass/fail statement, it documents which decision rule was applied — a bare "reading within spec" comparison isn't sufficient once measurement uncertainty is accounted for. Open Gauge stores the decision rule and the resulting conformity statement on every calibration.
The three rules
Let be the calibration's max error and be the value in the wizard's Tolerance box (pre-filled from the channel's accuracy spec when available — e.g. ±0.5 °C, or ±1% FS converted to an absolute value — but freely editable; see Filling in the conformity boxes below), and be the expanded uncertainty.
| Rule | Passes when | Effect | When to use |
|---|---|---|---|
| Simple acceptance (default) | Ignores uncertainty entirely. | No formal risk analysis done yet, or the customer hasn't agreed to a different rule. | |
| Guard band | The acceptance zone shrinks inward by . | Reduces false-accept risk — use when a false pass is costly. | |
| Shared risk | The acceptance zone expands outward by . | Reduces false-reject risk, at the cost of some false-accept risk near the boundary — use when a false fail is costly. |
Notice these three rules can genuinely disagree on the same fit and the same spec — see Example 1.3 for a worked case where all three rules produce a different verdict from identical input data.
What gets stored
Every calibration stores a conformity_statement carrying the full record: the decision rule
used, a human-readable rendering of the specification (e.g. "±0.5% of full scale", or
"±1.0 (manual)" when the Tolerance box was edited by hand — see below), the expanded
uncertainty applied (if any), the numeric tolerance value compared against, whether it passed,
and a reason (populated only when no accuracy spec was configured and no manual tolerance was
entered either, meaning conformity wasn't evaluated at all).
Filling in the conformity boxes
The Conformity assessment panel visualizes the rule from the table above as boxes: Error and Uncertainty are read-only, taken directly from this calibration's own results; between them is a + (guard band), a − (shared risk), or nothing at all (simple acceptance, which ignores uncertainty). Tolerance is the one editable box.
- Error — this calibration's own max error. Not editable; it's a result, not an input.
- Uncertainty — this calibration's own expanded uncertainty, . Not editable, and only shown for the guard-band/shared-risk rules (simple acceptance doesn't use it at all).
- Tolerance — the maximum acceptable error. Editable, and independent of the channel's own accuracy specification — typing a value here (or clicking the refresh icon next to it, which copies in the channel's own nominal accuracy, when the channel has one) overrides whatever the channel's spec says, for this calibration only. This also sidesteps percent of reading's per-point tolerance entirely: whatever accuracy type the channel is configured with, a manually-entered Tolerance box is always evaluated as one flat number against max error, exactly like the absolute and percent of full scale types already are. Like Error and Uncertainty next to it, Tolerance is always expressed in the calibration's own reference unit (shown as plain text next to the box, not a dropdown) — the refresh icon fills in the channel's default, already on that scale. When the Sensor nominal accuracy switch on the Uncertainty calculation panel is on, Tolerance mirrors that box's value, converted to the reference unit, and becomes read-only — the sensor's own accuracy spec is the threshold in that case. Switch it back off to edit Tolerance independently again.
Worked example. A pressure transmitter's channel spec is ±0.5% of full scale over a
0–10 bar range (i.e. ±0.05 bar). A calibration comes back with max error = 0.03 bar and expanded
uncertainty = 0.01 bar, decision rule = guard band. The Tolerance box pre-fills to 0.05 (the
channel's own spec, converted from %FS). The boxes read Error: 0.03 + Uncertainty: 0.01 ≤ Tolerance: 0.05 — 0.04 ≤ 0.05, so it conforms. If the customer's own contract instead specifies
a tighter ±0.03 bar tolerance regardless of the sensor's nameplate spec, typing 0.03 into the
Tolerance box re-evaluates against that number instead: 0.04 ≤ 0.03 is false, so it now shows
DOES NOT CONFORM — without touching the channel's own configured accuracy spec at all.
Saving a non-conforming calibration
Saving is never blocked by a non-conforming result. A failed calibration is itself an important record — Open Gauge's calibration philosophy treats history as immutable and never suppresses a real result just because it's inconvenient. When a result doesn't conform, the save-confirmation dialog names the specification and decision rule explicitly, and the save button relabels to "Save anyway."
The uncertainty budget
How Open Gauge builds a GUM-compliant uncertainty budget, combines it, and expands it into a reported ± value.
Alternative calibration data-entry modes
Recording a calibration when the data doesn't come as the usual reference-vs-measured-signal points — a lab-supplied model, or an already-converted reference-vs-value comparison.