Use 0.9167 if unknown
Student-t models a low effective-DOF calibration uncertainty.
Welch-Satterthwaite effective degrees of freedom; high ν approaches Normal.
Blue curve: measurement distribution φ(x) centered at the measured value with σ = u. Red dashed lines: tolerance limits (TL, TU). Green solid lines: acceptance limits after guard band. Area under curve outside the acceptance limits is the specific risk.
Both charts are driven by the same global risk engine (the bivariate-normal PFA / PFR used everywhere else in the tool) evaluated for the current Inputs above. The process distribution sigma is derived from the In-Tolerance Probability (ITP) and the measurement sigma from u, exactly as in the global PFA cross-check. There is no separate risk math here - the visuals only choose which inputs to sweep.
Acceptance limits = ±T·g; g = 1 is no guard band, smaller g narrows acceptance. The dashed line is the 2 % global target PFA (JCGM 106 / Z540.3); the marked point is the active rule's operating guard band.
Each driver - ITP (process sigma), TUR (measurement sigma), and the guard band - is varied ±25 % about the current operating point, holding the others fixed. Bars show the PFA at each extreme; the wider the bar, the more sensitive PFA is to that driver.
Underlying plotted arrays are exposed on window.__sp5TradeoffData and window.__sp5TornadoData; every point is recomputed from the risk engine and validated to ≤ 1e-9 by EndInMind/validators/validate_decision_visuals.py.
Two certificate-ready outputs for the current scenario above. Both are presentation only - every value is taken from the Risk Calc results already computed by the single risk engine (the same pfaWb / pfrWb and guard-band formulas used everywhere in the tool); there is no second risk math here. The decision-rule statement covers the elements ISO/IEC 17025:2017 Cl. 7.8.6 and ILAC G8:2019 require. The risk report uses the browser print path ("Save as PDF") so the tool stays a single offline file - no PDF library is added.
The documented decision-rule text a laboratory places on a certificate - the rule, the tolerance and acceptance limits, the guard band, the PFA target, and the coverage factor k.
The statement text is exposed on window.__sp7Statement and the report field values on window.__sp7Report; every number is validated to equal the engine output (≤ 1e-9) and the required-element checklist is confirmed by EndInMind/validators/validate_lab_deliverables.py.
| Field | Value |
|---|---|
| Decision rule / method | - |
| Tolerance limits | - |
| Measured value xm | - |
| Measurement uncertainty | - |
| Test uncertainty ratio (TUR) | - |
| In-tolerance probability (ITP) | - |
| Guard band width w (per side) | - |
| Acceptance limits | - |
| PFA target | - |
| Global PFA at applied guard band | - |
| Global PFR at applied guard band | - |
| Specific PFA at xm | - |
| Conformity decision | - |
Global PFA / PFR are computed by the bivariate-normal risk engine (Drezner-Wesolowsky quadrature) at the applied guard band; the specific PFA is the tail probability at the measured value. All values trace to the Risk Calc results above - this report performs no independent computation.
| Decision Rule | GB Width (w) | Upper AL | Lower AL | Usable Range | Framework |
|---|
All formulas implemented per ANSI/NCSL Z540.3 Handbook, ILAC G8:2019, and ASME B89.7.3.1. Method 6 uses Dobbert M = max(0, 1.04 − exp(0.38 ln(TUR) − 0.54)).
Uncorrected systematic error shifts the measurement distribution and increases PFA. Compares the same measurement with and without bias correction.
Key takeaway: TUR alone is not sufficient. A 4:1 TUR requirement assumes the measurement process is centered (bias corrected). When bias is not corrected, the risk of making a false accept can be dramatically underestimated, undermining traceability and consumer protection.
Guard Band Multiplier r = NORM.S.INV(Pc) / 2, applied as: AL = TL − r × U95. From the Cenker/Zumbrun NCSLI 2025 Training.
| Conformance Probability (Pc) | Max Risk Per Side | GB Multiplier (r) |
|---|
Fraction of reading (e.g. 0.005 = 0.5 %)
Each contribution is a standard uncertainty (k = 1). Combined via RSS, then expanded by k = 2 to give L1's expanded measurement uncertainty U. Defaults match the workbook (Resolution = 1, Repeatability = 2, Reproducibility = 1, Drift = 1, Systematic = 1).
Fraction of reading (e.g. 0.001 = 0.1 %)
Percent of reading (e.g. 0.02 = 0.02 %)
Only applies when Level 2 Calibration Source is "Internal Standard".
Percent of reading
| Level | TUR | Guard Band | Global PFA | Global PFR | Verdict |
|---|
Global PFA computed via Drezner-Wesolowsky (1990) 20-point Gauss-Legendre quadrature of the bivariate normal CDF. Matches the workbook's L1/L2/L3 BVN engine. Specific risk at the acceptance limit shown separately on the Risk Calc tab.
Z540.3 establishes two independent sufficient conditions for global PFA ≤ 2 %: either TUR ≥ 4.6 : 1 (Method 6 guard band vanishes) or EOPR ≥ 89 % (Mimbs "Rule of 89"). Either dominance condition alone is sufficient.
| Applied | Reading 1 | Reading 2 | Reading 3 | Reading 4 | Reading 5 | Avg | Req. Tol | LSL | USL | U95 | TUR | M5 AL | M6 AL | TL (k=2) | Status |
|---|
Combined uncertainty: uc = k × √((CMC/k)² + (resolution/3.464)² + repeatability²). Method 5 AL: AL = T − U·TUR·(1 − √(1 − 1/TUR²)). Method 6 AL: AL = T − U·max(0, 1.04 − exp(0.38·ln(TUR) − 0.54)). Test Limit: AL = T − U.
e.g. ohms - a 1500 Ω ± 0.2 Ω resistor
False-reject retest cost per piece.
Downstream cost of one false accept (out-of-tolerance unit shipped). Used by the cost-optimal guard band below.
Inverse of the forward risk calculation: given a target global PFA, solve for the guard band that achieves it. Mirrors the workbook lambda PFA_GB_SOLVER - bisection on the guard-band factor g (acceptance limits become ±Tol·g) using the same accurate bivariate-normal risk engine the tables above use. If the PFA with no guard band is already at or below the target, the solver reports no guard band needed (g = 1).
Defaults to the Max Allowable PFA above when blank.
e.g. Acme Standard tier (0.04).
| Quantity | Value |
|---|---|
| Process 1σ (uUUT, derived from ITP) | - |
| PFA with no guard band (g = 1) | - |
| Solved guard-band factor g | - |
| Guard-band width w (per side) | - |
| Acceptance limits (AL, AU) | - |
| Achieved global PFA at solved guard band | - |
| Status | - |
Couples the risk engine to the cost model. Total expected cost as a function of the symmetric guard-band width w (per side, acceptance limits ±(Tol − w)) is C(w) = items · [cost/item + PFR(w)·retest cost + PFA(w)·false-accept cost], using the Production Inputs above. PFA(w) and PFR(w) are the same global probabilities the tables above show, from the accurate bivariate-normal engine (pfaWb / pfrWb) - there is no second risk math. The optimizer scans then golden-section refines over w in [0, Tol] to find the width that minimizes C(w). As w grows PFA falls and PFR rises, so the cost trades the two against each other.
Defaults to the solver's measurement σ above.
| Quantity | Value |
|---|---|
| Process 1σ (uUUT, derived from ITP) | - |
| Optimal guard-band width w* (per side) | - |
| Optimal acceptance limits (AL, AU) | - |
| Global PFA at w* | - |
| Global PFR at w* | - |
| False-reject cost at w* | - |
| False-accept cost at w* | - |
| Minimized total expected cost C(w*) | - |
The solid line is C(w); the dashed lines are the false-accept and false-reject cost components. The marked point is the cost-optimal width w*.
The cost curve and optimum are exposed on window.__sp6CostCurve and window.__sp6Optimum; the optimum is validated against a brute-force scan and an independent scipy.optimize minimization to ≤ 1e-6 by EndInMind/validators/validate_cost_optimizer.py.
The forward risk engine above assumes the true value of the unit is normally distributed. For a skewed or one-sided process (e.g. a quantity bounded at zero), select a gamma process distribution instead. The measurement error stays normal (ucal). This mirrors the workbook lambdas PFA_GAMMA / PFR_GAMMA / GB_WIDTH_GAMMA: the global PFA / PFR are integrated over the gamma true-value density with the same accurate normal acceptance probability the normal engine uses (no second normal-math path), and the gamma guard band is solved so PFA_GAMMA hits the target.
Conformance limit; out of tolerance for true value above this.
Mean = α/β, 1σ = √α/β.
Used to solve the gamma guard band (GB_WIDTH_GAMMA).
Normal process standard deviation about the nominal.
| Quantity | Value |
|---|---|
| Process distribution | - |
| Process mean / 1σ | - |
| Global PFA (no guard band, acceptance = tolerance) | - |
| Global PFR (no guard band) | - |
| Solved guard-band width w (per side) | - |
| Guard-banded acceptance limit (AU = TU − w) | - |
| Achieved global PFA at solved guard band | - |
| Guard-band solver status | - |
Edit equipment name, price, and 1σ uncertainty to model your own tiers. Default values reflect the seven Acme DMM tiers in the workbook.
| Equipment | Price ($) | 1σ Unc. | TUR | Global PFR | Global PFA | FR Cost | FA Cost | Total Risk Cost |
|---|
| Equipment | Equip Cost | Production | FR Cost | FA Cost | Total | vs. Baseline | Payback (days) |
|---|
Each line is one equipment tier. X-axis is years of production; Y-axis is cumulative cost including equipment, production, false rejects, and false accepts. Cheaper equipment with low TUR compounds risk cost every year.
n = ⌈ln(1 − Confidence) / ln(Reliability)⌉, from the binomial success-run theorem.
| Target EOPR | 80 % Conf. | 90 % Conf. | 95 % Conf. | 99 % Conf. |
|---|
- EOPR Definition
- End-of-Period Reliability - probability that an instrument remains in tolerance at the end of its calibration interval.
- Point Estimate
- EOPR = 1 − c/n. Simple but ignores sample-size uncertainty.
- Clopper-Pearson CI
- Exact binomial confidence interval using the Beta distribution. Conservative (guaranteed coverage). NIST recommended.
- Z540.3 "Rule of 89"
- EOPR ≥ 89 % is the global dominance condition that bounds unconditional PFA ≤ 2 % regardless of TUR (Mimbs).
- Assumptions
- Bernoulli trial model - each calibration result is independent, probability of in-tolerance is constant across the population.
- References
- ANSI/NCSL Z540.3-2006 §B.2 • ILAC-P14:09/2020 • NASA-HDBK-8739.19 §4.3 • NCSLI RP-1 §5.4
Pick a k value, get the two-sided coverage probability p = 2·Φ(k) − 1.
| Coverage Factor (k) | Probability |
|---|
Pick a target probability, get the required k = Φ⁻¹((1 + p) / 2).
| Probability | Coverage Factor (k) |
|---|
- What k means
- k is the coverage factor used to expand a standard uncertainty u into an expanded uncertainty U = k · u. The choice of k sets the coverage probability - the fraction of the distribution captured by U around the measurand.
- Common values
- k = 1 → ≈ 68.27 % • k = 1.96 → 95.00 % • k = 2 → ≈ 95.45 % • k = 2.576 → 99.00 % • k = 3 → ≈ 99.73 %. Calibration certificates almost always quote U at k = 2 (about 95 % coverage).
- k = 2 vs k = 1.96
- k = 1.96 gives exactly 95.00 % under a normal distribution; k = 2 gives 95.45 %. GUM and ISO/IEC 17025 labs use k = 2 by convention because it is simple and conservative. ILAC G8:2019 §B.3 uses k = 1.96 for guard band sizing where exact 95 % matters.
- When the distribution isn't normal
- These tables assume a normal output distribution - the standard assumption when the combined uncertainty has enough degrees of freedom (Welch-Satterthwaite νeff ≳ 30). For low-DOF cases, use a t-distribution coverage factor instead.
- Reference
- JCGM 100:2008 (GUM) Annex G • NIST SP 811 §7.4 • ILAC G8:2019 §B.3 • ANSI/NCSL Z540.3 Handbook
| Probability | z-Value |
|---|
Guard-banded rejection thresholds at the current confidence level and measurement uncertainty. Officer would not issue a ticket until the radar reads at least this value.
| Posted Speed (mph) | Guard-Banded Threshold (mph) |
|---|
- The analogy
- An officer's radar gun reads your speed with some uncertainty. To be 95 % confident a driver is actually speeding before issuing a ticket, the officer must let the reading exceed the posted limit by enough margin that the true value almost certainly exceeds the limit too.
- The formula
- Threshold = Limit / (1 − um · NORMSINV(P)). With P = 95 %, z = 1.645 (single-sided). A 2 % relative uncertainty raises a 75 mph limit to ≈ 77.6 mph before a citation is justified.
- Why this matters
- ISO/IEC 17025:2017 §7.8.6 requires a documented decision rule when a statement of conformity is issued. Guarded rejection (ILAC G8:2019 Case 3) protects the customer from a false reject - mirror image of guarded acceptance protecting from a false accept.
- Reference
- ISO/IEC 17025:2017 §7.8.6 • ILAC G8:2019 §B (Cases 1-4) • JCGM 106:2012 §9
| Term | Definition | Source |
|---|---|---|
| Decision Rule | A rule that describes how measurement uncertainty is accounted for when stating conformity with a specified requirement. | ISO 17025 §3.7 |
| Guard Band (w) | An interval between a tolerance limit (TL) and a corresponding acceptance limit (AL), used as a buffer. | ILAC-G8:09/2019 |
| Tolerance Limit (TL) | The specified upper or lower bound of permissible values of a property (the specification limit). | ILAC-G8:09/2019 |
| Acceptance Limit (AL) | The specified upper or lower bound of permissible measured values after applying a guard band. | ILAC-G8:09/2019 |
| PFA | Probability of False Accept - probability a non-conforming item is accepted (consumer's risk). | JCGM 106:2012 |
| PFR | Probability of False Reject - probability a conforming item is rejected (producer's risk). | JCGM 106:2012 |
| TUR | Test Uncertainty Ratio = Tolerance / Expanded Measurement Uncertainty. Higher TUR = less measurement risk. | ANSI Z540.3 |
| Simple Acceptance | Decision rule where AL = TL (no guard band). Carries significant PFA risk near limits. Must be paired with adequate TUR. | ILAC-G8, §1.9 |
| Clause | Requirement (Plain Language) | Key Implication |
|---|---|---|
| 3.7 - Definition | A decision rule describes how measurement uncertainty is accounted for when stating conformity. Any conformity statement requires that uncertainty be considered. | No uncertainty = no metrological traceability. |
| 7.1.3 - Customer Agreement | The specification, standard, and decision rule shall be clearly defined. Unless inherent in the specification, the decision rule shall be agreed with the customer. | Proactive communication required before measurement. |
| 7.8.6.1 - Documentation & Risk | The laboratory shall document the decision rule employed, taking into account the level of risk (PFA/PFR). | Must document risk level, not just pass/fail. |
| 7.8.6.2 - Reporting | The certificate must identify: (a) which results the conformity statement applies to, (b) which specifications were met or not met, and (c) the decision rule applied. | All three elements required on every certificate. |
| Decision Rule | Guard Band Formula | Framework | Target | Reference |
|---|---|---|---|---|
| 1. Simple Acceptance | GB = 0 (AL = TL) | Neither - risk ignored | None (shared) | ASME B89.7.3.1 • ILAC-G8 §6.1 |
| 2. Specific Risk GB | AL = TL − (GB_mult × U); GB_mult = NORM.S.INV(1−risk)/2 | Specific (conditional) | ≤ 2.5 % PFA per side | ILAC-G8:09/2019 • JCGM 106:2012 |
| 3. ILAC G8 (95 %) | w = u × 1.96 (fixed z for 95 % bilateral) | Specific (conditional) | Pc ≥ 98 % | ILAC-G8:09/2019 • ISO 14253-1 |
| 4. Dobbert Method 6 | GB = U · M(TUR); M = max(0, 1.04 − exp(0.38·ln(TUR) − 0.54)) | Global (unconditional) | PFA ≤ 2 % | ANSI/NCSL Z540.3 Handbook |
| 5. RSS / Method 5 | GB = U × TUR × (1 − √(1 − 1/TUR²)) | Global (unconditional) | PFA ≤ 2 % | ANSI/NCSL Z540.3 Handbook |
| 6. Fixed 0.98 × U | GB = 0.98 × U (matches ILAC G8 at k = 2) | Specific-equivalent | Conservative (Pc ≈ 0.975) | ILAC G8 (simplified) |
| 7. k = 2 Subtraction | GB = U (full uncertainty subtracted; AL = T − U) | Producer-biased | Conservative | MIL-STD-45662A (historical) |
| Outcome | Condition | Specific PFA | Action |
|---|---|---|---|
| PASS | Measured value within acceptance limits (AL) | ≤ agreed threshold (e.g. 2.5 %) | State conformity with confidence. |
| POSSIBLE PASS | Within tolerance limits (TL) but outside acceptance limits (AL) | > threshold but < 50 % | Report MV, U, and calculated PFA. Customer decides disposition. |
| FAIL | Specific PFA ≥ 50 %, or measured value outside TL by more than U | ≥ 50 % | State non-conformity. |
Example certificate language (Possible Pass): "Measured value: 0.82 units. Specification: ±1 unit. Decision rule: Specific risk with 2.5 % max PFA per side. Calculated specific PFA at this point: 3.4 %. Outcome: Possible Pass - within tolerance but specific risk exceeds the agreed threshold. Customer to determine disposition."
Rule of thumb: At shared-risk (no guard band), TUR ≳ 4.6 : 1 is a conservative boundary for PFA ≤ 2 %. Required U (k = 2) = Tolerance / 4.6. If EOPR ≳ 89 %, worst-case PFA ≤ 2 % even at lower TUR.
| Device Tolerance (T) | Required U (k = 2) | Resulting TUR | Global Risk |
|---|---|---|---|
| 0.0001 | 0.000 022 | 4.6 : 1 | PFA ≤ 2 % |
| 0.0005 | 0.000 109 | 4.6 : 1 | PFA ≤ 2 % |
| 0.001 | 0.000 217 | 4.6 : 1 | PFA ≤ 2 % |
| 0.005 | 0.001 087 | 4.6 : 1 | PFA ≤ 2 % |
| 0.01 | 0.002 174 | 4.6 : 1 | PFA ≤ 2 % |
The "Measurement Stool" - three legs (Requirements, Equipment, Process) plus Verification and Continuous Improvement.
| # | Rule | Key Points |
|---|---|---|
| 1 | Know the Right Requirements | Engage metrology before purchase. The more accurate the system, the higher the costs to procure and calibrate. Consult metrology before procurement - technicians know what fails. |
| 2 | Use the Right Equipment | Match CMC and traceability to tolerance. Not all tools are created equal. Look beyond sticker price to long-term cost. |
| 3 | Follow the Right Processes | Training, adapters, environment, SOPs. Process should ensure all aspects of the standards are satisfied. Wrong-process errors dwarf instrument uncertainty. |
| 4 | Check Your Work | Checklists, cross-checks, measurement assurance. Technicians are human. A good verification program catches the mistakes. |
| 5 | Stay Vigilant - Continuous Improvement | SPC charts, interval review, reliability tracking. Don't let success lead to complacency. |
- ISO/IEC 17025:2017 - Primary standard for lab competence. Clauses 3.7, 7.1.3, 7.8.6.1, 7.8.6.2 govern decision rules.
- UKAS LAB 48 (Ed. 5, 2024) - Practical guidance with worked examples. Highly recommended reading.
- ILAC-G8:09/2019 - International guidelines on decision rules. Covers guard band calculation, PFA, and reporting.
- JCGM 106:2012 - Statistical foundation for understanding risk in conformity assessment.
- ANSI/NCSL Z540.3 Handbook - The 2 % PFA rule and practical methods (Methods 5 and 6).
- ASME B89.7.3.1-2001 - Guidelines for decision rules considering measurement uncertainty.
- ASME B89.7.4.1-2005 - Measurement uncertainty and conformance testing: risk analysis.
- ISO 14253-1:2017 - Decision rules for verifying conformity or nonconformity with specifications.
- NIST SP 811 - Guide for the Use of the International System of Units (SI).
| # | Objective | Where it lives |
|---|---|---|
| 1 | Understand Measurement Traceability requirements | Section 2 below |
| 2 | Know the fundamentals of Measurement Uncertainty | Section 3 • Risk Pyramid |
| 3 | Understand Measurement Data sampling requirements | Reliability tab |
| 4 | Understand the basics of Decision Rules | Guidance Summary • Risk Calc & Curves |
| 5 | Know the differences between Specific and Global Risk models | Section 7 • Method 5/6/TL tab |
| 6 | Introduction to Metrology Costing Models | Section 15 • Cost Model tab |
ISO/IEC 17025:2017 §6.5.1: The laboratory shall establish and maintain metrological traceability of its measurement results by means of a documented unbroken chain of calibrations, each contributing to the measurement uncertainty, linking them to an appropriate reference.
Definition (VIM / ISO Guide 99): Metrological Traceability - property of a measurement result whereby the result can be related to a reference through a documented unbroken chain of calibrations, each contributing to measurement uncertainty.
| Tier | Description | Typical Uncertainty (k = 1) |
|---|---|---|
| SI / NMI | NIST primary realization | 0.0004 - 0.0005 % |
| Primary Reference Lab | Morehouse deadweight primary standards | 0.0008 % |
| Accredited Service | Accredited calibration supplier (secondary) | 0.02 % |
| Working Standards | End-user reference instruments | 0.1 % |
| Field Measurement | In-use device on the production floor | 0.5 % |
Cumulative effect: Uncertainty is cumulative from one level of the hierarchy to the next. Lowering the reference CMC by ~10× can transform a 6 %+ PFA failure into a near-zero PFA result on the same instrument.
Measurement Uncertainty (definition): The doubt that exists about a measurement's result. Every measurement - even the most careful - carries some uncertainty.
CMC - Calibration and Measurement Capability. Typical CMC standard uncertainty contributors:
- Repeatability
- Resolution
- Reproducibility
- Reference Standard Uncertainty
- Reference Standard Stability
- Environmental Effects
- Operator / Method Effects
| Metric (at 10 000 lbf) | Typical Commercial Lab | Morehouse Primary | Difference |
|---|---|---|---|
| Reference CMC (k = 2) | 0.04 % ≈ 4 lbf | 0.0016 % ≈ 0.16 lbf | ~25× lower |
| Expanded U95 on UUT | ≈ 4.03 lbf | ≈ 0.41 lbf | ≈ 10× lower |
| PFA at the spec limit | Significant - guard bands required | Near zero - minimal guard band | Far lower consumer risk |
| PFR impact | High - tight guard bands force false rejects | Minimal - ALs effectively at TLs | Higher yield |
| Error | Also Called | What Happens | Who Bears the Cost |
|---|---|---|---|
| PFA - False Accept (Type II) | Consumer Risk, Pass error, FAR | You PASS it … but it is actually out-of-tolerance. | Customer / downstream process |
| PFR - False Reject (Type I) | Producer Risk, Fail error, FRR | You FAIL it … but it is actually in-tolerance. | You: rework, scrap, retest, lost time |
Same root cause: both errors come from uncertainty overlapping the specification limit. Larger uncertainty = more of both. The consequences are not symmetric - consumer risk can mean loss of life or mission, while producer risk typically means unnecessary rework. Both carry cost; consumer risk has the greater potential for major negative consequences and must be tightly controlled.
| Aspect | Specific Risk (Bench, Conditional) | Global Risk (Process, Unconditional) |
|---|---|---|
| Plain-English question | "Given THIS result and its uncertainty, is THIS item really conforming?" | "Across all items in this program, what fraction do we wrongly accept on average?" |
| ASME B89.7.4.1 description | Controlling the quality of workpieces (single-item). | Controlling the average quality of workpieces (population). |
| Number of distributions | One probability distribution (the measurement). Any single-distribution method is specific risk. | Two distributions - the measurement and the prior distribution of items (EOPR / ITP). |
| Required information | Measured value, U, tolerance. Works on a single point with no history. | EOPR or a priori knowledge plus uncertainty. Needs population history (≥ 59 calibrations with 0 failures for 95 % confidence at 95 % reliability). |
| Typical use case | Aerospace, medical, safety - anywhere individual conformance must be assured. | Routine high-volume calibration where program-level control is acceptable. |
| Standard that uses it | ASME B89.7.3.1, ISO 14253-1, JCGM 106 specific PFA. | ANSI/NCSL Z540.3 (PFA ≤ 2 % across population). |
| Caution | At the tolerance limit, specific PFA can approach 50 % regardless of historical reliability. | An instrument that passes global PFA ≤ 2 % may still fail specific risk on any given measurement. |
The football analogy. Specific Risk = "Did this kick clear these posts?" (one ball, one outcome). Global Risk = "What is the kicker's career field-goal percentage from this distance?" (the long-run frequency).
Where 4:1 came from: Hayes & Crandon (U.S. Navy, 1955) proposed 4:1 as a slide-rule-era compromise targeting 1 % consumer risk under specific assumptions. It is not a universal law.
ANSI/NCSL Z540.3: TUR = (USL − LSL) / (2 · U95) for the calibration process - ratio of the tolerance span to twice the expanded uncertainty.
TUR vs TAR - not the same. TAR uses only the manufacturer's accuracy spec for the standard. A 25:1 TAR for a digital micrometer can become a much lower TUR once resolution, repeatability, and environmental effects are included.
Bench-level dominance: at TUR ≥ 4.6 : 1, Method 6 yields M ≤ 0 and the guard band vanishes - the full tolerance is usable. Required U for a given tolerance (PFA ≤ 2 %): Uexp (k = 2) ≈ Tolerance / 4.6.
Plain definition: EOPR = number of calibrations meeting acceptance criteria ÷ total number of calibrations. It is the population-level success rate over a calibration interval.
Sample size formula: Sample Size = ln(1 − Confidence) / ln(Target Reliability). For 95 % EOPR at 95 % confidence with 0 failures, n = 59.
Global dominance: EOPR ≥ 89 % is sufficient to bound unconditional PFA (UFAR) at ≤ 2 % regardless of TUR (Mimbs - Using Reliability to Meet Z540.3's 2 % Rule).
Take-away from Morehouse load-cell data: achieving better than 0.02 % of applied force typically requires very high-end equipment (meters + load cells together).
Star Wars - Specific Risk Acceptance Limit
Setup: Vent port 2 m wide, proton torpedo 0.5 m, standard uncertainty u = 0.125 (k = 1), applied as U at k = 2 → U = 0.25.
Math: GB multiplier = NORM.S.INV(0.975) / 2 = 0.980. Guard band = 0.980 · (2 · 0.125) = 0.245. Acceptance interval narrows to ±0.755 m.
Lesson: Even when the system looks comfortable on paper, uncertainty consumes 24.5 % of each half-tolerance.
Radar Gun - Global vs Specific Risk
Setup: Speed-limit zone 60 mph ± 3 mph. Two radar guns at points A and B; TUR = 6:1.
Specific Risk view: Car clocks 65 mph at A and 55 mph at B - each point individually outside the limit. Specific risk treats every measurement on its own.
Global Risk view: Across the segment, the car's average speed is 60 mph and 98 % of 10 000 sampled cars are between 57 and 63 mph - the population-level risk is well-bounded.
Resistor Verification
Setup: Fixed resistor 1500 Ω ± 0.2 Ω (±0.013 %). DMM at TUR ~1.44 : 1.
Production reality: ~30 % flagged failing the global GB. Retest in the metrology lab shows < 0.2 % were actual failures - the rest were producer-risk false rejects.
Fix: A more accurate DMM at ~3× the price gives expected false-reject rate 1.035 % and consumer risk < 1 %.
| Method | Formula | Notes |
|---|---|---|
| Method 5 (RSS) | w = U · TUR · (1 − √(1 − 1/TUR²)); AL = TL − w | Closed-form approximation. Good agreement with Method 6 at moderate TUR. |
| Method 6 (Dobbert) | M = max(0, 1.04 − exp(0.38 · ln(TUR) − 0.54)); w = U · M | Optimized for PFA ≤ 2 % at all TURs. M = 0 when TUR ≥ 4.6:1. |
| Test Limit (k = 2) | AL = TL − U (full expanded uncertainty subtracted) | Conservative. High PFR. Used historically (MIL-STD-45662A). |
Accuracy = low bias (results center on true value). Precision = low random error (results cluster tightly).
The standard 4:1 assumption. The classic TUR/TAR rules assume the measurement process is centered (bias corrected). Uncorrected bias dramatically increases PFA on one side of the distribution.
Worked example - force calibration with +9 lbf bias: An indicator reads 10 000 lbf when the true applied force is 10 009 lbf (bias = +9 lbf, TUR = 58.75:1). Without correction the producer-risk PFR is enormous and many in-tolerance instruments are scrapped.
The Deming Funnel. Don't adjust without understanding. Constant ad-hoc adjustments without understanding the process never hit the target. The right response is to characterize the bias, then correct it consistently.
Bottom line: not correcting for measurement bias is a common problem - customers may be receiving calibrations that are far worse than the certificate suggests.
The spec: NFL rulebook ball pressure 12.5 - 13.5 psi. Tolerance ±0.5 psi (half-tolerance).
The instrument actually used: Two gauges - one "no name," one Wilson CJ-01 (made by Jiao Hsiung Industry Corp.). Wilson states no measurement uncertainty.
TUR reality: At best the Wilson provides ±3.3 psig uncertainty (~0.817 × 4 with 4:1 desired) - that is 6.6× less accurate than required.
The fix: An Additel GP30 (0.001 psig resolution, ±0.05 % FS, calibration U ≈ ±0.003 psig at k = 2) costs ~$714 including accredited calibration.
The price of getting it wrong: Deflate Gate totalled more than $22.5 M in investigation cost. The NFL used a $30 gauge in place of a $700 instrument capable of doing the job.
The lens: Total cost = Equipment + Production + (False Reject × retest cost) + (False Accept × downstream cost).
| Stage | Time Scale | Impact | Cost Trend |
|---|---|---|---|
| Retest | Minutes | Technician time, equipment downtime | $ |
| RMA | Days | Shipping, processing, customer delay | $$ |
| Recall | Weeks | Product retrieval, regulatory reporting, rework | $$$ |
| Reputation damage | Years | Lost customers, regulatory scrutiny, brand erosion | $$$$ |
| # | Criterion | Detail |
|---|---|---|
| 1 | SI traceability | Documented unbroken chain with uncertainties stated at each tier. |
| 2 | CMC fits your needs | Published CMCs can achieve the Uexp required by your target TUR. |
| 3 | Decision-rule capable | States the decision rule used; can apply guard bands sized to your risk target. |
| 4 | EOPR / trend support | Provides EOPR trends or incorporates your reliability data to justify risk compliance. |
| 5 | OOT feedback | Supports feedback analysis when their standards are found out-of-tolerance. |
| 6 | Process uncertainty published | Has a measurement process uncertainty capable of meeting your needs and follows published standards. |
| 7 | Replicates how you use it | Calibration replicates how the instrument is actually used in the field. |
| 8 | Correct adapters | Uses the right adapters so results are repeatable and comparable. |
| 9 | Competent technicians | Training records on file. |
| 10 | Follows published standards | ASTM E74, ISO 376, ASTM E4, etc. |
| 11 | Reports uncertainty correctly | Per JCGM 100 / GUM requirements. |
| 12 | On-time and reliable | Rated highly; consistent delivery. |
Two questions before any measurement or purchase: (1) How good does the measurement need to be? (business lens - consequences, regulatory exposure). (2) How will you achieve and verify that capability? (technical lens - equipment, process, reliability evidence).
| # | Element | Example Language |
|---|---|---|
| 1 | Calibration direction | "As Found" |
| 2 | Instrument ID | "Manufacturer 10 000 N Load Cell S/N XXXX" |
| 3 | Indicator pairing | "with indicator Manufacturer Readout S/N XXXX" |
| 4 | Capacity and mode | "to 10 000 N in Compression only" |
| 5 | Tolerance specification | "with a tolerance of 0.1 % of full scale" |
| 6 | Decision rule | "Issue 'Pass' when PFA using Specific Risk is ≤ 2.5 %, subtracting U95 for the Guard Band." |
| 7 | Target risk | "Consumer Risk PFA ≤ 2 %; producer risk tolerable." |
| 8 | Reporting requirements | "Report uncertainties at k = 2, U95 with stated confidence interval and calculation method." |
- Calculating Measurement Uncertainty correctly is essential to everything that follows, including decision rules.
- Metrological Traceability relies on an unbroken chain of calibrations, each contributing to measurement uncertainty.
- A decision rule describes how measurement uncertainty is accounted for when stating conformity (ISO/IEC 17025 §3.7, §7.1.3).
- Not correcting for known bias increases measurement risk and undermines traceability.
- The 4:1 TUR rule provides a specific risk level only under explicit assumptions - it is not a universal law.
- Choose specific risk when per-point control is critical (aerospace, medical, safety).
- Choose global risk for high-volume or routine calibration where population-level control is sufficient.
- TUR ≥ 4.6 : 1 limits PFA to < 2 % under global risk models; EOPR ≥ 89 % is the global counterpart.
- Guard banding is a business decision - balance consumer risk vs producer cost based on consequences.
- Lower measurement uncertainty (better lab) directly reduces both PFA and PFR - the best risk mitigation.
- Decision rules are not optional - ISO/IEC 17025:2017 requires that measurement uncertainty be accounted for.
Standards & Guidance Documents
- ILAC G8:09/2019 - Guidelines on Decision Rules and Statements of Conformity
- JCGM 106:2012 - Evaluation of measurement data: The role of measurement uncertainty in conformity assessment
- UKAS LAB 48 - Decision Rules and Statements of Conformity
- ISO/IEC 17025:2017 - General requirements for the competence of testing and calibration laboratories
- Handbook for the Application of ANSI/NCSL Z540.3-2006 - Requirements for the Calibration of M&TE
- The Metrology Handbook, 3rd Edition - Chapter 30
- NCSLI RP-18 - Estimation and Evaluation of Measurement Decision Risk
- ASME B89.7.3.1-2001 - Guidelines for Decision Rules
- ASME B89.7.4.1-2005 - Measurement Uncertainty and Conformance Testing: Risk Analysis
- ISO 14253-1:2017 - Decision rules for proving conformity or nonconformity with specifications
- WADA Technical Document - TD2017DK
- Decision Rule Guidance v1.41 - Cenker, Zumbrun, Shah, et al.
Key Papers
- Delker, C. - Evaluation of Guard Banding Methods for Calibration and Product Acceptance
- Deaver, D. & Sompri, J. - A Study of and Recommendations for Applying the False Acceptance Risk Specification of Z540.3
- Rishi, S. - Guard-banding Methods: An Overview
- Dobbert, M. - A Guard-Band Strategy for Managing False-Accept Risk
- Dobbert, M. - Understanding Measurement Risk
- Harben, J. & Reese, P. - Risk Mitigation Strategies for Compliance Testing
- Mimbs, S. - Measurement Decision Risk: The Importance of Definitions
- Mimbs, S. - Conformance Testing: Measurement Decision Rules
- Mimbs, S. - Using Reliability to Meet Z540.3's 2 % Rule (Rule of 89)
- Castrup, H. - Analytical Metrology SPC Methods for ATE Implementation
- Zumbrun, H. & Cenker, G. - The Force of Decision Rules: Applying Specific and Global Risk to Star Wars
- Cenker, G. & Zumbrun, H. - Unraveling the Tom Brady Deflate Gate
- Reese, P. - Calibration in Regulated Industries: Federal Agency use of ANSI Z540.3 and ISO 17025
More from Morehouse & IndySoft
- Morehouse Instrument Company - www.mhforce.com • sales@mhforce.com • (717) 843-0081
- Morehouse NCSLI Force Course - mhforce.com/ncsli-force-course/
- Morehouse Force ILC / PT - mhforce.com/calibration/force-ilc-and-pt
- IndySoft Calibration Management Software - www.indysoft.com • greg.cenker@indysoft.com
| Item | Status | Evidence / Notes |
|---|---|---|
| Method title and document number defined | ✓ | Workbook titled "Start with the End in Mind"; methods labeled Method 5, Method 6, Test Limit. |
| Revision level and effective date recorded | ✓ | Revision V10 identified in file name; effective date 2026-05-19. |
| Source of method identified (consensus / manufacturer / internal) | ✓ | Consensus - based on ANSI/NCSL Z540.3, ILAC G8:2019, JCGM 106:2012, ISO/IEC 17025:2017. |
| Scope of measurement clearly defined | ✓ | Scope: calibration risk analysis (PFA, TUR, acceptance limits, guard-banded rejection). |
| Measurement range documented | ✓ | Range documented as 10 % to 100 % of Instrument Capacity on Method 5/6/TL. |
| Item | Status | Evidence / Notes |
|---|---|---|
| Measurand defined | ✓ | Measurand: instrument indication vs applied reference force/torque. |
| Measurement principle identified | ✓ | Statistical risk analysis (BVN-based PFA) combining UUT readings with CMC, resolution, repeatability. |
| Input quantities identified | ✓ | Inputs on Method 5/6/TL: Instrument Capacity, Resolution UUT, Tolerance, Plus 1 Count flag, CMC, k. |
| Output quantities identified | ✓ | Outputs: Avg Reading, TUR, TAR, PFA Lower/Upper/Total, Acceptance Limit, LSL/USL, Pass/Fail. |
| Units of measurement defined | ✓ | Workbook is unit-agnostic. Specify units (e.g. lbf, N, N·m, lbf·in) on the method cover sheet. |
| Item | Status | Evidence / Notes |
|---|---|---|
| Decision rule documented per ISO/IEC 17025:2017 §7.1.3 | ✓ | Seven decision rules supported: Simple Acceptance, Subtract U95, Method 6 (Dobbert), Constant-PFA Guardband, ILAC G8 (95 %), RSS, Fixed 0.98×U. |
| Decision rule agreed with customer | N/A | Per ISO/IEC 17025:2017 §7.1.3 the rule must be agreed with the customer. Capture on purchase order. |
| Target PFA stated | ✓ | PFA target is a user input (default 2 % per Z540.3). |
| Guard-band method selected and justified | ✓ | Guard-band method selected per decision rule. Method 6 (Dobbert) calibrated for 2 % PFA design target. |
| Guarded acceptance vs guarded rejection identified | ✓ | Guarded acceptance covered by Methods 5/6 and Risk Pyramid. Guarded rejection on dedicated tab. |
| Coverage factor k explicitly stated on certificate | N/A | U reported as expanded uncertainty at k = 2 (~95 % coverage) per NIST SP 811 §7.4. |
| Item | Status | Evidence / Notes |
|---|---|---|
| Required standards and reference equipment identified | ✓ | Reference-standard framework documented: Risk Pyramid L2/L3 captures external lab CMC and internal reference uncertainty. |
| Equipment uncertainty appropriate for measurement | ✓ | CMC entered as input on Risk Pyramid and Methods 5/6/TL. TUR computed at each loading point. |
| Environmental requirements documented | N/A | GAP: Environmental conditions (temperature, humidity, stability time) not captured in workbook. Recommend addition. |
| Personnel competency requirements defined | ✗ | GAP: Competency requirements not in workbook. Reference external training records per ISO/IEC 17025 §6.2. |
| Item | Status | Evidence / Notes |
|---|---|---|
| Laboratory capability demonstrated | ✓ | Demonstrated via worked example on Method 5/6/TL: 10 loading points (10 % to 100 % of capacity). |
| Trial measurements performed | ✓ | Example trial data on Methods 5/6/TL - 5 readings at 10 loading points. |
| Results compared to reference values | ✓ | Applied force vs avg measured compared via LSL/USL checks; Pass/Fail shown. |
| Repeatability confirmed | ✓ | STDEV across 5 readings per load point feeds uncertainty combination. |
| Uncertainty budget supports required accuracy | ✓ | Combined per JCGM 106: u = k·√((CMC/k)² + (res/3.464)² + rep²). TUR reported. |
| Item | Status | Evidence / Notes |
|---|---|---|
| Uncertainty budget built per Risk Pyramid L1/L2/L3 | ✓ | 3-level cascade (UUT, Working Std, Reference Std) with explicit budget rows for each tier. |
| TUR cascade verified | ✓ | TUR computed at each level; fail/warning flagged when TUR is insufficient. |
| PFA computed (global and specific) | ✓ | Global PFA via DW1990 20-pt Gauss-Legendre BVN. Specific PFA at acceptance limit computed. |
| Guard band applied per selected decision rule | ✓ | Guard-band width w computed per decision rule. Verification check confirms w matches the formula. |
| Coverage factor k explicitly stated | ✓ | All expanded uncertainties reported at k = 2 (~95 % coverage) per NIST SP 811 §7.4. |
| Item | Status | Evidence / Notes |
|---|---|---|
| Value-unit spacing (§7.2) | ✓ | Non-breaking space between numerical value and unit symbol applied across all sheets. |
| Digit grouping (§10.5.3) | ✓ | Thin space on both sides of decimal marker for 5+ digit numbers (e.g. "10 000 lbf"). |
| Decimal marker (§10.5.2) | ✓ | Period; leading zero for values < 1. |
| Unit symbol typography (§6.1.1-6.1.4) | ✓ | Roman, case-correct, no plurals, no period. Zero instances of "lbs", "hrs", "kgs", etc. |
| Multiplication / operator typography (§6.1.8) | ✓ | × or space, not letter x. |
| Quantity symbols (§7.4) | ✓ | Variable k italicized per SP 811 §7.4 across 69 cells (96 instances). |
| Percent symbol (§7.10.2) | ✓ | Space before % applied throughout. |
| Confidence and coverage factor reporting (§7.14, GUM) | ✓ | U reported with explicit k and confidence level. |
| Date format (§10.4) | ✓ | ISO 8601 YYYY-MM-DD. |
- Environmental conditions block on method cover sheet - Section 4
- Personnel competency & training records reference - Section 4
- Technical review and approval signatures pending
- Internal audit schedule entry per ISO/IEC 17025:2017 Cl. 8.8 - target frequency: annual
Inputs: tolerance ±0.20, acceptance ±0.18, process σ = 0.12, measurement σ = 0.04, bias = 0.
| Quantity | Closed-form | Simpson | Halton MC (50 000) | Exact | JCGM published | Status |
|---|---|---|---|---|---|---|
| RC (PFA) | - | - | - | - | 1.0 % | - |
| RP (PFR) | - | - | - | - | 6.9 % | - |
Status PASS when |closed-form − exact| ≤ 1 × 10−6. Exact = 0.987829 %; 6.90265 %.
Halton quasi-Monte Carlo PFA tightens toward the exact value as n grows, mirroring Henry's Halton columns in the V14 workbook.
| n | Halton MC PFA | |Error| vs Exact |
|---|---|---|
| 1 000 | - | - |
| 10 000 | - | - |
| 50 000 | - | - |
Pc = P(measured value conforming | true value at upper tolerance) = Φ(1) − Φ(−9), exact = 0.841344746068543.
| Quantity | Computed | Exact | Status |
|---|---|---|---|
| Pc | - | 0.841344746068543 | - |
Derived ratios from the resistor example parameters. Cm = (TU−TL) / (4·umeas); Cp = (TU−TL) / (6·σproc); guard-band ratio r = (TU−AU) / (2·umeas).
| Identity | Computed | Expected | Status |
|---|---|---|---|
| Cm = 0.4 / (4 × 0.04) | - | 2.5 | - |
| Cp = 0.4 / (6 × 0.12) | - | 0.5556 | - |
| r = 0.02 / (2 × 0.04) | - | 0.25 | - |
The solver finds the guard band that drives global PFA to a target, mirroring the workbook lambda PFA_GB_SOLVER (bisection on the guard-band factor). Verification: feeding the solved acceptance limits back through the app's accurate risk engine reproduces the target PFA, and the solved factor matches an independent bisection. Inputs below use the JCGM resistor process/measurement σ (0.12 / 0.04) and tolerance ±0.2.
| Target PFA | Solved factor g | Achieved PFA (re-fed through engine) | Δ vs target | Status |
|---|
A target at or above the no-guard-band PFA (1.894 %) returns g = 1 (no guard band needed) - the last row exercises that clamp. For the symmetric global-PFA case any positive target below that is feasible (collapsing the acceptance window drives PFA toward zero); the infeasible branch guards the one-sided case where a single tail has an irreducible minimum PFA.
Global PFA computed three independent ways for whatever inputs are currently set on the Risk Calc tab. Pairwise deltas confirm agreement.
| Method | Global PFA | Global PFR | Δ PFA vs closed-form |
|---|---|---|---|
| Closed-form (pfaWb / pfrWb) | - | - | − |
| Simpson quadrature | - | - | - |
| Halton MC (10 000) | - | - | - |
Inputs: −
| Rev | Date | Author | Sections Affected | Change Summary |
|---|---|---|---|---|
| V19 (web) | 2026-06-07 | Harrison Zumbrun | Risk Calc & Curves - finite-DOF (Student-t) risk + formula provenance (SP8). | Added a finite-DOF (Student-t) measurement-distribution path to the decision-rule tab. When the calibration uncertainty has low effective degrees of freedom, the measurement error can be modeled as Student-t rather than normal in the specific-risk computation (the natural fit for finite-DOF; the global / process side keeps the existing bivariate-normal engine). The Student-t CDF (tSCdf / tCdf) is built by reusing the app's existing regularized incomplete beta (ibeta / betaCf) through the standard identity Ft(t; ν) = 1 − ½ Ix(ν/2, ½), x = ν/(ν + t2) (DLMF 8.17.7 / Abramowitz-Stegun 26.7.1) - no new special-function library was added. A "Measurement Distribution" toggle (Normal / Student-t) and an effective-DOF (νeff) input were added to the Inputs; the normal and Student-t specific PFA are shown side by side and the verdict uses the active distribution. As ν → infinity the Student-t specific PFA converges to the existing normal specific PFA. The t-risk values are exposed on window.__sp8TRisk. Also added formula provenance: the key decision-rule outputs (TUR, expanded uncertainty U / coverage factor k, guard-band width, acceptance limits, specific PFA, global PFA / PFR) now carry their equation / standard reference - JCGM 106:2012 eq. (15)/(16) and Sec. 7 / 9.5, ANSI/NCSL Z540.3 Method 5 / Method 6, ILAC G8:2019, and the GUM U = k·u - shown on hover (a title annotation plus a small ⓘ info affordance), and each annotation describes how the value is actually computed; the provenance map is exposed on window.__sp8Provenance. Validated by a new Playwright harness (EndInMind/validators/validate_finite_dof.py) that drives the LIVE tab offline and asserts (a) the live tSCdf and t-based specific PFA match an independent scipy.stats.t computation to ≤ 1e-6 over a grid of (x, ν); (b) the Student-t specific PFA converges to the app's normal specific PFA as ν → infinity (monotone error shrink, equal to ≤ 1e-6 at ν = 106); and (c) a provenance self-consistency check - for each annotated output the displayed value equals the value recomputed from the cited formula / engine to ≤ 1e-9 (209 checks, all pass). See force-cal-validation/docs/VALIDATION-REPORT.md. |
| V18 (web) | 2026-06-07 | Harrison Zumbrun | Risk Calc & Curves - lab deliverables (SP7). | Added two certificate-ready lab deliverables to the decision-rule (Risk Calc & Curves) tab. (1) An ISO/IEC 17025 decision-rule statement generator that emits the documented statement text a laboratory places on a certificate - the rule / method, the tolerance limits, the guard-banded acceptance limits, the guard-band width, the PFA target, the coverage factor k and expanded uncertainty U, the TUR, the global PFA / PFR and the specific PFA, and the conformity decision - covering the elements ISO/IEC 17025:2017 Cl. 7.8.6 and ILAC G8:2019 require, with a required-element presence checklist. (2) A printable / PDF risk report: a clean auditor-facing report of the current scenario (inputs, decision rule / method, TUR, guard band and acceptance limits, global PFA / PFR, specific PFA, and the accept / possible-pass / reject verdict) that prints through the browser print path (a print-only stylesheet keyed on body.sp7-printing prints just the report) for "Save as PDF" - no PDF library is added, so the tool stays a single offline file. Both are presentation only: every number is pulled from the values the Risk Calc engine already computed (the same pfaWb / pfrWb bivariate-normal engine and guard-band formulas used elsewhere) - the global PFA / PFR are read straight off the decision-support operating point - and there is no second risk math in the deliverables. Builders sp7BuildDeliverables / sp7RuleDescriptor assemble the statement text and the report field map; the statement is exposed on window.__sp7Statement and the report fields on window.__sp7Report. Validated by a new Playwright harness (EndInMind/validators/validate_lab_deliverables.py) that drives the LIVE tab offline, reads the statement and report from window, and asserts every numeric value in the report and the statement equals the app's risk engine recomputed for the same inputs to ≤ 1e-9 (global PFA / PFR vs pfaWb / pfrWb, cross-checked against the operating point and an independent scipy double integral to ≤ 1e-7; specific PFA vs normCdf tails and scipy; the numbers printed in the statement text parsed back equal the report fields - the statement carries no independent number) and that the statement contains every required ISO/IEC 17025 7.8.6 / ILAC G8 element, driven across simple acceptance, all six guarded rules, and a second input scenario (524 checks, all pass). See force-cal-validation/docs/VALIDATION-REPORT.md. |
| V17 (web) | 2026-06-07 | Harrison Zumbrun | Cost Model - cost-risk optimizer (SP6). | Added a cost-optimal guard band that couples the existing risk engine to the cost model. Total expected cost is defined as a function of the symmetric guard-band width w (per side, acceptance limits ±(Tol − w)): C(w) = items · [cost/item + PFR(w)·retest cost + PFA(w)·false-accept cost], using the Cost Model's existing Production-Inputs cost fields plus one new clearly-labeled input, the false-accept downstream cost (there was no such field; the cost of one out-of-tolerance unit shipped). PFA(w) and PFR(w) are the same global probabilities the rest of the Cost Model shows, from the existing accurate bivariate-normal engine (pfaWb / pfrWb) - there is no second risk math. A minimizer (coarse scan then golden-section refine over w in [0, Tol], with the endpoints guarded) finds the width that minimizes C(w); as w grows PFA falls and PFR rises, so the cost trades the two against each other and typically has an interior minimum. Surfaced as a "Cost-Optimal Guard Band" card on the Cost Model tab with a cost-vs-guard-band Chart.js curve (total cost plus the false-accept and false-reject components, with the optimum w* marked) and a results table (optimal guard-band width and acceptance limits, the resulting PFA / PFR, the cost breakdown, and the minimized total cost). The cost curve and optimum are exposed on window.__sp6CostCurve / window.__sp6Optimum and the builders on window.sp6CostCurve / sp6CostAtWidth / sp6Optimize / sp6RiskAtWidth. Validated by a new Playwright harness (EndInMind/validators/validate_cost_optimizer.py) that drives the LIVE optimizer offline, reads the actual cost curve and optimum from window, asserts every cost-curve point equals the app's own C(gb) recomputed from the engine to ≤ 1e-9 (the single-math-path check), and asserts the optimum matches BOTH a fine brute-force scan of the same cost function AND an independent scipy.optimize.minimize_scalar on a from-scratch reimplementation of C(w) (using a scipy double integral for PFA / PFR) to ≤ 1e-6 in the guard band and the minimized cost, across interior and boundary scenarios. See force-cal-validation/docs/VALIDATION-REPORT.md. |
| V16 (web) | 2026-06-07 | Harrison Zumbrun | Risk Calc & Curves - decision-support visuals (SP5). | Added two decision-support visuals to the Risk Calc & Curves tab: a guard-band risk trade-off curve (global PFA and PFR plotted against the guard-band factor g from 0 to 1, with acceptance limits ±T·g, the 2 % global target-PFA line, and the active rule's operating point marked) and a risk-driver sensitivity / tornado (PFA and PFR swing as ITP / process sigma, TUR / measurement sigma, and the guard band are each varied ±25 % about the current operating point, sorted by PFA swing). Both reuse the existing accurate bivariate-normal risk engine (pfaWb / pfrWb) - there is no second risk computation; new data builders sp5TradeoffCurve and sp5Tornado only choose the inputs to sweep and call the engine, and the process sigma is derived from ITP exactly as the global PFA cross-check does. The plotted arrays are exposed on window.__sp5TradeoffData / window.__sp5TornadoData and the builders on window.sp5TradeoffCurve / sp5Tornado / sp5RiskAtFactor. Validated by a new Playwright harness (EndInMind/validators/validate_decision_visuals.py) that drives the LIVE tab, reads the actual plotted trade-off-curve and tornado data from window, and asserts every plotted PFA / PFR equals the app's own engine recomputed independently to ≤ 1e-9 (the single-math-path check) and an independent scipy double-integral over the true value to ≤ 1e-7, cross-checks a sample of trade-off-curve guard bands against Sandia Suncal's risk.PFA / PFR, and confirms the operating point, tornado swings, and a second live input scenario all match the engine. See force-cal-validation/docs/VALIDATION-REPORT.md. |
| V15 (web) | 2026-06-07 | Harrison Zumbrun | Cost Model - gamma (non-normal) process-distribution risk (SP4a). | Added a gamma / non-normal process-distribution risk path, ported from the workbook lambdas PFA_GAMMA, PFR_GAMMA, and GB_WIDTH_GAMMA. The true value of the unit can now be modeled with a gamma process distribution (shape α, rate β) instead of a normal, for skewed or one-sided processes; the measurement error stays normal (ucal). The gamma global PFA and PFR are integrated over the gamma true-value density (workbook TRAPZ, 500 strips, finite upper bound α/β + 6√α/β) reusing the app's existing accurate normal CDF (normSCdf, West 2009) and logGamma (Lanczos) for the acceptance probability and the gamma density - there is no second normal/risk math path. A gamma guard-band solver (gbWidthGamma) mirrors GB_WIDTH_GAMMA → L_SOLVE_NR (Newton with a finite-difference derivative, 25 iterations, ε = σcal/5000) to size the guard band that drives the gamma PFA to a target. Surfaced as a "Process Distribution: Normal vs Gamma" card on the Cost Model tab (process mean / 1σ, gamma PFA / PFR, solved guard-band width, guard-banded acceptance limit, achieved PFA); a Normal setting routes back to the existing bivariate-normal engine. Functions gammaPdf, pfaGamma, pfrGamma, gbWidthGamma are exposed on window. Validated by a new Playwright harness (EndInMind/validators/validate_gamma_risk.py) that drives the LIVE gamma functions against an independent scipy reference (scipy.stats.gamma.pdf × scipy.stats.norm.cdf): the gamma PDF matches scipy to ≤ 1e-9; the LIVE 500-strip integral matches an independent same-rule scipy-primitive trapezoid to ≤ 1e-9 and that trapezoid converges to scipy.integrate.quad's exact integral as the strip count is refined (50000-strip within 1e-6 of scipy exact); the gamma guard band hits the target within the workbook's own ε and re-feeds consistently; and a gamma → normal limit (large α with matched mean/variance) approaches the existing normal engine (window.pfaWb). See force-cal-validation/docs/VALIDATION-REPORT.md. |
| V14 (web) | 2026-06-07 | Harrison Zumbrun | Cost Model, JCGM 106 Validation - backward guard-band solver (SP3). | Added a backward guard-band solver: given a target global PFA it solves for the guard band that achieves it, the inverse of the forward risk calculation. It mirrors the workbook lambda PFA_GB_SOLVER - bisection (30 iterations) on the guard-band factor g, where the acceptance limits are ±Tol·g - and reuses the app's existing accurate bivariate-normal risk engine (pfaWb), so there is no second math path. If the no-guard-band PFA is already at or below the target it returns g = 1 (no guard band needed), matching the workbook clamp; a target that cannot be met even with the acceptance window collapsed is reported infeasible. A symmetric and an asymmetric/one-sided solver (solveGuardbandForPFA, solveGuardbandAsym, mirroring GBW_TARGET / PFA_GB_SOLVER_ASYM) are exposed. Surfaced as a "target PFA → guard band" card on the Cost Model tab (solved factor, guard-band width, acceptance limits, achieved PFA) and as a validation section on the JCGM 106 Validation tab. Validated by a new Playwright harness (EndInMind/validators/validate_guardband_solver.py) that drives the LIVE solver and compares the solved guard band and achieved PFA to an independent scipy bisection, to Sandia Suncal's guardband.target(), and to a Python reproduction of the workbook PFA_GB_SOLVER bisection - all to ≤ 1e-6 - and asserts that re-feeding the solved limits through the risk engine reproduces the target PFA and that the already-met and infeasible edge cases behave correctly. See force-cal-validation/docs/VALIDATION-REPORT.md. |
| V13 (web) | 2026-06-07 | Harrison Zumbrun | Validation - decision-rule (Risk Calc & Curves) tab now cert-driven; closes the last "tab not yet cert-driven" gap. | Added a Playwright validator (EndInMind/validators/validate_decision_rule_html.py) that drives the LIVE Risk Calc & Curves tab with real Morehouse decision-rule cert inputs - the analog of the ASTM E74 cert-driven UI test. For each cert row it sets the tolerance limits, nominal, measured value xm, and standard uncertainty u (= U / 2, since the cert reports the k = 2 expanded uncertainty U), selects the decision rule that reproduces the cert's Method-5 acceptance window (Simple Acceptance when TUR ≥ 4 : 1; AL = T − U when TUR < 4 : 1 and the cert guardbands by U), then reads the RENDERED TUR, tolerance/acceptance limits, specific PFA, and Pass/Fail badge from the DOM and asserts they match BOTH the cert's reported values AND the proven Python engine (certval.decision_rule). HARD checks (TUR, limits, Pass/Fail) are exact; specific PFA is a SOFT check within ~0.5 pp (the cert's tolerance-limit PFA convention, residual from U displayed to 1-2 dp). 101 cert rows driven across five certs - high-TUR (0-100000D1118, 34.48 : 1), guardbanded low-TUR (38438, 3.33 : 1), decimal-limit (82394, 4.31 : 1), non-trivial-PFA (DEDR2701758, 9.48 : 1), and APPLIED LOAD with mixed/guardbanded TUR and a Load Error row (101605) - all HARD checks pass, zero PFA warnings. See force-cal-validation/docs/VALIDATION-REPORT.md §7/§8. |
| V12 (web) | 2026-06-07 | Harrison Zumbrun | Accuracy upgrade; new JCGM 106 Validation tab; new ASTM E74 tab; reference workbook updated to V14. | Replaced the standard-normal CDF (Abramowitz-Stegun, ~1e-7) with West (2009), the inverse normal (Acklam) with Wichura AS241, and the bivariate-normal CDF with an adaptive-Simpson conditional integral robust as rho approaches 1 - the decision-rule math now matches scipy and Sandia Suncal to ~1e-12 (was ~1e-5). Added a JCGM 106 Validation tab that reproduces the §9.5.3 resistor and §7.7 specific-risk worked examples three independent ways (closed form, Simpson quadrature, live Halton quasi-Monte-Carlo) with PASS/FAIL and deltas. Added an ASTM E74 tab (polynomial curve fit, coefficients, S, LLF, Class A/AA verified ranges, classification, load-cell specs, deviation plot) driven by one JS engine ported from a Python engine that is bit-exact to the ASTM V8 workbook and the NIST LOADCELL.DAT reference. Validated the shipped code against scipy, Sandia Suncal, mpmath, NIST, both workbooks, and real Morehouse certs (9 decision-rule certs and 8 ASTM E74 certs, raw data pulled from LabScheduleDB and reported results from the cert PDFs). See force-cal-validation/docs/VALIDATION-REPORT.md. |
| V11 (web) | 2026-05-19 | Harrison Zumbrun | Web port: full HTML/JavaScript implementation of the V10 workbook. Same calculator scope; adds interactive uncertainty budget inputs, CSV import/export, chart PNG download, session save/load. | Re-implemented all V10 formulas in JavaScript: 6-point Drezner BVN, PFA_SYMMETRIC, PFR_SYMMETRIC, PFA_ASYMMETRIC, PFR_ASYMMETRIC, IS_SYMMETRIC dispatcher, Clopper-Pearson via bisection on incomplete beta, Acklam inverse normal, NORM.DIST via Abramowitz-Stegun erf. Dobbert M6 guard band applied inside the Cost Model BVN. Methods TUR uses k=2 expanded uncertainty in the denominator. Risk Pyramid L1 uncertainty budget exposed as 5 editable components with auto-derived Ref Std term. Bias correction reproduces workbook's worked-example model. Validated cell-by-cell against the V10 workbook (Excel COM automation) at default plus 4 varied input scenarios plus edge cases - 531 individual comparisons, all matching to <= 1e-3 relative tolerance or the floating-point noise floor of the 6-point BVN quadrature. Full validation suite bundled with the deliverable. See Web Port Notes below for the explicit list of where the web app deviates from the workbook (display precision only - no calculation differences). |
| V10 | 2026-05-19 | Henry Zumbrun | Workbook-wide - all notes, value cells, number formats, Validation & Verification, Changes Log | NIST SP 811 conformance pass: percent spacing applied to 58 cell notes and 21 value cells; variable k italicized per §7.4 across 69 cells (96 instances); percent number formats updated to display " %" with thin space; ISO 8601 date format applied to revision history. Validation & Verification rebuilt with 11 sections, 60 items, decision-rule section, risk-and-uncertainty-analysis section, SP 811 citation boilerplate, and revision history block. Changes Log restyled as formal revision history. |
| V9 | 2026-05-15 | Greg Cenker | New tabs: Coverage Factor k, Guarded Rejection | Added Coverage Factor (k) ↔ Coverage Probability table per JCGM 100 Annex G. Added Guarded Rejection tab with speed-limit analogy and ILAC G8:2019 Case 3 reference. Both tabs styled to canonical workbook theme. |
| V8 | 2026-04-30 | Greg Cenker | Risk Pyramid - L1 BVN engine | Migrated L1 PFA cells L57/L61/L74 and L1 PFR cells L79-L81 from Drezner approximation to DW1990 20-point Gauss-Legendre BVN quadrature. Resolves negative-PFA edge case at very low TUR. |
| V7 | 2026-04-25 | Greg Cenker | Risk Pyramid - L2 + L3 BVN engines | Migrated L2 PFA and L3 PFA from Drezner approximation to DW1990 Gauss-Legendre quadrature. Added L3 PFR engine. |
| V6 | 2026-04-18 | Greg Cenker | Risk Pyramid - self-audit panel | Tightened audit checks to enforce Method 6 "TUR ≥ 4.6" dominance and exact guardband-formula identity for all 5 decision rules. Audit now FAILs Method 6 when PFA target ≠ 2 % (Dobbert design target). |
| V5 | 2026-04-12 | Greg Cenker | Risk Pyramid - layout and dropdowns | Inserted Title, Overall Verdict banner, Level summary table, consolidated INPUTS block. Restored list validation on decision rule and cal source. Froze panes at row 12. |
| V4 | 2026-04-05 | Henry Zumbrun | Method 5 & 6 & TL | Initial Method 5 (simple acceptance) and Method 6 (Dobbert guard-band) per-load-point PFA worksheet. 10 evaluation points; 5 readings per point; combined uncertainty u = k·√((CMC/k)² + (res/3.464)² + rep²). |
| V3 | 2026-03-28 | Henry Zumbrun | Cost Model + Reliability | Added Cost Model tab for economic optimization of equipment selection (Bronze/Silver/Gold tiers vs guardband impact). Added Reliability tab with EOPR and Clopper-Pearson sample-size calculator. |
| V2 | 2026-03-15 | Henry Zumbrun | Guidance Summary + Educational Reference | Initial guidance lookup (decision rules, ISO 17025 §7.1.3, ILAC G8 cases, JCGM 106 definitions). Companion tutorial study guide with SP 811 typography conventions and learning objectives. |
| V1 | 2026-03-01 | Henry Zumbrun | Risk Pyramid - initial release | Initial 3-level cascade engine (End-Item / Cal Standard / Reference Standard) with bivariate-normal PFA, six decision rules, uncertainty budgets, and chain-conformance verdict. |
This web version is a port of the V10 workbook with all calculations re-implemented in JavaScript. No data is transmitted; all computation happens client-side. The reference workbook remains the authoritative source for audit and certification.
Statistical primitives
| Function | Web app implementation | Excel implementation | Agreement |
|---|---|---|---|
| Bivariate normal CDF | 6-point Drezner Gauss-Legendre (ported verbatim from workbook LAMBDA BIVARIATE_NORMCDF) | Same 6-point Drezner LAMBDA | Identical algorithm |
| Inverse standard normal | Acklam (2003) rational approximation | Wichura AS241 | <= 1e-5 relative |
| Standard normal CDF | Abramowitz & Stegun 7.1.26 rational via erf | Excel internal NORM.S.DIST | <= 1e-7 relative |
| Incomplete beta + Clopper-Pearson | Continued-fraction Ix(a,b) via Numerical Recipes; bisection for inverse | Excel BETA.INV (exact iterative) | <= 1e-4 relative on confidence bounds |
| Log-gamma | Lanczos g=7 | Excel internal | Identical to machine precision |
Calculation differences vs V10 workbook
- None on calculated values. Every visible output matches the workbook to <= 1e-3 relative error at every tested input.
- Display precision is higher in some cells. Methods U95 shows 5 decimal places (workbook 4); TUR shows 4 decimal places (workbook 2); Cost Model PFA/PFR show 5 decimal places on percent (workbook 3); bias-correction PFA shows 6 decimal places (workbook 2). The extra digits ensure CSV exports round-trip without precision loss.
- L1 uncertainty budget is exposed in the UI. The workbook has these components in hidden cells F77:F82 on the Risk Pyramid sheet. The web app surfaces them as 5 editable inputs plus an auto-derived Ref Std term from the L2 tolerance.
- L2 / L3 tolerance convention preserved exactly. The workbook treats the L1 tolerance input as half-width fraction (T/2 of NV) but L2/L3 as full-width fraction (T of NV, halved internally per cell B91). The web app mirrors this asymmetry.
Features added in the web port (not in workbook)
- Per-tab CSV export - each calc tab can dump its inputs, summary, and all result tables to a single sectioned CSV.
- CSV import for Methods readings (10x5 grid) and Cost Model equipment roster. Round-trip safe: an exported CSV re-imports cleanly.
- Chart PNG download on the Risk Curve and Cost Model charts.
- Session save / load. Save all inputs to a JSON file or restore from one. Continuous auto-save to localStorage prevents loss on accidental tab close.
- Mobile-responsive. Sidebar collapses to hamburger under 900 px; tables scroll horizontally inside their container; works down to 360 px width.
- Single-file deploy. No build step; CDN dependencies only.
Calculation paths that are bit-for-bit ports from the workbook
- All 7 guard-band methods (Simple Acceptance, Specific Risk, ILAC G8, Dobbert M6, RSS/Method 5, Fixed 0.98U, k=2 Subtraction).
- Risk Pyramid cascade conformance (1 - PFA_L1) x (1 - PFA_L2) x (1 - PFA_L3) using the workbook's L1 budget RSS combination.
- Cost Model PFA / PFR with Dobbert M6 guard band applied before BVN integration (matches workbook LAMBDA PFA(-T, T, -T+gb, T-gb, 0, sigt, sigp)).
- Methods TUR = T_half / (2 * u_std), using k=2 expanded uncertainty in the denominator regardless of user's input k.
- Clopper-Pearson EOPR bounds and sample-size formulas for Reliability.
- Two-way coverage factor (k <-> p) lookup tables.
- Guarded Rejection threshold and reference tables.
- Bias correction worked-example: Known Bias = |NV - x_m|, DUT Reading = NV + 0.8*T_half, NORM.DIST PFA before and after subtracting bias.
- Asymmetric tolerance dispatching via the workbook's IS_SYMMETRIC(tl, tu, al, au, nom) rule with separate PFA_ASYMMETRIC / PFR_ASYMMETRIC branches.
Validation evidence
Validated cell-by-cell against the V10 workbook driven by Excel via COM automation. 531 individual numeric comparisons across 5 input scenarios (workbook defaults plus 4 varied scenarios spanning TUR 0.5:1 to 167:1, ITP 0.85 to 0.999, both symmetric and asymmetric tolerances), all matching to <= 1e-3 relative error or the floating-point noise floor of the 6-point BVN quadrature. Full validation suite (validators/) and run instructions are bundled with the deliverable in the EndInMind folder.
1–6
1–5 (ASTM E74 §8.3)
In output units (round step)
Enter the indicator response for each run at each applied force. Responses are taken as already zero-corrected (the value used in the fit). Use Ascending + Descending to add a returning sweep for hysteresis. The fit, S, LLF and class limits are computed from every populated per-run point via e74Fit.
| Dir | Applied Force | Avg Response | Remove |
|---|
CSV import format (header auto-detected): dir,force,run1,run2,… — dir is A (ascending) or D (descending); omit it for ascending. Reuses the app's CSV importer.
| Parameter | Value | Units |
|---|---|---|
| Polynomial Order | — | |
| Polynomial coefficients (response = A0 + A1·F + …) | ||
| S (std. dev. of fit) | — | — |
| LLF (lower limit factor) | — | — |
| Resolution | — | — |
| Class A — Lower Limit | — | — |
| Class A — Upper Limit | — | — |
| Class AA — Lower Limit | — | — |
| Class AA — Upper Limit | — | — |
| Included Points (force / per-run obs) | — | |
LLF = max(2.4·S, resolution) ÷ |A1| (in force units); Class A lower = max(min applied force, 400·LLF); Class AA lower = max(min applied force, 2000·LLF); upper limit = max applied force. When output and force units match, LLF and resolution are reported directly in force units (no ÷A1).
| Specification | Value | Units |
|---|---|---|
| Non-Repeatability | — | % rdg |
| Non-Linearity (Avg) | — | % FS |
| Non-Linearity (Per-Run) | — | % FS |
| SEB — Best Fit Thru Zero (Avg) | — | % FS |
| SEB — Best Fit Thru Zero (Per-Run) | — | % FS |
| Hysteresis | — | % FS |
Non-Repeatability = max over run-pairs of |runi−runj| / |avg| per point. NL endpoint: baseline = (avg@max / max force)·force; deviation / FS. SEB: best line through zero, slope = Σ(F·avg)/Σ(F²). Hysteresis = max |desc−asc| / max(asc avg). FS = max(|avg|). Ported from the Load Cell Specs sheet of ASTM V8.xlsx.
Observed response − fitted response at each per-run point, in output units. Tight, randomly scattered residuals indicate a good fit; structure (curvature, fanning) suggests a higher order or an instrument effect.
The 33-point NIST LOADCELL.DAT example (11 loads × 3 repetitions, ASTM V8.xlsx Validation sheet) fit at order 2 by window.__e74SelfTest(), compared to the published NIST reference coefficients and S. PASS when within the Validation-sheet tolerances. This runs in-browser, offline, every time the tab is shown.
| Quantity | Computed (e74Fit) | NIST Reference | Tolerance | Status |
|---|---|---|---|---|
| A0 | — | −1.850148 × 10−5 | 5 × 10−6 | — |
| A1 | — | 0.100102 | 1 × 10−4 | — |
| A2 | — | 7.030346 × 10−6 | 5 × 10−7 | — |
| S | — | 3.40856 × 10−5 | 1 × 10−5 | — |