Tolerance Stack-up Calculator
Combine dimensional tolerances with worst-case sum or RSS root-sum-square. Basic magnitude list or Engineering mode with nominal, ±tol, and direction.
Trust summary CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance · Basic RSS/WCA + Engineering dimensions[] + O3 mpmath tabulated RSS/WCA
- Input interpretation
- Enter values to calculate.
- Result
- —
- Verified scope
- Basic RSS/WCA + Engineering dimensions[] + O3 mpmath tabulated RSS/WCA
- Assurance
- Engineering
- Declared partition coverage
- PASS · 8/8 declared partitions (basic-rss, basic-wca, engineering-symmetric, engineering-asymmetric, engineering-1sigma, engineering-3sigma, engineering-uniform, invalid-domain) · Matrix
- 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.
- Numerical scope
- ≤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.
- Known limitations
- Core CVP does not include live graph, viewport, or pointer interaction.
- Model
- 1-D tolerance stack (Basic RSS/WCA or Engineering dimensions).
- Scope
- Linear 1-D stack
- Verification
- Engine tested · Source checked · v1.4.0 · CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance · Basic RSS/WCA + Engineering dimensions[] + O3 mpmath tabulated RSS/WCA· View Manifest · CVP overview · Specification
- 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
- Legacy regression
- 35/35 tests · Production surface contract 8/8
- Trust layers
- Verification VERIFIED · Production CURRENT · overall VERIFIED
- Reference
- O1 model · O3 expected_values · O3 numerical_behavior · O2 expected_values · O2 numerical_behavior
- Interfaces
- PASS · UI (SSR) / REST / MCP
- Supplemental domain review
- Internal · Pass · metrology-engineer
- Named expert review
- Not performed
- CVP suite
- 10/10 golden · 11/11 CVP boundary · 5/5 invalid · 18/18 property · 10/10 O3 · 6/6 cross-interface · 8/8 CVP contract · Manifest
- Sources
- ASME Y14.5 — Dimensioning and Tolerancing
- Mekid, S. — Metrology and Instrumentation (Wiley-ASME Press)
- SAE 2007-01-0407 — Tolerance Analysis of Mechanical Assemblies with Asymmetric Tolerances
- NIST Technical Note 1297
- NIST — Evaluating uncertainty components: Type B
- Evidence
- 4 legacy golden · 13 legacy boundary · legacy regression suite · 10/10 oracle-backed golden · 5/5 invalid · Artifact integrity PASS · CalculatorX engineering review
- Semantic contract
- PASS
Full verification
Formulas
Core equations used by this calculator.
How to use
Choose Basic or Engineering
Basic accepts magnitude tolerances. Engineering adds nominal, +Tol/−Tol, direction, and statistical basis.
Choose RSS or worst-case
Basic RSS treats each entered tolerance as a comparable RSS contribution magnitude and assumes independent contributors — no σ or coverage is implied (use Engineering to declare statistical_basis). Worst-case bounds extremes; Engineering also reports asymmetric W+/W− relative to nominal.
Read stack and range
Compare RSS vs W±. Engineering mode also shows nominal, min/max, range, and half-range (secondary).
Example calculations
Common configurations with formula and result.
0.1 · 0.2 · 0.1
Basic RSS
A10 +0.05/−0.15 − B5±0.2 + C3±0.1
Engineering asymmetric
Tolerance Stack-up calculator specification
Version 1.4.0 · Engine tested · Supplemental domain review · Internal · 2026-08-11
- Engine tested 35/35 tests · Production surface contract 8/8
- Supplemental domain review Internal · Pass · metrology-engineer · 2026-08-11
- Named expert review Not performed
- Calculation version 1.4.0
Review policy · Evidence · Reviewed by CalculatorX engineering review (metrology-engineer)
- Definition
- Worst-case stack = Σ|tol_i| (Basic) or max(stack_max−stack_nom, stack_nom−stack_min) (Engineering). RSS stack = √Σ u_i² where u comes from statistical_basis on bilateral half-range a. Engineering mode adds nominal, direction-aware min/max, and asymmetric ±tol sides.
- What it calculates
- 1-D tolerance stack (Basic RSS/WCA or Engineering dimensions).
- Inputs
- mode rss|worst_case
- tol[] or tol1…tol8
- dimensions[{name,nom,tol_plus,tol_minus,direction,statistical_basis}]
- Outputs
- stack
- stack_rss
- stack_worst
- stack_worst_plus
- stack_worst_minus
- stack_range
- stack_half_range
- stack_nom
- stack_stat_center
- stack_center_shift
- stack_min
- stack_max
- rss_over_wca
- n
- profile
- dimensions
- Formula
Σ|t| or √Σu²; u from statistical_basis on a; uniform midpoint → stack_stat_center; Engineering: stack_worst=max(W+,W−)- 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
- Units
- same as tol / nominal inputs — homogeneous implied unit; no conversion
- Boundary conditions
- No tol / empty dimensions → MISSING_REQUIRED_INPUT
- Bad mode / direction / statistical_basis → INVALID_MODE
- Example
- Engineering A10+0.05/−0.15 − B5±0.2 + C3±0.1 → nom=8, W−=0.45, W+=0.35, stack_worst=0.45, RSS≈0.245
- Validation cases
7 published on this page · 35/35 tests · Production surface contract 8/8 · View evidence
- rss 0.1,0.2,0.1 → stack≈0.24494897427831783
- worst_case 0.1,0.2,0.1 → stack=0.4
- rss single 0.25 → stack=stack_worst=0.25
- eng A10±0.1 −B5±0.2 +C3±0.1 → stack_nom=8 stack_min=7.6 stack_max=8.4 stack_worst=0.4
- eng asymm A10+0.05/−0.15 −B5±0.2 +C3±0.1 → stack_worst_plus=0.35 stack_worst_minus=0.45 stack_half_range=0.4 stack_worst=0.45
- eng 3sigma a=0.3 → stack_rss=0.1
- eng uniform asymm A10+0.05/−0.15 −B5±0.2 +C3±0.1 → stack_nom=8 stack_stat_center=7.95 stack_center_shift=-0.05
- Sources
- ASME Y14.5 — Dimensioning and Tolerancing — GD&T symbols, rules, and drawing requirementsSupports: Defines geometric dimensioning and tolerancing language used on engineering drawings; does not itself define the RSS stack-up formula
- Mekid, S. — Metrology and Instrumentation (Wiley-ASME Press) — §6.5.4 Worst-Case Tolerance Stack-Up in Asymmetric Dimensional Tolerance; §6.6.2 Worst-Case vs RSSSupports: 1-D worst-case stack for asymmetric ±tol and comparison of worst-case vs root-sum-square statistical analysis
- SAE 2007-01-0407 — Tolerance Analysis of Mechanical Assemblies with Asymmetric Tolerances — Modified worst-case and RSS accumulation for asymmetric tolerancesSupports: Shows that asymmetric contributors produce asymmetric assembly limits; motivates reporting stack_worst_plus / stack_worst_minus separately
- NIST Technical Note 1297 — 5. Combined standard uncertaintySupports: Root-sum-square combination of independent uncertainty components estimated as standard deviations
- NIST — Evaluating uncertainty components: Type B — Uniform (rectangular) distributionSupports: For rectangular limits, best estimate is the interval midpoint (a++a−)/2 and u = a/√3 with a = (a+−a−)/2 — used when statistical_basis=uniform
- ASME Y14.5 — Dimensioning and Tolerancing — GD&T symbols, rules, and drawing requirements
- Last reviewed
- 2026-08-11
- Reviewed by
- CalculatorX engineering review (metrology-engineer)
- Calculation version
- 1.4.0
Background
Interpretation and common distinctions.
Compute a 1-D tolerance stack — Basic (magnitude list) or Engineering (nominal · ±tol · direction).
Basic default: tol 0.1, 0.2, 0.1 · RSS → ≈ 0.2449 · WCA → 0.4.
Engineering default: A 10 +0.05/−0.15 (+) − B 5±0.2 (−) + C 3±0.1 (+) → nom = 8, min/max = 7.55 / 8.35, W− = 0.45, W+ = 0.35, stack_worst = 0.45, half-range = 0.4, RSS ≈ 0.2449.
Statistical assumption
RSS assumes independent statistical contributors. If inputs are specification limits rather than σ-based values, prefer magnitude — RSS is then an estimate and does not represent a guaranteed assembly limit.
In Engineering mode, statistical_basis maps bilateral half-range a=(T₊+T₋)/2 into the RSS contributor u:
- magnitude (default) → u=a, no coverage probability
- 1sigma → u=a (explicit 1σ)
- 3sigma → u=a/3
- uniform → u=a/√3; when +Tol≠−Tol, Stat center uses the interval midpoint while Nominal stays the drawing value
Legacy distribution values still work: normal→1sigma, unknown→magnitude, uniform→uniform.
When +Tol/−Tol are asymmetric about nominal, half-range is not worst-case. Use stack_worst_plus / stack_worst_minus; scalar stack_worst = max(plus, minus).
Supported and not supported
Supported — Basic tol[] / tol1…tol8 · Engineering dimensions[] (asymmetric ±tol, direction, statistical_basis) · RSS vs W± · nominal / Stat center · min/max · range / half-range
Not supported — Geometric GD&T stacks, 3-D assembly loops, Monte Carlo (see Monte Carlo Tolerance)
Agent / API notes
Capability id: engineering.tolerance.stackup · tool id: tolerance-stackup · pin 1.4.0.
Trust tier is internally reviewed (CalculatorX metrology review), not named external expert verification.
Share URLs include v=1.4.0. Prefer POST body dimensions[] for Engineering; Basic may use tol[] or tol1…tol8. Prefer statistical_basis over legacy distribution.
Related tools
Other calculators in this family: Tolerance / Uncertainty Workspace, Uncertainty propagation, Worst-case analysis .
Frequently asked questions
Key distinctions behind the calculation.
RSS or worst-case?
Worst-case evaluates the adverse combination of permitted limits and gives deterministic min/max bounds within the declared 1-D linear stack model. The scalar stack_worst is max(stack_worst_plus, stack_worst_minus) — not half-range when asymmetric. RSS is a statistical estimate for independent contributors and is never a guaranteed assembly bound. A σ-based statistical_basis defines sigma scaling for RSS, not a hard assembly limit; probability coverage still depends on the assumed distribution.
What is Engineering mode?
Engineering mode accepts Dimension · Nominal · +Tol · −Tol · Direction · Statistical basis. It returns nominal stack, min/max, worst+ / worst−, scalar stack_worst, RSS, range, and half-range. Direction + adds to the stack; − subtracts.
What does Statistical basis mean?
It tells CalculatorX what bilateral half-range a=(T++T−)/2 represents for RSS: Magnitude (default, no coverage) and 1σ use u=a; 3σ uses u=a/3; Uniform uses u=a/√3. Prefer Magnitude when ±tol are drawing limits.
What do the ±tol inputs mean?
Basic mode treats each input as a tolerance magnitude. Engineering mode uses +Tol/−Tol as specification-side limits around nominal. Magnitude implies no σ or probability coverage. Selecting 1σ or 3σ defines the sigma scaling; probability coverage additionally depends on the assumed distribution.
Does ASME Y14.5 define the RSS formula?
No. ASME Y14.5 defines GD&T symbols, rules, and drawing requirements. Worst-case and RSS stack-up are common tolerance-analysis practices discussed in ASME tolerance-stack literature and metrology guidance such as NIST TN 1297 for combining independent uncertainty components.