Home Developers Evidence engineering.tolerance.stackup

Public evidence

engineering.tolerance.stackup

Machine-checked verification for calculation version 1.4.0 · tier internally_reviewed

CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance · Basic RSS/WCA + Engineering dimensions[] + O3 mpmath tabulated RSS/WCA· O2 covers Basic tol[] / tol1…n and Engineering dimensions[] (symmetric, asymmetric, 1σ, 3σ, uniform). Geometric GD&T, 3-D loops, and Monte Carlo are not this calculator. · Protocol · Schema · Production report

Declared partition coverage
PASS · 8/8 declared partitions (basic-rss, basic-wca, engineering-symmetric, engineering-asymmetric, engineering-1sigma, engineering-3sigma, engineering-uniform, invalid-domain)
Versions
Calculation 1.4.0 · CVP protocol 1.0.0-proposed · Evidence 2026-09-16.o3-linear
Verification revision
2026-09-16.o3-linear · 18/18 property · digest 9ae988cdc138

Verification

Legacy regression suite: 35/35 calculation tests · Production surface contract 8/8

Three distinct suites: educational examples on the calculator page, this legacy regression count (35/35 golden + boundary), and the CVP verification suite below. They are not the same number. Property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the CVP Manifest . SKIP (0/0) means that suite has no published vectors.

    This calculator CURRENT · Public schema 1.4.0 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓

CVP verification suite

Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Verification revision 2026-09-16.o3-linear. Calculation version 1.4.0. CVP 1.0.0-proposed. 10/10 golden · 11/11 CVP boundary · 5/5 invalid · 18/18 property · 10/10 O3 · 6/6 cross-interface · 8/8 CVP contract. digest 9ae988cdc138. ≤2 ULP vs O3 applies only to the published tabulated Basic RSS/WCA and Engineering dimensions[] vectors (symmetric, asymmetric, 1σ, 3σ, uniform). It is not a whole-domain stack guarantee and does not cover GD&T or 3-D loops.

  • Golden (oracle-backed) 10 / 10
  • CVP boundary 11 / 11
  • Invalid input 5 / 5
  • Property 18 / 18
  • O3 high-precision 10 / 10
  • Cross-interface 6 / 6
  • CVP contract 8 / 8
  • Interfaces PASS · UI (SSR) / REST / MCP
  • Interface claim ui-ssr is query-result HTML, not a live browser session. Error-path engine·REST·MCP 1/1 (status, code, calculation_version). SSR compared on URL-canonical requested calculations; empty query is idle (not an error) and JSON-typed object/array inputs are REST/MCP-only.
  • Verified scope Basic RSS/WCA + Engineering dimensions[] + O3 mpmath tabulated RSS/WCA
  • Assurance Engineering
  • Deferred Geometric GD&T, 3-D assembly loops, and Monte Carlo remain out of this calculator (see Monte Carlo Tolerance). O3 does not cover GD&T.
  • contract page version PASS
  • contract capability version PASS
  • contract input schema version PASS
  • contract output schema version PASS
  • evidence version matches manifest PASS
  • schema valid input executes PASS
  • engine success output validates schema PASS
  • schema rejects incomplete input PASS

Fingerprint sha256:15f47c48aa2f91c65db3252e79e42892fb4b441ca9e5e5c73804cd220335f55b

Input schema sha256:036120d8f0e42fcc1ca177d0349b60957414b83b1e96effa9e22fa042525ed6a · Output schema sha256:1b287114a9eeb904ab9cc4dc18a33ccf7c997be16d2d695a3cc074445c7f2405 · Build-time SHA-256 digests prove published artifacts agree with each other (release_integrity.scope=workspace). Production attestation GETs canonical URLs twice (public/cached view and origin), including Capability HTML, via npm run attest:production --write (published at /.well-known/calculatorx-production-attestation.json) and fails if the public Capability page advertises a different calculation_version. This is artifact consistency, not an independent immutable release log.

Build & scope

Engine identity and declared limitations.

Tool
tolerance-stackup
Engine
tolerance-stackup
Engine build
2026-09-11
Evidence core
2026-09-11T23:15:00.561Z
Rendered
2026-09-16T22:03:43.725Z
Last reviewed
2026-08-11

Assumptions

  • Linear 1-D stack
  • All contributors must use the same unit. CalculatorX performs no implicit unit conversion; mixed-unit input is unsupported
  • Basic mode: signs ignored via |tol|
  • Engineering: direction + adds / − subtracts; asymmetric ±tol supported
  • RSS assumes independent contributors
  • Default statistical_basis=magnitude → u=a with no coverage probability
  • 1sigma → u=a; 3sigma → u=a/3; uniform → u=a/√3
  • Uniform asymmetric ±tol: statistical center uses interval midpoint; stack_nom stays drawing nominal
  • Legacy distribution=normal→1sigma, unknown→magnitude, uniform→uniform
  • stack_half_range ≠ stack_worst when +Tol/−Tol are asymmetric about nominal
  • When inputs are specification limits rather than σ-based values, prefer magnitude — RSS is an estimate and not a guaranteed assembly limit

Limitations

  • 1-D linear stack only — not geometric GD&T or Monte Carlo
  • Basic inputs are treated as comparable tolerance magnitudes, not automatically as 1σ / 3σ / drawing limits
  • RSS is a statistical estimate under independence; it is not a guaranteed assembly limit
  • Engineering statistical_basis: magnitude (default, no coverage) and 1sigma use a; 3sigma uses a/3; uniform uses a/√3
  • Uniform asymmetric ±tol shifts statistical center to interval midpoint (NIST Type B rectangular); stack_nom stays drawing nominal
  • Legacy distribution=normal→1sigma, unknown→magnitude, uniform→uniform
  • stack_half_range is not a hard worst-case bound when +Tol/−Tol are asymmetric about nominal — use stack_worst_plus / stack_worst_minus

Sources

Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.

Legacy published checks

Golden and boundary cases from the legacy Evidence JSON. CVP property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the Manifest — including SKIP when a suite has no vectors.

IDKindStatusDetail
rssgoldenpassExpected stack=0.24494897427831783 · stack_worst=0.4 · Actual n=3 · mode=rss · profile=basic · stack=0.24494897427831783 · stack_rss=0.24494897427831783 · stack_worst=0.4 · stack_worst_plus=0.4 · stack_worst_minus=0.4
wcagoldenpassExpected stack=0.4 · Actual n=3 · mode=worst_case · profile=basic · stack=0.4 · stack_rss=0.24494897427831783 · stack_worst=0.4 · stack_worst_plus=0.4 · stack_worst_minus=0.4
emptyboundarypassExpected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT
bad-modeboundarypassExpected INVALID_MODE · Actual INVALID_MODE
tol-alias-tol3goldenpassExpected n=3 · stack=0.24494897427831783 · Actual n=3 · mode=rss · profile=basic · stack=0.24494897427831783 · stack_rss=0.24494897427831783 · stack_worst=0.4 · stack_worst_plus=0.4 · stack_worst_minus=0.4
eng-abcgoldenpassExpected stack_nom=8 · stack_min=7.6 · stack_max=8.4 · stack_worst=0.4 · stack_rss=0.24494897427831783 · Actual n=3 · mode=rss · profile=engineering · stack=0.24494897427831783 · stack_rss=0.24494897427831783 · stack_worst=0.4 · stack_worst_plus=0.4 · stack_worst_minus=0.4
boundary-tol8boundarypassExpected n=8 · stack=0.282842712474619 · stack_worst=0.8 · Actual n=8 · mode=rss · profile=basic · stack=0.28284271247461906 · stack_rss=0.28284271247461906 · stack_worst=0.7999999999999999 · stack_worst_plus=0.7999999999999999 · stack_worst_minus=0.7999999999999999
boundary-singleboundarypassExpected stack=0.25 · stack_worst=0.25 · Actual n=1 · mode=rss · profile=basic · stack=0.25 · stack_rss=0.25 · stack_worst=0.25 · stack_worst_plus=0.25 · stack_worst_minus=0.25
boundary-zero-padboundarypassExpected stack=0.3 · stack_rss=0.22360679774997896 · Actual n=3 · mode=worst_case · profile=basic · stack=0.30000000000000004 · stack_rss=0.223606797749979 · stack_worst=0.30000000000000004 · stack_worst_plus=0.30000000000000004 · stack_worst_minus=0.30000000000000004
boundary-invalid-modeboundarypassExpected INVALID_MODE · Actual INVALID_MODE
boundary-eng-abcboundarypassExpected stack_nom=8 · stack_min=7.6 · stack_max=8.4 · stack_worst=0.4 · stack_worst_plus=0.4 · stack_worst_minus=0.4 · stack_half_range=0.4 · stack_rss=0.2449489742783178 · Actual n=3 · mode=rss · profile=engineering · stack=0.24494897427831783 · stack_rss=0.24494897427831783 · stack_worst=0.4 · stack_worst_plus=0.4 · stack_worst_minus=0.4
boundary-eng-asymmboundarypassExpected stack_nom=8 · stack_min=7.55 · stack_max=8.35 · stack_worst_plus=0.35 · stack_worst_minus=0.45 · stack_half_range=0.4 · stack_worst=0.45 · stack_range=0.8 · Actual n=3 · mode=worst_case · profile=engineering · stack=0.44999999999999996 · stack_rss=0.24494897427831783 · stack_worst=0.44999999999999996 · stack_worst_plus=0.35 · stack_worst_minus=0.44999999999999996
boundary-eng-uniformboundarypassExpected stack_rss=0.17320508075688773 · stack_worst=0.3 · stack_half_range=0.3 · Actual n=1 · mode=rss · profile=engineering · stack=0.17320508075688773 · stack_rss=0.17320508075688773 · stack_worst=0.3 · stack_worst_plus=0.3 · stack_worst_minus=0.3
boundary-eng-3sigmaboundarypassExpected stack_rss=0.1 · stack_worst=0.3 · Actual n=1 · mode=rss · profile=engineering · stack=0.09999999999999999 · stack_rss=0.09999999999999999 · stack_worst=0.3 · stack_worst_plus=0.3 · stack_worst_minus=0.3
boundary-eng-legacy-normalboundarypassExpected stack_rss=0.3 · stack_worst=0.3 · Actual n=1 · mode=rss · profile=engineering · stack=0.3 · stack_rss=0.3 · stack_worst=0.3 · stack_worst_plus=0.3 · stack_worst_minus=0.3
boundary-eng-uniform-centerboundarypassExpected stack_nom=8 · stack_stat_center=7.95 · stack_center_shift=-0.05 · stack_min=7.55 · stack_max=8.35 · Actual n=3 · mode=rss · profile=engineering · stack=0.14142135623730953 · stack_rss=0.14142135623730953 · stack_worst=0.44999999999999996 · stack_worst_plus=0.35 · stack_worst_minus=0.44999999999999996
boundary-eng-emptyboundarypassExpected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT
property-rsspropertypassrss
property-wcapropertypasswca
property-permutepropertypassorder-invariant
property-zeropropertypasszero-pad
property-single-eqpropertypassrss=wca
property-scalepropertypasshomogeneous
property-rss-le-wcapropertypassrss≤wca
property-tol-aliaspropertypasstol[]≡tol1…n
property-eng-nompropertypassnom=8
property-eng-matches-basicpropertypasseng≡basic-tol
property-eng-asymmpropertypassasymm-wca
property-eng-asymm-sidespropertypassplus/minus
property-eng-half-ne-worstpropertypasshalf≠worst
property-eng-rangepropertypassrange=plus+minus
property-eng-3sigmapropertypassa/3
property-eng-default-basispropertypassdefault=magnitude
property-eng-uniform-centerpropertypassuniform-midpoint
property-eng-mag-no-shiftpropertypassmag-center=nom