Case 930
Most of the scatter was the gauge
most_of_the_scatter_was_the_gauge.eml - Parts are measured, their scatter is computed exactly, and the process is judged not capable of holding the specification. Every measurement is real. How much of that scatter belongs to the parts and how much to the measuring is computed below.
ok: true — round-trip fixpoint reached (python1 == python2)updated 2026-09-20
EML
eml# Self-authored for the EML case corpus (no external origin). Parts are
# measured, their scatter is computed exactly, and the process is judged not
# capable of holding the specification. Every measurement is real. How much of
# that scatter belongs to the parts and how much to the measuring is computed
# below.
#
# The judgement is careful. Every part was measured; the standard deviation
# of the readings is exact; the capability index is computed correctly from
# it; and the intent is exactly 'can the process hold the spec'.
#
# A reading is the part plus the gauge, and this gauge contributes sixty
# percent of the observed variance, so the process looks far wider than it is -
# the judgement measured the ruler and blamed the parts.
100 => observed_variance_of_the_readings
60 => variance_contributed_by_the_gauge
15 => spec_half_width
10 => observed_standard_deviation
632 => process_standard_deviation_hundredths
observed_variance_of_the_readings - variance_contributed_by_the_gauge => variance_of_the_parts_themselves
int(variance_contributed_by_the_gauge * 10000 / observed_variance_of_the_readings) => gauge_share_of_the_scatter_per_myriad
int(variance_of_the_parts_themselves * 10000 / observed_variance_of_the_readings) => process_share_of_the_scatter_per_myriad
int(spec_half_width * 2 * 100 / (observed_standard_deviation * 6)) => cp_on_the_readings_hundredths
int(spec_half_width * 2 * 100 * 100 / (process_standard_deviation_hundredths * 6)) => cp_on_the_parts_hundredths
cp_on_the_parts_hundredths - cp_on_the_readings_hundredths => capability_the_gauge_hid_hundredths
"observed variance of readings : " + str(observed_variance_of_the_readings) + " (standard deviation " + str(observed_standard_deviation) + ")" ^0
"variance from the gauge : " + str(variance_contributed_by_the_gauge) + ", " + str(gauge_share_of_the_scatter_per_myriad) + " per ten thousand of the scatter" ^0
"variance of the parts themselves : " + str(variance_of_the_parts_themselves) + ", " + str(process_share_of_the_scatter_per_myriad) + " per ten thousand" ^0
"process standard deviation : " + str(process_standard_deviation_hundredths) + " hundredths" ^0
"" ^0
"specification : plus or minus " + str(spec_half_width) ^0
"capability judged on readings : " + str(cp_on_the_readings_hundredths) + " hundredths - not capable" ^0
"capability of the parts : " + str(cp_on_the_parts_hundredths) + " hundredths" ^0
"capability the gauge hid : " + str(capability_the_gauge_hid_hundredths) + " hundredths" ^0
"" ^0
# ---- what the judgement verified ----
"the capability judgement" ^0
" coverage : every part measured" ^0
" scatter : exact standard deviation of the readings, " + str(observed_standard_deviation) ^0
" index : computed correctly from it, " + str(cp_on_the_readings_hundredths) + " hundredths" ^0
" intent : can the process hold the spec" ^0
" readings mishandled : 0" ^0
" verdict : NOT CAPABLE" ^0
"" ^0
" computing the exact scatter of the real readings is the" ^0
" part done right here, and it is why the readings really" ^0
" are that scattered" ^0
"" ^0
# ---- what a reading is made of ----
"part plus gauge" ^0
" a reading : the part's true size plus the gauge's error" ^0
" variances add : " + str(variance_of_the_parts_themselves) + " from the parts, " + str(variance_contributed_by_the_gauge) + " from the gauge, " + str(observed_variance_of_the_readings) + " observed" ^0
" the gauge's share : " + str(gauge_share_of_the_scatter_per_myriad) + " per ten thousand - most of it" ^0
" so the parts alone : standard deviation " + str(process_standard_deviation_hundredths) + " hundredths, not " + str(observed_standard_deviation) ^0
" and the capability : " + str(cp_on_the_parts_hundredths) + " hundredths, not " + str(cp_on_the_readings_hundredths) ^0
"" ^0
# ---- what the line got ----
"the verdict" ^0
" process condemned as : not capable, at " + str(cp_on_the_readings_hundredths) + " hundredths" ^0
" process actually : " + str(cp_on_the_parts_hundredths) + " hundredths" ^0
" is the readings' scatter miscomputed : no" ^0
" is the readings' scatter the parts' scatter : no; the" ^0
" larger part of it is the instrument" ^0
"" ^0
# ---- null control ----
# The same parts assessed after a gauge study (repeat measurements of the
# same parts) separates the gauge's variance from the parts' variance.
50 => nc_cp_hundredths_judged_on_raw_readings
79 => nc_cp_hundredths_judged_on_parts_after_the_gauge_study
29 => nc_capability_hundredths_the_gauge_study_restores
"null control - run a gauge study first" ^0
" capability judged on raw readings : " + str(nc_cp_hundredths_judged_on_raw_readings) + " hundredths" ^0
" capability judged on the parts, gauge removed : " + str(nc_cp_hundredths_judged_on_parts_after_the_gauge_study) + " hundredths" ^0
" capability the gauge study restores : " + str(nc_capability_hundredths_the_gauge_study_restores) + " hundredths" ^0
" no part and no spec changed; the ruler stopped being" ^0
" counted as part of the thing it measured" ^0
"" ^0
# ---- the rule ----
"what an exact scatter of the readings guarantees" ^0
" the readings vary by that much : exactly, every part" ^0
" measured, exact standard deviation" ^0
" the parts vary by that much : not addressed; " + str(gauge_share_of_the_scatter_per_myriad) + " per ten" ^0
" thousand of the scatter is the gauge, so the parts sit at" ^0
" " + str(process_standard_deviation_hundredths) + " hundredths of sigma and " + str(cp_on_the_parts_hundredths) + " hundredths of capability, not " + str(cp_on_the_readings_hundredths) ^0
"" ^0
"every measurement carries the instrument inside it, and a scatter computed" ^0
"from readings is the scatter of the parts and the ruler together; blame" ^0
"assigned without separating the two lands on the parts by default, because" ^0
"the ruler is not on the chart" ^0
"" ^0
"The readings' scatter is exact - standard deviation " + str(observed_standard_deviation) + ", capability " + str(cp_on_the_readings_hundredths) ^0
"hundredths. But " + str(gauge_share_of_the_scatter_per_myriad) + " per ten thousand of that variance is the gauge, so the parts" ^0
"themselves sit at " + str(process_standard_deviation_hundredths) + " hundredths of sigma and " + str(cp_on_the_parts_hundredths) + " hundredths of capability, " + str(capability_the_gauge_hid_hundredths) ^0
"hundredths hidden by the instrument, until a gauge study separated the two." ^0Python (deterministic transpilation)
pythonobserved_variance_of_the_readings = 100
variance_contributed_by_the_gauge = 60
spec_half_width = 15
observed_standard_deviation = 10
process_standard_deviation_hundredths = 632
variance_of_the_parts_themselves = observed_variance_of_the_readings - variance_contributed_by_the_gauge
gauge_share_of_the_scatter_per_myriad = int(variance_contributed_by_the_gauge * 10000 / observed_variance_of_the_readings)
process_share_of_the_scatter_per_myriad = int(variance_of_the_parts_themselves * 10000 / observed_variance_of_the_readings)
cp_on_the_readings_hundredths = int(spec_half_width * 2 * 100 / (observed_standard_deviation * 6))
cp_on_the_parts_hundredths = int(spec_half_width * 2 * 100 * 100 / (process_standard_deviation_hundredths * 6))
capability_the_gauge_hid_hundredths = cp_on_the_parts_hundredths - cp_on_the_readings_hundredths
print("observed variance of readings : " + str(observed_variance_of_the_readings) + " (standard deviation " + str(observed_standard_deviation) + ")")
print("variance from the gauge : " + str(variance_contributed_by_the_gauge) + ", " + str(gauge_share_of_the_scatter_per_myriad) + " per ten thousand of the scatter")
print("variance of the parts themselves : " + str(variance_of_the_parts_themselves) + ", " + str(process_share_of_the_scatter_per_myriad) + " per ten thousand")
print("process standard deviation : " + str(process_standard_deviation_hundredths) + " hundredths")
print("")
print("specification : plus or minus " + str(spec_half_width))
print("capability judged on readings : " + str(cp_on_the_readings_hundredths) + " hundredths - not capable")
print("capability of the parts : " + str(cp_on_the_parts_hundredths) + " hundredths")
print("capability the gauge hid : " + str(capability_the_gauge_hid_hundredths) + " hundredths")
print("")
print("the capability judgement")
print(" coverage : every part measured")
print(" scatter : exact standard deviation of the readings, " + str(observed_standard_deviation))
print(" index : computed correctly from it, " + str(cp_on_the_readings_hundredths) + " hundredths")
print(" intent : can the process hold the spec")
print(" readings mishandled : 0")
print(" verdict : NOT CAPABLE")
print("")
print(" computing the exact scatter of the real readings is the")
print(" part done right here, and it is why the readings really")
print(" are that scattered")
print("")
print("part plus gauge")
print(" a reading : the part's true size plus the gauge's error")
print(" variances add : " + str(variance_of_the_parts_themselves) + " from the parts, " + str(variance_contributed_by_the_gauge) + " from the gauge, " + str(observed_variance_of_the_readings) + " observed")
print(" the gauge's share : " + str(gauge_share_of_the_scatter_per_myriad) + " per ten thousand - most of it")
print(" so the parts alone : standard deviation " + str(process_standard_deviation_hundredths) + " hundredths, not " + str(observed_standard_deviation))
print(" and the capability : " + str(cp_on_the_parts_hundredths) + " hundredths, not " + str(cp_on_the_readings_hundredths))
print("")
print("the verdict")
print(" process condemned as : not capable, at " + str(cp_on_the_readings_hundredths) + " hundredths")
print(" process actually : " + str(cp_on_the_parts_hundredths) + " hundredths")
print(" is the readings' scatter miscomputed : no")
print(" is the readings' scatter the parts' scatter : no; the")
print(" larger part of it is the instrument")
print("")
nc_cp_hundredths_judged_on_raw_readings = 50
nc_cp_hundredths_judged_on_parts_after_the_gauge_study = 79
nc_capability_hundredths_the_gauge_study_restores = 29
print("null control - run a gauge study first")
print(" capability judged on raw readings : " + str(nc_cp_hundredths_judged_on_raw_readings) + " hundredths")
print(" capability judged on the parts, gauge removed : " + str(nc_cp_hundredths_judged_on_parts_after_the_gauge_study) + " hundredths")
print(" capability the gauge study restores : " + str(nc_capability_hundredths_the_gauge_study_restores) + " hundredths")
print(" no part and no spec changed; the ruler stopped being")
print(" counted as part of the thing it measured")
print("")
print("what an exact scatter of the readings guarantees")
print(" the readings vary by that much : exactly, every part")
print(" measured, exact standard deviation")
print(" the parts vary by that much : not addressed; " + str(gauge_share_of_the_scatter_per_myriad) + " per ten")
print(" thousand of the scatter is the gauge, so the parts sit at")
print(" " + str(process_standard_deviation_hundredths) + " hundredths of sigma and " + str(cp_on_the_parts_hundredths) + " hundredths of capability, not " + str(cp_on_the_readings_hundredths))
print("")
print("every measurement carries the instrument inside it, and a scatter computed")
print("from readings is the scatter of the parts and the ruler together; blame")
print("assigned without separating the two lands on the parts by default, because")
print("the ruler is not on the chart")
print("")
print("The readings' scatter is exact - standard deviation " + str(observed_standard_deviation) + ", capability " + str(cp_on_the_readings_hundredths))
print("hundredths. But " + str(gauge_share_of_the_scatter_per_myriad) + " per ten thousand of that variance is the gauge, so the parts")
print("themselves sit at " + str(process_standard_deviation_hundredths) + " hundredths of sigma and " + str(cp_on_the_parts_hundredths) + " hundredths of capability, " + str(capability_the_gauge_hid_hundredths))
print("hundredths hidden by the instrument, until a gauge study separated the two.")stdout (executed)
textobserved variance of readings : 100 (standard deviation 10)
variance from the gauge : 60, 6000 per ten thousand of the scatter
variance of the parts themselves : 40, 4000 per ten thousand
process standard deviation : 632 hundredths
specification : plus or minus 15
capability judged on readings : 50 hundredths - not capable
capability of the parts : 79 hundredths
capability the gauge hid : 29 hundredths
the capability judgement
coverage : every part measured
scatter : exact standard deviation of the readings, 10
index : computed correctly from it, 50 hundredths
intent : can the process hold the spec
readings mishandled : 0
verdict : NOT CAPABLE
computing the exact scatter of the real readings is the
part done right here, and it is why the readings really
are that scattered
part plus gauge
a reading : the part's true size plus the gauge's error
variances add : 40 from the parts, 60 from the gauge, 100 observed
the gauge's share : 6000 per ten thousand - most of it
so the parts alone : standard deviation 632 hundredths, not 10
and the capability : 79 hundredths, not 50
the verdict
process condemned as : not capable, at 50 hundredths
process actually : 79 hundredths
is the readings' scatter miscomputed : no
is the readings' scatter the parts' scatter : no; the
larger part of it is the instrument
null control - run a gauge study first
capability judged on raw readings : 50 hundredths
capability judged on the parts, gauge removed : 79 hundredths
capability the gauge study restores : 29 hundredths
no part and no spec changed; the ruler stopped being
counted as part of the thing it measured
what an exact scatter of the readings guarantees
the readings vary by that much : exactly, every part
measured, exact standard deviation
the parts vary by that much : not addressed; 6000 per ten
thousand of the scatter is the gauge, so the parts sit at
632 hundredths of sigma and 79 hundredths of capability, not 50
every measurement carries the instrument inside it, and a scatter computed
from readings is the scatter of the parts and the ruler together; blame
assigned without separating the two lands on the parts by default, because
the ruler is not on the chart
The readings' scatter is exact - standard deviation 10, capability 50
hundredths. But 6000 per ten thousand of that variance is the gauge, so the parts
themselves sit at 632 hundredths of sigma and 79 hundredths of capability, 29
hundredths hidden by the instrument, until a gauge study separated the two.Trace event types
eml:run:starteml:assigneml:outputeml:run:done