Skip to content
Test Data & Analytics

What Is Gage R&R and MSA

Gage R&R and MSA quantify measurement system variation. Learn how to assess your test equipment and track measurement reliability with TofuPilot.

JJulien Buteau
advanced9 min readMarch 13, 2026

What Is GRR and MSA with TofuPilot

Gage Repeatability and Reproducibility (GRR) measures how much of your test variation comes from the measurement system itself. Measurement System Analysis (MSA) is the broader evaluation that includes GRR plus bias, linearity, and stability. This guide covers how GRR and MSA work, how to run a GRR study, and how to use TofuPilot data to monitor measurement system health.

Why Measurement Variation Matters

Every test measurement has three sources of variation:

SourceWhat It Is
Part-to-partReal differences between units (this is what you want to measure)
RepeatabilityVariation when the same operator measures the same part multiple times
ReproducibilityVariation when different operators or stations measure the same part

If your measurement system contributes too much variation, you can't trust your pass/fail decisions. Good units get rejected (false failures). Bad units pass (escapes).

GRR Acceptance Criteria

GRR % of ToleranceAssessment
Below 10%Measurement system is acceptable
10% to 30%May be acceptable depending on application
Above 30%Measurement system needs improvement

GRR is expressed as a percentage of the specification tolerance. A GRR of 20% means the measurement system uses up 20% of your tolerance band with its own noise.

How a GRR Study Works

A crossed GRR study uses multiple operators, multiple parts, and multiple trials:

ParameterTypical Value
Operators (or stations)2-3
Parts10 (spanning the range of production variation)
Trials per part per operator2-3
Total measurements40-90

Each operator measures each part multiple times, in random order. The data is analyzed using ANOVA or the range method to separate repeatability and reproducibility.

Prerequisites

  • Python 3.10+
  • OpenHTF installed (pip install openhtf)
  • TofuPilot Python SDK installed (pip install tofupilot)

Step 1: Collect GRR Data

Run the same measurement on the same set of parts multiple times. Use TofuPilot to log every measurement with the part identifier and trial number.

grr_study.py
import openhtf as htf
from openhtf.util import units


@htf.measures(
    htf.Measurement("voltage_reading_V")
    .with_units(units.VOLT),
    htf.Measurement("operator").with_units(units.UNITLESS),
    htf.Measurement("trial").with_units(units.UNITLESS),
)
def phase_grr_measurement(test):
    """Measure voltage for GRR study. Record operator and trial."""
    test.measurements.voltage_reading_V = 5.003
    test.measurements.operator = 1
    test.measurements.trial = 1

Step 2: Log to TofuPilot

Each measurement becomes a test run. The serial number identifies the part. Run each part-operator-trial combination as a separate test execution.

grr_study.py
from tofupilot.openhtf import TofuPilot

test = htf.Test(phase_grr_measurement)

with TofuPilot(test):
    test.execute(test_start=lambda: input("Scan GRR part serial: "))

Step 3: Analyze the Results

After collecting all measurements, export the data from TofuPilot and compute the GRR metrics. The key calculations:

MetricFormula
Repeatability (EV)Average range within operator x d2 constant
Reproducibility (AV)Range of operator averages x d2 constant, corrected for sample size
GRRSquare root of (EV squared + AV squared)
GRR %(GRR / tolerance) x 100
Number of distinct categories (ndc)(Part variation / GRR) x 1.41

An ndc below 5 means the measurement system can't distinguish enough categories of parts. You need at least 5 for a capable system.

Beyond GRR: Full MSA

MSA includes four additional evaluations beyond GRR:

StudyWhat It MeasuresWhen to Run
BiasDifference between measured average and known referenceAt calibration
LinearityHow bias changes across the measurement rangeAt calibration
StabilityHow measurements drift over timeOngoing monitoring
ResolutionSmallest increment the system can detectAt setup

Using TofuPilot for Ongoing MSA

You don't need to run formal GRR studies constantly. TofuPilot's measurement distribution data gives you ongoing visibility:

  • Measurement distributions for the same part number show total variation over time
  • Station comparison shows whether different stations give different results (reproducibility signal)
  • Control charts detect when measurement drift begins (stability monitoring)
  • Marginal results flag when measurements are close to limits, which could indicate measurement system issues rather than part issues

When you see unexpected variation in TofuPilot, run a formal GRR study to quantify the source. If the measurement system is the problem, recalibrate or upgrade the instrument before tightening limits.

More Guides

Put this guide into practice